Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/trap.c
Show First 20 Lines • Show All 617 Lines • ▼ Show 20 Lines | if (!undef_insn(0, frame)) | ||||
call_trapsignal(td, SIGILL, ILL_PRVOPC, | call_trapsignal(td, SIGILL, ILL_PRVOPC, | ||||
(void *)frame->tf_elr, exception); | (void *)frame->tf_elr, exception); | ||||
userret(td, frame); | userret(td, frame); | ||||
break; | break; | ||||
case EXCP_SOFTSTP_EL0: | case EXCP_SOFTSTP_EL0: | ||||
td->td_frame->tf_spsr &= ~PSR_SS; | td->td_frame->tf_spsr &= ~PSR_SS; | ||||
td->td_pcb->pcb_flags &= ~PCB_SINGLE_STEP; | td->td_pcb->pcb_flags &= ~PCB_SINGLE_STEP; | ||||
WRITE_SPECIALREG(mdscr_el1, | WRITE_SPECIALREG(mdscr_el1, | ||||
READ_SPECIALREG(mdscr_el1) & ~DBG_MDSCR_SS); | READ_SPECIALREG(mdscr_el1) & ~MDSCR_SS); | ||||
call_trapsignal(td, SIGTRAP, TRAP_TRACE, | call_trapsignal(td, SIGTRAP, TRAP_TRACE, | ||||
(void *)frame->tf_elr, exception); | (void *)frame->tf_elr, exception); | ||||
userret(td, frame); | userret(td, frame); | ||||
break; | break; | ||||
default: | default: | ||||
call_trapsignal(td, SIGBUS, BUS_OBJERR, (void *)frame->tf_elr, | call_trapsignal(td, SIGBUS, BUS_OBJERR, (void *)frame->tf_elr, | ||||
exception); | exception); | ||||
userret(td, frame); | userret(td, frame); | ||||
Show All 40 Lines |