Changeset View
Changeset View
Standalone View
Standalone View
head/sys/powerpc/powerpc/trap.c
Show First 20 Lines • Show All 443 Lines • ▼ Show 20 Lines | #endif | ||||
} | } | ||||
userret(td, frame); | userret(td, frame); | ||||
} | } | ||||
static void | static void | ||||
trap_fatal(struct trapframe *frame) | trap_fatal(struct trapframe *frame) | ||||
{ | { | ||||
#ifdef KDB | |||||
bool handled; | |||||
#endif | |||||
printtrap(frame->exc, frame, 1, (frame->srr1 & PSL_PR)); | printtrap(frame->exc, frame, 1, (frame->srr1 & PSL_PR)); | ||||
#ifdef KDB | #ifdef KDB | ||||
if (debugger_on_panic && kdb_trap(frame->exc, 0, frame)) | if (debugger_on_panic) { | ||||
kdb_why = KDB_WHY_TRAP; | |||||
handled = kdb_trap(frame->exc, 0, frame); | |||||
kdb_why = KDB_WHY_UNSET; | |||||
if (handled) | |||||
return; | return; | ||||
} | |||||
#endif | #endif | ||||
panic("%s trap", trapname(frame->exc)); | panic("%s trap", trapname(frame->exc)); | ||||
} | } | ||||
static void | static void | ||||
cpu_printtrap(u_int vector, struct trapframe *frame, int isfatal, int user) | cpu_printtrap(u_int vector, struct trapframe *frame, int isfatal, int user) | ||||
{ | { | ||||
#ifdef AIM | #ifdef AIM | ||||
▲ Show 20 Lines • Show All 464 Lines • Show Last 20 Lines |