diff options
Diffstat (limited to 'arm9/lib/include')
-rw-r--r-- | arm9/lib/include/DGT_dgt.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/FS_archive.h | 28 | ||||
-rw-r--r-- | arm9/lib/include/FS_command_default.h | 27 | ||||
-rw-r--r-- | arm9/lib/include/FS_file.h | 17 | ||||
-rw-r--r-- | arm9/lib/include/FS_overlay.h | 20 | ||||
-rw-r--r-- | arm9/lib/include/FS_rom.h | 10 | ||||
-rw-r--r-- | arm9/lib/include/GX_g2.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/OS_alloc.h | 5 | ||||
-rw-r--r-- | arm9/lib/include/OS_arena.h | 4 | ||||
-rw-r--r-- | arm9/lib/include/OS_emulator.h | 4 | ||||
-rw-r--r-- | arm9/lib/include/OS_entropy.h | 4 | ||||
-rw-r--r-- | arm9/lib/include/OS_init.h | 3 | ||||
-rw-r--r-- | arm9/lib/include/OS_interrupt.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/OS_protectionUnit.h | 11 | ||||
-rw-r--r-- | arm9/lib/include/OS_reset.h | 6 | ||||
-rw-r--r-- | arm9/lib/include/OS_system.h | 14 | ||||
-rw-r--r-- | arm9/lib/include/OS_tcm.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/OS_terminate_proc.h | 4 | ||||
-rw-r--r-- | arm9/lib/include/custom_allocator.h | 13 | ||||
-rw-r--r-- | arm9/lib/include/fx.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/nitro.h | 2 |
21 files changed, 131 insertions, 51 deletions
diff --git a/arm9/lib/include/DGT_dgt.h b/arm9/lib/include/DGT_dgt.h index 1c48531c..bc9cb47e 100644 --- a/arm9/lib/include/DGT_dgt.h +++ b/arm9/lib/include/DGT_dgt.h @@ -1,6 +1,6 @@ #ifndef NITRO_DGT_DGT_H_ #define NITRO_DGT_DGT_H_ -void DGT_Hash2CalcHmac(void* digest, void* bin_ptr, int bin_len, void* key_ptr, int keylen); +void DGT_Hash2CalcHmac(void* digest, void* bin_ptr, u32 bin_len, void* key_ptr, u32 keylen); #endif //NITRO_DGT_DGT_H_ diff --git a/arm9/lib/include/FS_archive.h b/arm9/lib/include/FS_archive.h index d30081d7..3987341c 100644 --- a/arm9/lib/include/FS_archive.h +++ b/arm9/lib/include/FS_archive.h @@ -146,8 +146,6 @@ 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; @@ -198,15 +196,25 @@ static inline BOOL FS_IsArchiveTableLoaded(volatile const FSArchive * p_arc) return (p_arc->flag & FS_ARCHIVE_FLAG_TABLE_LOAD) ? TRUE : FALSE; } -BOOL FSi_SendCommand(struct FSFile * file, FSCommandType command); +u32 FSi_GetPackedName(const char * name, int name_len); +FSResult FSi_ReadMemCallback(struct FSArchive * p_arc, void * dest, u32 pos, u32 size); +FSResult FSi_WriteMemCallback(struct FSArchive * p_arc, const void * src, u32 pos, u32 size); +FSResult FSi_ReadMemoryCore(struct FSArchive * p_arc, void * dest, u32 pos, u32 size); +struct FSFile * FSi_NextCommand(struct FSArchive * p_arc); +void FSi_ExecuteAsyncCommand(struct FSFile * p_file); BOOL FSi_ExecuteSyncCommand(struct FSFile * file); -BOOL FS_SuspendArchive(FSArchive * p_arc); -BOOL FS_ResumeArchive(FSArchive * p_arc); -void FS_NotifyArchiveAsyncEnd(FSArchive *p_arc, FSResult ret); -BOOL FS_RegisterArchiveName(FSArchive * p_arc, const char * name, int name_len); -void FS_InitArchive(FSArchive * p_arc); +BOOL FSi_SendCommand(struct FSFile * file, FSCommandType command); +void FS_InitArchive(struct FSArchive * p_arc); +struct FSArchive * const FS_FindArchive(const char * path, int offset); +BOOL FS_RegisterArchiveName(struct FSArchive * p_arc, const char * name, int name_len); +void FS_ReleaseArchiveName(struct FSArchive * p_arc); +BOOL FS_LoadArchive(struct FSArchive * p_arc, u32 base, u32 fat, u32 fat_size, u32 fnt, u32 fnt_size, FS_ARCHIVE_READ_FUNC read_func, FS_ARCHIVE_WRITE_FUNC write_func); +BOOL FS_UnloadArchive(struct FSArchive * p_arc); +u32 FS_LoadArchiveTables(struct FSArchive *p_arc, void *p_mem, u32 max_size); +void * FS_UnloadArchiveTables(struct FSArchive * p_arc); +BOOL FS_SuspendArchive(struct FSArchive * p_arc); +BOOL FS_ResumeArchive(struct FSArchive * p_arc); void FS_SetArchiveProc(struct FSArchive * p_arc, FS_ARCHIVE_PROC_FUNC proc, u32 flags); -BOOL FS_LoadArchive(FSArchive * p_arc, u32 base, u32 fat, u32 fat_size, u32 fnt, u32 fnt_size, FS_ARCHIVE_READ_FUNC read_func, FS_ARCHIVE_WRITE_FUNC write_func); -u32 FS_LoadArchiveTables(FSArchive *p_arc, void *p_mem, u32 max_size); +void FS_NotifyArchiveAsyncEnd(struct FSArchive *p_arc, FSResult ret); #endif //NITRO_FS_ARCHIVE_H_ diff --git a/arm9/lib/include/FS_command_default.h b/arm9/lib/include/FS_command_default.h new file mode 100644 index 00000000..1984aeb0 --- /dev/null +++ b/arm9/lib/include/FS_command_default.h @@ -0,0 +1,27 @@ +#ifndef POKEDIAMOND_FS_COMMAND_DEFAULT_H +#define POKEDIAMOND_FS_COMMAND_DEFAULT_H + +#include "types.h" +#include "FS_archive.h" + +typedef struct +{ + FSArchive *arc; + u32 pos; +} FSiSyncReadParam; + + +u32 FSi_StrNICmp(const char * str1, const char * str2, u32 len); +FSResult FSi_ReadTable(FSiSyncReadParam * p, void * dst, u32 len); +FSResult FSi_SeekDirDirect(FSFile * p_dir, u32 id); +FSResult FSi_ReadFileCommand(FSFile * p_file); +FSResult FSi_WriteFileCommand(FSFile * p_file); +FSResult FSi_SeekDirCommand(FSFile * p_dir); +FSResult FSi_ReadDirCommand(FSFile *p_dir); +FSResult FSi_FindPathCommand(FSFile *p_dir); +FSResult FSi_GetPathCommand(FSFile *p_file); +FSResult FSi_OpenFileFastCommand(FSFile * p_file); +FSResult FSi_OpenFileDirectCommand(FSFile * p_file); +FSResult FSi_CloseFileCommand(FSFile * p_file); + +#endif //POKEDIAMOND_FS_COMMAND_DEFAULT_H diff --git a/arm9/lib/include/FS_file.h b/arm9/lib/include/FS_file.h index 3a7d8730..cfb043af 100644 --- a/arm9/lib/include/FS_file.h +++ b/arm9/lib/include/FS_file.h @@ -174,16 +174,21 @@ typedef struct FSFile } FSFile; -u32 FS_SetDefaultDMA(u32 dma_no); // returns the previous selection +void FS_Init(u32 default_dma_no); +BOOL FS_IsAvailable(void); void FS_InitFile(FSFile * p_file); -BOOL FS_WaitAsync(FSFile * p_file); +static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos); +int FSi_ReadFileCore(FSFile * p_file, void * dst, s32 len, BOOL async); +BOOL FS_ConvertPathToFileID(FSFileID * p_file_id, const char * path); BOOL FS_OpenFileDirect(FSFile * p_file, FSArchive * p_arc, u32 image_top, u32 image_bottom, u32 file_index); -int FS_ReadFile(FSFile * p_file, void * dst, s32 len); -int FS_ReadFileAsync(FSFile * p_file, void * dst, s32 len); -BOOL FS_OpenFile(FSFile * p_file, const char * path); BOOL FS_OpenFileFast(FSFile * p_file, FSFileID file_id); +BOOL FS_OpenFile(FSFile * p_file, const char * path); BOOL FS_CloseFile(FSFile * p_file); -BOOL FS_SeekFile(FSFile * p_file, int offset, FSSeekFileMode origin); +BOOL FS_WaitAsync(FSFile * p_file); +int FS_ReadFileAsync(FSFile * p_file, void * dst, s32 len); +int FS_ReadFile(FSFile * p_file, void * dst, s32 len); +BOOL FS_SeekFile(FSFile * p_file, s32 offset, FSSeekFileMode origin); +BOOL FS_ChangeDir(const char * path); static inline u32 const FS_GetFileImageTop(volatile const FSFile * p_file) { return p_file->prop.file.top; diff --git a/arm9/lib/include/FS_overlay.h b/arm9/lib/include/FS_overlay.h index 14c7ce66..7853e4ae 100644 --- a/arm9/lib/include/FS_overlay.h +++ b/arm9/lib/include/FS_overlay.h @@ -52,20 +52,22 @@ static inline u32 const FS_GetOverlayTotalSize(FSOverlayInfo *p_ovi) return p_ovi->header.ram_size + p_ovi->header.bss_size; } +u32 FSi_GetOverlayBinarySize(FSOverlayInfo * p_ovi); +void FS_ClearOverlayImage(FSOverlayInfo * p_ovi); +FSFileID FS_GetOverlayFileID(FSOverlayInfo * p_ovi); +BOOL FSi_LoadOverlayInfoCore(FSOverlayInfo * p_ovi, MIProcessor target, FSOverlayID id, FSArchive * arc, u32 offset_arm9, u32 len_arm9, u32 offset_arm7, u32 len_arm7); BOOL FS_LoadOverlayInfo(FSOverlayInfo *p_ovi, MIProcessor target, FSOverlayID id); - -BOOL FS_LoadOverlay(MIProcessor target, FSOverlayID id); - -BOOL FS_UnloadOverlay(MIProcessor target, FSOverlayID id); - +BOOL FS_LoadOverlayImageAsync(FSOverlayInfo *p_ovi, FSFile *p_file); BOOL FS_LoadOverlayImage(FSOverlayInfo *p_ovi); - +BOOL FSi_CompareDigest(const u8 *spec_digest, void *src, u32 len); void FS_StartOverlay(FSOverlayInfo *p_ovi); - -BOOL FS_LoadOverlayImageAsync(FSOverlayInfo *p_ovi, FSFile *p_file); +void FS_EndOverlay(FSOverlayInfo *p_ovi); +BOOL FS_UnloadOverlayImage(FSOverlayInfo * p_ovi); +BOOL FS_LoadOverlay(MIProcessor target, FSOverlayID id); +BOOL FS_UnloadOverlay(MIProcessor target, FSOverlayID id); #if defined(__cplusplus) -}; +} #endif #endif //NITRO_FS_OVERLAY_H_ diff --git a/arm9/lib/include/FS_rom.h b/arm9/lib/include/FS_rom.h index ac8ad8fb..a98c8a9c 100644 --- a/arm9/lib/include/FS_rom.h +++ b/arm9/lib/include/FS_rom.h @@ -2,13 +2,23 @@ #define NITRO_FS_ROM_H_ #include "FS_archive.h" +#include "FS_file.h" #include "CARD_rom.h" +#include "types.h" extern FSArchive fsi_arc_rom; extern s32 fsi_card_lock_id; extern CARDRomRegion fsi_ovt7; extern CARDRomRegion fsi_ovt9; +void FSi_OnRomReadDone(void * p_arc); +FSResult FSi_ReadRomCallback(FSArchive * p_arc, void * dst, u32 src, u32 len); +FSResult FSi_WriteDummyCallback(FSArchive * p_arc, const void *src, u32 dst, u32 len); +FSResult FSi_RomArchiveProc(FSFile * p_arc, FSCommandType cmd); +FSResult FSi_ReadDummyCallback(FSArchive *p_arc, void *dst, u32 src, u32 len); +FSResult FSi_EmptyArchiveProc(FSFile *p_file, FSCommandType cmd); void FSi_InitRom(u32 default_dma_no); +u32 FS_SetDefaultDMA(u32 dma_no); +u32 FS_TryLoadTable(void * p_mem, u32 size); #endif //NITRO_FS_ROM_H_ diff --git a/arm9/lib/include/GX_g2.h b/arm9/lib/include/GX_g2.h index f8d86df0..d1d1c82c 100644 --- a/arm9/lib/include/GX_g2.h +++ b/arm9/lib/include/GX_g2.h @@ -7,7 +7,7 @@ void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d); void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness); void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness); -void *G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness); +void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness); //The g2 and g2_oam headers contain a lot of inline functions and enums that may want to be ported over at some point diff --git a/arm9/lib/include/OS_alloc.h b/arm9/lib/include/OS_alloc.h index 08fb3224..74b7b0e5 100644 --- a/arm9/lib/include/OS_alloc.h +++ b/arm9/lib/include/OS_alloc.h @@ -32,7 +32,10 @@ typedef struct { HeapDesc* heapArray; } OSHeapInfo; -void OS_FreeToHeap(OSArenaId id, OSHeapHandle heap, void *ptr); +Cell* DLAddFront(Cell* list, Cell* cell); +Cell* DLExtract(Cell* list, Cell* cell); +Cell *DLInsert(Cell *original, Cell *inserted); void* OS_AllocFromHeap(OSArenaId id, OSHeapHandle heap, u32 size); +void OS_FreeToHeap(OSArenaId id, OSHeapHandle heap, void *ptr); #endif //POKEDIAMOND_OS_ALLOC_H diff --git a/arm9/lib/include/OS_arena.h b/arm9/lib/include/OS_arena.h index f1893a3d..8cfef81d 100644 --- a/arm9/lib/include/OS_arena.h +++ b/arm9/lib/include/OS_arena.h @@ -27,8 +27,8 @@ typedef struct { u8 padding[2]; } OSArenaInfo; -void OS_InitArena(); -void OS_InitArenaEx(); +void OS_InitArena(void); +void OS_InitArenaEx(void); void* OS_GetArenaHi(OSArenaId id); void* OS_GetArenaLo(OSArenaId id); void* OS_GetInitArenaHi(OSArenaId id); diff --git a/arm9/lib/include/OS_emulator.h b/arm9/lib/include/OS_emulator.h index 54105258..30acec16 100644 --- a/arm9/lib/include/OS_emulator.h +++ b/arm9/lib/include/OS_emulator.h @@ -7,7 +7,7 @@ #include "consts.h" -BOOL OS_IsRunOnEmulator(); -u32 OS_GetConsoleType(); +BOOL OS_IsRunOnEmulator(void); +u32 OS_GetConsoleType(void); #endif //POKEDIAMOND_OS_EMULATOR_H diff --git a/arm9/lib/include/OS_entropy.h b/arm9/lib/include/OS_entropy.h index b4695a72..78ac71b7 100644 --- a/arm9/lib/include/OS_entropy.h +++ b/arm9/lib/include/OS_entropy.h @@ -17,9 +17,9 @@ typedef struct NVRAMConfig{ extern vu64 OSi_TickCounter; -extern u16 OS_GetTickLo(); +extern u16 OS_GetTickLo(void); -static inline s32 GX_GetVCount() +static inline s32 GX_GetVCount(void) { return reg_GX_VCOUNT; } diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h index 69d21213..40685513 100644 --- a/arm9/lib/include/OS_init.h +++ b/arm9/lib/include/OS_init.h @@ -15,6 +15,7 @@ #include "OS_mutex.h" #include "OS_thread.h" #include "OS_protectionRegion.h" +#include "OS_protectionUnit.h" #include "OS_entropy.h" #include "OS_emulator.h" #include "OS_arena.h" @@ -25,6 +26,6 @@ #include "OS_reset.h" #include "OS_spinLock.h" -void OS_Init(); +void OS_Init(void); #endif //POKEDIAMOND_OS_INIT_H diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index 21ae8079..cbdc225f 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -21,7 +21,7 @@ typedef u32 OSIrqMask; extern OSIrqFunction OS_IRQTable[]; extern OSIrqCallbackInfo OSi_IrqCallbackInfo[8]; -void OS_InitIrqTable(); +void OS_InitIrqTable(void); void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function); OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit); void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *arg); diff --git a/arm9/lib/include/OS_protectionUnit.h b/arm9/lib/include/OS_protectionUnit.h new file mode 100644 index 00000000..e7dc32d8 --- /dev/null +++ b/arm9/lib/include/OS_protectionUnit.h @@ -0,0 +1,11 @@ +// +// Created by red031000 on 2020-05-24. +// + +#ifndef POKEDIAMOND_OS_PROTECTIONUNIT_H +#define POKEDIAMOND_OS_PROTECTIONUNIT_H + +void OS_EnableProtectionUnit(void); +void OS_DisableProtectionUnit(void); + +#endif //POKEDIAMOND_OS_PROTECTIONUNIT_H diff --git a/arm9/lib/include/OS_reset.h b/arm9/lib/include/OS_reset.h index c3b60c98..c50106da 100644 --- a/arm9/lib/include/OS_reset.h +++ b/arm9/lib/include/OS_reset.h @@ -12,9 +12,9 @@ #define OS_PXI_COMMAND_SHIFT 8 #define OS_PXI_COMMAND_RESET 0x10 -void OS_InitReset(); -void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err); -void OSi_SendToPxi(u16 data); +void OS_InitReset(void); +static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err); +static void OSi_SendToPxi(u16 data); void OS_ResetSystem(u32 parameter); #endif //POKEDIAMOND_OS_RESET_H diff --git a/arm9/lib/include/OS_system.h b/arm9/lib/include/OS_system.h index 6ce585dc..f71c6f98 100644 --- a/arm9/lib/include/OS_system.h +++ b/arm9/lib/include/OS_system.h @@ -26,15 +26,15 @@ typedef enum { } OSIntrMode; ENUMS_ALWAYS_INT_RESET -OSIntrMode OS_EnableInterrupts(); -OSIntrMode OS_DisableInterrupts(); +OSIntrMode OS_EnableInterrupts(void); +OSIntrMode OS_DisableInterrupts(void); OSIntrMode OS_RestoreInterrupts(OSIntrMode state); -OSIntrMode OS_DisableInterrupts_IrqAndFiq(); +OSIntrMode OS_DisableInterrupts_IrqAndFiq(void); OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state); -OSIntrMode OS_GetCpsrIrq(); -OSProcMode OS_GetProcMode(); -void OS_SpinWait(); -void OS_WaitVBlankIntr(); +OSIntrMode OS_GetCpsrIrq(void); +OSProcMode OS_GetProcMode(void); +void OS_SpinWait(void); +void OS_WaitVBlankIntr(void); void OS_WaitIrq(BOOL, u32); #endif //POKEDIAMOND_OS_SYSTEM_H diff --git a/arm9/lib/include/OS_tcm.h b/arm9/lib/include/OS_tcm.h index 7112ca0e..66f8ec59 100644 --- a/arm9/lib/include/OS_tcm.h +++ b/arm9/lib/include/OS_tcm.h @@ -7,6 +7,6 @@ #include "consts.h" -u32 OS_GetDTCMAddress(); +u32 OS_GetDTCMAddress(void); #endif //POKEDIAMOND_OS_TCM_H diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h index 26741e5d..d1abe3ad 100644 --- a/arm9/lib/include/OS_terminate_proc.h +++ b/arm9/lib/include/OS_terminate_proc.h @@ -5,7 +5,7 @@ #ifndef POKEDIAMOND_OS_TERMINATE_PROC_H #define POKEDIAMOND_OS_TERMINATE_PROC_H -void OS_Terminate(); -void OS_Halt(); +void OS_Terminate(void); +void OS_Halt(void); #endif //POKEDIAMOND_OS_TERMINATE_PROC_H diff --git a/arm9/lib/include/custom_allocator.h b/arm9/lib/include/custom_allocator.h new file mode 100644 index 00000000..828566f7 --- /dev/null +++ b/arm9/lib/include/custom_allocator.h @@ -0,0 +1,13 @@ +#ifndef POKEDIAMOND_CUSTOM_ALLOCATOR_H +#define POKEDIAMOND_CUSTOM_ALLOCATOR_H + +#include "types.h" + +typedef void * (* AllocFunc)(u32 size); +typedef void (* FreeFunc)(void * ptr); + +void* CallCustomAllocator(u32 size); +void CallCustomDestructor(void * ptr); +void SetCustomAllocatorAndDestructor(AllocFunc allocator, FreeFunc destructor); + +#endif //POKEDIAMOND_CUSTOM_ALLOCATOR_H diff --git a/arm9/lib/include/fx.h b/arm9/lib/include/fx.h index 3df89293..c09b24ae 100644 --- a/arm9/lib/include/fx.h +++ b/arm9/lib/include/fx.h @@ -142,7 +142,7 @@ void MTX_RotY44_(struct Mtx44 *mtx, fx32 sinphi, fx32 cosphi); void MTX_RotZ44_(struct Mtx44 *mtx, fx32 sinphi, fx32 cosphi); //Mtx43 -void MTX_ScaleApply33(struct Mtx33 *mtx, struct Mtx33 *dst, fx32 x, fx32 y, fx32 z); +void MTX_ScaleApply43(struct Mtx43 *mtx, struct Mtx43 *dst, fx32 x, fx32 y, fx32 z); fx32 MTX_Inverse43(struct Mtx43 *mtx, struct Mtx43 *inv); void MTX_Concat43(struct Mtx43 *a, struct Mtx43 *b, struct Mtx43 *c); void MTX_MultVec43(struct Vecx32 *vec, struct Mtx43 *mtx, struct Vecx32 *dst); diff --git a/arm9/lib/include/nitro.h b/arm9/lib/include/nitro.h index ffb2003b..9eeab198 100644 --- a/arm9/lib/include/nitro.h +++ b/arm9/lib/include/nitro.h @@ -14,7 +14,7 @@ extern "C" { #include "mmap.h" #ifdef __cplusplus -}; +} #endif #endif //POKEDIAMOND_NITRO_H |