some names

This commit is contained in:
Anghelo Carvajal 2025-08-25 17:28:08 -04:00
parent cb094cfad9
commit 71533cf8ca
3 changed files with 37 additions and 32 deletions

View File

@ -7,6 +7,8 @@
#include "unk.h"
#include "versions.h"
struct Arena;
typedef struct ArenaNode {
/* 0x0 */ s16 magic; // Should always be 0x7373
/* 0x2 */ s16 isFree;
@ -14,20 +16,20 @@ typedef struct ArenaNode {
/* 0x8 */ struct ArenaNode* next;
/* 0xC */ struct ArenaNode* prev;
#if MM_VERSION <= N64_JP_1_1
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ OSId unk_18;
/* 0x1C */ void *unk_1C;
/* 0x20 */ OSTime unk_20;
/* 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
} 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
@ -43,10 +45,13 @@ void __osGetSizes(Arena* arena, size_t* outMaxFree, size_t* outFree, size_t* out
s32 __osCheckArena(Arena* arena);
#if MM_VERSION <= N64_JP_1_1
void *__osMallocDebug(Arena *arena, size_t size, s32 arg2, s32 arg3);
void *__osMallocRDebug(Arena *arena, size_t size, s32 arg2, s32 arg3);
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

View File

@ -28,22 +28,22 @@
#else
#define SET_DEBUG_INFO(node, f, l, a) \
{ \
node->unk_10 = (f); \
node->unk_14 = (l); \
node->unk_18 = osGetThreadId(NULL); \
node->unk_1C = (a); \
node->unk_20 = osGetTime(); \
node->filename = (f); \
node->line = (l); \
node->threadId = osGetThreadId(NULL); \
node->arena = (a); \
node->time = osGetTime(); \
} (void) 0
#define CHECK_CORRECT_ARENA(node, arena) ((node)->unk_1C == (arena))
#define CHECK_CORRECT_ARENA(node, arena) ((node)->arena == (arena))
s32 D_800984A0_unknown = 0;
s32 gTotalAllocFailures = 0; // "Arena_failcnt"
#define CHECK_ALLOC_FAILURE(arena, ptr) \
do { \
if ((ptr) == NULL) { \
D_800984A0_unknown++; \
(arena)->unk20++; \
gTotalAllocFailures++; \
(arena)->allocFailures++; \
} \
} while (0)
#endif
@ -157,7 +157,7 @@ u8 __osMallocIsInitialized(Arena* arena) {
}
#if MM_VERSION <= N64_JP_1_1
void *__osMallocDebug(Arena *arena, size_t size, s32 arg2, s32 arg3) {
void *__osMallocDebug(Arena *arena, size_t size, const char* file, int line) {
ArenaNode *iter;
ArenaNode *newNode;
void *alloc = NULL;
@ -191,7 +191,7 @@ void *__osMallocDebug(Arena *arena, size_t size, s32 arg2, s32 arg3) {
iter->isFree = false;
SET_DEBUG_INFO(iter, arg2, arg3, arena);
SET_DEBUG_INFO(iter, file, line, arena);
alloc = (void*)((uintptr_t)iter + sizeof(ArenaNode));
break;
@ -204,8 +204,10 @@ void *__osMallocDebug(Arena *arena, size_t size, s32 arg2, s32 arg3) {
return alloc;
}
#endif
void *__osMallocRDebug(Arena *arena, size_t size, s32 arg2, s32 arg3) {
#if MM_VERSION <= N64_JP_1_1
void *__osMallocRDebug(Arena *arena, size_t size, const char* file, int line) {
ArenaNode *iter;
ArenaNode *newNode;
size_t blockSize;
@ -240,7 +242,7 @@ void *__osMallocRDebug(Arena *arena, size_t size, s32 arg2, s32 arg3) {
iter->isFree = false;
SET_DEBUG_INFO(iter, arg2, arg3, arena);
SET_DEBUG_INFO(iter, file, line, arena);
alloc = (void*)((uintptr_t)iter + sizeof(ArenaNode));
break;
@ -309,7 +311,7 @@ void* __osMalloc(Arena* arena, size_t size) {
iter->isFree = false;
SET_DEBUG_INFO(iter, 0, 0, arena);
SET_DEBUG_INFO(iter, NULL, 0, arena);
alloc = (void*)((uintptr_t)iter + sizeof(ArenaNode));
break;
@ -379,7 +381,7 @@ void* __osMallocR(Arena* arena, size_t size) {
iter->isFree = false;
SET_DEBUG_INFO(iter, 0, 0, arena);
SET_DEBUG_INFO(iter, NULL, 0, arena);
alloc = (void*)((uintptr_t)iter + sizeof(ArenaNode));
break;
@ -427,7 +429,7 @@ void __osFree(Arena* arena, void* ptr) {
prev = node->prev;
node->isFree = true;
SET_DEBUG_INFO(node, 0, 0, arena);
SET_DEBUG_INFO(node, NULL, 0, arena);
// Checks if the next node is contiguous to the current node and if it isn't currently allocated. Then merge the
// two nodes into one.
@ -459,9 +461,8 @@ void __osFree(Arena* arena, void* ptr) {
ArenaImpl_Unlock(arena);
}
// TODO
#if MM_VERSION <= N64_JP_1_1
void __osFreeDebug(Arena* arena, void* ptr, s32 arg2, s32 arg3) {
void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line) {
ArenaNode* node;
ArenaNode* next;
ArenaNode* prev;
@ -482,7 +483,7 @@ void __osFreeDebug(Arena* arena, void* ptr, s32 arg2, s32 arg3) {
prev = node->prev;
node->isFree = true;
SET_DEBUG_INFO(node, arg2, arg3, arena);
SET_DEBUG_INFO(node, file, line, arena);
// Checks if the next node is contiguous to the current node and if it isn't currently allocated. Then merge the
// two nodes into one.
@ -674,6 +675,6 @@ s32 __osCheckArena(Arena* arena) {
#if MM_VERSION <= N64_JP_1_1
u8 ArenaImpl_GetAllocFailures(Arena* arena) {
return arena->unk20;
return arena->allocFailures;
}
#endif

View File

@ -40,8 +40,7 @@ qNaN0x10000 = 0x80098484; // type:f32 size:0x4
sNaN0x3FFFFF = 0x80098488; // size:0x4
D_8009848C_unknown = 0x8009848C;
sRandInt = 0x80098490; // size:0x4
D_80098494_unknown = 0x80098494;
D_800984A0_unknown = 0x800984A0;
gTotalAllocFailures = 0x800984A0; // size:0x4
osViModeNtscHpf1 = 0x800984B0; // size:0x50
osViModePalLan1 = 0x80098500; // size:0x50
D_80098550_unknown = 0x80098550; // type:s16