96,7 → 96,24 |
start_decrementer(); |
} |
|
static void exception_program_trap(istate_t *istate) |
{ |
if (istate_from_uspace(istate)) |
udebug_breakpoint_event(0); |
else |
panic("Program trap exception."); |
} |
|
static void exception_program(int n, istate_t *istate) |
{ |
if ((istate->srr1 & SRR1_TRAP_EXC) != 0) { |
exception_program_trap(istate); |
} else { |
fault_if_from_uspace(istate, "Unhandled program exception."); |
panic("Unhandled program exception."); |
} |
} |
|
/* Initialize basic tables for exception dispatching */ |
void interrupt_init(void) |
{ |
104,6 → 121,7 |
exc_register(VECTOR_INSTRUCTION_STORAGE, "instruction_storage", pht_refill); |
exc_register(VECTOR_EXTERNAL, "external", exception_external); |
exc_register(VECTOR_DECREMENTER, "timer", exception_decrementer); |
exc_register(VECTOR_PROGRAM, "program", exception_program); |
} |
|
/** @} |