From b2d728089e500e463d7596867ba11e34cf6586f0 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 24 May 2024 16:41:33 +0200 Subject: db_mapFile --- include/DynamicLink.h | 11 ++++------- include/MSL_C/MSL_Common/Src/printf.h | 4 ++-- include/nw4r/db/db_mapFile.h | 26 ++++++++++++++++++++++++++ include/rvl/OS/OSLink.h | 1 + 4 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 include/nw4r/db/db_mapFile.h (limited to 'include') diff --git a/include/DynamicLink.h b/include/DynamicLink.h index 1e9e3319..da4a5a21 100644 --- a/include/DynamicLink.h +++ b/include/DynamicLink.h @@ -3,17 +3,19 @@ #include #include +#include #include class DbMapFile { public: - DbMapFile(): unk_0(0) {} + DbMapFile(): mMapFileHandle(nullptr) {} ~DbMapFile(); void RegisterOnDvd(const char *, const OSModuleInfo *); void Unregister(); private: - UNKWORD unk_0; + nw4r::db::MapFileHandle mMapFileHandle; + nw4r::db::MapFile mMapFile; }; // https://github.com/zeldaret/tp/blob/main/include/DynamicLink.h @@ -75,11 +77,6 @@ struct DynamicModuleControl : DynamicModuleControlBase { /* 0x2C */ mDvd_callback_c *mDvdCallbackRequest; /* 0x30 */ EGG::ExpHeap *mHeap; /* 0x34 */ DbMapFile mpRelMapFile; - // Some of these might be members of DbMapFile - UNKWORD unk1; - UNKWORD unk2; - UNKWORD unk3; - UNKWORD unk4; static u32 sAllocBytes; static mDvd_toMainRam_base_c *sDvdFile; diff --git a/include/MSL_C/MSL_Common/Src/printf.h b/include/MSL_C/MSL_Common/Src/printf.h index 5b1a7ccd..5e35c0f4 100644 --- a/include/MSL_C/MSL_Common/Src/printf.h +++ b/include/MSL_C/MSL_Common/Src/printf.h @@ -10,8 +10,8 @@ extern "C" { int fprintf(FILE* stream, const char* format, ...); int printf(const char* format, ...); -int sprintf(const char* str, const char* format, ...); -int snprintf(const char* str, size_t n, const char* format, ...); +int sprintf(char* str, const char* format, ...); +int snprintf(char* str, size_t n, const char* format, ...); int vsnprintf(char* str, size_t n, const char* format, va_list arg); int vprintf(const char* format, va_list arg); diff --git a/include/nw4r/db/db_mapFile.h b/include/nw4r/db/db_mapFile.h new file mode 100644 index 00000000..2eb2aac6 --- /dev/null +++ b/include/nw4r/db/db_mapFile.h @@ -0,0 +1,26 @@ +#ifndef DB_MAPFILE_H +#define DB_MAPFILE_H + +#include + +namespace nw4r { +namespace db { + +typedef struct MapFile { + u8 *mapBuf; + const OSModuleInfo *moduleInfo; + s32 fileEntry; + MapFile *next; +} MapFile; + +typedef MapFile* MapFileHandle; + +MapFileHandle MapFile_RegistOnDvd(void*, const char*, const OSModuleInfo*); +void MapFile_Unregist(MapFileHandle); +void MapFile_UnregistAll(); +bool MapFile_QuerySymbol(u32 address, u8 *strBuf, u32 strBufSize); + +} // namespace db +} // namespace nw4r + +#endif diff --git a/include/rvl/OS/OSLink.h b/include/rvl/OS/OSLink.h index 8f6df8b0..0bc13dc3 100644 --- a/include/rvl/OS/OSLink.h +++ b/include/rvl/OS/OSLink.h @@ -105,6 +105,7 @@ BOOL OSLinkFixed(OSModuleInfo* newModule, void* bss); BOOL OSUnlink(OSModuleInfo* module); void OSSetStringTable(void* string_table); void __OSModuleInit(void); +OSModuleInfo* OSSearchModule(void* ptr, u32* section, u32* offset); #ifdef __cplusplus }; -- cgit v1.2.3