rseq
usbser_rseq_do_cb(rseq_t *rseq, int num, uintptr_t arg)
int rval = rseq[num].r_do.s_rval;
char *name = rseq[num].r_do.s_name;
rseq_do(rseq_t *rseq, int num, uintptr_t arg, int flags)
return (rseq_do_common(rseq, num, arg, flags, 0, -1));
rseq_undo(rseq_t *rseq, int num, uintptr_t arg, int flags)
return (rseq_undo_common(rseq, num, arg, flags, 0, -1));
rseq_debug(rseq_t *rseq, int num, uintptr_t arg, int flags, int scenario,
rval = func(rseq, num, arg, flags, sarg1, sarg2);
rval = func(rseq, num, arg, flags, sarg1, rnd);
rval = func(rseq, num, arg, flags, sarg1, i);
rseq_do_debug(rseq_t *rseq, int num, uintptr_t arg, int flags, int scenario,
return (rseq_debug(rseq, num, arg, flags, scenario, sarg1, sarg2,
rseq_undo_debug(rseq_t *rseq, int num, uintptr_t arg, int flags, int scenario,
return (rseq_debug(rseq, num, arg, flags, scenario, sarg1, sarg2,
rseq_do_common(rseq_t *rseq, int num, uintptr_t arg, int flags, int fail_err,
s = &rseq[i].r_do;
rval = (s->s_cb) ? (s->s_cb(rseq, i, arg)) : RSEQ_OK;
(void) rseq_undo(rseq, i, arg, flags);
rseq_undo_common(rseq_t *rseq, int num, uintptr_t arg, int flags, int fail_err,
s = &rseq[i].r_undo;
rval = (s->s_cb) ? (s->s_cb(rseq, i, arg)) : RSEQ_OK;
int rseq_do(rseq_t *rseq, int num, uintptr_t arg, int flags);
int rseq_undo(rseq_t *rseq, int num, uintptr_t arg, int flags);
int rseq_do_debug(rseq_t *rseq, int num, uintptr_t arg, int flags,
int rseq_undo_debug(rseq_t *rseq, int num, uintptr_t arg, int flags,
typedef struct rseq rseq_t;
typedef int (*rseq_cb_t)(rseq_t *rseq, int num, uintptr_t arg);
_NOTE(SCHEME_PROTECTS_DATA("one per call", rseq rseq_step))