Lines Matching refs:uthread
99 struct uthread *uthread = get_bsdthread_info(thread_act); in unix_syscall() local
101 uthread_reset_proc_refcount(uthread); in unix_syscall()
120 if (arm_get_syscall_args(uthread, state, callp) != 0) { in unix_syscall()
127 uthread->uu_flag |= UT_NOTCANCELPT; in unix_syscall()
128 uthread->syscall_code = code; in unix_syscall()
130 uthread->uu_rval[0] = 0; in unix_syscall()
136 uthread->uu_rval[1] = 0; in unix_syscall()
154 uthread->uu_iocount = 0; in unix_syscall()
155 uthread->uu_vpindex = 0; in unix_syscall()
171 if (__improbable(uthread->syscall_rejection_mask != NULL && in unix_syscall()
172 uthread_syscall_rejection_is_enabled(uthread)) && in unix_syscall()
173 !bitmap_test(uthread->syscall_rejection_mask, call_number)) { in unix_syscall()
180 AUDIT_SYSCALL_ENTER(code, proc, uthread); in unix_syscall()
181 error = (*(callp->sy_call))(proc, &uthread->uu_arg[0], &(uthread->uu_rval[0])); in unix_syscall()
182 AUDIT_SYSCALL_EXIT(code, proc, uthread, error); in unix_syscall()
189 uthread->uu_rval[0], uthread->uu_rval[1], in unix_syscall()
193 if (uthread->uu_iocount) { in unix_syscall()
195 code, uthread->uu_iocount); in unix_syscall()
199 uthread->t_dtrace_errno = error; in unix_syscall()
207 arm_prepare_syscall_return(callp, state, uthread, error); in unix_syscall()
209 uthread->uu_flag &= ~UT_NOTCANCELPT; in unix_syscall()
210 uthread->syscall_code = 0; in unix_syscall()
212 if (uthread->uu_lowpri_window) { in unix_syscall()
224 error, uthread->uu_rval[0], uthread->uu_rval[1], pid); in unix_syscall()
227 uthread_assert_zero_proc_refcount(uthread); in unix_syscall()
234 struct uthread *uthread; in unix_syscall_return() local
245 uthread = get_bsdthread_info(thread_act); in unix_syscall_return()
248 code = uthread->syscall_code; in unix_syscall_return()
253 dtrace_systrace_syscall_return( code, error, uthread->uu_rval ); in unix_syscall_return()
262 AUDIT_SYSCALL_EXIT(code, proc, uthread, error); in unix_syscall_return()
267 arm_prepare_syscall_return(callp, regs, uthread, error); in unix_syscall_return()
269 uthread->uu_flag &= ~UT_NOTCANCELPT; in unix_syscall_return()
270 uthread->syscall_code = 0; in unix_syscall_return()
272 if (uthread->uu_lowpri_window) { in unix_syscall_return()
284 error, uthread->uu_rval[0], uthread->uu_rval[1], proc_getpid(proc)); in unix_syscall_return()
292 …2_syscall_return(const struct sysent *callp, arm_saved_state_t *regs, uthread_t uthread, int error) in arm_prepare_u32_syscall_return() argument
316 ss32->save_r0 = uthread->uu_rval[0]; in arm_prepare_u32_syscall_return()
317 ss32->save_r1 = uthread->uu_rval[1]; in arm_prepare_u32_syscall_return()
356 arm_get_syscall_args(uthread_t uthread, struct arm_saved_state *state, const struct sysent *callp) in arm_get_syscall_args() argument
359 return arm_get_u32_syscall_args(uthread, saved_state32(state), callp); in arm_get_syscall_args()
361 return arm_get_u64_syscall_args(uthread, saved_state64(state), callp); in arm_get_syscall_args()
372 arm_get_u64_syscall_args(uthread_t uthread, arm_saved_state64_t *regs, const struct sysent *callp) in arm_get_u64_syscall_args() argument
385 if (callp->sy_narg > (int)(sizeof(uthread->uu_arg) / sizeof(uthread->uu_arg[0]))) { in arm_get_u64_syscall_args()
389 memcpy(&uthread->uu_arg[0], ®s->x[indirect_offset], callp->sy_narg * sizeof(uint64_t)); in arm_get_u64_syscall_args()
408 if (indirect_offset && !ml_thread_is64bit(get_machthread(uthread))) { in arm_get_u64_syscall_args()
409 (*mungerp)(&uthread->uu_arg[0]); in arm_get_u64_syscall_args()
422 arm_get_u32_syscall_args(uthread_t uthread, arm_saved_state32_t *regs, const struct sysent *callp) in arm_get_u32_syscall_args() argument
434 assert((unsigned) callp->sy_arg_bytes <= sizeof(uthread->uu_arg)); in arm_get_u32_syscall_args()
440 memcpy(&uthread->uu_arg[0], ®s->r[flavor], callp->sy_arg_bytes); in arm_get_u32_syscall_args()
441 } else if (callp->sy_arg_bytes <= sizeof(uthread->uu_arg)) { in arm_get_u32_syscall_args()
447 memcpy(&uthread->uu_arg[0], ®s->r[flavor], regparams * sizeof(int)); in arm_get_u32_syscall_args()
448 if (copyin((user_addr_t)regs->sp + 7 * sizeof(int), (int *)&uthread->uu_arg[0] + regparams, in arm_get_u32_syscall_args()
460 (*mungerp)(&uthread->uu_arg[0]); in arm_get_u32_syscall_args()
486 …all_return(const struct sysent *callp, struct arm_saved_state *state, uthread_t uthread, int error) in arm_prepare_syscall_return() argument
489 arm_prepare_u32_syscall_return(callp, state, uthread, error); in arm_prepare_syscall_return()
491 arm_prepare_u64_syscall_return(callp, state, uthread, error); in arm_prepare_syscall_return()
496 …4_syscall_return(const struct sysent *callp, arm_saved_state_t *regs, uthread_t uthread, int error) in arm_prepare_u64_syscall_return() argument
518 ss64->x[0] = uthread->uu_rval[0]; in arm_prepare_u64_syscall_return()
519 ss64->x[1] = uthread->uu_rval[1]; in arm_prepare_u64_syscall_return()
522 ss64->x[0] = (u_int)uthread->uu_rval[0]; in arm_prepare_u64_syscall_return()
523 ss64->x[1] = (u_int)uthread->uu_rval[1]; in arm_prepare_u64_syscall_return()
530 ss64->x[0] = *((uint64_t *)(&uthread->uu_rval[0])); in arm_prepare_u64_syscall_return()