summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2026-04-20 13:32:24 -0400
committerGitHub <noreply@github.com>2026-04-20 10:32:24 -0700
commitfa85e7cda5de980151ab71279b6a1bf2eca9b23f (patch)
tree0ac0d5119e4aec4f965f31fd1991232a3c437965 /include
parentffc67c3e0adf8fbc81618299a68b52efe31dd08b (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.h27
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