MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / ARInit

Function ARInit

src/dolphin/src/ar/ar.c:89–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89u32 ARInit(u32* stack_index_addr, u32 num_entries)
90{
91 BOOL old;
92 u16 refresh;
93
94 if (__AR_init_flag == TRUE)
95 {
96 return 0x4000;
97 }
98
99 OSRegisterVersion(__ARVersion);
100
101 old = OSDisableInterrupts();
102
103 __AR_Callback = NULL;
104
105 __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler);
106 __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM);
107
108 __AR_StackPointer = 0x4000;
109 __AR_FreeBlocks = num_entries;
110 __AR_BlockLength = stack_index_addr;
111
112 refresh = (u16)(__DSPRegs[13] & 0x000000ff);
113
114 __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff));
115
116 __ARChecksize();
117
118 __AR_init_flag = TRUE;
119
120 OSRestoreInterrupts(old);
121
122 return __AR_StackPointer;
123}
124
125static void __ARHandler(__OSInterrupt interrupt, OSContext* context)
126{

Callers 1

iSndInitFunction · 0.85

Calls 4

OSRegisterVersionFunction · 0.85
OSDisableInterruptsFunction · 0.85
__OSUnmaskInterruptsFunction · 0.85
__ARChecksizeFunction · 0.85

Tested by

no test coverage detected