Files
ac-decomp/include/dolphin/private/card.h
T

85 lines
3.6 KiB
C

#ifndef CARD_H
#define CARD_H
#include "types.h"
#include "dolphin/card.h"
#include "dolphin/dvd.h"
#include "dolphin/os/OSAlarm.h"
#include "dolphin/os/OSThread.h"
#include "dolphin/dsp.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct CARDDir {
// total size: 0x40
u8 gameName[4]; // offset 0x0, size 0x4
u8 company[2]; // offset 0x4, size 0x2
u8 _padding0; // offset 0x6, size 0x1
u8 bannerFormat; // offset 0x7, size 0x1
u8 fileName[CARD_FILENAME_MAX]; // offset 0x8, size 0x20
u32 time; // offset 0x28, size 0x4
u32 iconAddr; // offset 0x2C, size 0x4
u16 iconFormat; // offset 0x30, size 0x2
u16 iconSpeed; // offset 0x32, size 0x2
u8 permission; // offset 0x34, size 0x1
u8 copyTimes; // offset 0x35, size 0x1
u16 startBlock; // offset 0x36, size 0x2
u16 length; // offset 0x38, size 0x2
u8 _padding1[2]; // offset 0x3A, size 0x2
u32 commentAddr; // offset 0x3C, size 0x4
} CARDDir;
typedef struct CARDControl {
// total size: 0x110
int attached; // offset 0x0, size 0x4
s32 result; // offset 0x4, size 0x4
u16 size; // offset 0x8, size 0x2
u16 pageSize; // offset 0xA, size 0x2
s32 sectorSize; // offset 0xC, size 0x4
u16 cBlock; // offset 0x10, size 0x2
u16 vendorID; // offset 0x12, size 0x2
s32 latency; // offset 0x14, size 0x4
u8 id[12]; // offset 0x18, size 0xC
int mountStep; // offset 0x24, size 0x4
int formatStep; // offset 0x28, size 0x4
u32 scramble; // offset 0x2C, size 0x4
DSPTaskInfo task; // offset 0x30, size 0x50
void* workArea; // offset 0x80, size 0x4
CARDDir* currentDir; // offset 0x84, size 0x4
u16* currentFat; // offset 0x88, size 0x4
OSThreadQueue threadQueue; // offset 0x8C, size 0x8
u8 cmd[9]; // offset 0x94, size 0x9
s32 cmdlen; // offset 0xA0, size 0x4
u32 mode; // offset 0xA4, size 0x4
int retry; // offset 0xA8, size 0x4
int repeat; // offset 0xAC, size 0x4
u32 addr; // offset 0xB0, size 0x4
void* buffer; // offset 0xB4, size 0x4
s32 xferred; // offset 0xB8, size 0x4
u16 freeNo; // offset 0xBC, size 0x2
u16 startBlock; // offset 0xBE, size 0x2
CARDFileInfo* fileInfo; // offset 0xC0, size 0x4
CARDCallback extCallback; // offset 0xC4, size 0x4
CARDCallback txCallback; // offset 0xC8, size 0x4
CARDCallback exiCallback; // offset 0xCC, size 0x4
CARDCallback apiCallback; // offset 0xD0, size 0x4
CARDCallback xferCallback; // offset 0xD4, size 0x4
CARDCallback eraseCallback; // offset 0xD8, size 0x4
CARDCallback unlockCallback; // offset 0xDC, size 0x4
OSAlarm alarm; // offset 0xE0, size 0x28
u32 cid; // offset 0x108, size 0x4
const DVDDiskID* diskID; // offset 0x10C, size 0x4
} CARDControl;
s32 __CARDGetStatusEx(s32 chan, s32 fileNo, CARDDir* dirent);
s32 __CARDSetStatusExAsync(s32 chan, s32 fileNo, CARDDir* dirent, CARDCallback callback);
s32 __CARDSetStatusEx(s32 chan, s32 fileNo, CARDDir* dirent);
#ifdef __cplusplus
}
#endif
#endif