summaryrefslogtreecommitdiff
path: root/arm9/lib/include
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-05 21:59:23 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-05 21:59:23 -0400
commitcd5559a2093c2be1167eba2f2ef38eedb32a8a1d (patch)
treea49a2bd46c6bf288290adaf13d61d0cfba9951b4 /arm9/lib/include
parent3c458e8b4893866639734a572a7d8e5ce6c7c1ce (diff)
Decompile FS_file.c
Diffstat (limited to 'arm9/lib/include')
-rw-r--r--arm9/lib/include/FS_archive.h23
-rw-r--r--arm9/lib/include/FS_file.h19
-rw-r--r--arm9/lib/include/FS_rom.h6
-rw-r--r--arm9/lib/include/MI_byteAccess.h9
-rw-r--r--arm9/lib/include/OS_thread.h6
5 files changed, 61 insertions, 2 deletions
diff --git a/arm9/lib/include/FS_archive.h b/arm9/lib/include/FS_archive.h
index 65bb2ea1..66840b32 100644
--- a/arm9/lib/include/FS_archive.h
+++ b/arm9/lib/include/FS_archive.h
@@ -8,6 +8,19 @@
struct FSFile;
struct FSArchive;
+#define FS_ARCHIVE_NAME_LEN_MAX 3
+
+#define FS_ARCHIVE_FLAG_REGISTER 0x00000001
+#define FS_ARCHIVE_FLAG_LOADED 0x00000002
+#define FS_ARCHIVE_FLAG_TABLE_LOAD 0x00000004
+#define FS_ARCHIVE_FLAG_SUSPEND 0x00000008
+#define FS_ARCHIVE_FLAG_RUNNING 0x00000010
+#define FS_ARCHIVE_FLAG_CANCELING 0x00000020
+#define FS_ARCHIVE_FLAG_SUSPENDING 0x00000040
+#define FS_ARCHIVE_FLAG_UNLOADING 0x00000080
+#define FS_ARCHIVE_FLAG_IS_ASYNC 0x00000100
+#define FS_ARCHIVE_FLAG_IS_SYNC 0x00000200
+
typedef enum {
FS_COMMAND_ASYNC_BEGIN = 0,
FS_COMMAND_READFILE = FS_COMMAND_ASYNC_BEGIN,
@@ -87,4 +100,14 @@ typedef struct FSArchive
u32 proc_flag;
} FSArchive;
+FSArchive * const FS_FindArchive(const char * path, int offset);
+
+static inline BOOL FS_IsArchiveLoaded(volatile const FSArchive * p_arc)
+{
+ return (p_arc->flag & FS_ARCHIVE_FLAG_LOADED) ? TRUE : FALSE;
+}
+
+BOOL FSi_SendCommand(struct FSFile * file, FSCommandType command);
+BOOL FSi_ExecuteSyncCommand(struct FSFile * file);
+
#endif //NITRO_FS_ARCHIVE_H_
diff --git a/arm9/lib/include/FS_file.h b/arm9/lib/include/FS_file.h
index 08a698d0..4871b660 100644
--- a/arm9/lib/include/FS_file.h
+++ b/arm9/lib/include/FS_file.h
@@ -5,6 +5,21 @@
#include "FS_archive.h"
+#define FS_FILE_STATUS_BUSY 0x00000001
+#define FS_FILE_STATUS_CANCEL 0x00000002
+#define FS_FILE_STATUS_SYNC 0x00000004
+#define FS_FILE_STATUS_ASYNC 0x00000008
+#define FS_FILE_STATUS_IS_FILE 0x00000010
+#define FS_FILE_STATUS_IS_DIR 0x00000020
+#define FS_FILE_STATUS_OPERATING 0x00000040
+
+typedef enum FSSeekFileMode
+{
+ FS_SEEK_SET = 0,
+ FS_SEEK_CUR,
+ FS_SEEK_END
+} FSSeekFileMode;
+
struct FSFile;
#define FS_DMA_NOT_USE ((u32)~0)
@@ -127,7 +142,6 @@ typedef struct FSFile
FSCommandType command;
FSResult error;
OSThreadQueue queue[1];
- u32 filler; // Figure out what this actually is
union {
struct
{
@@ -154,11 +168,12 @@ typedef struct FSFile
FSOpenFileFastInfo openfilefast;
FSOpenFileDirectInfo openfiledirect;
FSCloseFileInfo closefile;
- };
+ } arg;
}
FSFile;
u32 FS_SetDefaultDMA(u32 dma_no); // returns the previous selection
void FS_InitFile(FSFile * p_file);
+BOOL FS_WaitAsync(FSFile * p_file);
#endif //NITRO_FS_FILE_H_
diff --git a/arm9/lib/include/FS_rom.h b/arm9/lib/include/FS_rom.h
new file mode 100644
index 00000000..fc62b579
--- /dev/null
+++ b/arm9/lib/include/FS_rom.h
@@ -0,0 +1,6 @@
+#ifndef NITRO_FS_ROM_H_
+#define NITRO_FS_ROM_H_
+
+void FSi_InitRom(u32 default_dma_no);
+
+#endif //NITRO_FS_ROM_H_
diff --git a/arm9/lib/include/MI_byteAccess.h b/arm9/lib/include/MI_byteAccess.h
new file mode 100644
index 00000000..10dae4c9
--- /dev/null
+++ b/arm9/lib/include/MI_byteAccess.h
@@ -0,0 +1,9 @@
+#ifndef NITRO_MI_BYTEACCESS_H_
+#define NITRO_MI_BYTEACCESS_H_
+
+static inline u8 MI_ReadByte(const void *address)
+{
+ return *(u8 *)address;
+}
+
+#endif //NITRO_MI_BYTEACCESS_H_
diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h
index 207dac1b..8820a7a0 100644
--- a/arm9/lib/include/OS_thread.h
+++ b/arm9/lib/include/OS_thread.h
@@ -28,4 +28,10 @@ struct _OSThread
u8 padding[0x80]; //todo: not the correct size but idfk
};
+void OS_SleepThread(OSThreadQueue * queue);
+static inline void OS_InitThreadQueue(OSThreadQueue * queue)
+{
+ queue->head = queue->tail = NULL;
+}
+
#endif //POKEDIAMOND_OS_THREAD_H