25 lines
644 B
C
25 lines
644 B
C
#include "libultra_internal.h"
|
|
|
|
#define PIAccessQueueSize 2
|
|
|
|
OSMesg osPiMesgBuff[PIAccessQueueSize];
|
|
OSMesgQueue gOsPiMessageQueue;
|
|
u32 gOsPiAccessQueueCreated = 0;
|
|
|
|
void __osPiCreateAccessQueue() {
|
|
gOsPiAccessQueueCreated = 1;
|
|
osCreateMesgQueue(&gOsPiMessageQueue, &osPiMesgBuff[0], PIAccessQueueSize - 1);
|
|
osSendMesg(&gOsPiMessageQueue, NULL, OS_MESG_NOBLOCK);
|
|
}
|
|
|
|
void __osPiGetAccess() {
|
|
OSMesg sp1c;
|
|
if (!gOsPiAccessQueueCreated) {
|
|
__osPiCreateAccessQueue();
|
|
}
|
|
osRecvMesg(&gOsPiMessageQueue, &sp1c, OS_MESG_BLOCK);
|
|
}
|
|
|
|
void __osPiRelAccess() {
|
|
osSendMesg(&gOsPiMessageQueue, NULL, OS_MESG_NOBLOCK);
|
|
}
|