pmd-red/include/memory.h
Seth Barberee eaa141c612
Keep on keepin on (#38)
* end of may dump of work

* move save text to src

* decomp a little more
2021-05-23 16:19:35 -05:00

60 lines
1.4 KiB
C

#ifndef GUARD_MEMORY_H
#define GUARD_MEMORY_H
#define HEAP_SIZE 0x24000
struct HeapSettings
{
u8 *start;
u32 size;
};
struct HeapMemoryBlock {
u8 *start;
s32 size;
s32 allocatedSize;
};
struct HeapFreeListElement
{
u32 unk_atb;
u32 atb;
u32 grp;
struct HeapMemoryBlock block;
};
struct HeapDescriptor
{
u32 unk0;
struct HeapDescriptor *parentHeap;
struct HeapFreeListElement *freeList;
s32 freeCount;
u32 freeListLength;
u8 *start;
u32 size;
};
void InitHeap(void);
void MemoryClear8(u8 *dest, s32 size);
void MemoryClear16(u16 *dest, s32 size);
void MemoryClear32(u32 *dest, s32 size);
void MemoryFill8(u8 *dest, u8 value, s32 size);
void MemoryFill16(u16 *dest, u16 value, s32 size);
void MemoryFill32(u32 *dest, u32 value, s32 size);
void MemoryCopy8(u8 *dest, u8 *src, s32 size);
void MemoryCopy16(u16 *dest, u16 *src, s32 size);
void MemoryCopy32(u32 *dest, u32 *src, s32 size);
void MemoryCopy8(u8 *dest, u8 *src, s32 size);
void MemoryCopy16(u16 *dest, u16 *src, s32 size);
void MemoryCopy32(u32 *dest, u32 *src, s32 size);
void InitHeapInternal(void);
void DoInitHeap(struct HeapDescriptor *, struct HeapSettings *, struct HeapFreeListElement *, u32);
void InitSubHeap(struct HeapDescriptor *, struct HeapMemoryBlock *, u32);
s32 _LocateSet(struct HeapDescriptor *heap, s32 size, s32 param_3);
void *MemoryAlloc(s32 size, s32 b);
void MemoryFree(void *a);
#endif // GUARD_MEMORY_H