SSBM Decomp
Toggle main menu visibility
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 <
Runtime/platform.h
>
5
6
#include <
MetroTRK/dserror.h
>
7
#include <
MetroTRK/mutex_TRK.h
>
8
9
typedef
unsigned
char
u128
[16];
10
typedef
int
MessageBufferID
;
11
12
#define TRKMessageBufferGet(buf, type, offset) (*(type*) (buf->data + offset))
13
#define kMessageBufferSize 0x800 + 0x80
14
#define NUM_BUFFERS 3
15
16
typedef
struct
MessageBuffer
{
17
/* 0x00 */
DSMutex
fMutex
;
18
/* 0x00 */
bool
fInUse
;
19
/* 0x04 */
u32
fLength
;
20
/* 0x08 */
u32
fPosition
;
21
/* 0x0C */
u8
fData
[
kMessageBufferSize
];
22
}
MessageBuffer
;
// size = 0x88C
23
24
typedef
struct
TRKMsgBufs
{
25
/* 0x00 */
MessageBuffer
buffers
[
NUM_BUFFERS
];
26
}
TRKMsgBufs
;
// size = 0x19A4
27
28
/* 326C9C */
DSError
TRK_InitializeMessageBuffers
(
void
);
29
/* 326D14 */
DSError
TRKGetFreeBuffer
(
int
*,
MessageBuffer
**);
30
/* 326DB0 */
MessageBuffer
*
TRKGetBuffer
(
int
);
31
/* 326DDC */
void
TRKReleaseBuffer
(
int
);
32
/* 326E44 */
void
TRKResetBuffer
(
MessageBuffer
*,
u8
);
33
/* 326E84 */
DSError
TRKSetBufferPosition
(
MessageBuffer
*,
u32
);
34
/* 326EB4 */
DSError
TRKAppendBuffer
(
MessageBuffer
*,
const
void
*,
size_t
);
35
/* 326F58 */
DSError
TRKReadBuffer
(
MessageBuffer
*,
void
*,
size_t
);
36
DSError
TRKInitializeMessageBuffers
(
void
);
37
38
/* 326FE4 */
DSError
TRKAppendBuffer1_ui16
(
MessageBuffer
*
buffer
,
39
const
u16
data);
40
/* 327038 */
DSError
TRKAppendBuffer1_ui32
(
MessageBuffer
*
buffer
,
41
const
u32
data);
42
/* 32709C */
DSError
TRKAppendBuffer1_ui64
(
MessageBuffer
*
buffer
,
43
const
u64
data);
44
/* 327124 */
DSError
TRKAppendBuffer_ui8
(
MessageBuffer
*
buffer
,
const
u8
* data,
45
int
count);
46
/* 32718C */
DSError
TRKAppendBuffer_ui32
(
MessageBuffer
*
buffer
,
47
const
u32
* data,
int
count);
48
49
/* 327208 */
DSError
TRKReadBuffer1_ui8
(
MessageBuffer
*
buffer
,
u8
* data);
50
/* 32722C */
DSError
TRKReadBuffer1_ui16
(
MessageBuffer
*
buffer
,
u16
* data);
51
/* 3272AC */
DSError
TRKReadBuffer1_ui32
(
MessageBuffer
*
buffer
,
u32
* data);
52
/* 32733C */
DSError
TRKReadBuffer1_ui64
(
MessageBuffer
*
buffer
,
u64
* data);
53
54
/* 3273EC */
DSError
TRKReadBuffer_ui8
(
MessageBuffer
*
buffer
,
u8
* data,
55
int
count);
56
/* 327460 */
DSError
TRKReadBuffer_ui32
(
MessageBuffer
*
buffer
,
u32
* data,
57
int
count);
58
59
static
inline
DSError
TRKAppendBuffer1_ui8
(
MessageBuffer
*
buffer
,
60
const
u8
data)
61
{
62
if
(
buffer
->fPosition >=
kMessageBufferSize
) {
63
return
kMessageBufferOverflow
;
64
}
65
66
buffer
->fData[
buffer
->fPosition++] = data;
67
buffer
->fLength++;
68
return
kNoError
;
69
}
70
71
extern
TRKMsgBufs
gTRKMsgBufs
;
72
73
#endif
buffer
char buffer[1500]
Definition
dbbonus.c:29
dserror.h
DSError
DSError
Definition
dserror.h:4
kNoError
@ kNoError
Definition
dserror.h:6
kMessageBufferOverflow
@ kMessageBufferOverflow
Definition
dserror.h:11
u32
unsigned long u32
Definition
types.h:9
u16
unsigned short int u16
Definition
types.h:7
u64
unsigned long long int u64
Definition
types.h:11
u8
unsigned char u8
Definition
types.h:5
gTRKMsgBufs
TRKMsgBufs gTRKMsgBufs
Definition
msgbuf.c:6
TRKAppendBuffer_ui32
DSError TRKAppendBuffer_ui32(MessageBuffer *buffer, const u32 *data, int count)
Definition
msgbuf.c:243
TRKReadBuffer1_ui8
DSError TRKReadBuffer1_ui8(MessageBuffer *buffer, u8 *data)
Definition
msgbuf.c:255
TRKAppendBuffer_ui8
DSError TRKAppendBuffer_ui8(MessageBuffer *buffer, const u8 *data, int count)
Definition
msgbuf.c:231
TRK_InitializeMessageBuffers
DSError TRK_InitializeMessageBuffers(void)
u128
unsigned char u128[16]
Definition
msgbuf.h:9
TRKResetBuffer
void TRKResetBuffer(MessageBuffer *, u8)
Definition
msgbuf.c:80
TRKReadBuffer
DSError TRKReadBuffer(MessageBuffer *, void *, size_t)
Definition
msgbuf.c:142
TRKAppendBuffer1_ui8
static DSError TRKAppendBuffer1_ui8(MessageBuffer *buffer, const u8 data)
Definition
msgbuf.h:59
TRKAppendBuffer1_ui16
DSError TRKAppendBuffer1_ui16(MessageBuffer *buffer, const u16 data)
Definition
msgbuf.c:166
TRKReadBuffer1_ui64
DSError TRKReadBuffer1_ui64(MessageBuffer *buffer, u64 *data)
Definition
msgbuf.c:314
TRKInitializeMessageBuffers
DSError TRKInitializeMessageBuffers(void)
Definition
msgbuf.c:13
TRKReadBuffer_ui8
DSError TRKReadBuffer_ui8(MessageBuffer *buffer, u8 *data, int count)
Definition
msgbuf.c:346
TRKReadBuffer1_ui32
DSError TRKReadBuffer1_ui32(MessageBuffer *buffer, u32 *data)
Definition
msgbuf.c:286
TRKSetBufferPosition
DSError TRKSetBufferPosition(MessageBuffer *, u32)
Definition
msgbuf.c:90
MessageBufferID
int MessageBufferID
Definition
msgbuf.h:10
NUM_BUFFERS
#define NUM_BUFFERS
Definition
msgbuf.h:14
TRKReadBuffer1_ui16
DSError TRKReadBuffer1_ui16(MessageBuffer *buffer, u16 *data)
Definition
msgbuf.c:260
TRKReadBuffer_ui32
DSError TRKReadBuffer_ui32(MessageBuffer *buffer, u32 *data, int count)
Definition
msgbuf.c:358
TRKAppendBuffer1_ui64
DSError TRKAppendBuffer1_ui64(MessageBuffer *buffer, const u64 data)
Definition
msgbuf.c:206
TRKAppendBuffer
DSError TRKAppendBuffer(MessageBuffer *, const void *, size_t)
Definition
msgbuf.c:108
kMessageBufferSize
#define kMessageBufferSize
Definition
msgbuf.h:13
TRKReleaseBuffer
void TRKReleaseBuffer(int)
Definition
msgbuf.c:64
TRKAppendBuffer1_ui32
DSError TRKAppendBuffer1_ui32(MessageBuffer *buffer, const u32 data)
Definition
msgbuf.c:185
TRKGetFreeBuffer
DSError TRKGetFreeBuffer(int *, MessageBuffer **)
Definition
msgbuf.c:27
TRKGetBuffer
MessageBuffer * TRKGetBuffer(int)
Definition
msgbuf.c:53
mutex_TRK.h
DSMutex
unsigned int DSMutex
Definition
mutex_TRK.h:6
platform.h
MessageBuffer
Definition
msgbuf.h:16
MessageBuffer::fInUse
bool fInUse
Definition
msgbuf.h:18
MessageBuffer::fMutex
DSMutex fMutex
Definition
msgbuf.h:17
MessageBuffer::fData
u8 fData[kMessageBufferSize]
Definition
msgbuf.h:21
MessageBuffer::fPosition
u32 fPosition
Definition
msgbuf.h:20
MessageBuffer::fLength
u32 fLength
Definition
msgbuf.h:19
TRKMsgBufs
Definition
msgbuf.h:24
TRKMsgBufs::buffers
MessageBuffer buffers[NUM_BUFFERS]
Definition
msgbuf.h:25
src
MetroTRK
msgbuf.h
Generated by
1.17.0