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

Function __OSReadROM

src/dolphin/src/os/OSRtc.c:193–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193BOOL __OSReadROM(void* buffer, s32 length, s32 offset)
194{
195 BOOL err;
196 u32 cmd;
197
198 DCInvalidateRange(buffer, (u32)length);
199
200 if (!EXILock(RTC_CHAN, RTC_DEV, 0))
201 {
202 return FALSE;
203 }
204 if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ))
205 {
206 EXIUnlock(RTC_CHAN);
207 return FALSE;
208 }
209
210 cmd = (u32)(offset << 6);
211 err = FALSE;
212 err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL);
213 err |= !EXISync(RTC_CHAN);
214 err |= !EXIDma(RTC_CHAN, buffer, length, 0, NULL);
215 err |= !EXISync(RTC_CHAN);
216 err |= !EXIDeselect(RTC_CHAN);
217 EXIUnlock(RTC_CHAN);
218
219 return !err;
220}
221
222inline OSSram* __OSLockSramHACK()
223{

Callers 1

ReadROMFunction · 0.85

Calls 7

EXILockFunction · 0.85
EXISelectFunction · 0.85
EXIUnlockFunction · 0.85
EXIImmFunction · 0.85
EXISyncFunction · 0.85
EXIDmaFunction · 0.85
EXIDeselectFunction · 0.85

Tested by

no test coverage detected