Mario Kart 64
memory.h
Go to the documentation of this file.
1 #ifndef MEMORY_H
2 #define MEMORY_H
3 
4 #include "types.h"
5 
6 struct MainPoolBlock {
7  struct MainPoolBlock *prev;
8  struct MainPoolBlock *next;
9 };
10 
11 struct MainPoolState {
16 };
17 
21 };
22 
29 };
30 
31 struct AllocOnlyPool {
36 };
37 
38 #define MEMORY_POOL_LEFT 0
39 #define MEMORY_POOL_RIGHT 1
40 
41 #define ALIGN4(val) (((val) + 0x3) & ~0x3)
42 
43 extern f32 vtxStretchY;
44 
46 uintptr_t set_segment_base_addr(s32, void*);
48 void *segmented_to_virtual(const void *);
50 void initialize_memory_pool(uintptr_t, uintptr_t);
51 void *decompress_segments(u8*, u8*);
52 void *allocate_memory(u32);
53 void *load_data(uintptr_t, uintptr_t);
54 void func_802A7D54(s32, s32);
55 
56 void main_pool_init(u32, u32);
57 void *main_pool_alloc(u32, u32);
58 u32 main_pool_free(void*);
59 void *main_pool_realloc(void*, u32);
63 void *func_802A80B0(u8*, u8*, u8*);
64 void func_802A81EC(void);
69 u32 MIO0_0F(u8*, u32, u32);
70 void func_802A8844(void);
71 void unpack_lights(Gfx*, u8*, s8);
72 void unpack_displaylist(Gfx*, u8*, s8);
77 void unpack_combine_mode1(Gfx*, u8*, u32);
78 void unpack_combine_mode2(Gfx*, u8*, u32);
80 void unpack_combine_mode4(Gfx*, u8*, u32);
81 void unpack_combine_mode5(Gfx*, u8*, u32);
87 void unpack_tile_sync(Gfx*, u8*, s8);
88 void unpack_tile_load_sync(Gfx*, u8*, s8);
89 void unpack_texture_on(Gfx*, u8*, s8);
90 void unpack_texture_off(Gfx*, u8*, s8);
92 
94 
95 #endif // MEMORY_H
void * get_next_available_memory_addr(u32)
Returns the address of the next available memory location and updates the memory pointer to reference...
Definition: memory.c:35
void main_pool_init(u32, u32)
Definition: memory.c:132
void * allocate_memory(u32)
Allocates memory and adjusts gFreeMemorySize.
Definition: memory.c:102
void unpack_lights(Gfx *, u8 *, s8)
void * main_pool_realloc(void *, u32)
Definition: memory.c:202
void func_802A8844(void)
Definition: memory.c:474
u32 MIO0_0F(u8 *, u32, u32)
Definition: memory.c:397
void * main_pool_alloc(u32, u32)
Definition: memory.c:151
void unpack_render_mode_tex_edge(Gfx *, u8 *, u32)
uintptr_t set_segment_base_addr(s32, void *)
Stores the physical memory addr for segmented memory in gSegmentTable using the segment number as an ...
Definition: memory.c:53
void unpack_render_mode_opaque_decal(Gfx *, u8 *, u32)
void * segmented_to_virtual(const void *)
converts an RSP segment + offset address to a normal memory address
Definition: memory.c:69
void * get_segment_base_addr(s32)
Returns the physical memory location of a segment.
Definition: memory.c:62
void unpack_texture_on(Gfx *, u8 *, s8)
u32 func_802A82AC(s32)
Definition: memory.c:318
void func_802A81EC(void)
Definition: memory.c:285
void initialize_memory_pool(uintptr_t, uintptr_t)
Sets the starting location for allocating memory and calculates pool size.
Definition: memory.c:89
u8 _other_texturesSegmentRomStart[]
void unpack_combine_mode5(Gfx *, u8 *, u32)
void * decompress_segments(u8 *, u8 *)
Definition: memory.c:1302
s32 main_pool_available(void)
Definition: memory.c:213
void unpack_tile_sync(Gfx *, u8 *, s8)
Definition: memory.c:605
void * func_802A80B0(u8 *, u8 *, u8 *)
Definition: memory.c:243
u8 * load_course(s32)
Loads & DMAs course data. Vtx, textures, displaylists, etc.
Definition: memory.c:1324
void unpack_render_mode_opaque(Gfx *, u8 *, u32)
void unpack_set_geometry_mode(Gfx *, u8 *, s8)
void move_segment_table_to_dmem(void)
Definition: memory.c:76
void unpack_clear_geometry_mode(Gfx *, u8 *, s8)
u8 * dma_textures(u8 *, u32, u32)
void unpack_render_mode_translucent(Gfx *, u8 *, u32)
u32 main_pool_pop_state(void)
Definition: memory.c:235
u32 main_pool_push_state(void)
Definition: memory.c:217
void unpack_render_mode_translucent_decal(Gfx *, u8 *, u32)
void unpack_texture_off(Gfx *, u8 *, s8)
void unpack_combine_mode_shade(Gfx *, u8 *, u32)
void unpack_combine_mode2(Gfx *, u8 *, u32)
void unpack_end_displaylist(Gfx *, u8 *, s8)
struct AllocOnlyPool * alloc_only_pool_init(u32, u32)
Definition: memory.c:302
void * load_data(uintptr_t, uintptr_t)
Allocate and DMA.
Definition: memory.c:121
s32 func_802A8348(s32, s32, s32)
Definition: memory.c:346
void unpack_combine_mode1(Gfx *, u8 *, u32)
void unpack_cull_displaylist(Gfx *, u8 *, s8)
f32 vtxStretchY
Definition: code_800029B0.c:64
void func_802A7D54(s32, s32)
Definition: memory.c:113
u32 main_pool_free(void *)
Definition: memory.c:180
void unpack_combine_mode4(Gfx *, u8 *, u32)
void unpack_tile_load_sync(Gfx *, u8 *, s8)
Definition: memory.c:702
void unpack_displaylist(Gfx *, u8 *, s8)
Definition: memory.h:31
u8 * startPtr
Definition: memory.h:34
s32 usedSpace
Definition: memory.h:33
s32 totalSpace
Definition: memory.h:32
u8 * freePtr
Definition: memory.h:35
Definition: memory.h:6
struct MainPoolBlock * prev
Definition: memory.h:7
struct MainPoolBlock * next
Definition: memory.h:8
Definition: memory.h:11
struct MainPoolState * prev
Definition: memory.h:15
u32 freeSpace
Definition: memory.h:12
struct MainPoolBlock * listHeadL
Definition: memory.h:13
struct MainPoolBlock * listHeadR
Definition: memory.h:14
Definition: memory.h:18
s32 unk0
Definition: memory.h:19
s32 unk4
Definition: memory.h:20
Definition: memory.h:23
s32 fill
Definition: memory.h:28
s16 unk2
Definition: memory.h:25
s32 unk8
Definition: memory.h:27
s32 unk4
Definition: memory.h:26
s16 unk0
Definition: memory.h:24
signed int s32
Definition: ultratypes.h:15
unsigned int u32
Definition: ultratypes.h:16
signed char s8
Definition: ultratypes.h:11
signed short int s16
Definition: ultratypes.h:13
float f32
Definition: ultratypes.h:32
unsigned char u8
Definition: ultratypes.h:12