void dump_frame(void *frame) { enter_critical_section(); // disable ints #if ARCH_ARM dump_fault_frame((struct arm_fault_frame *)frame); #endif exit_critical_section(); // disable ints }
static void exception_die(struct arm_fault_frame *frame, const char *msg) { dprintf(CRITICAL, msg); dump_fault_frame(frame); platform_halt(HALT_ACTION_HALT, HALT_REASON_SW_PANIC); for (;;); }
static void exception_die(struct arm_fault_frame *frame, int pc_off, const char *msg) { frame->pc += pc_off; printk(msg); dump_fault_frame(frame); halt(); for (;;); }
static void exception_die(struct x86_iframe *frame, const char *msg) { dprintf(CRITICAL, msg); dump_fault_frame(frame); for (;;) { x86_cli(); x86_hlt(); } }
static void exception_die(struct arm_fault_frame *frame, int pc_off, const char *msg) { inc_critical_section(); frame->pc += pc_off; dprintf(CRITICAL, msg); dump_fault_frame(frame); #ifdef LGE_WITH_CRASH_HANDLER platform_halt(); #else halt(); #endif for(;;); }