summaryrefslogtreecommitdiff
path: root/include/dolphin/os/OSMessage.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dolphin/os/OSMessage.h')
-rw-r--r--include/dolphin/os/OSMessage.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/dolphin/os/OSMessage.h b/include/dolphin/os/OSMessage.h
new file mode 100644
index 0000000..f67a84e
--- /dev/null
+++ b/include/dolphin/os/OSMessage.h
@@ -0,0 +1,34 @@
+#ifndef _DOLPHIN_OSMESSAGE
+#define _DOLPHIN_OSMESSAGE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <dolphin/os/OSThread.h>
+typedef struct OSMessageQueue OSMessageQueue;
+typedef void* OSMessage;
+
+struct OSMessageQueue {
+ OSThreadQueue queueSend;
+ OSThreadQueue queueReceive;
+ OSMessage* msgArray;
+ s32 msgCount;
+ s32 firstIndex;
+ s32 usedCount;
+};
+
+// Flags to turn blocking on/off when sending/receiving message
+#define OS_MESSAGE_NOBLOCK 0
+#define OS_MESSAGE_BLOCK 1
+
+void OSInitMessageQueue(OSMessageQueue* mq, OSMessage* msgArray, s32 msgCount);
+BOOL OSSendMessage(OSMessageQueue* mq, OSMessage msg, s32 flags);
+BOOL OSJamMessage(OSMessageQueue* mq, OSMessage msg, s32 flags);
+BOOL OSReceiveMessage(OSMessageQueue* mq, OSMessage* msg, s32 flags);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DOLPHIN_OSMESSAGE