SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
card.h
Go to the documentation of this file.
1
#ifndef _DOLPHIN_CARD_H_
2
#define _DOLPHIN_CARD_H_
3
4
#include <
dolphin/dsp.h
>
5
#include <
dolphin/dvd.h
>
6
#include <
dolphin/os.h
>
7
8
#ifdef __cplusplus
9
extern
"C"
{
10
#endif
11
12
#define CARD_FILENAME_MAX 32
13
#define CARD_MAX_FILE 127
14
#define CARD_ICON_MAX 8
15
16
typedef
void (*
CARDCallback
)(
s32
chan,
s32
result);
17
18
// todo: sort into headers
19
typedef
struct
CARDFileInfo
{
20
/*0x00*/
s32
chan
;
21
/*0x04*/
s32
fileNo
;
22
/*0x08*/
s32
offset
;
23
/*0x0C*/
s32
length
;
24
/*0x10*/
u16
iBlock
;
25
}
CARDFileInfo
;
26
27
typedef
struct
CARDDir
{
28
/*0x00*/
u8
gameName
[4];
29
/*0x04*/
u8
company
[2];
30
/*0x06*/
u8
_padding0
;
31
/*0x07*/
u8
bannerFormat
;
32
/*0x08*/
u8
fileName
[
CARD_FILENAME_MAX
];
33
/*0x28*/
u32
time
;
// seconds since 01/01/2000 midnight
34
/*0x2C*/
u32
iconAddr
;
// 0xffffffff if not used
35
/*0x30*/
u16
iconFormat
;
36
/*0x32*/
u16
iconSpeed
;
37
/*0x34*/
u8
permission
;
38
u8
copyTimes
;
39
/*0x36*/
u16
startBlock
;
40
u16
length
;
41
u8
_padding1
[2];
42
u32
commentAddr
;
// 0xffffffff if not used
43
}
CARDDir
;
44
45
typedef
struct
CARDControl
{
46
/*0x00*/
BOOL
attached
;
47
/*0x04*/
s32
result
;
48
/*0x08*/
u16
size
;
49
/*0x0A*/
u16
pageSize
;
50
/*0x0C*/
s32
sectorSize
;
51
/*0x10*/
u16
cBlock
;
52
/*0x12*/
u16
vendorID
;
53
/*0x14*/
s32
latency
;
54
/*0x18*/
u8
id
[12];
55
/*0x24*/
int
mountStep
;
56
/*0x28*/
u32
scramble
;
57
/*0x2C*/
int
formatStep
;
58
DSPTaskInfo
task
;
59
void
*
workArea
;
60
/*0x84*/
CARDDir
*
currentDir
;
61
u16
*
currentFat
;
62
OSThreadQueue
threadQueue
;
63
u8
cmd
[9];
64
s32
cmdlen
;
65
volatile
u32
mode
;
66
int
retry
;
67
int
repeat
;
68
u32
addr
;
69
void
*
buffer
;
70
s32
xferred
;
71
u16
freeNo
;
72
u16
startBlock
;
73
/*0xC0*/
CARDFileInfo
*
fileInfo
;
74
CARDCallback
extCallback
;
75
CARDCallback
txCallback
;
76
CARDCallback
exiCallback
;
77
CARDCallback
apiCallback
;
78
CARDCallback
xferCallback
;
79
CARDCallback
eraseCallback
;
80
CARDCallback
unlockCallback
;
81
OSAlarm
alarm
;
82
int
cid
;
83
const
DVDDiskID
*
diskID
;
84
}
CARDControl
;
85
86
typedef
struct
CARDDecParam
{
87
/* 0x00 */
u8
*
inputAddr
;
88
/* 0x04 */
u32
inputLength
;
89
/* 0x08 */
u32
aramAddr
;
90
/* 0x0C */
u8
*
outputAddr
;
91
}
CARDDecParam
;
92
93
typedef
struct
CARDID
{
94
/* 0x000 */
u8
serial
[32];
95
/* 0x020 */
u16
deviceID
;
96
/* 0x022 */
u16
size
;
97
/* 0x024 */
u16
encode
;
98
/* 0x026 */
u8
padding
[470];
99
/* 0x1FC */
u16
checkSum
;
100
/* 0x1FE */
u16
checkSumInv
;
101
}
CARDID
;
102
103
// IWYU pragma: begin_exports
104
#include <
dolphin/card/CARDBios.h
>
105
#include <
dolphin/card/CARDCheck.h
>
106
#include <
dolphin/card/CARDCreate.h
>
107
#include <
dolphin/card/CARDDelete.h
>
108
#include <
dolphin/card/CARDDir.h
>
109
#include <
dolphin/card/CARDFormat.h
>
110
#include <
dolphin/card/CARDMount.h
>
111
#include <
dolphin/card/CARDOpen.h
>
112
#include <
dolphin/card/CARDRdwr.h
>
113
#include <
dolphin/card/CARDRead.h
>
114
#include <
dolphin/card/CARDRename.h
>
115
#include <
dolphin/card/CARDStat.h
>
116
#include <
dolphin/card/CARDWrite.h
>
117
// IWYU pragma: end_exports
118
119
#define CARD_ATTR_PUBLIC 0x04u
120
#define CARD_ATTR_NO_COPY 0x08u
121
#define CARD_ATTR_NO_MOVE 0x10u
122
#define CARD_ATTR_GLOBAL 0x20u
123
#define CARD_ATTR_COMPANY 0x40u
124
125
#define CARD_FAT_AVAIL 0x0000u
126
#define CARD_FAT_CHECKSUM 0x0000u
127
#define CARD_FAT_CHECKSUMINV 0x0001u
128
#define CARD_FAT_CHECKCODE 0x0002u
129
#define CARD_FAT_FREEBLOCKS 0x0003u
130
#define CARD_FAT_LASTSLOT 0x0004u
131
132
#define CARD_WORKAREA_SIZE (5 * 8 * 1024)
133
134
#define CARD_SEG_SIZE 0x200u
135
#define CARD_PAGE_SIZE 0x80u
136
#define CARD_MAX_SIZE 0x01000000U
137
138
#define CARD_NUM_SYSTEM_BLOCK 5
139
#define CARD_SYSTEM_BLOCK_SIZE (8 * 1024u)
140
141
#define CARD_MAX_MOUNT_STEP (CARD_NUM_SYSTEM_BLOCK + 2)
142
143
#define CARD_STAT_SPEED_END 0
144
#define CARD_STAT_SPEED_FAST 1
145
#define CARD_STAT_SPEED_MIDDLE 2
146
#define CARD_STAT_SPEED_SLOW 3
147
#define CARD_STAT_SPEED_MASK 3
148
149
#define CARD_RESULT_UNLOCKED 1
150
#define CARD_RESULT_READY 0
151
#define CARD_RESULT_BUSY -1
152
#define CARD_RESULT_WRONGDEVICE -2
153
#define CARD_RESULT_NOCARD -3
154
#define CARD_RESULT_NOFILE -4
155
#define CARD_RESULT_IOERROR -5
156
#define CARD_RESULT_BROKEN -6
157
#define CARD_RESULT_EXIST -7
158
#define CARD_RESULT_NOENT -8
159
#define CARD_RESULT_INSSPACE -9
160
#define CARD_RESULT_NOPERM -10
161
#define CARD_RESULT_LIMIT -11
162
#define CARD_RESULT_NAMETOOLONG -12
163
#define CARD_RESULT_ENCODING -13
164
#define CARD_RESULT_CANCELED -14
165
#define CARD_RESULT_FATAL_ERROR -128
166
167
#define CARDIsValidBlockNo(card, blockNo) \
168
((blockNo) >= CARD_NUM_SYSTEM_BLOCK && (blockNo) < (card)->cBlock)
169
170
#define CARD_READ_SIZE 512
171
#define CARD_COMMENT_SIZE 64
172
173
#define CARD_ICON_WIDTH 32
174
#define CARD_ICON_HEIGHT 32
175
176
#define CARD_BANNER_WIDTH 96
177
#define CARD_BANNER_HEIGHT 32
178
179
#define CARD_STAT_ICON_NONE 0
180
#define CARD_STAT_ICON_C8 1
181
#define CARD_STAT_ICON_RGB5A3 2
182
#define CARD_STAT_ICON_MASK 3
183
184
#define CARD_STAT_BANNER_NONE 0
185
#define CARD_STAT_BANNER_C8 1
186
#define CARD_STAT_BANNER_RGB5A3 2
187
#define CARD_STAT_BANNER_MASK 3
188
189
#define CARDGetBannerFormat(stat) \
190
(((stat)->bannerFormat) & CARD_STAT_BANNER_MASK)
191
#define CARDGetIconFormat(stat, n) \
192
(((stat)->iconFormat >> (2 * (n))) & CARD_STAT_ICON_MASK)
193
#define CARDGetDirCheck(dir) ((CARDDirCheck*) &(dir)[CARD_MAX_FILE])
194
195
void
CARDInit
(
void
);
196
s32
CARDGetResultCode
(
s32
chan);
197
s32
CARDCheckAsync
(
s32
chan,
CARDCallback
callback
);
198
s32
CARDFreeBlocks
(
s32
chan,
s32
* byteNotUsed,
s32
* filesNotUsed);
199
s32
CARDRenameAsync
(
s32
chan,
const
char
* oldName,
const
char
* newName,
200
CARDCallback
callback
);
201
s32
CARDFormatAsync
(
s32
chan,
CARDCallback
callback
);
202
203
#ifdef __cplusplus
204
}
205
#endif
206
207
#endif
CARDBios.h
CARDCheck.h
CARDCreate.h
CARDDelete.h
CARDDir.h
CARDFormat.h
CARDMount.h
CARDOpen.h
CARDRdwr.h
CARDRead.h
CARDRename.h
CARDStat.h
CARDWrite.h
CARDFormatAsync
s32 CARDFormatAsync(s32 chan, CARDCallback callback)
CARDInit
void CARDInit(void)
CARDGetResultCode
s32 CARDGetResultCode(s32 chan)
CARD_FILENAME_MAX
#define CARD_FILENAME_MAX
Definition
card.h:12
CARDCallback
void(* CARDCallback)(s32 chan, s32 result)
Definition
card.h:16
CARDCheckAsync
s32 CARDCheckAsync(s32 chan, CARDCallback callback)
CARDRenameAsync
s32 CARDRenameAsync(s32 chan, const char *oldName, const char *newName, CARDCallback callback)
CARDFreeBlocks
s32 CARDFreeBlocks(s32 chan, s32 *byteNotUsed, s32 *filesNotUsed)
dsp.h
dvd.h
BOOL
int BOOL
Definition
types.h:20
u32
unsigned long u32
Definition
types.h:9
u16
unsigned short int u16
Definition
types.h:7
s32
signed long s32
Definition
types.h:8
u8
unsigned char u8
Definition
types.h:5
callback
static void callback(HSD_GObj *gobj)
Definition
ftdonkeyspeciallw.c:89
os.h
CARDControl
Definition
card.h:45
CARDControl::diskID
const DVDDiskID * diskID
Definition
card.h:83
CARDControl::extCallback
CARDCallback extCallback
Definition
card.h:74
CARDControl::workArea
void * workArea
Definition
card.h:59
CARDControl::mode
volatile u32 mode
Definition
card.h:65
CARDControl::exiCallback
CARDCallback exiCallback
Definition
card.h:76
CARDControl::eraseCallback
CARDCallback eraseCallback
Definition
card.h:79
CARDControl::vendorID
u16 vendorID
Definition
card.h:52
CARDControl::formatStep
int formatStep
Definition
card.h:57
CARDControl::xferCallback
CARDCallback xferCallback
Definition
card.h:78
CARDControl::startBlock
u16 startBlock
Definition
card.h:72
CARDControl::cmdlen
s32 cmdlen
Definition
card.h:64
CARDControl::addr
u32 addr
Definition
card.h:68
CARDControl::currentDir
CARDDir * currentDir
Definition
card.h:60
CARDControl::freeNo
u16 freeNo
Definition
card.h:71
CARDControl::cBlock
u16 cBlock
Definition
card.h:51
CARDControl::result
s32 result
Definition
card.h:47
CARDControl::alarm
OSAlarm alarm
Definition
card.h:81
CARDControl::buffer
void * buffer
Definition
card.h:69
CARDControl::mountStep
int mountStep
Definition
card.h:55
CARDControl::retry
int retry
Definition
card.h:66
CARDControl::scramble
u32 scramble
Definition
card.h:56
CARDControl::xferred
s32 xferred
Definition
card.h:70
CARDControl::fileInfo
CARDFileInfo * fileInfo
Definition
card.h:73
CARDControl::pageSize
u16 pageSize
Definition
card.h:49
CARDControl::task
DSPTaskInfo task
Definition
card.h:58
CARDControl::latency
s32 latency
Definition
card.h:53
CARDControl::cid
int cid
Definition
card.h:82
CARDControl::size
u16 size
Definition
card.h:48
CARDControl::repeat
int repeat
Definition
card.h:67
CARDControl::unlockCallback
CARDCallback unlockCallback
Definition
card.h:80
CARDControl::currentFat
u16 * currentFat
Definition
card.h:61
CARDControl::sectorSize
s32 sectorSize
Definition
card.h:50
CARDControl::txCallback
CARDCallback txCallback
Definition
card.h:75
CARDControl::attached
BOOL attached
Definition
card.h:46
CARDControl::threadQueue
OSThreadQueue threadQueue
Definition
card.h:62
CARDControl::cmd
u8 cmd[9]
Definition
card.h:63
CARDControl::apiCallback
CARDCallback apiCallback
Definition
card.h:77
CARDDecParam
Definition
card.h:86
CARDDecParam::outputAddr
u8 * outputAddr
Definition
card.h:90
CARDDecParam::inputLength
u32 inputLength
Definition
card.h:88
CARDDecParam::aramAddr
u32 aramAddr
Definition
card.h:89
CARDDecParam::inputAddr
u8 * inputAddr
Definition
card.h:87
CARDDir
Definition
card.h:27
CARDDir::_padding1
u8 _padding1[2]
Definition
card.h:41
CARDDir::company
u8 company[2]
Definition
card.h:29
CARDDir::_padding0
u8 _padding0
Definition
card.h:30
CARDDir::startBlock
u16 startBlock
Definition
card.h:39
CARDDir::time
u32 time
Definition
card.h:33
CARDDir::length
u16 length
Definition
card.h:40
CARDDir::iconFormat
u16 iconFormat
Definition
card.h:35
CARDDir::iconAddr
u32 iconAddr
Definition
card.h:34
CARDDir::fileName
u8 fileName[CARD_FILENAME_MAX]
Definition
card.h:32
CARDDir::gameName
u8 gameName[4]
Definition
card.h:28
CARDDir::bannerFormat
u8 bannerFormat
Definition
card.h:31
CARDDir::permission
u8 permission
Definition
card.h:37
CARDDir::iconSpeed
u16 iconSpeed
Definition
card.h:36
CARDDir::commentAddr
u32 commentAddr
Definition
card.h:42
CARDDir::copyTimes
u8 copyTimes
Definition
card.h:38
CARDFileInfo
Definition
card.h:19
CARDFileInfo::length
s32 length
Definition
card.h:23
CARDFileInfo::offset
s32 offset
Definition
card.h:22
CARDFileInfo::fileNo
s32 fileNo
Definition
card.h:21
CARDFileInfo::chan
s32 chan
Definition
card.h:20
CARDFileInfo::iBlock
u16 iBlock
Definition
card.h:24
CARDID
Definition
card.h:93
CARDID::encode
u16 encode
Definition
card.h:97
CARDID::size
u16 size
Definition
card.h:96
CARDID::deviceID
u16 deviceID
Definition
card.h:95
CARDID::checkSumInv
u16 checkSumInv
Definition
card.h:100
CARDID::checkSum
u16 checkSum
Definition
card.h:99
CARDID::serial
u8 serial[32]
Definition
card.h:94
CARDID::padding
u8 padding[470]
Definition
card.h:98
DSPTaskInfo
Definition
dsp.h:9
DVDDiskID
Definition
dvd.h:7
OSAlarm
Definition
OSAlarm.h:10
OSThreadQueue
Definition
OSThread.h:15
extern
dolphin
include
dolphin
card.h
Generated by
1.17.0