mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-03 10:32:19 -04:00
132db50245
* change return type of func_8000546C * try to fix submodules * update asm_processor for new ASM directives * split code_800AF8B0 into 3 files; move rodata into files/asm * move rodata into code_800AF9B0 asm funcs * decomp func_800AF9E4 * match 800AFF58 * merge in master (renamed code_800AF9B0.c to menus.c) * revert menus.c back to code_800AF9B0.c * add bss to code_800AF9B0 * rename code_800B0350.c to menus.c * remove unused ALIGN macros
108 lines
2.8 KiB
C
108 lines
2.8 KiB
C
#ifndef MEMORY_H
|
|
#define MEMORY_H
|
|
|
|
#include "types.h"
|
|
|
|
struct MainPoolBlock {
|
|
struct MainPoolBlock *prev;
|
|
struct MainPoolBlock *next;
|
|
};
|
|
|
|
struct MainPoolState {
|
|
u32 freeSpace;
|
|
struct MainPoolBlock *listHeadL;
|
|
struct MainPoolBlock *listHeadR;
|
|
struct MainPoolState *prev;
|
|
};
|
|
|
|
struct UnkStruct_802B8CD4 {
|
|
s16 unk0;
|
|
s16 unk2;
|
|
s32 unk4;
|
|
s32 unk8;
|
|
s32 fill;
|
|
};
|
|
|
|
struct AllocOnlyPool {
|
|
s32 totalSpace;
|
|
s32 usedSpace;
|
|
u8 *startPtr;
|
|
u8 *freePtr;
|
|
};
|
|
|
|
#define MEMORY_POOL_LEFT 0
|
|
#define MEMORY_POOL_RIGHT 1
|
|
|
|
#define ALIGN4(val) (((val) + 0x3) & ~0x3)
|
|
|
|
s32 func_802A7B70(s32);
|
|
uintptr_t set_segment_base_addr(s32, void*);
|
|
void *get_segment_base_addr(s32);
|
|
s32 lookup_item(u32);
|
|
void move_segment_table_to_dmem();
|
|
void func_802A7CF0(s32, s32);
|
|
s32 func_802A7D1C(s32);
|
|
void func_802A7D54(s32, s32);
|
|
s32 func_802A7D70(s32, s32);
|
|
void main_pool_init(u32, u32);
|
|
void *main_pool_alloc(u32, u32);
|
|
u32 main_pool_free(void*);
|
|
void *main_pool_realloc(void*, u32);
|
|
s32 main_pool_available();
|
|
u32 main_pool_push_state();
|
|
u32 main_pool_pop_state();
|
|
void *func_802A80B0(u8*, u8*, u8*);
|
|
void *load_segment(s32, u8*, u8*, u32);
|
|
void *func_802A8190(s32, s32);
|
|
void func_802A81EC();
|
|
struct AllocOnlyPool *alloc_only_pool_init(u32, u32);
|
|
u32 func_802A82AC(s32);
|
|
s32 func_802A82E4(u8*, u8*);
|
|
s32 func_802A8348(s32, s32, s32);
|
|
s32 func_802A841C(s32, s32, s32);
|
|
s32 func_802A84F4(s32, u32, u32);
|
|
u32 MIO0_0F(s32, u32, u32);
|
|
void func_802A8844();
|
|
void func_802A884C(Gfx*, u8, s8);
|
|
void func_802A8940(Gfx*, u8*, u8);
|
|
void func_802A89C0(Gfx*, u8, u8);
|
|
void func_802A8A04(Gfx*, u8, u8);
|
|
void func_802A8A70(Gfx*, u8, u8);
|
|
void func_802A8ADC(Gfx*, u8, u8);
|
|
void func_802A8B48(Gfx*, u8, u8);
|
|
void func_802A8BB4(Gfx*, u8, u8);
|
|
void func_802A8C20(Gfx*, u8, u8);
|
|
void func_802A8C8C(Gfx*, u8, u8);
|
|
void func_802A8CF8(Gfx*, u8, u8);
|
|
void func_802A8D64(Gfx*, u8, u8);
|
|
void func_802A8DD0(Gfx*, u8, u8);
|
|
void func_802A8E3C(Gfx*, u8, u8);
|
|
void func_802A8EA8(Gfx*, u8, u8);
|
|
void func_802A8F14(Gfx*, u8, u8);
|
|
void func_802A94D8(Gfx*, u8, u8);
|
|
void func_802A9544(Gfx*, u8, u8);
|
|
void func_802AAAAC(UnkActorInner*);
|
|
s8 func_802ABD10(u16);
|
|
s16 func_802ABD40(u16);
|
|
s16 func_802ABD7C(u16);
|
|
s16 func_802ABDB8(u16);
|
|
s16 func_802ABDF4(u16);
|
|
f32 func_802ABE30(f32, f32, f32, u16);
|
|
f32 func_802ABEAC(UnkActorInner*, Vec3f);
|
|
void process_shell_collision(Vec3f, f32, Vec3f, f32);
|
|
void func_802AC098(UnkActorInner*, Vec3f);
|
|
void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32);
|
|
void func_802ADDC8(UnkActorInner*, f32, f32, f32, f32);
|
|
f32 func_802AE1C0(f32, f32, f32);
|
|
|
|
// main.c
|
|
extern struct D_80150158 gD_80150158[];
|
|
extern s32 D_801502A0;
|
|
extern u32 D_8015F724;
|
|
extern u32 gPrevLoadedAddress;
|
|
extern u32 gHeapEndPtr;
|
|
|
|
extern u8 _other_texturesSegmentRomStart[];
|
|
|
|
#endif // MEMORY_H
|