-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrap.h
34 lines (31 loc) · 841 Bytes
/
trap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef _TRAP_H_
#define _TRAP_H_
typedef enum {
OK = -1,
INSTRUCTION_ADDRESS_MISALIGNED = 0,
INSTRUCTION_ACCESS_FAULT = 1,
ILLEGAL_INSTRUCTION = 2,
BREAKPOINT = 3,
LOAD_ADDRESS_MISALIGNED = 4,
LOAD_ACCESS_FAULT = 5,
STORE_AMO_ADDRESS_MISALIGNED = 6,
STORE_AMO_ACCESS_FAULT = 7,
ECALL_FROM_U_MODE = 8,
ECALL_FROM_S_MODE = 9,
INSTRUCTION_PAGE_FAULT = 12,
LOAD_PAGE_FAULT = 13,
STORE_PAGE_FAULT = 15,
} exception_t;
typedef enum {
NONE = -1,
USER_SOFTWARE_INTERRUPT = 0,
SUPERVISOR_SOFTWARE_INTERRUPT = 1,
MACHINE_SOFTWARE_INTERRUPT = 3,
USER_TIMER_INTERRUPT = 4,
SUPERVISOR_TIMER_INTERRUPT = 5,
MACHINE_TIMER_INTERRUPT = 7,
USER_EXTERNAL_INTERRUPT = 8,
SUPERVISOR_EXTERNAL_INTERRUPT = 9,
MACHINE_EXTERNAL_INTERRUPT = 11,
} interrupt_t;
#endif