diff options
author | nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> | 2018-11-18 16:23:57 +0800 |
---|---|---|
committer | nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> | 2018-11-20 15:04:00 +0800 |
commit | f4ef62bb4134498a4b4a9c4d61b99bda24c98680 (patch) | |
tree | bb184e0d7efe635414d277c9f442d844fd5468b4 /include/memory.h | |
parent | 961ab7ccaf4d175189cd42fcddca1336f3d91bad (diff) |
Renamed primary heap variables and partial cleanup m4a.s
Diffstat (limited to 'include/memory.h')
-rw-r--r-- | include/memory.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/memory.h b/include/memory.h new file mode 100644 index 0000000..99b03e0 --- /dev/null +++ b/include/memory.h @@ -0,0 +1,56 @@ +#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; + u32 unk4; + 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 HeapFreeListElement *, u32); + +#endif // GUARD_MEMORY_H
\ No newline at end of file |