![]() |
libdragon
|
Handle hardware-generated exceptions. More...
Files | |
file | exception.c |
Exception Handler. | |
file | exception.h |
Exception Handler. | |
Data Structures | |
struct | reg_block_t |
Structure representing a register block. More... | |
struct | exception_t |
Structure representing an exception. More... | |
Enumerations | |
enum | { EXCEPTION_TYPE_UNKNOWN = 0 , EXCEPTION_TYPE_RESET , EXCEPTION_TYPE_CRITICAL , EXCEPTION_TYPE_SYSCALL } |
Exception types. More... | |
enum | exception_code_t { EXCEPTION_CODE_INTERRUPT = 0 , EXCEPTION_CODE_TLB_MODIFICATION = 1 , EXCEPTION_CODE_TLB_LOAD_I_MISS = 2 , EXCEPTION_CODE_TLB_STORE_MISS = 3 , EXCEPTION_CODE_LOAD_I_ADDRESS_ERROR = 4 , EXCEPTION_CODE_STORE_ADDRESS_ERROR = 5 , EXCEPTION_CODE_I_BUS_ERROR = 6 , EXCEPTION_CODE_D_BUS_ERROR = 7 , EXCEPTION_CODE_SYS_CALL = 8 , EXCEPTION_CODE_BREAKPOINT = 9 , EXCEPTION_CODE_RESERVED_INSTRUCTION = 10 , EXCEPTION_CODE_COPROCESSOR_UNUSABLE = 11 , EXCEPTION_CODE_ARITHMETIC_OVERFLOW = 12 , EXCEPTION_CODE_TRAP = 13 , EXCEPTION_CODE_FLOATING_POINT = 15 , EXCEPTION_CODE_WATCH = 23 } |
Exception codes. | |
Handle hardware-generated exceptions.
The exception handler traps exceptions generated by hardware. This could be an invalid instruction or invalid memory access exception or it could be a reset exception. In both cases, a handler registered with register_exception_handler will be passed information regarding the exception type and relevant registers.
struct reg_block_t |
Structure representing a register block.
DO NOT modify the order unless editing inthandler.S
struct exception_t |
Structure representing an exception.
Data Fields | ||
---|---|---|
int32_t | type | Exception type. |
exception_code_t | code | Underlying exception code. |
const char * | info | String information of exception. |
reg_block_t * | regs | Registers at point of exception. |