SSBM Decomp
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 <platform.h>
5
7
8#include <dolphin/dsp/dsp.h>
9#include <dolphin/dvd/dvd.h>
10#include <dolphin/os/OSAlarm.h>
11#include <dolphin/os/OSExi.h>
12#include <dolphin/os/OSThread.h>
13
14#define CARD_FAT_CHECKSUM 0
15#define CARD_FAT_CHECKSUMINV 1
16#define CARD_FAT_CHECKCODE 2
17#define CARD_FAT_FREEBLOCKS 3
18#define CARD_FAT_LASTSLOT 4
19#define CARD_FAT_AVAIL 0
20
21#define CARD_RESULT_UNLOCKED 1
22#define CARD_RESULT_READY 0
23#define CARD_RESULT_BUSY -1
24#define CARD_RESULT_WRONGDEVICE -2
25#define CARD_RESULT_NOCARD -3
26#define CARD_RESULT_NOFILE -4
27#define CARD_RESULT_IOERROR -5
28#define CARD_RESULT_BROKEN -6
29#define CARD_RESULT_EXIST -7
30#define CARD_RESULT_NOENT -8
31#define CARD_RESULT_INSSPACE -9
32#define CARD_RESULT_NOPERM -10
33#define CARD_RESULT_LIMIT -11
34#define CARD_RESULT_NAMETOOLONG -12
35#define CARD_RESULT_ENCODING -13
36#define CARD_RESULT_CANCELED -14
37#define CARD_RESULT_FATAL_ERROR -128
38
39#define CARD_NUM_SYSTEM_BLOCK 5
40
41#define CARD_WORKAREA_SIZE (5 * 8 * 1024)
42#define CARD_SYSTEM_BLOCK_SIZE (8 * 1024)
43#define CARD_READ_SIZE 512
44#define CARD_MAX_FILE 127
45#define CARD_COMMENT_SIZE 64
46#define CARD_FILENAME_MAX 32
47#define CARD_ICON_MAX 8
48#define CARD_ICON_WIDTH 32
49#define CARD_ICON_HEIGHT 32
50#define CARD_BANNER_WIDTH 96
51#define CARD_BANNER_HEIGHT 32
52
53#define CARD_STAT_ICON_NONE 0
54#define CARD_STAT_ICON_C8 1
55#define CARD_STAT_ICON_RGB5A3 2
56#define CARD_STAT_ICON_MASK 3
57
58#define CARD_STAT_BANNER_NONE 0
59#define CARD_STAT_BANNER_C8 1
60#define CARD_STAT_BANNER_RGB5A3 2
61#define CARD_STAT_BANNER_MASK 3
62
63#define CARD_STAT_ANIM_LOOP 0x00
64#define CARD_STAT_ANIM_BOUNCE 0x04
65#define CARD_STAT_ANIM_MASK 0x04
66
67#define CARD_STAT_SPEED_END 0
68#define CARD_STAT_SPEED_FAST 1
69#define CARD_STAT_SPEED_MIDDLE 2
70#define CARD_STAT_SPEED_SLOW 3
71#define CARD_STAT_SPEED_MASK 3
72
73#define CARD_MAX_MOUNT_STEP (CARD_NUM_SYSTEM_BLOCK + 2)
74
75#define CARD_PAGE_SIZE 128
76#define CARD_SEG_SIZE 512
77
78#define CARD_STAT_SPEED_END 0
79#define CARD_STAT_SPEED_FAST 1
80#define CARD_STAT_SPEED_MIDDLE 2
81#define CARD_STAT_SPEED_SLOW 3
82#define CARD_STAT_SPEED_MASK 3
83
84#define CARD_ATTR_PUBLIC 0x04
85#define CARD_ATTR_NO_COPY 0x08
86#define CARD_ATTR_NO_MOVE 0x10
87#define CARD_ATTR_GLOBAL 0x20
88#define CARD_ATTR_COMPANY 0x40
89
99
117
125
168
169extern CARDControl __CARDBlock[2];
170
171typedef struct CARDID {
172 u8 serial[32]; // flashID[12] + timebase[8] + counterBias[4] + language[4]
173 // +
174 // XXX[4]
177 u16 encode; // character set -- 0: S-JIS, 1: ANSI
178
179 u8 padding[512 - 32 - 5 * 2];
180
183} CARDID;
184
186int CARDWrite(CARDFileInfo*, void* buf, s32 length, s32 offset);
187int CARDRead(CARDFileInfo*, void* buf, u32 length, u32 offset);
190static s32 Retry(s32 chan);
194void __CARDDefaultApiCallback(s32 chan, s32 result);
196
197#define __CARDGetDirCheck(dir) ((CARDDirCheck*) &(dir)[CARD_MAX_FILE])
198
199#define CARDIsValidBlockNo(card, iBlock) \
200 (CARD_NUM_SYSTEM_BLOCK <= (iBlock) && (iBlock) < (card)->cBlock)
201
202#endif
s32 __CARDClearStatus(s32 chan)
Definition CARDBios.c:170
CARDDir * __CARDGetDirBlock(CARDControl *)
Definition CARDDir.c:11
s32 CARDClose(CARDFileInfo *)
Definition CARDOpen.c:158
#define CARD_FILENAME_MAX
Definition card.h:46
int CARDWrite(CARDFileInfo *, void *buf, s32 length, s32 offset)
Definition CARDWrite.c:135
void __CARDDefaultApiCallback(s32 chan, s32 result)
Definition CARDBios.c:19
void __CARDSyncCallback(s32, s32)
Definition CARDBios.c:21
s32 __CARDUpdateFatBlock(s32 chan, u16 *fat, CARDCallback)
Definition CARDBlock.c:171
s32 __CARDReadStatus(s32 chan, u8 *status)
Definition CARDBios.c:151
u16 * __CARDGetFatBlock(CARDControl *card)
Definition CARDBlock.c:9
CARDControl __CARDBlock[2]
Definition CARDBios.c:13
static s32 Retry(s32 chan)
int CARDRead(CARDFileInfo *, void *buf, u32 length, u32 offset)
Definition CARDRead.c:173
void(* CARDCallback)(EXIChannel chan, s32 result)
Definition forward.h:12
static u32 status
Definition fstload.c:8
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
signed short s16
A signed 16-bit integer.
Definition platform.h:11
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
volatile u32 vu32
A volatile, unsigned 32-bit integer.
Definition platform.h:44
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
Definition card.h:126
const DVDDiskID * diskID
Definition card.h:166
CARDCallback extCallback
Definition card.h:157
void * workArea
Definition card.h:142
CARDCallback exiCallback
Definition card.h:159
u32 cid
Definition card.h:165
CARDCallback eraseCallback
Definition card.h:162
u16 vendorID
Definition card.h:133
int formatStep
Definition card.h:138
CARDCallback xferCallback
Definition card.h:161
u16 startBlock
Definition card.h:155
s32 cmdlen
Definition card.h:147
u32 addr
Definition card.h:151
CARDDir * currentDir
Definition card.h:143
u16 freeNo
Definition card.h:154
u16 cBlock
Definition card.h:132
vu32 mode
Definition card.h:148
s32 result
Definition card.h:128
OSAlarm alarm
Definition card.h:164
void * buffer
Definition card.h:152
int mountStep
Definition card.h:137
u32 xferred
Definition card.h:153
int retry
Definition card.h:149
u32 scramble
Definition card.h:140
CARDFileInfo * fileInfo
Definition card.h:156
u16 pageSize
Definition card.h:130
DSPTaskInfo task
Definition card.h:141
s32 latency
Definition card.h:134
u16 size
Definition card.h:129
int repeat
Definition card.h:150
CARDCallback unlockCallback
Definition card.h:163
u16 * currentFat
Definition card.h:144
s32 sectorSize
Definition card.h:131
CARDCallback txCallback
Definition card.h:158
bool attached
Definition card.h:127
OSThreadQueue threadQueue
Definition card.h:145
u8 cmd[9]
Definition card.h:146
CARDCallback apiCallback
Definition card.h:160
Definition card.h:118
s16 checkCode
Definition card.h:121
u8 padding0[64 - 2 *4]
Definition card.h:119
u16 checkSum
Definition card.h:122
u16 checkSumInv
Definition card.h:123
u16 padding1
Definition card.h:120
Definition card.h:100
u8 _padding1[2]
Definition card.h:114
u8 company[2]
Definition card.h:102
u8 _padding0
Definition card.h:103
u16 startBlock
Definition card.h:112
u32 time
Definition card.h:106
u16 length
Definition card.h:113
u16 iconFormat
Definition card.h:108
u32 iconAddr
Definition card.h:107
u8 fileName[CARD_FILENAME_MAX]
Definition card.h:105
u8 gameName[4]
Definition card.h:101
u8 bannerFormat
Definition card.h:104
u8 permission
Definition card.h:110
u16 iconSpeed
Definition card.h:109
u32 commentAddr
Definition card.h:115
u8 copyTimes
Definition card.h:111
Definition card.h:90
s32 length
Definition card.h:95
s32 offset
Definition card.h:94
s32 fileNo
Definition card.h:92
s32 chan
Definition card.h:91
u16 __padding
Definition card.h:97
u16 iBlock
Definition card.h:96
Definition card.h:171
u8 padding[512 - 32 - 5 *2]
Definition card.h:179
u16 encode
Definition card.h:177
u16 size
Definition card.h:176
u16 deviceID
Definition card.h:175
u16 checkSumInv
Definition card.h:182
u16 checkSum
Definition card.h:181
u8 serial[32]
Definition card.h:172
Definition dsp.h:15
Definition dvd.h:18
Definition OSAlarm.h:12
Definition OSThread.h:42