diff options
Diffstat (limited to 'src/libultra_code_O2/__osSiCreateAccessQueue.c')
| -rw-r--r-- | src/libultra_code_O2/__osSiCreateAccessQueue.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/libultra_code_O2/__osSiCreateAccessQueue.c b/src/libultra_code_O2/__osSiCreateAccessQueue.c new file mode 100644 index 000000000..c46df56f6 --- /dev/null +++ b/src/libultra_code_O2/__osSiCreateAccessQueue.c @@ -0,0 +1,23 @@ +#include "global.h" + +OSMesg osSiMesgBuff[SIAccessQueueSize]; +OSMesgQueue gOSSiMessageQueue; +u32 gOSSiAccessQueueCreated = 0; + +void __osSiCreateAccessQueue() { + gOSSiAccessQueueCreated = 1; + osCreateMesgQueue(&gOSSiMessageQueue, &osSiMesgBuff[0], SIAccessQueueSize - 1); + osSendMesg(&gOSSiMessageQueue, NULL, OS_MESG_NOBLOCK); +} + +void __osSiGetAccess() { + OSMesg sp1c; + if (!gOSSiAccessQueueCreated) { + __osSiCreateAccessQueue(); + } + osRecvMesg(&gOSSiMessageQueue, &sp1c, OS_MESG_BLOCK); +} + +void __osSiRelAccess() { + osSendMesg(&gOSSiMessageQueue, NULL, OS_MESG_NOBLOCK); +} |
