blob: f342369726df2ca29148e1b60b3ac36d0720ef28 (
plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#ifndef _DOLPHIN_OSEXCEPTION
#define _DOLPHIN_OSEXCEPTION
#include <dolphin/os/OSContext.h>
#include <dolphin/types.h>
#ifdef __cplusplus
extern "C" {
#endif
#define __OS_EXCEPTION_SYSTEM_RESET 0
#define __OS_EXCEPTION_MACHINE_CHECK 1
#define __OS_EXCEPTION_DSI 2
#define __OS_EXCEPTION_ISI 3
#define __OS_EXCEPTION_EXTERNAL_INTERRUPT 4
#define __OS_EXCEPTION_ALIGNMENT 5
#define __OS_EXCEPTION_PROGRAM 6
#define __OS_EXCEPTION_FLOATING_POINT 7
#define __OS_EXCEPTION_DECREMENTER 8
#define __OS_EXCEPTION_SYSTEM_CALL 9
#define __OS_EXCEPTION_TRACE 10
#define __OS_EXCEPTION_PERFORMACE_MONITOR 11
#define __OS_EXCEPTION_BREAKPOINT 12
#define __OS_EXCEPTION_SYSTEM_INTERRUPT 13
#define __OS_EXCEPTION_THERMAL_INTERRUPT 14
#define __OS_EXCEPTION_MAX \
(__OS_EXCEPTION_THERMAL_INTERRUPT+1)
typedef u8 __OSException;
typedef void (*__OSExceptionHandler)(__OSException exception, OSContext* context);
#define OS_EXCEPTION_SAVE_GPRS(context) \
stw r0, OS_CONTEXT_R0(context); \
stw r1, OS_CONTEXT_R1(context); \
stw r2, OS_CONTEXT_R2(context); \
stmw r6, OS_CONTEXT_R6(context); \
mfspr r0, GQR1; \
stw r0, OS_CONTEXT_GQR1(context); \
mfspr r0, GQR2; \
stw r0, OS_CONTEXT_GQR2(context); \
mfspr r0, GQR3; \
stw r0, OS_CONTEXT_GQR3(context); \
mfspr r0, GQR4; \
stw r0, OS_CONTEXT_GQR4(context); \
mfspr r0, GQR5; \
stw r0, OS_CONTEXT_GQR5(context); \
mfspr r0, GQR6; \
stw r0, OS_CONTEXT_GQR6(context); \
mfspr r0, GQR7; \
stw r0, OS_CONTEXT_GQR7(context);
#ifdef __cplusplus
}
#endif
#endif
|