diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 14:45:06 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 14:45:06 -0700 |
commit | f71ceb29b4a98a487cb1a8c0c07d53605bf64e7c (patch) | |
tree | 958eaf1ca684a1a6c80763180b82d9c65659bb95 | |
parent | 532cff43fbafef94a34d4fed1e7d4d9761f9e7e9 (diff) |
define variables in mallo.c
-rw-r--r-- | src/malloc.c | 26 | ||||
-rw-r--r-- | sym_bss.txt | 7 |
2 files changed, 15 insertions, 18 deletions
diff --git a/src/malloc.c b/src/malloc.c index c93e096c2..fd9dc616a 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -1,7 +1,7 @@ #include "global.h" -extern void *gHeapStart; -extern u32 gHeapSize; +static void *sHeapStart; +static u32 sHeapSize; #define MALLOC_SYSTEM_ID 0xA3A3 @@ -15,10 +15,10 @@ struct MemBlock { // Size of the block (not including this header struct). u32 size; - // Previous block pointer. Equals gHeapStart if this is the first block. + // Previous block pointer. Equals sHeapStart if this is the first block. struct MemBlock *prev; - // Next block pointer. Equals gHeapStart if this is the last block. + // Next block pointer. Equals sHeapStart if this is the last block. struct MemBlock *next; // Data in the memory block. (Arrays of length 0 are a GNU extension.) @@ -169,40 +169,40 @@ bool32 CheckMemBlockInternal(void *heapStart, void *pointer) void InitHeap(void *heapStart, u32 heapSize) { - gHeapStart = heapStart; - gHeapSize = heapSize; + sHeapStart = heapStart; + sHeapSize = heapSize; PutFirstMemBlockHeader(heapStart, heapSize); } void *Alloc(u32 size) { - AllocInternal(gHeapStart, size); + AllocInternal(sHeapStart, size); } void *AllocZeroed(u32 size) { - AllocZeroedInternal(gHeapStart, size); + AllocZeroedInternal(sHeapStart, size); } void Free(void *pointer) { - FreeInternal(gHeapStart, pointer); + FreeInternal(sHeapStart, pointer); } bool32 CheckMemBlock(void *pointer) { - return CheckMemBlockInternal(gHeapStart, pointer); + return CheckMemBlockInternal(sHeapStart, pointer); } bool32 CheckHeap() { - struct MemBlock *pos = (struct MemBlock *)gHeapStart; + struct MemBlock *pos = (struct MemBlock *)sHeapStart; do { - if (!CheckMemBlockInternal(gHeapStart, pos->data)) + if (!CheckMemBlockInternal(sHeapStart, pos->data)) return FALSE; pos = pos->next; - } while (pos != (struct MemBlock *)gHeapStart); + } while (pos != (struct MemBlock *)sHeapStart); return TRUE; } diff --git a/sym_bss.txt b/sym_bss.txt index 99c33b586..a681835f3 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -1,12 +1,9 @@ gUnknown_03000000: @ 3000000 .space 0x4 -gHeapStart: @ 3000004 - .space 0x4 - -gHeapSize: @ 3000008 - .space 0x8 + .include "src/malloc.o" + .align 4 gDma3Requests: @ 3000010 .space 0xC |