mirror of
https://github.com/wiiu-env/wut.git
synced 2025-01-08 00:10:44 +01:00
Add messagequeue functions
This commit is contained in:
parent
517c8a8389
commit
297a0d7068
82
include/coreinit/messagequeue.h
Normal file
82
include/coreinit/messagequeue.h
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <wut.h>
|
||||||
|
|
||||||
|
WUT_LIB_HEADER_START
|
||||||
|
|
||||||
|
typedef uint32_t OSMessageFlags;
|
||||||
|
|
||||||
|
enum OSMessageFlags
|
||||||
|
{
|
||||||
|
OS_MESSAGE_QUEUE_BLOCKING = 1 << 0,
|
||||||
|
OS_MESSAGE_QUEUE_HIGH_PRIORITY = 1 << 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct OSMessage
|
||||||
|
{
|
||||||
|
void *message;
|
||||||
|
uint32_t args[3];
|
||||||
|
};
|
||||||
|
CHECK_OFFSET(OSMessage, 0x00, message);
|
||||||
|
CHECK_OFFSET(OSMessage, 0x04, args);
|
||||||
|
CHECK_SIZE(OSMessage, 0x10);
|
||||||
|
|
||||||
|
#define OS_MESSAGE_QUEUE_TAG 0x6D536751u
|
||||||
|
|
||||||
|
struct OSMessageQueue
|
||||||
|
{
|
||||||
|
uint32_t tag;
|
||||||
|
const char *name;
|
||||||
|
UNKNOWN(4);
|
||||||
|
OSThreadQueue sendQueue;
|
||||||
|
OSThreadQueue recvQueue;
|
||||||
|
OSMessage *messages;
|
||||||
|
uint32_t size;
|
||||||
|
uint32_t first;
|
||||||
|
uint32_t used;
|
||||||
|
};
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x00, tag);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x04, name);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x0c, sendQueue);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x1c, recvQueue);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x2c, messages);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x30, size);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x34, first);
|
||||||
|
CHECK_OFFSET(OSMessageQueue, 0x38, used);
|
||||||
|
CHECK_SIZE(OSMessageQueue, 0x3c);
|
||||||
|
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
void
|
||||||
|
OSInitMessageQueue(OSMessageQueue *queue,
|
||||||
|
OSMessage *messages,
|
||||||
|
int32_t size);
|
||||||
|
|
||||||
|
void
|
||||||
|
OSInitMessageQueueEx(OSMessageQueue *queue,
|
||||||
|
OSMessage *messages,
|
||||||
|
int32_t size,
|
||||||
|
const char *name);
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
OSSendMessage(OSMessageQueue *queue,
|
||||||
|
OSMessage *message,
|
||||||
|
OSMessageFlags flags);
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
OSJamMessage(OSMessageQueue *queue,
|
||||||
|
OSMessage *message,
|
||||||
|
OSMessageFlags flags);
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
OSReceiveMessage(OSMessageQueue *queue,
|
||||||
|
OSMessage *message,
|
||||||
|
OSMessageFlags flags);
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
OSPeekMessage(OSMessageQueue *queue,
|
||||||
|
OSMessage *message);
|
||||||
|
|
||||||
|
OSMessageQueue *
|
||||||
|
OSGetSystemMessageQueue();
|
||||||
|
|
||||||
|
WUT_LIB_HEADER_END
|
@ -137,6 +137,15 @@ EXPORT(MEMGetNextListObject);
|
|||||||
EXPORT(MEMGetPrevListObject);
|
EXPORT(MEMGetPrevListObject);
|
||||||
EXPORT(MEMGetNthListObject);
|
EXPORT(MEMGetNthListObject);
|
||||||
|
|
||||||
|
// coreinit/messagequeue.h
|
||||||
|
EXPORT(OSInitMessageQueue);
|
||||||
|
EXPORT(OSInitMessageQueueEx);
|
||||||
|
EXPORT(OSSendMessage);
|
||||||
|
EXPORT(OSJamMessage);
|
||||||
|
EXPORT(OSReceiveMessage);
|
||||||
|
EXPORT(OSPeekMessage);
|
||||||
|
EXPORT(OSGetSystemMessageQueue);
|
||||||
|
|
||||||
// coreinit/mutex.h
|
// coreinit/mutex.h
|
||||||
EXPORT(OSInitMutex);
|
EXPORT(OSInitMutex);
|
||||||
EXPORT(OSInitMutexEx);
|
EXPORT(OSInitMutexEx);
|
||||||
|
Loading…
Reference in New Issue
Block a user