Lines Matching defs:ucp
39 static void makectx_wrapper(ucontext_t *ucp, func_t func, uint64_t *args);
44 __makecontext(ucontext_t *ucp, void (*start)(void), int argc, ...)
52 if ((ucp == NULL) || (ucp->uc_mcontext.mc_len != sizeof(mcontext_t)))
54 else if ((argc < 0) || (argc > 6) || (ucp->uc_stack.ss_sp == NULL) ||
55 (ucp->uc_stack.ss_size < MINSIGSTKSZ)) {
62 ucp->uc_mcontext.mc_len = 0;
67 sp = (uint64_t *)(ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
88 ucp->uc_mcontext.mc_rdi = (register_t)ucp;
89 ucp->uc_mcontext.mc_rsi = (register_t)start;
90 ucp->uc_mcontext.mc_rdx = (register_t)args;
91 ucp->uc_mcontext.mc_rbp = 0;
92 ucp->uc_mcontext.mc_rbx = (register_t)sp;
93 ucp->uc_mcontext.mc_rsp = (register_t)sp;
94 ucp->uc_mcontext.mc_rip = (register_t)makectx_wrapper;
98 makectx_wrapper(ucontext_t *ucp, func_t func, uint64_t *args)
101 if (ucp->uc_link == NULL)
103 setcontext((const ucontext_t *)ucp->uc_link);