diff options
Diffstat (limited to 'src/libultra_code_O2/osPfsIsPlug.c')
| -rw-r--r-- | src/libultra_code_O2/osPfsIsPlug.c | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/libultra_code_O2/osPfsIsPlug.c b/src/libultra_code_O2/osPfsIsPlug.c deleted file mode 100644 index a1b73cf8e..000000000 --- a/src/libultra_code_O2/osPfsIsPlug.c +++ /dev/null @@ -1,93 +0,0 @@ -#include "ultra64.h" -#include "global.h" - -s32 osPfsIsPlug(OSMesgQueue* mq, u8* pattern) { - s32 ret = 0; - OSMesg msg; - u8 bitpattern; - OSContStatus contData[MAXCONTROLLERS]; - s32 channel; - u8 bits = 0; - s32 crcErrorCount = 3; - - __osSiGetAccess(); - - do { - __osPfsRequestData(CONT_CMD_REQUEST_STATUS); - - ret = __osSiRawStartDma(OS_WRITE, &gPifMempakBuf); - osRecvMesg(mq, &msg, OS_MESG_BLOCK); - - ret = __osSiRawStartDma(OS_READ, &gPifMempakBuf); - osRecvMesg(mq, &msg, OS_MESG_BLOCK); - - __osPfsGetInitData(&bitpattern, &contData[0]); - - for (channel = 0; channel < __osMaxControllers; channel++) { - if ((contData[channel].status & CONT_ADDR_CRC_ER) == 0) { - crcErrorCount--; - break; - } - } - if (channel == __osMaxControllers) { - crcErrorCount = 0; - } - } while (crcErrorCount > 0); - - for (channel = 0; channel < __osMaxControllers; channel++) { - if ((contData[channel].errno == 0) && ((contData[channel].status & CONT_CARD_ON) != 0)) { - bits |= (1 << channel); - } - } - __osSiRelAccess(); - *pattern = bits; - return ret; -} - -void __osPfsRequestData(u8 poll) { - u8* bufPtr = (u8*)&gPifMempakBuf; - __OSContRequestHeader req; - s32 i; - - __osContLastPoll = poll; - - gPifMempakBuf.status = 1; - - req.align = 0xFF; - req.txsize = 1; - req.rxsize = 3; - req.poll = poll; - req.typeh = 0xFF; - req.typel = 0xFF; - req.status = 0xFF; - req.align1 = 0xFF; - - for (i = 0; i < __osMaxControllers; i++) { - *((__OSContRequestHeader*)bufPtr) = req; - bufPtr += sizeof(req); - } - *((u8*)bufPtr) = CONT_CMD_END; -} - -void __osPfsGetInitData(u8* pattern, OSContStatus* contData) { - u8* bufptr; - __OSContRequestHeader req; - s32 i; - u8 bits = 0; - - bufptr = (u8*)&gPifMempakBuf; - - for (i = 0; i < __osMaxControllers; i++, bufptr += sizeof(req), contData++) { - req = *((__OSContRequestHeader*)bufptr); - contData->errno = ((req.rxsize & 0xC0) >> 4); - - if (contData->errno) { - continue; - } - - contData->type = ((req.typel << 8) | req.typeh); - contData->status = req.status; - bits |= (1 << i); - } - *pattern = bits; -} |
