Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
nand.h
Go to the documentation of this file.
1#ifndef _REVOLUTION_NAND_H_
2#define _REVOLUTION_NAND_H_
3
4#include <revolution/types.h>
5#include <revolution/fs.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#define NAND_RESULT_OK 0
12#define NAND_RESULT_ACCESS (-1)
13#define NAND_RESULT_ALLOC_FAILED (-2)
14#define NAND_RESULT_BUSY (-3)
15#define NAND_RESULT_CORRUPT (-4)
16#define NAND_RESULT_ECC_CRIT (-5)
17#define NAND_RESULT_EXISTS (-6)
18#define NAND_RESULT_INVALID (-8)
19#define NAND_RESULT_MAXBLOCKS (-9)
20#define NAND_RESULT_MAXFD (-10)
21#define NAND_RESULT_MAXFILES (-11)
22#define NAND_RESULT_NOEXISTS (-12)
23#define NAND_RESULT_NOTEMPTY (-13)
24#define NAND_RESULT_OPENFD (-14)
25#define NAND_RESULT_AUTHENTICATION (-15)
26#define NAND_RESULT_MAXDEPTH (-16)
27#define NAND_RESULT_UNKNOWN (-64)
28#define NAND_RESULT_FATAL_ERROR (-128)
29
30#define NAND_MAX_PATH 64
31
32#define NAND_CHECK_HOME_INSSPACE 0x00000001
33#define NAND_CHECK_HOME_INSINODE 0x00000002
34#define NAND_CHECK_SYS_INSSPACE 0x00000004
35#define NAND_CHECK_SYS_INSINODE 0x00000008
36
43
59
60typedef struct NANDFileInfo {
63 char origPath[NAND_MAX_PATH];
64 char tmpPath[NAND_MAX_PATH];
69
105
112
113typedef struct {
117 u8 reserved[22];
118 u16 comment[2][32];
119 u8 bannerTexture[192 * 64 * 2];
120 u8 iconTexture[8][48 * 48 * 2];
121} NANDBanner;
122
124typedef void (*NANDAsyncCallback)(s32 result, struct NANDCommandBlock* block);
125
126typedef void (*NANDLoggingCallback)(BOOL, s32);
127
128// NAND
129s32 NANDCreate(const char* path, const u8 perm, const u8 attr);
130s32 NANDPrivateCreate(const char* path, u8 perm, u8 attr);
132
133s32 NANDDelete(const char* path);
134s32 NANDPrivateDelete(const char* path);
136
137s32 NANDRead(NANDFileInfo* info, void* buf, const u32 length);
138s32 NANDReadAsync(NANDFileInfo* info, void* buf, const u32 length,
140
141s32 NANDWrite(NANDFileInfo* info, const void* buf, const u32 length);
142s32 NANDWriteAsync(NANDFileInfo* info, const void* buf, const u32 length,
144
145s32 NANDSeek(NANDFileInfo* info, const s32 offset, const s32 whence);
146s32 NANDSeekAsync(NANDFileInfo* info, const s32 offset, const s32 whence,
148
149s32 NANDPrivateCreateDir(const char* path, u8 perm, u8 attr);
151
152s32 NANDMove(const char* path, const char* destDir);
153
156 NANDCommandBlock* block);
157
158s32 NANDGetStatus(const char* path, NANDStatus* stat);
159s32 NANDPrivateGetStatus(const char* path, NANDStatus* stat);
162
163void NANDSetUserData(NANDCommandBlock* block, void* data);
164void* NANDGetUserData(const NANDCommandBlock* block);
165
166// NANDCore
167s32 NANDInit(void);
168s32 NANDGetHomeDir(char[NAND_MAX_PATH]);
170void NANDInitBanner(NANDBanner* bnr, u32 const flag, const u16* title, const u16* comment);
171
172// NANDCheck
173s32 NANDCheck(const u32 fsBlock, const u32 inode, u32* answer);
174
175// NANDOpenClose
176s32 NANDOpen(const char*, NANDFileInfo*, u8);
177s32 NANDPrivateOpen(const char*, NANDFileInfo*, u8);
180
183
184s32 NANDSimpleSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length);
186s32 NANDPrivateSafeOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block);
188
189// NANDLogging
190BOOL NANDLoggingAddMessageAsync(NANDLoggingCallback cb, s32 errorCode, const char* fmt, ...);
191
192// NANDErrorMessage
194void __NANDPrintErrorMessage(s32 errorCode);
195
196
197const char* nandGetHomeDir();
198void nandGenerateAbsPath(char* absPath, const char* path);
199BOOL nandIsPrivatePath(const char* path);
202void nandGetRelativeName(char* name, const char* path);
203BOOL nandIsUnderPrivatePath(const char* path);
204BOOL nandIsRelativePath(const char* path);
205void nandGetParentDirectory(char* parentDir, const char* absPath);
206BOOL nandIsAbsolutePath(const char* path);
207
208#ifdef __cplusplus
209}
210#endif
211
212#endif
static BOOL flag
Definition DEMOAVX.c:20
s16 name
Definition d_a_e_pz.cpp:1754
static const Attr & attr()
Definition d_a_obj_ladder.cpp:39
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
s32 ISFSError
Definition fs.h:35
static void cb(s32 result, DVDCommandBlock *block)
Definition fstload.c:16
s32 NANDCloseAsync(NANDFileInfo *, NANDCallback, NANDCommandBlock *)
Definition NANDOpenClose.c:160
s32 NANDMove(const char *path, const char *destDir)
Definition nand.c:287
BOOL nandIsInitialized(void)
Definition NANDCore.c:190
s32 NANDSimpleSafeClose(NANDFileInfo *info)
Definition NANDOpenClose.c:317
s32 NANDPrivateCreateDir(const char *path, u8 perm, u8 attr)
Definition nand.c:240
s32 NANDSeekAsync(NANDFileInfo *info, const s32 offset, const s32 whence, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:199
void(* NANDCallback)(s32, NANDCommandBlock *)
Definition nand.h:123
s32 NANDGetLength(NANDFileInfo *info, u32 *length)
Definition nand.c:310
s32 NANDPrivateDeleteAsync(const char *path, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:101
void NANDInitBanner(NANDBanner *bnr, u32 const flag, const u16 *title, const u16 *comment)
Definition NANDCore.c:494
void NANDSetUserData(NANDCommandBlock *block, void *data)
Definition nand.c:490
s32 NANDSeek(NANDFileInfo *info, const s32 offset, const s32 whence)
Definition nand.c:188
s32 NANDRead(NANDFileInfo *info, void *buf, const u32 length)
Definition nand.c:110
s32 NANDGetLengthAsync(NANDFileInfo *info, u32 *length, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:340
void __NANDPrintErrorMessage(s32 errorCode)
Definition NANDErrorMessage.c:231
s32 NANDGetStatus(const char *path, NANDStatus *stat)
Definition nand.c:463
s32 NANDPrivateGetStatus(const char *path, NANDStatus *stat)
Definition nand.c:471
s32 NANDWriteAsync(NANDFileInfo *info, const void *buf, const u32 length, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:149
struct NANDCommandBlock NANDCommandBlock
s32 NANDPrivateOpen(const char *, NANDFileInfo *, u8)
Definition NANDOpenClose.c:75
NANDPermission
Definition nand.h:44
@ NAND_PERM_RGRP
Definition nand.h:49
@ NAND_PERM_WGRP
Definition nand.h:50
@ NAND_PERM_WUSR
Definition nand.h:47
@ NAND_PERM_ROTH
Definition nand.h:52
@ NAND_PERM_RWALL
Definition nand.h:57
@ NAND_PERM_WALL
Definition nand.h:56
@ NAND_PERM_RALL
Definition nand.h:55
@ NAND_PERM_RUSR
Definition nand.h:46
@ NAND_PERM_WOTH
Definition nand.h:53
BOOL NANDSetAutoErrorMessaging(BOOL show)
Definition NANDErrorMessage.c:221
s32 NANDInit(void)
Definition NANDCore.c:325
void * NANDGetUserData(const NANDCommandBlock *block)
Definition nand.c:494
s32 NANDOpen(const char *, NANDFileInfo *, u8)
Definition NANDOpenClose.c:55
s32 NANDPrivateCreateDirAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:248
s32 NANDSimpleSafeOpen(const char *path, NANDFileInfo *info, const u8 accType, void *buf, const u32 length)
Definition NANDOpenClose.c:179
void nandGetRelativeName(char *name, const char *path)
Definition NANDCore.c:103
s32 NANDReadAsync(NANDFileInfo *info, void *buf, const u32 length, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:123
const char * nandGetHomeDir()
Definition NANDCore.c:490
struct NANDFileInfo NANDFileInfo
s32 NANDPrivateCreateAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:59
s32 NANDPrivateDelete(const char *path)
Definition nand.c:93
s32 NANDOpenAsync(const char *, NANDFileInfo *, u8, NANDCallback, NANDCommandBlock *)
Definition NANDOpenClose.c:95
BOOL nandIsUnderPrivatePath(const char *path)
Definition NANDCore.c:182
void(* NANDLoggingCallback)(BOOL, s32)
Definition nand.h:126
s32 NANDSafeCloseAsync(NANDFileInfo *info, NANDCallback cb, NANDCommandBlock *block)
Definition NANDOpenClose.c:554
s32 NANDPrivateGetTypeAsync(const char *path, u8 *type, NANDCallback cb, NANDCommandBlock *block)
Definition NANDCore.c:467
s32 NANDCreate(const char *path, const u8 perm, const u8 attr)
Definition nand.c:43
s32 nandConvertErrorCode(const ISFSError err)
Definition NANDCore.c:209
s32 NANDCheck(const u32 fsBlock, const u32 inode, u32 *answer)
Definition NANDCheck.c:69
void(* NANDAsyncCallback)(s32 result, struct NANDCommandBlock *block)
Definition nand.h:124
s32 NANDWrite(NANDFileInfo *info, const void *buf, const u32 length)
Definition nand.c:137
s32 NANDPrivateOpenAsync(const char *, NANDFileInfo *, const u8, NANDCallback, NANDCommandBlock *)
Definition NANDOpenClose.c:110
s32 NANDDelete(const char *path)
Definition nand.c:85
s32 NANDClose(NANDFileInfo *)
Definition NANDOpenClose.c:138
struct NANDStatus NANDStatus
s32 NANDPrivateGetStatusAsync(const char *path, NANDStatus *stat, NANDCallback cb, NANDCommandBlock *block)
Definition nand.c:479
BOOL nandIsRelativePath(const char *path)
Definition NANDCore.c:158
NANDAccessType
Definition nand.h:37
@ NAND_ACCESS_NONE
Definition nand.h:38
@ NAND_ACCESS_READ
Definition nand.h:39
@ NAND_ACCESS_WRITE
Definition nand.h:40
@ NAND_ACCESS_RW
Definition nand.h:41
s32 NANDGetHomeDir(char[NAND_MAX_PATH])
s32 NANDPrivateSafeOpenAsync(const char *path, NANDFileInfo *info, const u8 accType, void *buf, const u32 length, NANDCallback cb, NANDCommandBlock *block)
Definition NANDOpenClose.c:388
BOOL nandIsPrivatePath(const char *path)
Definition NANDCore.c:174
s32 NANDPrivateCreate(const char *path, u8 perm, u8 attr)
Definition nand.c:51
BOOL nandIsAbsolutePath(const char *path)
Definition NANDCore.c:166
void nandGenerateAbsPath(char *absPath, const char *path)
Definition NANDCore.c:291
void nandGetParentDirectory(char *parentDir, const char *absPath)
Definition NANDCore.c:309
BOOL NANDLoggingAddMessageAsync(NANDLoggingCallback cb, s32 errorCode, const char *fmt,...)
Definition NANDLogging.c:37
Definition nand.h:113
u32 signature
Definition nand.h:114
u32 flag
Definition nand.h:115
u16 iconSpeed
Definition nand.h:116
Definition nand.h:70
u32 homeBlocks
Definition nand.h:96
u32 ownerId
Definition nand.h:77
u32 attr
Definition nand.h:80
u32 * answer
Definition nand.h:95
u32 groupAcc
Definition nand.h:82
int state
Definition nand.h:88
u32 * length
Definition nand.h:86
u8 nextStage
Definition nand.h:79
u32 reqBlocks
Definition nand.h:93
void * status
Definition nand.h:76
u32 ownerAcc
Definition nand.h:81
u32 homeInodes
Definition nand.h:97
u32 userInodes
Definition nand.h:99
void * callback
Definition nand.h:72
u32 workInodes
Definition nand.h:101
u32 uniqNo
Definition nand.h:92
u32 userBlocks
Definition nand.h:98
const char ** dir
Definition nand.h:102
u16 groupId
Definition nand.h:78
u32 workBlocks
Definition nand.h:100
void * copyBuf
Definition nand.h:89
u32 * pos
Definition nand.h:87
char absPath[NAND_MAX_PATH]
Definition nand.h:85
u32 bufLength
Definition nand.h:90
BOOL simpleFlag
Definition nand.h:103
u32 num
Definition nand.h:84
u32 othersAcc
Definition nand.h:83
void * userData
Definition nand.h:71
void * inodes
Definition nand.h:75
u8 * type
Definition nand.h:91
void * bytes
Definition nand.h:74
void * fileInfo
Definition nand.h:73
u32 reqInodes
Definition nand.h:94
Definition nand.h:60
char tmpPath[NAND_MAX_PATH]
Definition nand.h:64
s32 origFd
Definition nand.h:62
u8 stage
Definition nand.h:66
u8 accType
Definition nand.h:65
s32 fileDescriptor
Definition nand.h:61
u8 mark
Definition nand.h:67
char origPath[NAND_MAX_PATH]
Definition nand.h:63
Definition nand.h:106
u8 permission
Definition nand.h:110
u16 groupId
Definition nand.h:108
u8 attribute
Definition nand.h:109
u32 ownerId
Definition nand.h:107
Definition d_a_npc_ks.cpp:47