Lines Matching refs:lwp
77 #define LWP_GETSYSENT(lwp) \ argument
78 (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE ? sysent : sysent32)
80 #define LWP_GETSYSENT(lwp) (sysent) argument
144 klwp_t *lwp = ttolwp(t); in syscall_entry() local
145 struct regs *rp = lwptoregs(lwp); in syscall_entry()
148 struct sysent *se = LWP_GETSYSENT(lwp); in syscall_entry()
154 lwp->lwp_ru.sysc++; in syscall_entry()
155 lwp->lwp_eosys = NORMALRETURN; /* assume this will be normal */ in syscall_entry()
166 lwp->lwp_ap = argp; /* for get_syscall_args */ in syscall_entry()
211 klwp_t *lwp = ttolwp(t); in syscall_exit() local
212 struct regs *rp = lwptoregs(lwp); in syscall_exit()
221 lwp->lwp_state = LWP_USER; in syscall_exit()
240 klwp_t *lwp = ttolwp(t); in pre_syscall() local
259 if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { in pre_syscall()
261 ASSERT(lwp->lwp_ap == (long *)&lwptoregs(lwp)->r_rdi); in pre_syscall()
264 ASSERT((caddr_t)lwp->lwp_ap > t->t_stkbase && in pre_syscall()
265 (caddr_t)lwp->lwp_ap < t->t_stk); in pre_syscall()
317 if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { in pre_syscall()
318 lwp->lwp_argsaved = 0; in pre_syscall()
319 lwp->lwp_ap = in pre_syscall()
320 (long *)&lwptoregs(lwp)->r_rdi; in pre_syscall()
335 if (lwp_getdatamodel(lwp) != DATAMODEL_NATIVE) in pre_syscall()
339 if (lwp->lwp_sysabort) { in pre_syscall()
345 lwp->lwp_sysabort = 0; in pre_syscall()
361 0, lwp)) { in pre_syscall()
391 callp = LWP_GETSYSENT(lwp) + code; in pre_syscall()
403 for (i = 0, ap = lwp->lwp_ap; i < callp->sy_narg; i++, ap++) { in pre_syscall()
420 lwp->lwp_error = 0; /* for old drivers */ in pre_syscall()
421 lwp->lwp_badpriv = PRIV_NONE; in pre_syscall()
438 klwp_t *lwp = ttolwp(t); in post_syscall() local
440 struct regs *rp = lwptoregs(lwp); in post_syscall()
449 error = lwp->lwp_errno; in post_syscall()
465 lwp->lwp_pcb.pcb_flags |= DEBUG_PENDING; in post_syscall()
495 if (lwp_getdatamodel(lwp) == DATAMODEL_LP64) in post_syscall()
507 if (lwp_getdatamodel(lwp) == DATAMODEL_LP64) in post_syscall()
512 if (lwp->lwp_eosys == NORMALRETURN) { in post_syscall()
539 (sig = lwp->lwp_cursig) != 0 && in post_syscall()
582 if (lwp->lwp_oweupc) in post_syscall()
593 lwp->lwp_eosys = NORMALRETURN; in post_syscall()
611 if (lwp->lwp_pcb.pcb_flags & DEBUG_PENDING) in post_syscall()
660 if (ISSIG_PENDING(t, lwp, p)) { in post_syscall()
668 LWP_GETSYSENT(lwp)[code].sy_narg : 0; in post_syscall()
679 if (lwp->lwp_pcb.pcb_flags & CPC_OVERFLOW) in post_syscall()
689 if (lwp->lwp_pcb.pcb_flags & REQUEST_STEP) { in post_syscall()
690 lwp->lwp_pcb.pcb_flags &= ~REQUEST_STEP; in post_syscall()
693 if (lwp->lwp_pcb.pcb_flags & REQUEST_NOSTEP) { in post_syscall()
694 lwp->lwp_pcb.pcb_flags &= ~REQUEST_NOSTEP; in post_syscall()
699 lwp->lwp_errno = 0; /* clear error for next time */ in post_syscall()
723 lwp->lwp_state = LWP_USER; in post_syscall()
735 lwp->lwp_errno = 0; /* clear error for next time */ in post_syscall()
746 if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { in post_syscall()
753 lwp->lwp_ap = (long *)&rp->r_rdi; in post_syscall()
756 lwp->lwp_ap = NULL; /* reset on every syscall entry */ in post_syscall()
760 lwp->lwp_argsaved = 0; in post_syscall()
776 if (lwp->lwp_ustack != 0 && lwp->lwp_old_stk_ctl != 0) { in post_syscall()
791 if (copyin((stack_t *)lwp->lwp_ustack, &stk, in post_syscall()
793 (stk.ss_size == lwp->lwp_old_stk_ctl || in post_syscall()
800 (void) copyout(&stk, (stack_t *)lwp->lwp_ustack, in post_syscall()
804 lwp->lwp_old_stk_ctl = 0; in post_syscall()
815 klwp_t *lwp = ttolwp(curthread); in deferred_singlestep_trap() local
816 pcb_t *pcb = &lwp->lwp_pcb; in deferred_singlestep_trap()
843 lwp->lwp_lastfault = fault; in deferred_singlestep_trap()
844 lwp->lwp_lastfaddr = siginfo.si_addr; in deferred_singlestep_trap()
910 get_syscall_args(klwp_t *lwp, long *argp, int *nargsp) in get_syscall_args() argument
912 kthread_t *t = lwptot(lwp); in get_syscall_args()
919 if (lwp_getdatamodel(lwp) == DATAMODEL_LP64) in get_syscall_args()
933 ap = lwp->lwp_ap; in get_syscall_args()
938 nargs = LWP_GETSYSENT(lwp)[code].sy_narg; in get_syscall_args()
957 get_syscall32_args(klwp_t *lwp, int *argp, int *nargsp) in get_syscall32_args() argument
962 code = get_syscall_args(lwp, args, nargsp); in get_syscall32_args()
1006 klwp_t *lwp = ttolwp(t); in save_syscall_args() local
1010 if (lwp->lwp_argsaved || code == 0) in save_syscall_args()
1016 struct sysent *se = LWP_GETSYSENT(lwp); in save_syscall_args()
1048 if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { in save_syscall_args()
1050 struct regs *rp = lwptoregs(lwp); in save_syscall_args()
1052 lwp->lwp_arg[0] = rp->r_rdi; in save_syscall_args()
1053 lwp->lwp_arg[1] = rp->r_rsi; in save_syscall_args()
1054 lwp->lwp_arg[2] = rp->r_rdx; in save_syscall_args()
1055 lwp->lwp_arg[3] = rp->r_rcx; in save_syscall_args()
1056 lwp->lwp_arg[4] = rp->r_r8; in save_syscall_args()
1057 lwp->lwp_arg[5] = rp->r_r9; in save_syscall_args()
1058 if (nargs > 6 && copyin_args(rp, &lwp->lwp_arg[6], nargs - 6)) in save_syscall_args()
1062 if (COPYIN_ARGS32(lwptoregs(lwp), lwp->lwp_arg, nargs)) in save_syscall_args()
1066 lwp->lwp_ap = lwp->lwp_arg; in save_syscall_args()
1067 lwp->lwp_argsaved = 1; in save_syscall_args()
1090 klwp_t *lwp = ttolwp(t); in syscall_ap() local
1091 struct regs *rp = lwptoregs(lwp); in syscall_ap()
1093 callp = LWP_GETSYSENT(lwp) + t->t_sysnum; in syscall_ap()
1106 lwp->lwp_error = 0; /* for old drivers */ in syscall_ap()
1107 error = (*(callp->sy_call))(lwp->lwp_ap, &rval); in syscall_ap()
1184 klwp_t *lwp = ttolwp(curthread); in loadable_syscall() local
1187 struct sysent *se = LWP_GETSYSENT(lwp); in loadable_syscall()
1205 if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { in loadable_syscall()
1217 if (COPYIN_ARGS32(lwptoregs(lwp), lwp->lwp_ap, callp->sy_narg)) in loadable_syscall()
1223 rval = (*sy_call)(lwp->lwp_ap[0], lwp->lwp_ap[1], in loadable_syscall()
1224 lwp->lwp_ap[2], lwp->lwp_ap[3], lwp->lwp_ap[4], in loadable_syscall()
1225 lwp->lwp_ap[5]); in loadable_syscall()