SSBM Decomp
Loading...
Searching...
No Matches
msgbuf.h
Go to the documentation of this file.
1#ifndef _METROTRK_MSGBUF_H
2#define _METROTRK_MSGBUF_H
3
4#include <platform.h>
5
6#include "MetroTRK/dserror.h"
8
9typedef unsigned char u128[16];
10typedef int MessageBufferID;
11
12#define TRKMessageBufferGet(buf, type, offset) (*(type*) (buf->data + offset))
13#define kMessageBufferSize 0x800 + 0x80
14#define NUM_BUFFERS 3
15
16typedef struct MessageBuffer {
17 /* 0x00 */ DSMutex fMutex;
18 /* 0x00 */ bool fInUse;
19 /* 0x04 */ u32 fLength;
20 /* 0x08 */ u32 fPosition;
22} MessageBuffer; // size = 0x88C
23
24typedef struct TRKMsgBufs {
26} TRKMsgBufs; // size = 0x19A4
27
29/* 326D14 */ DSError TRKGetFreeBuffer(int*, MessageBuffer**);
30/* 326DB0 */ MessageBuffer* TRKGetBuffer(int);
31/* 326DDC */ void TRKReleaseBuffer(int);
32/* 326E44 */ void TRKResetBuffer(MessageBuffer*, u8);
34/* 326EB4 */ DSError TRKAppendBuffer(MessageBuffer*, const void*, size_t);
35/* 326F58 */ DSError TRKReadBuffer(MessageBuffer*, void*, size_t);
37
39 const u16 data);
41 const u32 data);
43 const u64 data);
44/* 327124 */ DSError TRKAppendBuffer_ui8(MessageBuffer* buffer, const u8* data,
45 int count);
47 const u32* data, int count);
48
53
55 int count);
57 int count);
58
60 const u8 data)
61{
62 if (buffer->fPosition >= kMessageBufferSize) {
64 }
65
66 buffer->fData[buffer->fPosition++] = data;
67 buffer->fLength++;
68 return kNoError;
69}
70
72
73#endif
static OSTime buffer
Definition ai.c:22
DSError
Definition dserror.h:4
@ kNoError
Definition dserror.h:6
@ kMessageBufferOverflow
Definition dserror.h:11
DSError TRKAppendBuffer_ui32(MessageBuffer *buffer, const u32 *data, int count)
Definition msgbuf.c:243
DSError TRKReadBuffer1_ui8(MessageBuffer *buffer, u8 *data)
Definition msgbuf.c:255
DSError TRKAppendBuffer_ui8(MessageBuffer *buffer, const u8 *data, int count)
Definition msgbuf.c:231
DSError TRK_InitializeMessageBuffers(void)
TRKMsgBufs gTRKMsgBufs
Definition msgbuf.c:6
unsigned char u128[16]
Definition msgbuf.h:9
void TRKResetBuffer(MessageBuffer *, u8)
Definition msgbuf.c:80
DSError TRKReadBuffer(MessageBuffer *, void *, size_t)
Definition msgbuf.c:142
static DSError TRKAppendBuffer1_ui8(MessageBuffer *buffer, const u8 data)
Definition msgbuf.h:59
DSError TRKAppendBuffer1_ui16(MessageBuffer *buffer, const u16 data)
Definition msgbuf.c:166
DSError TRKReadBuffer1_ui64(MessageBuffer *buffer, u64 *data)
Definition msgbuf.c:314
DSError TRKInitializeMessageBuffers(void)
Definition msgbuf.c:13
DSError TRKReadBuffer_ui8(MessageBuffer *buffer, u8 *data, int count)
Definition msgbuf.c:346
DSError TRKReadBuffer1_ui32(MessageBuffer *buffer, u32 *data)
Definition msgbuf.c:286
DSError TRKSetBufferPosition(MessageBuffer *, u32)
Definition msgbuf.c:90
int MessageBufferID
Definition msgbuf.h:10
#define NUM_BUFFERS
Definition msgbuf.h:14
DSError TRKReadBuffer1_ui16(MessageBuffer *buffer, u16 *data)
Definition msgbuf.c:260
DSError TRKReadBuffer_ui32(MessageBuffer *buffer, u32 *data, int count)
Definition msgbuf.c:358
DSError TRKAppendBuffer1_ui64(MessageBuffer *buffer, const u64 data)
Definition msgbuf.c:206
DSError TRKAppendBuffer(MessageBuffer *, const void *, size_t)
Definition msgbuf.c:108
#define kMessageBufferSize
Definition msgbuf.h:13
void TRKReleaseBuffer(int)
Definition msgbuf.c:64
DSError TRKAppendBuffer1_ui32(MessageBuffer *buffer, const u32 data)
Definition msgbuf.c:185
DSError TRKGetFreeBuffer(int *, MessageBuffer **)
Definition msgbuf.c:27
MessageBuffer * TRKGetBuffer(int)
Definition msgbuf.c:53
unsigned int DSMutex
Definition mutex_TRK.h:8
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
unsigned long long u64
An unsigned 64-bit integer.
Definition platform.h:29
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
Definition msgbuf.h:16
bool fInUse
Definition msgbuf.h:18
DSMutex fMutex
Definition msgbuf.h:17
u8 fData[kMessageBufferSize]
Definition msgbuf.h:21
u32 fPosition
Definition msgbuf.h:20
u32 fLength
Definition msgbuf.h:19
Definition msgbuf.h:24
MessageBuffer buffers[NUM_BUFFERS]
Definition msgbuf.h:25