diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2026-04-20 13:32:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-20 10:32:24 -0700 |
| commit | fa85e7cda5de980151ab71279b6a1bf2eca9b23f (patch) | |
| tree | 0ac0d5119e4aec4f965f31fd1991232a3c437965 /include | |
| parent | ffc67c3e0adf8fbc81618299a68b52efe31dd08b (diff) | |
[n64-jp-1.1] __osMalloc.c matched (#1845)
* match osmalloc
* some names
* format
* Breakup osFree checks and move strings around
* misc changes
Diffstat (limited to 'include')
| -rw-r--r-- | include/libc64/os_malloc.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/include/libc64/os_malloc.h b/include/libc64/os_malloc.h index 78cbc233f..575529e1a 100644 --- a/include/libc64/os_malloc.h +++ b/include/libc64/os_malloc.h @@ -4,19 +4,32 @@ #include "ultra64.h" #include "stddef.h" +#include "unk.h" +#include "versions.h" + +struct Arena; + typedef struct ArenaNode { /* 0x0 */ s16 magic; // Should always be 0x7373 /* 0x2 */ s16 isFree; /* 0x4 */ size_t size; /* 0x8 */ struct ArenaNode* next; /* 0xC */ struct ArenaNode* prev; -} ArenaNode; // size = 0x10 + #if MM_VERSION <= N64_JP_1_1 + /* 0x10 */ const char* filename; + /* 0x14 */ int line; + /* 0x18 */ OSId threadId; + /* 0x1C */ struct Arena *arena; + /* 0x20 */ OSTime time; + /* 0x28 */ UNK_TYPE1 unk_28[0x8]; + #endif +} ArenaNode; // size = 0x10 N64 US, size = 0x30 N64 JP 1.1 typedef struct Arena { /* 0x00 */ ArenaNode* head; /* 0x04 */ void* start; /* 0x08 */ OSMesgQueue lock; - /* 0x20 */ u8 unk20; + /* 0x20 */ u8 allocFailures; /* 0x21 */ u8 isInit; /* 0x22 */ u8 flag; } Arena; // size = 0x24 @@ -31,4 +44,14 @@ void* __osRealloc(Arena* arena, void* ptr, size_t newSize); void __osGetSizes(Arena* arena, size_t* outMaxFree, size_t* outFree, size_t* outAlloc); s32 __osCheckArena(Arena* arena); +#if MM_VERSION <= N64_JP_1_1 +void *__osMallocDebug(Arena *arena, size_t size, const char* file, int line); +void *__osMallocRDebug(Arena *arena, size_t size, const char* file, int line); +void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line); +void *__osReallocDebug(Arena* arena, void* ptr, size_t newSize, const char* file, int line); +u8 ArenaImpl_GetAllocFailures(Arena* arena); + +extern s32 gTotalAllocFailures; +#endif + #endif |
