TianoCore EDK2 master
Loading...
Searching...
No Matches
CpuExceptionHandlerLib.h
Go to the documentation of this file.
1
11#ifndef RISCV_CPU_EXECPTION_HANDLER_LIB_H_
12#define RISCV_CPU_EXECPTION_HANDLER_LIB_H_
13
15
20VOID
22 VOID
23 );
24
25//
26// Index of SMode trap register
27//
28#define SMODE_TRAP_REGS_zero 0
29#define SMODE_TRAP_REGS_ra 1
30#define SMODE_TRAP_REGS_sp 2
31#define SMODE_TRAP_REGS_gp 3
32#define SMODE_TRAP_REGS_tp 4
33#define SMODE_TRAP_REGS_t0 5
34#define SMODE_TRAP_REGS_t1 6
35#define SMODE_TRAP_REGS_t2 7
36#define SMODE_TRAP_REGS_s0 8
37#define SMODE_TRAP_REGS_s1 9
38#define SMODE_TRAP_REGS_a0 10
39#define SMODE_TRAP_REGS_a1 11
40#define SMODE_TRAP_REGS_a2 12
41#define SMODE_TRAP_REGS_a3 13
42#define SMODE_TRAP_REGS_a4 14
43#define SMODE_TRAP_REGS_a5 15
44#define SMODE_TRAP_REGS_a6 16
45#define SMODE_TRAP_REGS_a7 17
46#define SMODE_TRAP_REGS_s2 18
47#define SMODE_TRAP_REGS_s3 19
48#define SMODE_TRAP_REGS_s4 20
49#define SMODE_TRAP_REGS_s5 21
50#define SMODE_TRAP_REGS_s6 22
51#define SMODE_TRAP_REGS_s7 23
52#define SMODE_TRAP_REGS_s8 24
53#define SMODE_TRAP_REGS_s9 25
54#define SMODE_TRAP_REGS_s10 26
55#define SMODE_TRAP_REGS_s11 27
56#define SMODE_TRAP_REGS_t3 28
57#define SMODE_TRAP_REGS_t4 29
58#define SMODE_TRAP_REGS_t5 30
59#define SMODE_TRAP_REGS_t6 31
60#define SMODE_TRAP_REGS_sepc 32
61#define SMODE_TRAP_REGS_sstatus 33
62#define SMODE_TRAP_REGS_stval 34
63#define SMODE_TRAP_REGS_last 35
64
65#define SMODE_TRAP_REGS_OFFSET(x) ((SMODE_TRAP_REGS_##x) * __SIZEOF_POINTER__)
66#define SMODE_TRAP_REGS_SIZE SMODE_TRAP_REGS_OFFSET(last)
67
68#pragma pack(1)
69typedef struct {
70 //
71 // Below follow the format of EFI_SYSTEM_CONTEXT.
72 //
73 UINT64 zero;
74 UINT64 ra;
75 UINT64 sp;
76 UINT64 gp;
77 UINT64 tp;
78 UINT64 t0;
79 UINT64 t1;
80 UINT64 t2;
81 UINT64 s0;
82 UINT64 s1;
83 UINT64 a0;
84 UINT64 a1;
85 UINT64 a2;
86 UINT64 a3;
87 UINT64 a4;
88 UINT64 a5;
89 UINT64 a6;
90 UINT64 a7;
91 UINT64 s2;
92 UINT64 s3;
93 UINT64 s4;
94 UINT64 s5;
95 UINT64 s6;
96 UINT64 s7;
97 UINT64 s8;
98 UINT64 s9;
99 UINT64 s10;
100 UINT64 s11;
101 UINT64 t3;
102 UINT64 t4;
103 UINT64 t5;
104 UINT64 t6;
105 UINT64 sepc;
106 UINT64 sstatus;
107 UINT64 stval;
109#pragma pack()
110
111#endif
VOID SupervisorModeTrap(VOID)