61 #define IPC_BUF_POOL_MAGIC 0x0BADF00Du
100 WUT_UNKNOWN_BYTES(0x04);
107 WUT_CHECK_OFFSET(
IPCBufPool, 0x14, messageSize0x14);
108 WUT_CHECK_OFFSET(
IPCBufPool, 0x18, messageSize0x18);
109 WUT_CHECK_OFFSET(
IPCBufPool, 0x1C, messageCount);
111 WUT_CHECK_OFFSET(
IPCBufPool, 0x24, messageIndexSize);
119 uint32_t messageSize,
120 uint32_t *outNumMessages,
void * IPCBufPoolAllocate(IPCBufPool *pool, uint32_t size)
uint32_t * messageIndexSize
Number of bytes used for the message pointers in IPCBufPoolFIFO.
uint32_t numMessages
Number of pending messages in the pool fifo.
void ** messages
Messages in the queue.
uint32_t poolSize
Size of the buffer pool.
void * messages
Pointer to start of messages.
void * buffer
Pointer to buffer used for this IPCBufPool.
int32_t count
The number of messages in the queue.
IOSError IPCBufPoolFree(IPCBufPool *pool, void *message)
uint32_t magic
Magic header always set to IPCBufPool::MagicHeader.
int32_t popIndex
The current message index to pop from.
IPCBufPool * IPCBufPoolCreate(void *buffer, uint32_t size, uint32_t messageSize, uint32_t *outNumMessages, uint32_t unk0x0c)
uint32_t messageSize0x14
Message size from IPCBufPoolCreate.
uint32_t size
Size of buffer.
int32_t maxCount
Tracks the total number of messages in the count.
uint32_t messageSize0x18
Message size from IPCBufPoolCreate.
OSMutex mutex
Mutex used to secure access to fifo.
IPCBufPoolFIFO fifo
FIFO queue of messages.
int32_t pushIndex
The current message index to push to.
uint32_t messageCount
Number of messages in the IPCBufPoolFIFO.
IOSError IPCBufPoolGetAttributes(IPCBufPool *pool, IPCBufPoolAttributes *attribs)
uint32_t messageSize
Size of a message in the buffer pool.
A simple message buffer pool used for IPC communication.
Attributes returned by IPCBufPoolGetAttributes.
FIFO queue for IPCBufPool.