diff options
Diffstat (limited to 'src/libultra_code_O2/osContStartReadData.c')
| -rw-r--r-- | src/libultra_code_O2/osContStartReadData.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libultra_code_O2/osContStartReadData.c b/src/libultra_code_O2/osContStartReadData.c index 59ead072c..a85a3337b 100644 --- a/src/libultra_code_O2/osContStartReadData.c +++ b/src/libultra_code_O2/osContStartReadData.c @@ -2,6 +2,7 @@ s32 osContStartReadData(OSMesgQueue* mq) { s32 ret; + __osSiGetAccess(); if (__osContLastPoll != 1) { __osPackReadData(); @@ -15,10 +16,10 @@ s32 osContStartReadData(OSMesgQueue* mq) { } void osContGetReadData(OSContPad* contData) { - u8* bufptr; + u8* bufptr = (u8*)(&__osPifInternalBuff); __OSContReadHeader read; s32 i; - bufptr = (u8*)(&__osPifInternalBuff); + for (i = 0; i < __osMaxControllers; i++, bufptr += sizeof(read), contData++) { read = *((__OSContReadHeader*)bufptr); contData->errno = (read.rxsize & 0xC0) >> 4; @@ -30,11 +31,11 @@ void osContGetReadData(OSContPad* contData) { }; } -void __osPackReadData() { - u8* bufptr; +void __osPackReadData(void) { + u8* bufptr = (u8*)(&__osPifInternalBuff); __OSContReadHeader read; s32 i; - bufptr = (u8*)(&__osPifInternalBuff); + for (i = 0; i < 0xF; i++) { __osPifInternalBuff.ram[i] = 0; } |
