diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2023-08-09 20:45:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-09 20:45:25 -0400 |
| commit | cfa703f013a1e595a418e47ac05df06e9ae4f9b8 (patch) | |
| tree | 6f22ff1f665ac5dfd8f62b321895f846af4bfab5 /src/boot | |
| parent | bd0c96e41818de39d243604f2a56bdee779956f2 (diff) | |
`malloc.c` (#42)
* malloc
* match
* bss
* Fix naming
* move __osMalloc to libc64 folder
* move headers to libc64 folder
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/libc64/__osMalloc.c (renamed from src/boot/O2/__osMalloc.c) | 2 | ||||
| -rw-r--r-- | src/boot/libc64/malloc.c | 51 | ||||
| -rw-r--r-- | src/boot/ovlmgr.c | 2 |
3 files changed, 53 insertions, 2 deletions
diff --git a/src/boot/O2/__osMalloc.c b/src/boot/libc64/__osMalloc.c index e30509e..3a4ae94 100644 --- a/src/boot/O2/__osMalloc.c +++ b/src/boot/libc64/__osMalloc.c @@ -1,4 +1,4 @@ -#include "osmalloc.h" +#include "libc64/osmalloc.h" #include "alignment.h" #include "boot_functions.h" #include "fault.h" diff --git a/src/boot/libc64/malloc.c b/src/boot/libc64/malloc.c new file mode 100644 index 0000000..c079153 --- /dev/null +++ b/src/boot/libc64/malloc.c @@ -0,0 +1,51 @@ +#include "libc64/malloc.h" +#include "libc64/osmalloc.h" + +Arena malloc_arena; + +void* malloc(size_t size) { + return __osMalloc(&malloc_arena, size); +} + +void* malloc_r(size_t size) { + return __osMallocR(&malloc_arena, size); +} + +void* realloc(void* ptr, size_t size) { + return __osRealloc(&malloc_arena, ptr, size); +} + +void free(void* ptr) { + __osFree(&malloc_arena, ptr); +} + +void* calloc(s32 num, size_t size) { + void* ptr; + u32 n = num * size; + + ptr = __osMalloc(&malloc_arena, n); + if (ptr != NULL) { + bzero(ptr, n); + } + return ptr; +} + +void GetFreeArena(size_t* outMaxFree, size_t* outFree, size_t* outAlloc) { + __osGetFreeArena(&malloc_arena, outMaxFree, outFree, outAlloc); +} + +s32 CheckArena(void) { + return __osCheckArena(&malloc_arena); +} + +void MallocInit(void* heap, size_t size) { + __osMallocInit(&malloc_arena, heap, size); +} + +void MallocCleanup(void) { + __osMallocCleanup(&malloc_arena); +} + +s32 MallocIsInitialized(void) { + return __osMallocIsInitalized(&malloc_arena); +} diff --git a/src/boot/ovlmgr.c b/src/boot/ovlmgr.c index 3d53ba4..5963228 100644 --- a/src/boot/ovlmgr.c +++ b/src/boot/ovlmgr.c @@ -3,7 +3,7 @@ #include "attributes.h" #include "fault.h" #include "loadfragment.h" -#include "malloc.h" +#include "libc64/malloc.h" #include "m_malloc.h" #include "sprintf.h" #include "z_std_dma.h" |
