diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-08-10 05:15:50 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-10 05:15:50 -0400 |
commit | 9e969601456fb0ef392910d505e0e0673a902bd3 (patch) | |
tree | af8fdeb1c6cdf9cd8584f0d693a4049bfc408b9d /include/memory.h | |
parent | 250a331df9dbd312d572aaf0d629503417cfc9d4 (diff) | |
parent | ba6f243c728de5d5c024aeb177026bcc59909e2e (diff) |
Merge pull request #4 from nullableVoidPtr/master
Overhaul
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..4b1e587 --- /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; + 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); + +#endif // GUARD_MEMORY_H |