From 5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae Mon Sep 17 00:00:00 2001 From: red031000 Date: Fri, 23 Jul 2021 01:11:15 +0100 Subject: separate out libs to libc, libnns and NitroSDK --- arm9/lib/src/OS_message.c | 124 ---------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 arm9/lib/src/OS_message.c (limited to 'arm9/lib/src/OS_message.c') diff --git a/arm9/lib/src/OS_message.c b/arm9/lib/src/OS_message.c deleted file mode 100644 index 3b5c33b0..00000000 --- a/arm9/lib/src/OS_message.c +++ /dev/null @@ -1,124 +0,0 @@ -#include "OS_message.h" -#include "function_target.h" -#include "OS_system.h" -#include "OS_thread.h" - -ARM_FUNC void OS_InitMessageQueue(OSMessageQueue *mq, OSMessage *msgArray, s32 msgCount) -{ - OS_InitThreadQueue(&mq->queueSend); - OS_InitThreadQueue(&mq->queueReceive); - mq->msgArray = msgArray; - mq->msgCount = msgCount; - mq->firstIndex = 0; - mq->usedCount = 0; -} - -ARM_FUNC BOOL OS_SendMessage(OSMessageQueue *mq, OSMessage msg, s32 flags) -{ - OSIntrMode enabled = OS_DisableInterrupts(); - - while (mq->msgCount <= mq->usedCount) - { - if (!(flags & OS_MESSAGE_BLOCK)) - { - (void)OS_RestoreInterrupts(enabled); - return FALSE; - } - else - { - OS_SleepThread(&mq->queueSend); - } - } - - s32 lastIndex = (mq->firstIndex + mq->usedCount) % mq->msgCount; - mq->msgArray[lastIndex] = msg; - mq->usedCount++; - - OS_WakeupThread(&mq->queueReceive); - - (void)OS_RestoreInterrupts(enabled); - return TRUE; -} - -ARM_FUNC BOOL OS_ReceiveMessage(OSMessageQueue *mq, OSMessage *msg, s32 flags) -{ - OSIntrMode enabled = OS_DisableInterrupts(); - - while (mq->usedCount == 0) - { - if (!(flags & OS_MESSAGE_BLOCK)) - { - (void)OS_RestoreInterrupts(enabled); - return FALSE; - } - else - { - OS_SleepThread(&mq->queueReceive); - } - } - - if (msg != NULL) - { - *msg = mq->msgArray[mq->firstIndex]; - } - mq->firstIndex = (mq->firstIndex + 1) % mq->msgCount; - mq->usedCount--; - - OS_WakeupThread(&mq->queueSend); - - (void)OS_RestoreInterrupts(enabled); - return TRUE; -} - -ARM_FUNC BOOL OS_JamMessage(OSMessageQueue *mq, OSMessage msg, s32 flags) -{ - OSIntrMode enabled = OS_DisableInterrupts(); - - while (mq->msgCount <= mq->usedCount) - { - if (!(flags & OS_MESSAGE_BLOCK)) - { - (void)OS_RestoreInterrupts(enabled); - return FALSE; - } - else - { - OS_SleepThread(&mq->queueSend); - } - } - - mq->firstIndex = (mq->firstIndex + mq->msgCount - 1) % mq->msgCount; - mq->msgArray[mq->firstIndex] = msg; - mq->usedCount++; - - OS_WakeupThread(&mq->queueReceive); - - (void)OS_RestoreInterrupts(enabled); - return TRUE; -} - -ARM_FUNC BOOL OS_ReadMessage(OSMessageQueue *mq, OSMessage *msg, s32 flags) -{ - OSIntrMode enabled = OS_DisableInterrupts(); - - while (mq->usedCount == 0) - { - if (!(flags & OS_MESSAGE_BLOCK)) - { - (void)OS_RestoreInterrupts(enabled); - return FALSE; - } - else - { - OS_SleepThread(&mq->queueReceive); - } - } - - if (msg != NULL) - { - *msg = mq->msgArray[mq->firstIndex]; - } - - (void)OS_RestoreInterrupts(enabled); - return TRUE; -} -- cgit v1.2.3