Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/trap.c
Show First 20 Lines • Show All 131 Lines • ▼ Show 20 Lines | cpu_fetch_syscall_args(struct thread *td) | ||||
return (0); | return (0); | ||||
} | } | ||||
#include "../../kern/subr_syscall.c" | #include "../../kern/subr_syscall.c" | ||||
static void | static void | ||||
svc_handler(struct thread *td, struct trapframe *frame) | svc_handler(struct thread *td, struct trapframe *frame) | ||||
{ | { | ||||
int error; | |||||
if ((frame->tf_esr & ESR_ELx_ISS_MASK) == 0) { | if ((frame->tf_esr & ESR_ELx_ISS_MASK) == 0) { | ||||
error = syscallenter(td); | syscallenter(td); | ||||
syscallret(td, error); | syscallret(td); | ||||
} else { | } else { | ||||
call_trapsignal(td, SIGILL, ILL_ILLOPN, (void *)frame->tf_elr); | call_trapsignal(td, SIGILL, ILL_ILLOPN, (void *)frame->tf_elr); | ||||
userret(td, frame); | userret(td, frame); | ||||
} | } | ||||
} | } | ||||
static void | static void | ||||
data_abort(struct thread *td, struct trapframe *frame, uint64_t esr, | data_abort(struct thread *td, struct trapframe *frame, uint64_t esr, | ||||
▲ Show 20 Lines • Show All 363 Lines • Show Last 20 Lines |