summaryrefslogtreecommitdiff
path: root/arm9/lib/include/OS_message.h
blob: 2dc26d50507c902fbe03cd4e17148231422afd68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef POKEDIAMOND_OS_MESSAGE_H
#define POKEDIAMOND_OS_MESSAGE_H

#include "nitro/types.h"
#include "OS_thread.h"

typedef void *OSMessage;

typedef struct OSMessageQueue
{
    OSThreadQueue queueSend;
    OSThreadQueue queueReceive;
    OSMessage *msgArray;
    s32 msgCount;
    s32 firstIndex;
    s32 usedCount;
} OSMessageQueue;

#define  OS_MESSAGE_NOBLOCK   0
#define  OS_MESSAGE_BLOCK     1

void OS_InitMessageQueue(OSMessageQueue *mq, OSMessage *msgArray, s32 msgCount);
BOOL OS_SendMessage(OSMessageQueue *mq, OSMessage msg, s32 flags);
BOOL OS_ReceiveMessage(OSMessageQueue *mq, OSMessage *msg, s32 flags);
BOOL OS_JamMessage(OSMessageQueue *mq, OSMessage msg, s32 flags);
BOOL OS_ReadMessage(OSMessageQueue *mq, OSMessage *msg, s32 flags);

#endif //POKEDIAMOND_OS_MESSAGE_H