mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
match m_malloc
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
sys_vimgr.c:
|
||||
.text: [0x803703F8, 0x80370418]
|
||||
#m_malloc.c: #can't find zelda_arena
|
||||
# .text: [0x803BC510, 0x803BC70C]
|
||||
# .bss: [0x81297CA0, 0x81297CD0]
|
||||
m_room_type/mRmTp_FtrItemNo2FtrIdx.c:
|
||||
.text: [0x803E7878, 0x803E78BC]
|
||||
#m_time.c: # unlinked until function callers that reorder local static variables are implemented.
|
||||
|
||||
+2
-1
@@ -52430,7 +52430,6 @@ global:
|
||||
0x81297A68: l_mEnv_electric_light
|
||||
0x81297B10: S_get_light_list
|
||||
0x81297B18: light_list_buf
|
||||
0x81297CA0: zelda_arena
|
||||
0x81297D28: l_ml_mail
|
||||
0x81297E80: Msg_table_rom_start
|
||||
0x81297E84: Msg_rom_start
|
||||
@@ -58166,6 +58165,8 @@ rel/dataobject.obj:
|
||||
0x81106D80: rom_train_3_pal
|
||||
rel/irqmgr.c:
|
||||
0x812F357C: this
|
||||
rel/m_malloc.c:
|
||||
0x81297CA0: zelda_arena
|
||||
foresta.rel:
|
||||
0x80641254: _ctors
|
||||
0x80641258: _dtors
|
||||
|
||||
@@ -32,11 +32,36 @@ typedef struct ArenaNode {
|
||||
/* 0x28 */ u8 unk_28[0x30-0x28]; // probably padding
|
||||
} ArenaNode; // size = 0x30
|
||||
|
||||
void* __osMalloc(Arena*, size_t);
|
||||
void __osFree(Arena*, void*);
|
||||
void __osDisplayArena(Arena*);
|
||||
void __osGetFreeArena(Arena*, u32*, u32*, u32*);
|
||||
void setDebugInfo(ArenaNode*, const char*, s32, Arena*);
|
||||
void arena_lock_init(Arena*);
|
||||
void arena_lock(Arena*);
|
||||
void arena_unlock(Arena*);
|
||||
ArenaNode* get_block_next(ArenaNode*);
|
||||
ArenaNode* get_block_prev(ArenaNode*);
|
||||
ArenaNode* search_last_block(Arena*);
|
||||
void __osMallocInit(Arena*, void*, u32);
|
||||
void __osMallocAddBlock(Arena*, void*, s32);
|
||||
void destroy_all_block(Arena*);
|
||||
void __osMallocCleanup(Arena*);
|
||||
BOOL __osMallocIsInitialized(Arena*);
|
||||
void __osMalloc_FreeBlockTest(Arena*, ArenaNode*);
|
||||
void* __osMallocALign_NoLock(Arena*, u32, u32);
|
||||
void* __osMalloc_NoLock(Arena*, u32);
|
||||
void* __osMallocAlign(Arena*, u32, u32);
|
||||
void* __osMalloc(Arena*, u32);
|
||||
void* __osMallocR(Arena*, u32);
|
||||
void __osFree_NoLock(Arena*, void*);
|
||||
void __osFree(Arena*, void*);
|
||||
void* __osRealloc(Arena*, void*, u32);
|
||||
int __osAnalayzeArena(Arena*, u32*);
|
||||
void __osGetFreeArena(Arena*, u32*, u32*, u32*);
|
||||
u32 __osGetTotalFreeSize(Arena*);
|
||||
u32 __osGetFreeSize(Arena*);
|
||||
u32 __osGetMemBlockSize(Arena*, void*);
|
||||
void __osDisplayArena(Arena*);
|
||||
int __osCheckArena(Arena*);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef M_MALLOC_H
|
||||
#define M_MALLOC_H
|
||||
#include "libc64/__osMalloc.h"
|
||||
|
||||
extern Arena zelda_arena;
|
||||
|
||||
|
||||
void zelda_malloc_align(u32,u32);
|
||||
void zelda_malloc(u32);
|
||||
void zelda_malloc_r(u32);
|
||||
void zelda_free(void*);
|
||||
void zelda_GetFreeArena(u32*,u32*,u32*);
|
||||
u32 zelda_GetTotalFreeSize(void);
|
||||
u32 zelda_GetMemBlockSize(void*);
|
||||
void zelda_InitArena(void*, u32);
|
||||
void zelda_AddBlockArena(void*, u32);
|
||||
void zelda_CleanupArena(void);
|
||||
void zelda_MallocIsInitialized(void);
|
||||
#endif
|
||||
@@ -0,0 +1,46 @@
|
||||
#include "m_malloc.h"
|
||||
|
||||
extern Arena zelda_arena;
|
||||
|
||||
void zelda_malloc_align(u32 size, u32 align){
|
||||
__osMallocAlign(&zelda_arena, size, align);
|
||||
}
|
||||
|
||||
void zelda_malloc(u32 size){
|
||||
__osMalloc(&zelda_arena,size);
|
||||
}
|
||||
|
||||
void zelda_malloc_r(u32 size){
|
||||
__osMallocR(&zelda_arena, size);
|
||||
}
|
||||
|
||||
void zelda_free(void* ptr){
|
||||
__osFree(&zelda_arena, ptr);
|
||||
}
|
||||
|
||||
void zelda_GetFreeArena(size_t* max, size_t* free, size_t* alloc){
|
||||
__osGetFreeArena(&zelda_arena,max,free,alloc);
|
||||
}
|
||||
|
||||
size_t zelda_GetTotalFreeSize(void){
|
||||
return __osGetTotalFreeSize(&zelda_arena);
|
||||
}
|
||||
|
||||
size_t zelda_GetMemBlockSize(void* ptr){
|
||||
return __osGetMemBlockSize(&zelda_arena, ptr);
|
||||
}
|
||||
|
||||
void zelda_InitArena(void* start, u32 size){
|
||||
__osMallocInit(&zelda_arena, start, size);
|
||||
}
|
||||
void zelda_AddBlockArena(void* start, u32 size){
|
||||
__osMallocAddBlock(&zelda_arena,start, size);
|
||||
}
|
||||
|
||||
void zelda_CleanupArena(void){
|
||||
__osMallocCleanup(&zelda_arena);
|
||||
}
|
||||
|
||||
void zelda_MallocIsInitalized(void){
|
||||
__osMallocIsInitalized(&zelda_arena);
|
||||
}
|
||||
Reference in New Issue
Block a user