Loading [MathJax]/jax/output/HTML-CSS/config.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
mcc.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_MCC_H_
2#define _DOLPHIN_MCC_H_
3
4#include <dolphin/types.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
28
29typedef struct {
30 /* 0x00 */ u8 firstBlock;
31 /* 0x01 */ u8 blockLength;
32 /* 0x02 */ u8 connect;
33 /* 0x03 */ u8 isLocked;
34} MCC_Info;
35
36typedef enum {
40} MCC_EXI;
41
50
51typedef void (*MCC_CBEvent)(MCC_CHANNEL channel, u32, u32);
52typedef void (*MCC_CBSysEvent)(MCC_SYSEVENT sysEvent);
53typedef int (*MCC_CBEnumDevices)(s32);
54
55typedef struct {
56 /* 0x00 */ u32 length;
57 /* 0x04 */ u16 rsvd;
58 /* 0x06 */ u16 protocol;
59} MCC_Hdr;
60
61typedef struct {
62 /* 0x00 */ u32 code;
63 /* 0x04 */ u32 number;
65
66typedef struct {
67 /* 0x00 */ MCC_Info info;
69 /* 0x08 */ u32 eventMask;
70 /* 0x0C */ int isStreamDone;
71 /* 0x10 */ int isStreamConnection;
72 /* 0x14 */ int isStreamOpened;
74
75typedef enum {
79} MCC_MODE;
80
87
99
100typedef enum {
104
110
111typedef struct {
112 /* 0x00 */ u16 year;
113 /* 0x02 */ u8 month;
114 /* 0x03 */ u8 day;
115} FIO_Date;
116
117typedef struct {
118 /* 0x00 */ u8 hour;
119 /* 0x01 */ u8 minute;
120 /* 0x02 */ u8 second;
121 /* 0x03 */ u8 reserved;
123
124typedef struct {
125 /* 0x00 */ FIO_Date date;
126 /* 0x04 */ FIO_Daytime time;
128
129typedef struct {
130 /* 0x00 */ u32 fileAttributes;
134 /* 0x1C */ u32 fileSizeHigh;
135 /* 0x20 */ u32 fileSizeLow;
136} FIO_Stat;
137
138typedef struct {
139 /* 0x00 */ FIO_Stat stat;
140 /* 0x24 */ char filename[256];
142
143#define FIO_ERROR_NONE 0x00
144#define FIO_ERROR_WRONG_CODE 0x81
145#define FIO_ERROR_WRONG_SEQUENCE 0x82
146#define FIO_ERROR_PACKET_WRITE 0x83
147#define FIO_ERROR_PACKET_READ 0x84
148#define FIO_ERROR_MCC 0x87
149#define FIO_ERROR_TIMEOUT 0x88
150#define FIO_ERROR_MSG_TOO_LONG 0x89
151#define FIO_ERROR_UNK_0x91 0x91
152#define FIO_ERROR_ASYNC_SIZE_TOO_BIG 0xA0
153#define FIO_ERROR_ASYNC_BUSY 0xA1
154#define FIO_ERROR_INVALID_PARAMETERS 0xB0
155
156// FIO
157int FIOInit(MCC_EXI exiChannel, MCC_CHANNEL chID, u8 blockSize);
158void FIOExit(void);
159int FIOQuery(void);
161int FIOFopen(const char* filename, u32 mode);
162int FIOFclose(int handle);
163u32 FIOFread(int handle, void* data, u32 size);
164u32 FIOFwrite(int handle, void* data, u32 size);
165u32 FIOFseek(int handle, s32 offset, u32 mode);
166int FIOFprintf(int handle, const char* format, ...);
167int FIOFflush(int handle);
168int FIOFstat(int handle, FIO_Stat* stat);
169int FIOFerror(int handle);
170int FIOFindFirst(const char* filename, FIO_Finddata* finddata);
171int FIOFindNext(FIO_Finddata* finddata);
173int FIOFreadAsync(int handle, void* data, u32 size);
174int FIOFwriteAsync(int handle, void* data, u32 size);
175int FIOCheckAsyncDone(u32* result);
176
177// MCC
178BOOL MCCStreamOpen(MCC_CHANNEL chID, u8 blockSize);
180int MCCStreamWrite(MCC_CHANNEL chID, void* data, u32 dataBlockSize);
181u32 MCCStreamRead(MCC_CHANNEL chID, void* data);
182int MCCInit(MCC_EXI exiChannel, u8 timeout, MCC_CBSysEvent callbackSysEvent);
183void MCCExit(void);
184int MCCPing(void);
185int MCCEnumDevices(MCC_CBEnumDevices callbackEnumDevices);
187u8 MCCGetLastError(void);
188int MCCGetChannelInfo(MCC_CHANNEL chID, MCC_Info* info);
190int MCCNotify(MCC_CHANNEL chID, u32 notify);
192int MCCOpen(MCC_CHANNEL chID, u8 blockSize, MCC_CBEvent callbackEvent);
193int MCCClose(MCC_CHANNEL chID);
194int MCCLock(MCC_CHANNEL chID);
195int MCCUnlock(MCC_CHANNEL chID);
196int MCCRead(MCC_CHANNEL chID, u32 offset, void* data, s32 size, MCC_SYNC_STATE async);
197int MCCWrite(MCC_CHANNEL chID, u32 offset, void* data, s32 size, MCC_SYNC_STATE async);
199
200// TTY
201int TTYInit(MCC_EXI exiChannel, MCC_CHANNEL chID);
202void TTYExit(void);
203int TTYQuery(void);
204int TTYPrintf(const char* format, ...);
205int TTYFlush(void);
206
207#ifdef __cplusplus
208}
209#endif
210
211#endif // _DOLPHIN_MCC_H_
u32 mode
Definition GXTev.c:56
unsigned int size
Definition __os.h:106
int MCCRead(MCC_CHANNEL chID, u32 offset, void *data, s32 size, MCC_SYNC_STATE async)
Definition mcc.c:1201
void TTYExit(void)
Definition tty.c:106
int FIOFindFirst(const char *filename, FIO_Finddata *finddata)
Definition fio.c:595
MCC_SYSEVENT
Definition mcc.h:42
@ MCC_SYSEVENT_INITIALIZED
Definition mcc.h:45
@ MCC_SYSEVENT_UNKNOWN
Definition mcc.h:43
@ MCC_SYSEVENT_REBOOT
Definition mcc.h:44
@ MCC_SYSEVENT_PING_RESULT
Definition mcc.h:47
@ MCC_SYSEVENT_PING
Definition mcc.h:46
@ MCC_SYSEVENT_FLUSH
Definition mcc.h:48
FIO_ASYNC_STATE
Definition mcc.h:105
@ FIO_ASYNC_STATE_BUSY
Definition mcc.h:107
@ FIO_ASYNC_STATE_IDOL
Definition mcc.h:106
@ FIO_ASYNC_STATE_DONE
Definition mcc.h:108
u8 MCCGetFreeBlocks(MCC_MODE mode)
Definition mcc.c:798
int MCCStreamWrite(MCC_CHANNEL chID, void *data, u32 dataBlockSize)
Definition mcc.c:101
int FIOFindNext(FIO_Finddata *finddata)
Definition fio.c:641
int FIOCheckAsyncDone(u32 *result)
Definition fio.c:925
int FIOFopen(const char *filename, u32 mode)
Definition fio.c:202
void FIOExit(void)
Definition fio.c:158
u32 FIOFwrite(int handle, void *data, u32 size)
Definition fio.c:324
int TTYFlush(void)
Definition tty.c:200
MCC_CHANNEL
Definition mcc.h:10
@ MCC_CHANNEL_14
Definition mcc.h:25
@ MCC_CHANNEL_SYSTEM
Definition mcc.h:11
@ MCC_CHANNEL_10
Definition mcc.h:21
@ MCC_CHANNEL_15
Definition mcc.h:26
@ MCC_CHANNEL_4
Definition mcc.h:15
@ MCC_CHANNEL_2
Definition mcc.h:13
@ MCC_CHANNEL_13
Definition mcc.h:24
@ MCC_CHANNEL_8
Definition mcc.h:19
@ MCC_CHANNEL_12
Definition mcc.h:23
@ MCC_CHANNEL_11
Definition mcc.h:22
@ MCC_CHANNEL_5
Definition mcc.h:16
@ MCC_CHANNEL_3
Definition mcc.h:14
@ MCC_CHANNEL_1
Definition mcc.h:12
@ MCC_CHANNEL_9
Definition mcc.h:20
@ MCC_CHANNEL_6
Definition mcc.h:17
@ MCC_CHANNEL_7
Definition mcc.h:18
int(* MCC_CBEnumDevices)(s32)
Definition mcc.h:53
int MCCStreamClose(MCC_CHANNEL chID)
Definition mcc.c:96
u32 FIOGetAsyncBufferSize(void)
Definition fio.c:837
int FIOFprintf(int handle, const char *format,...)
Definition fio.c:419
int FIOFclose(int handle)
Definition fio.c:244
int MCCEnumDevices(MCC_CBEnumDevices callbackEnumDevices)
Definition mcc.c:783
u8 MCCGetLastError(void)
Definition mcc.c:821
int MCCInit(MCC_EXI exiChannel, u8 timeout, MCC_CBSysEvent callbackSysEvent)
Definition mcc.c:696
int MCCClose(MCC_CHANNEL chID)
Definition mcc.c:1039
u32 FIOFread(int handle, void *data, u32 size)
Definition fio.c:280
MCC_MODE
Definition mcc.h:75
@ MCC_MODE_ALL
Definition mcc.h:78
@ MCC_MODE_MIN
Definition mcc.h:76
@ MCC_MODE_MAX
Definition mcc.h:77
MCC_CONNECT
Definition mcc.h:81
@ MCC_CONNECT_HOST_OPEN
Definition mcc.h:83
@ MCC_CONNECT_DISCONNECT
Definition mcc.h:82
@ MCC_CONNECT_TARGET_OPEN
Definition mcc.h:84
@ MCC_CONNECT_CONNECTED
Definition mcc.h:85
int MCCLock(MCC_CHANNEL chID)
Definition mcc.c:1095
int FIOFerror(int handle)
Definition fio.c:555
int MCCNotify(MCC_CHANNEL chID, u32 notify)
Definition mcc.c:887
int MCCGetChannelInfo(MCC_CHANNEL chID, MCC_Info *info)
Definition mcc.c:826
int MCCOpen(MCC_CHANNEL chID, u8 blockSize, MCC_CBEvent callbackEvent)
Definition mcc.c:942
int MCCGetConnectionStatus(MCC_CHANNEL chID, MCC_CONNECT *connect)
Definition mcc.c:853
MCC_SYNC_STATE
Definition mcc.h:100
@ MCC_ASYNC
Definition mcc.h:102
@ MCC_SYNC
Definition mcc.h:101
int TTYInit(MCC_EXI exiChannel, MCC_CHANNEL chID)
Definition tty.c:90
int FIOFstat(int handle, FIO_Stat *stat)
Definition fio.c:505
int TTYPrintf(const char *format,...)
Definition tty.c:130
int MCCCheckAsyncDone()
Definition mcc.c:1378
int FIOFflush(int handle)
Definition fio.c:465
u32 MCCStreamRead(MCC_CHANNEL chID, void *data)
Definition mcc.c:162
int FIOInit(MCC_EXI exiChannel, MCC_CHANNEL chID, u8 blockSize)
Definition fio.c:129
void MCCExit(void)
Definition mcc.c:752
int FIOFwriteAsync(int handle, void *data, u32 size)
Definition fio.c:889
int MCCWrite(MCC_CHANNEL chID, u32 offset, void *data, s32 size, MCC_SYNC_STATE async)
Definition mcc.c:1287
int MCCUnlock(MCC_CHANNEL chID)
Definition mcc.c:1148
u8 FIOGetLastError()
Definition fio.c:198
u32 MCCSetChannelEventMask(MCC_CHANNEL chID, u32 event)
Definition mcc.c:917
void(* MCC_CBEvent)(MCC_CHANNEL channel, u32, u32)
Definition mcc.h:51
u32 FIOFseek(int handle, s32 offset, u32 mode)
Definition fio.c:366
void(* MCC_CBSysEvent)(MCC_SYSEVENT sysEvent)
Definition mcc.h:52
int FIOQuery(void)
Definition fio.c:175
MCC_EXI
Definition mcc.h:36
@ MCC_EXI_0
Definition mcc.h:37
@ MCC_EXI_2
Definition mcc.h:39
@ MCC_EXI_1
Definition mcc.h:38
int TTYQuery(void)
Definition tty.c:115
int FIOFreadAsync(int handle, void *data, u32 size)
Definition fio.c:853
int MCCPing(void)
Definition mcc.c:771
BOOL MCCStreamOpen(MCC_CHANNEL chID, u8 blockSize)
Definition mcc.c:82
MCC_EVENT
Definition mcc.h:88
@ MCC_EVENT_READ
Definition mcc.h:93
@ MCC_EVENT_DISCONNECT
Definition mcc.h:90
@ MCC_EVENT_LOCK
Definition mcc.h:91
@ MCC_EVENT_UNK_0x100
Definition mcc.h:97
@ MCC_EVENT_CONNECT
Definition mcc.h:89
@ MCC_EVENT_UNLOCK
Definition mcc.h:92
@ MCC_EVENT_WRITE
Definition mcc.h:94
@ MCC_EVENT_READ_DONE_INSIDE
Definition mcc.h:95
@ MCC_EVENT_WRITE_DONE_INSIDE
Definition mcc.h:96
Definition mcc.h:111
u16 year
Definition mcc.h:112
u8 month
Definition mcc.h:113
u8 day
Definition mcc.h:114
Definition mcc.h:117
u8 minute
Definition mcc.h:119
u8 reserved
Definition mcc.h:121
u8 second
Definition mcc.h:120
u8 hour
Definition mcc.h:118
Definition mcc.h:138
FIO_Stat stat
Definition mcc.h:139
Definition mcc.h:129
FIO_Timestamp lastWriteTime
Definition mcc.h:133
u32 fileSizeHigh
Definition mcc.h:134
FIO_Timestamp creationTime
Definition mcc.h:131
u32 fileAttributes
Definition mcc.h:130
FIO_Timestamp lastAccessTime
Definition mcc.h:132
u32 fileSizeLow
Definition mcc.h:135
Definition mcc.h:124
FIO_Date date
Definition mcc.h:125
FIO_Daytime time
Definition mcc.h:126
Definition mcc.h:66
int isStreamDone
Definition mcc.h:70
u32 eventMask
Definition mcc.h:69
int isStreamConnection
Definition mcc.h:71
MCC_Info info
Definition mcc.h:67
int isStreamOpened
Definition mcc.h:72
MCC_CBEvent callbackEvent
Definition mcc.h:68
Definition mcc.h:61
u32 number
Definition mcc.h:63
u32 code
Definition mcc.h:62
Definition mcc.h:55
u32 length
Definition mcc.h:56
u16 rsvd
Definition mcc.h:57
u16 protocol
Definition mcc.h:58
Definition mcc.h:29
u8 firstBlock
Definition mcc.h:30
u8 connect
Definition mcc.h:32
u8 isLocked
Definition mcc.h:33
u8 blockLength
Definition mcc.h:31
int BOOL
Definition types.h:30
unsigned long u32
Definition types.h:9
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5