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

Function __CARDMountCallback

src/dolphin/src/card/CARDMount.c:231–270  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

229}
230
231void __CARDMountCallback(s32 chan, s32 result) {
232 CARDControl* card;
233 CARDCallback callback;
234
235 card = &__CARDBlock[chan];
236
237 switch (result) {
238 case CARD_RESULT_READY:
239 if (++card->mountStep < CARD_MAX_MOUNT_STEP) {
240 result = DoMount(chan);
241 if (0 <= result) {
242 return;
243 }
244 } else {
245 result = __CARDVerify(card);
246 }
247 break;
248 case CARD_RESULT_UNLOCKED:
249 card->unlockCallback = __CARDMountCallback;
250 if (!EXILock(chan, 0, __CARDUnlockedHandler)) {
251 return;
252 }
253 card->unlockCallback = 0;
254
255 result = DoMount(chan);
256 if (0 <= result) {
257 return;
258 }
259 break;
260 case CARD_RESULT_IOERROR:
261 case CARD_RESULT_NOCARD:
262 DoUnmount(chan, result);
263 break;
264 }
265
266 callback = card->apiCallback;
267 card->apiCallback = 0;
268 __CARDPutControlBlock(card, result);
269 callback(chan, result);
270}
271
272s32 CARDMountAsync(s32 chan, void *workArea, CARDCallback detachCallback,
273 CARDCallback attachCallback)

Callers 1

DoneCallbackFunction · 0.85

Calls 6

DoMountFunction · 0.85
__CARDVerifyFunction · 0.85
EXILockFunction · 0.85
DoUnmountFunction · 0.85
__CARDPutControlBlockFunction · 0.85
callbackClass · 0.50

Tested by

no test coverage detected