diff options
Diffstat (limited to 'src/libultra_code_O2/osContQuery.c')
| -rw-r--r-- | src/libultra_code_O2/osContQuery.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/libultra_code_O2/osContQuery.c b/src/libultra_code_O2/osContQuery.c new file mode 100644 index 000000000..ffcdea041 --- /dev/null +++ b/src/libultra_code_O2/osContQuery.c @@ -0,0 +1,32 @@ +#include "global.h" + +/** + * osContStartQuery: + * Starts to read the values for SI device status and type which are connected to the controller port and joyport + * connector. + **/ + +s32 osContStartQuery(OSMesgQueue* mq) { + s32 ret; + ret = 0; + + __osSiGetAccess(); + if (__osContLastPoll != CONT_CMD_REQUEST_STATUS) { + __osPackRequestData(CONT_CMD_REQUEST_STATUS); + ret = __osSiRawStartDma(OS_WRITE, &__osPifInternalBuff); + osRecvMesg(mq, NULL, OS_MESG_BLOCK); + } + ret = __osSiRawStartDma(OS_READ, &__osPifInternalBuff); + __osContLastPoll = CONT_CMD_REQUEST_STATUS; + __osSiRelAccess(); + return ret; +} + +/** + * osContGetQuery: + * Returns the values from osContStartQuery to status. Both functions must be paired for use. + **/ +void osContGetQuery(OSContStatus* data) { + u8 pattern; + __osContGetInitData(&pattern, data); +} |
