Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/lib/src/__osSiCreateAccessQueue.c
7857 views
1
#include "libultra_internal.h"
2
3
#define SIAccessQueueSize 2
4
5
OSMesg osSiMesgBuff[SIAccessQueueSize];
6
OSMesgQueue gOsSiMessageQueue;
7
u32 gOsSiAccessQueueCreated = 0;
8
9
void __osSiCreateAccessQueue() {
10
gOsSiAccessQueueCreated = 1;
11
osCreateMesgQueue(&gOsSiMessageQueue, &osSiMesgBuff[0], SIAccessQueueSize - 1);
12
osSendMesg(&gOsSiMessageQueue, NULL, OS_MESG_NOBLOCK);
13
}
14
15
void __osSiGetAccess(void) {
16
OSMesg sp1c;
17
if (!gOsSiAccessQueueCreated) {
18
__osSiCreateAccessQueue();
19
}
20
osRecvMesg(&gOsSiMessageQueue, &sp1c, OS_MESG_BLOCK);
21
}
22
23
void __osSiRelAccess(void) {
24
osSendMesg(&gOsSiMessageQueue, NULL, OS_MESG_NOBLOCK);
25
}
26
27