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