Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
OSInterrupt.h
Go to the documentation of this file.
1#ifndef _REVOLUTION_OSINTERRUPT_H_
2#define _REVOLUTION_OSINTERRUPT_H_
3
4#include <revolution/types.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11typedef s16 __OSInterrupt;
12typedef u32 OSInterruptMask;
13
14#define __OS_INTERRUPT_MEM_0 0
15#define __OS_INTERRUPT_MEM_1 1
16#define __OS_INTERRUPT_MEM_2 2
17#define __OS_INTERRUPT_MEM_3 3
18#define __OS_INTERRUPT_MEM_ADDRESS 4
19#define __OS_INTERRUPT_DSP_AI 5
20#define __OS_INTERRUPT_DSP_ARAM 6
21#define __OS_INTERRUPT_DSP_DSP 7
22#define __OS_INTERRUPT_AI_AI 8
23#define __OS_INTERRUPT_EXI_0_EXI 9
24#define __OS_INTERRUPT_EXI_0_TC 10
25#define __OS_INTERRUPT_EXI_0_EXT 11
26#define __OS_INTERRUPT_EXI_1_EXI 12
27#define __OS_INTERRUPT_EXI_1_TC 13
28#define __OS_INTERRUPT_EXI_1_EXT 14
29#define __OS_INTERRUPT_EXI_2_EXI 15
30#define __OS_INTERRUPT_EXI_2_TC 16
31#define __OS_INTERRUPT_PI_CP 17
32#define __OS_INTERRUPT_PI_PE_TOKEN 18
33#define __OS_INTERRUPT_PI_PE_FINISH 19
34#define __OS_INTERRUPT_PI_SI 20
35#define __OS_INTERRUPT_PI_DI 21
36#define __OS_INTERRUPT_PI_RSW 22
37#define __OS_INTERRUPT_PI_ERROR 23
38#define __OS_INTERRUPT_PI_VI 24
39#define __OS_INTERRUPT_PI_DEBUG 25
40#define __OS_INTERRUPT_PI_HSP 26
41#define __OS_INTERRUPT_PI_ACR 27
42#define __OS_INTERRUPT_MAX 32
43
44#define OS_INTERRUPTMASK(interrupt) (0x80000000u >> (interrupt))
45
46#define OS_INTERRUPTMASK_MEM_0 OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_0)
47#define OS_INTERRUPTMASK_MEM_1 OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_1)
48#define OS_INTERRUPTMASK_MEM_2 OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_2)
49#define OS_INTERRUPTMASK_MEM_3 OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_3)
50#define OS_INTERRUPTMASK_MEM_ADDRESS OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_ADDRESS)
51#define OS_INTERRUPTMASK_MEM_RESET (OS_INTERRUPTMASK_MEM_0 | \
52 OS_INTERRUPTMASK_MEM_1 | \
53 OS_INTERRUPTMASK_MEM_2 | \
54 OS_INTERRUPTMASK_MEM_3)
55#define OS_INTERRUPTMASK_MEM (OS_INTERRUPTMASK_MEM_0 | \
56 OS_INTERRUPTMASK_MEM_1 | \
57 OS_INTERRUPTMASK_MEM_2 | \
58 OS_INTERRUPTMASK_MEM_3 | \
59 OS_INTERRUPTMASK_MEM_ADDRESS)
60#define OS_INTERRUPTMASK_DSP_AI OS_INTERRUPTMASK(__OS_INTERRUPT_DSP_AI)
61#define OS_INTERRUPTMASK_DSP_ARAM OS_INTERRUPTMASK(__OS_INTERRUPT_DSP_ARAM)
62#define OS_INTERRUPTMASK_DSP_DSP OS_INTERRUPTMASK(__OS_INTERRUPT_DSP_DSP)
63#define OS_INTERRUPTMASK_DSP (OS_INTERRUPTMASK_DSP_AI | \
64 OS_INTERRUPTMASK_DSP_ARAM | \
65 OS_INTERRUPTMASK_DSP_DSP)
66
67#define OS_INTERRUPTMASK_AI_AI OS_INTERRUPTMASK(__OS_INTERRUPT_AI_AI)
68#define OS_INTERRUPTMASK_AI (OS_INTERRUPTMASK_AI_AI)
69
70#define OS_INTERRUPTMASK_EXI_0_EXI OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_0_EXI)
71#define OS_INTERRUPTMASK_EXI_0_TC OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_0_TC)
72#define OS_INTERRUPTMASK_EXI_0_EXT OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_0_EXT)
73#define OS_INTERRUPTMASK_EXI_0 (OS_INTERRUPTMASK_EXI_0_EXI | \
74 OS_INTERRUPTMASK_EXI_0_TC | \
75 OS_INTERRUPTMASK_EXI_0_EXT)
76#define OS_INTERRUPTMASK_EXI_1_EXI OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_1_EXI)
77#define OS_INTERRUPTMASK_EXI_1_TC OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_1_TC)
78#define OS_INTERRUPTMASK_EXI_1_EXT OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_1_EXT)
79#define OS_INTERRUPTMASK_EXI_1 (OS_INTERRUPTMASK_EXI_1_EXI | \
80 OS_INTERRUPTMASK_EXI_1_TC | \
81 OS_INTERRUPTMASK_EXI_1_EXT)
82#define OS_INTERRUPTMASK_EXI_2_EXI OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_2_EXI)
83#define OS_INTERRUPTMASK_EXI_2_TC OS_INTERRUPTMASK(__OS_INTERRUPT_EXI_2_TC)
84#define OS_INTERRUPTMASK_EXI_2 (OS_INTERRUPTMASK_EXI_2_EXI | \
85 OS_INTERRUPTMASK_EXI_2_TC)
86#define OS_INTERRUPTMASK_EXI (OS_INTERRUPTMASK_EXI_0_EXI | \
87 OS_INTERRUPTMASK_EXI_0_TC | \
88 OS_INTERRUPTMASK_EXI_0_EXT | \
89 OS_INTERRUPTMASK_EXI_1_EXI | \
90 OS_INTERRUPTMASK_EXI_1_TC | \
91 OS_INTERRUPTMASK_EXI_1_EXT | \
92 OS_INTERRUPTMASK_EXI_2_EXI | \
93 OS_INTERRUPTMASK_EXI_2_TC)
94
95#define OS_INTERRUPTMASK_PI_PE_TOKEN OS_INTERRUPTMASK(__OS_INTERRUPT_PI_PE_TOKEN)
96#define OS_INTERRUPTMASK_PI_PE_FINISH OS_INTERRUPTMASK(__OS_INTERRUPT_PI_PE_FINISH)
97#define OS_INTERRUPTMASK_PI_PE (OS_INTERRUPTMASK_PI_PE_TOKEN | \
98 OS_INTERRUPTMASK_PI_PE_FINISH)
99#define OS_INTERRUPTMASK_PI_CP OS_INTERRUPTMASK(__OS_INTERRUPT_PI_CP)
100#define OS_INTERRUPTMASK_PI_SI OS_INTERRUPTMASK(__OS_INTERRUPT_PI_SI)
101#define OS_INTERRUPTMASK_PI_DI OS_INTERRUPTMASK(__OS_INTERRUPT_PI_DI)
102#define OS_INTERRUPTMASK_PI_RSW OS_INTERRUPTMASK(__OS_INTERRUPT_PI_RSW)
103#define OS_INTERRUPTMASK_PI_ERROR OS_INTERRUPTMASK(__OS_INTERRUPT_PI_ERROR)
104#define OS_INTERRUPTMASK_PI_VI OS_INTERRUPTMASK(__OS_INTERRUPT_PI_VI)
105#define OS_INTERRUPTMASK_PI_DEBUG OS_INTERRUPTMASK(__OS_INTERRUPT_PI_DEBUG)
106#define OS_INTERRUPTMASK_PI_HSP OS_INTERRUPTMASK(__OS_INTERRUPT_PI_HSP)
107#define OS_INTERRUPTMASK_PI_ACR OS_INTERRUPTMASK(__OS_INTERRUPT_PI_ACR)
108#define OS_INTERRUPTMASK_PI (OS_INTERRUPTMASK_PI_CP | \
109 OS_INTERRUPTMASK_PI_SI | \
110 OS_INTERRUPTMASK_PI_DI | \
111 OS_INTERRUPTMASK_PI_RSW | \
112 OS_INTERRUPTMASK_PI_ERROR | \
113 OS_INTERRUPTMASK_PI_VI | \
114 OS_INTERRUPTMASK_PI_PE_TOKEN | \
115 OS_INTERRUPTMASK_PI_PE_FINISH | \
116 OS_INTERRUPTMASK_PI_DEBUG | \
117 OS_INTERRUPTMASK_PI_HSP | \
118 OS_INTERRUPTMASK_PI_ACR )
119
121
122extern volatile __OSInterrupt __OSLastInterrupt;
123extern volatile u32 __OSLastInterruptSrr0;
124extern volatile OSTime __OSLastInterruptTime;
125
127
129
131
136
137#ifdef __cplusplus
138}
139#endif
140
141#endif
static OSContext context
Definition JUTException.cpp:157
u8 __OSException
Definition OSException.h:34
s16 __OSInterrupt
Definition OSInterrupt.h:14
u32 OSInterruptMask
Definition OSInterrupt.h:15
s64 OSTime
Definition os.h:19
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
void(* __OSInterruptHandler)(__OSInterrupt interrupt, OSContext *context)
Definition OSInterrupt.h:120
OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask mask)
Definition OSInterrupt.c:338
volatile u32 __OSLastInterruptSrr0
Definition OSInterrupt.c:13
__OSInterruptHandler __OSSetInterruptHandler(__OSInterrupt interrupt, __OSInterruptHandler handler)
Definition OSInterrupt.c:123
OSInterruptMask OSGetInterruptMask(void)
Definition OSInterrupt.c:297
volatile OSTime __OSLastInterruptTime
Definition OSInterrupt.c:11
OSInterruptMask OSSetInterruptMask(OSInterruptMask mask)
Definition OSInterrupt.c:301
OSInterruptMask __OSMaskInterrupts(OSInterruptMask mask)
Definition OSInterrupt.c:319
volatile __OSInterrupt __OSLastInterrupt
Definition OSInterrupt.c:12
void __OSDispatchInterrupt(__OSException exception, OSContext *context)
Definition OSInterrupt.c:357
__OSInterruptHandler __OSGetInterruptHandler(__OSInterrupt interrupt)
Definition OSInterrupt.c:134
Definition OSContext.h:140
Definition fdlibm.h:73