mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 22:44:30 +00:00
Match retail __osMalloc.c (#1684)
* Match retail __osMalloc.c * Add TODO about N64 ArenaNode debug info * FLAG prefix -> FLAG suffix
This commit is contained in:
parent
5785c7adfb
commit
d9a1148d13
3 changed files with 173 additions and 138 deletions
|
@ -1786,45 +1786,23 @@ void Rand_Seed_Variable(u32* rndNum, u32 seed);
|
|||
u32 Rand_Next_Variable(u32* rndNum);
|
||||
f32 Rand_ZeroOne_Variable(u32* rndNum);
|
||||
f32 Rand_Centered_Variable(u32* rndNum);
|
||||
u32 ArenaImpl_GetFillAllocBlock(Arena* arena);
|
||||
u32 ArenaImpl_GetFillFreeBlock(Arena* arena);
|
||||
u32 ArenaImpl_GetCheckFreeBlock(Arena* arena);
|
||||
void ArenaImpl_SetFillAllocBlock(Arena* arena);
|
||||
void ArenaImpl_SetFillFreeBlock(Arena* arena);
|
||||
void ArenaImpl_SetCheckFreeBlock(Arena* arena);
|
||||
void ArenaImpl_UnsetFillAllocBlock(Arena* arena);
|
||||
void ArenaImpl_UnsetFillFreeBlock(Arena* arena);
|
||||
void ArenaImpl_UnsetCheckFreeBlock(Arena* arena);
|
||||
void ArenaImpl_SetDebugInfo(ArenaNode* node, const char* file, s32 line, Arena* arena);
|
||||
void ArenaImpl_LockInit(Arena* arena);
|
||||
void ArenaImpl_Lock(Arena* arena);
|
||||
void ArenaImpl_Unlock(Arena* arena);
|
||||
ArenaNode* ArenaImpl_GetNextBlock(ArenaNode* node);
|
||||
ArenaNode* ArenaImpl_GetPrevBlock(ArenaNode* node);
|
||||
ArenaNode* ArenaImpl_GetLastBlock(Arena* arena);
|
||||
void __osMallocInit(Arena* arena, void* start, u32 size);
|
||||
void __osMallocAddBlock(Arena* arena, void* start, s32 size);
|
||||
void ArenaImpl_RemoveAllBlocks(Arena* arena);
|
||||
void __osMallocCleanup(Arena* arena);
|
||||
u8 __osMallocIsInitialized(Arena* arena);
|
||||
void __osMalloc_FreeBlockTest(Arena* arena, ArenaNode* node);
|
||||
void* __osMalloc_NoLockDebug(Arena* arena, u32 size, const char* file, s32 line);
|
||||
void* __osMallocDebug(Arena* arena, u32 size, const char* file, s32 line);
|
||||
void* __osMallocRDebug(Arena* arena, u32 size, const char* file, s32 line);
|
||||
void* __osMalloc_NoLock(Arena* arena, u32 size);
|
||||
void* __osMalloc(Arena* arena, u32 size);
|
||||
void* __osMallocR(Arena* arena, u32 size);
|
||||
void __osFree_NoLock(Arena* arena, void* ptr);
|
||||
void __osFree(Arena* arena, void* ptr);
|
||||
void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line);
|
||||
void __osFreeDebug(Arena* arena, void* ptr, const char* file, s32 line);
|
||||
void* __osRealloc(Arena* arena, void* ptr, u32 newSize);
|
||||
void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, s32 line);
|
||||
void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAlloc);
|
||||
void __osDisplayArena(Arena* arena);
|
||||
void ArenaImpl_FaultClient(Arena* arena);
|
||||
u32 __osCheckArena(Arena* arena);
|
||||
u8 func_800FF334(Arena* arena);
|
||||
#if OOT_DEBUG
|
||||
void* __osMallocDebug(Arena* arena, u32 size, const char* file, s32 line);
|
||||
void* __osMallocRDebug(Arena* arena, u32 size, const char* file, s32 line);
|
||||
void __osFreeDebug(Arena* arena, void* ptr, const char* file, s32 line);
|
||||
void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, s32 line);
|
||||
void __osDisplayArena(Arena* arena);
|
||||
#endif
|
||||
s32 PrintUtils_VPrintf(PrintCallback* pfn, const char* fmt, va_list args);
|
||||
s32 PrintUtils_Printf(PrintCallback* pfn, const char* fmt, ...);
|
||||
void Sleep_Cycles(OSTime cycles);
|
||||
|
|
|
@ -704,7 +704,7 @@ typedef struct Arena {
|
|||
/* 0x00 */ struct ArenaNode* head;
|
||||
/* 0x04 */ void* start;
|
||||
/* 0x08 */ OSMesgQueue lockQueue;
|
||||
/* 0x20 */ u8 unk_20;
|
||||
/* 0x20 */ u8 allocFailures; // only used in non-debug builds
|
||||
/* 0x21 */ u8 isInit;
|
||||
/* 0x22 */ u8 flag;
|
||||
} Arena; // size = 0x24
|
||||
|
@ -715,12 +715,14 @@ typedef struct ArenaNode {
|
|||
/* 0x04 */ u32 size;
|
||||
/* 0x08 */ struct ArenaNode* next;
|
||||
/* 0x0C */ struct ArenaNode* prev;
|
||||
#if OOT_DEBUG // TODO: This debug info is also present in N64 retail builds
|
||||
/* 0x10 */ const char* filename;
|
||||
/* 0x14 */ s32 line;
|
||||
/* 0x18 */ OSId threadId;
|
||||
/* 0x1C */ Arena* arena;
|
||||
/* 0x20 */ OSTime time;
|
||||
/* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding
|
||||
#endif
|
||||
} ArenaNode; // size = 0x30
|
||||
|
||||
/* Relocation entry field getters */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue