SSBM Decomp
Loading...
Searching...
No Matches
objalloc.h
Go to the documentation of this file.
1#ifndef _objalloc_h_
2#define _objalloc_h_
3
4#include <platform.h>
5
6#include "baselib/debug.h"
7
8typedef struct _objheap {
13} objheap;
14
15typedef struct _HSD_ObjAllocLink {
16 struct _HSD_ObjAllocLink* next;
18
33STATIC_ASSERT(sizeof(struct _HSD_ObjAllocData) == 0x2C);
34
36{
37 HSD_ASSERT(205, data);
38 return data->used;
39}
40
42{
43 HSD_ASSERT(221, data);
44 return data->free;
45}
46
48{
49 HSD_ASSERT(237, data);
50 return data->peak;
51}
52
54 u32 num_limit)
55{
56 HSD_ASSERT(251, data);
57 data->num_limit = num_limit;
58}
59
61{
62 HSD_ASSERT(278, data);
63 data->num_limit_flag = 1;
64}
65
67{
68 HSD_ASSERT(291, data);
69 data->num_limit_flag = 0;
70}
71
72void HSD_ObjSetHeap(u32 size, void* ptr);
75void HSD_ObjFree(HSD_ObjAllocData* data, void* obj);
76void _HSD_ObjAllocForgetMemory(void* low, void* high);
77void HSD_ObjAllocInit(HSD_ObjAllocData* data, size_t size, u32 align);
78
79#endif
unsigned long u32
Definition types.h:9
signed long s32
Definition hsd_3B2B.h:1
#define HSD_ASSERT(line, cond)
Definition mnvibration.c:7
s32 HSD_ObjAllocAddFree(HSD_ObjAllocData *data, u32 num)
Definition objalloc.c:21
void HSD_ObjFree(HSD_ObjAllocData *data, void *obj)
Definition objalloc.c:119
static void HSD_ObjAllocSetNumLimit(HSD_ObjAllocData *data, u32 num_limit)
Definition objalloc.h:53
void * HSD_ObjAlloc(HSD_ObjAllocData *data)
Definition objalloc.c:71
void HSD_ObjSetHeap(u32 size, void *ptr)
Definition objalloc.c:13
void HSD_ObjAllocInit(HSD_ObjAllocData *data, size_t size, u32 align)
Definition objalloc.c:140
static void HSD_ObjAllocEnableNumLimit(HSD_ObjAllocData *data)
Definition objalloc.h:60
static u32 HSD_ObjAllocGetUsing(HSD_ObjAllocData *data)
Definition objalloc.h:35
void _HSD_ObjAllocForgetMemory(void *low, void *high)
Definition objalloc.c:158
static u32 HSD_ObjAllocGetPeak(HSD_ObjAllocData *data)
Definition objalloc.h:47
static u32 HSD_ObjAllocGetFreed(HSD_ObjAllocData *data)
Definition objalloc.h:41
static void HSD_ObjAllocDisableNumLimit(HSD_ObjAllocData *data)
Definition objalloc.h:66
#define STATIC_ASSERT(cond)
Definition platform.h:132
void * obj
Definition pobj.c:42
Definition objalloc.h:19
u32 num_limit_flag
Definition objalloc.h:20
u32 heap_limit_size
Definition objalloc.h:27
u32 heap_limit_flag
Definition objalloc.h:21
u32 free
Definition objalloc.h:24
u32 align
Definition objalloc.h:30
u32 num_limit
Definition objalloc.h:26
u32 used
Definition objalloc.h:23
u32 size
Definition objalloc.h:29
HSD_ObjAllocLink * freehead
Definition objalloc.h:22
struct _HSD_ObjAllocData * next
Definition objalloc.h:31
u32 peak
Definition objalloc.h:25
u32 heap_limit_num
Definition objalloc.h:28
Definition objalloc.h:8
u32 top
Definition objalloc.h:9
u32 curr
Definition objalloc.h:10
u32 remain
Definition objalloc.h:12
u32 size
Definition objalloc.h:11