summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-11-01 14:45:06 -0700
committerYamaArashi <shadow962@live.com>2016-11-01 14:45:06 -0700
commitf71ceb29b4a98a487cb1a8c0c07d53605bf64e7c (patch)
tree958eaf1ca684a1a6c80763180b82d9c65659bb95
parent532cff43fbafef94a34d4fed1e7d4d9761f9e7e9 (diff)
define variables in mallo.c
-rw-r--r--src/malloc.c26
-rw-r--r--sym_bss.txt7
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