Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/trap.c
Show First 20 Lines • Show All 1,024 Lines • ▼ Show 20 Lines | cpu_fetch_syscall_args(struct thread *td) | ||||
struct trapframe *frame; | struct trapframe *frame; | ||||
struct syscall_args *sa; | struct syscall_args *sa; | ||||
p = td->td_proc; | p = td->td_proc; | ||||
frame = td->td_frame; | frame = td->td_frame; | ||||
sa = &td->td_sa; | sa = &td->td_sa; | ||||
sa->code = frame->tf_rax; | sa->code = frame->tf_rax; | ||||
sa->original_code = sa->code; | |||||
if (__predict_false(sa->code == SYS_syscall || | if (__predict_false(sa->code == SYS_syscall || | ||||
sa->code == SYS___syscall || | sa->code == SYS___syscall || | ||||
sa->code >= p->p_sysent->sv_size)) | sa->code >= p->p_sysent->sv_size)) | ||||
return (cpu_fetch_syscall_args_fallback(td, sa)); | return (cpu_fetch_syscall_args_fallback(td, sa)); | ||||
sa->callp = &p->p_sysent->sv_table[sa->code]; | sa->callp = &p->p_sysent->sv_table[sa->code]; | ||||
KASSERT(sa->callp->sy_narg <= nitems(sa->args), | KASSERT(sa->callp->sy_narg <= nitems(sa->args), | ||||
▲ Show 20 Lines • Show All 156 Lines • Show Last 20 Lines |