summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/MSL_C/string.h4
-rw-r--r--include/SDK/DVD/dvdfs.h21
-rw-r--r--include/SDK/NAND/NANDOpenClose.h6
-rw-r--r--include/SDK/NAND/nand.h38
-rw-r--r--include/SDK/nand.h1
-rw-r--r--include/code_801DBE90.h23
-rw-r--r--include/code_801DCE6C.h8
7 files changed, 72 insertions, 29 deletions
diff --git a/include/MSL_C/string.h b/include/MSL_C/string.h
index 83b7bd0..7b4755c 100644
--- a/include/MSL_C/string.h
+++ b/include/MSL_C/string.h
@@ -10,6 +10,10 @@ void *memmove(void *dest, const void *src, size_t n);
void *memcpy(void *dest, const void *src, size_t n);
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
+char *strcpy(char *dest, const char *src);
+char *strncpy(char *dest, const char *src, size_t n);
+char *strcat(char *dest, const char *src);
+char *strncat(char *dest, const char *src, size_t n);
#ifdef __cplusplus
}
diff --git a/include/SDK/DVD/dvdfs.h b/include/SDK/DVD/dvdfs.h
index 444ae92..8687730 100644
--- a/include/SDK/DVD/dvdfs.h
+++ b/include/SDK/DVD/dvdfs.h
@@ -5,31 +5,16 @@
extern "C" {
#endif
-// TODO: not a nested class, but a struct from the SDK. Referenced
-// by DVDFileInfo
-struct gUnkClass6
-{
- u8 unk0;
- u8 unk1;
- char unk2[0x5];
- char unk7[0x41];
- NANDFileInfo unk48;
- u8 unkD3[0xBD];
-};
-
typedef struct DVDFileInfo DVDFileInfo;
typedef void (*DVDCallback)(s32 result, DVDFileInfo* fileInfo);
+// sizeof DVDFileInfo >= 0x3C
struct DVDFileInfo
{
u8 unk0[0x34];
- size_t unk34;
+ size_t fileSz;
u8 unk38[0x4];
- gUnkClass6* unk3C; // TODO: determine type
- void (*unk40)(s32, void*);
- void* unk44;
- u32 unk48;
};
BOOL DVDOpen(const char*, DVDFileInfo*);
@@ -39,7 +24,7 @@ s32 DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 p
s32 DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, DVDCallback callback, s32 prio);
s32 DVDSeekAsyncPrio(DVDFileInfo* fileInfo, s32 offset, DVDCallback callback, s32 prio);
-
+#define DVDGetLength(info) ((info)->fileSz)
#ifdef __cplusplus
}
diff --git a/include/SDK/NAND/NANDOpenClose.h b/include/SDK/NAND/NANDOpenClose.h
index 2a93acd..2b5f52f 100644
--- a/include/SDK/NAND/NANDOpenClose.h
+++ b/include/SDK/NAND/NANDOpenClose.h
@@ -5,12 +5,10 @@
extern "C" {
#endif
-typedef struct NANDFileInfo
-{
- u8 unk0[0x8B]; // TODO: determine actual size
-} NANDFileInfo;
+#include <SDK/NAND/nand.h>
s32 NANDOpen(const char* path, NANDFileInfo* info, u8 accType);
+s32 NANDClose(NANDFileInfo* info);
#ifdef __cplusplus
}
diff --git a/include/SDK/NAND/nand.h b/include/SDK/NAND/nand.h
new file mode 100644
index 0000000..bc22279
--- /dev/null
+++ b/include/SDK/NAND/nand.h
@@ -0,0 +1,38 @@
+#ifndef POKEREVO_NAND_NAND_H
+#define POKEREVO_NAND_NAND_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// TODO: size >= 0x8B
+typedef struct NANDFileInfo
+{
+ u8 unk0[0x8C];
+} NANDFileInfo;
+
+// TODO: no idea of size yet
+typedef struct NANDCommandBlock
+{
+ u8 unk0[0x4];
+} NANDCommandBlock;
+
+typedef void (*NANDCallback)(s32 result, NANDCommandBlock* block);
+
+s32 NANDGetLength(NANDFileInfo* info, u32* length);
+s32 NANDSeek(NANDFileInfo* info, s32 offset, s32 whence);
+s32 NANDSeekAsync(NANDFileInfo* info, s32 offset, s32 whence, NANDCallback cb, NANDCommandBlock* block);
+s32 NANDRead(NANDFileInfo* info, void* buf, u32 length);
+s32 NANDReadAsync(NANDFileInfo* info, void* buf, u32 length, NANDCallback cb, NANDCommandBlock* block);
+void* NANDGetUserData(const NANDCommandBlock* block);
+void NANDSetUserData(NANDCommandBlock* block, void* data);
+s32 NANDCreate(const char* fileName, u8 perm, u8 attr);
+s32 NANDWrite(NANDFileInfo* info, const void* buf, u32 length);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_NAND_NAND_H
diff --git a/include/SDK/nand.h b/include/SDK/nand.h
index 463ef89..1e055e2 100644
--- a/include/SDK/nand.h
+++ b/include/SDK/nand.h
@@ -5,6 +5,7 @@
extern "C" {
#endif
+#include <SDK/NAND/nand.h>
#include <SDK/NAND/NANDCore.h>
#include <SDK/NAND/NANDOpenClose.h>
diff --git a/include/code_801DBE90.h b/include/code_801DBE90.h
index 49889e7..bc026d9 100644
--- a/include/code_801DBE90.h
+++ b/include/code_801DBE90.h
@@ -8,12 +8,29 @@ extern "C" {
#include "SDK/dvd.h"
#include "SDK/mem.h"
-struct gUnkClass5
+// TODO: nested class?
+// move to code_801DCE6C header?
+struct gUnkClass6
{
u8 unk0;
u8 unk1;
+ char unk2[0x5];
+ char unk7[0x41];
+ NANDFileInfo unk48;
+ NANDCommandBlock block;
+ u8 unkD8[0xB8];
+};
+
+struct gUnkClass5
+{
+ u8 unk0;
+ u8 unk1; // flag: indicates NAND file opened/closed?
u8 unk2[0x2];
DVDFileInfo unk4;
+ gUnkClass6* unk40; // TODO: determine type
+ void (*unk44)(s32, void*);
+ void* unk48; // NANDReadAsync addr
+ u32 unk4C; // NANDReadAsync size
};
BOOL func_801DC0C8(size_t p1, u32 p2);
@@ -26,12 +43,12 @@ BOOL func_801DC6C4(gUnkClass5* p1);
size_t func_801DC760(gUnkClass5* p1);
BOOL func_801DC7F8(gUnkClass5* p1, s32 offset, void (*p3)(s32, void*));
u8* func_801DCBC0(const char* fileName, u32* fileSz);
-void* func_801DCCAC(const char* fileName, MEMHeapHandle heap, u32* fileSz);
+u8* func_801DCCAC(const char* fileName, MEMHeapHandle heap, u32* fileSz);
BOOL func_801DCD94(const char* fileName);
void func_801DCDB8(void (*p1)(u32), void (*p2)(void));
u32 func_801DCDC4(void);
void func_801DCE38(void);
-u8 func_801DCE44(void);
+BOOL func_801DCE44(void);
#ifdef __cplusplus
}
diff --git a/include/code_801DCE6C.h b/include/code_801DCE6C.h
index de1243f..b6f1130 100644
--- a/include/code_801DCE6C.h
+++ b/include/code_801DCE6C.h
@@ -18,10 +18,10 @@ struct gUnkClass4
BOOL func_801DCF74(gUnkClass4*, const char*, gUnkClass5*);
BOOL func_801DCF48(gUnkClass4*, const char*);
-s32 func_801DD084(gUnkClass4* p1, gUnkClass5* p2, void* addr, s32 length, s32 offset);
-void* func_801DD220(gUnkClass4*, gUnkClass5*, void*, u32, s32);
-u32 func_801DCFE4(gUnkClass4*, gUnkClass5*);
-u32 func_801DD03C(gUnkClass4*, gUnkClass5*, u32*);
+s32 func_801DD084(gUnkClass4* p1, gUnkClass5* fp, void* addr, s32 length, s32 offset);
+BOOL func_801DD220(gUnkClass4*, gUnkClass5*, void*, u32, s32);
+BOOL func_801DCFE4(gUnkClass4*, gUnkClass5* fp);
+BOOL func_801DD03C(gUnkClass4* p1, gUnkClass5* fp, u32* fileSz);
BOOL func_801DD294(gUnkClass4*, const char*, s32);
#ifdef __cplusplus