makecontext
makecontext(&c->ctx_uc, context_init, 1, c);
extern void makecontext(ucontext_t *, void(*)(), int, ...);
makecontext(ctx, getcontext_stack, 1, STACK_MAGIC);
makecontext(&ctx, successful_exit, 1, EXIT_MAGIC);
makecontext(&uc, (void (*)(void *))get_stack_at_entry, 1, &arg);
makecontext(&ctx, run, 0);
makecontext(ctx, setcontext_replace_check, 1, hwsup);
makecontext(ctx, setcontext_restore_check, 1, hwsup);
makecontext(mk_ctx, mkctx_target, 2, hwsup, &hwsup);
makecontext(mk_ctx, mkctx_failure, 0);
makecontext(ctx, bad_success, 0);