summaryrefslogtreecommitdiff
path: root/src/boot/O2/system_malloc.c
diff options
context:
space:
mode:
authorDerek Hensley <hensley.derek58@gmail.com>2023-09-11 17:38:31 -0700
committerGitHub <noreply@github.com>2023-09-12 10:38:31 +1000
commit190b78549e0fa1a801786e73d914185e1fbca2a6 (patch)
treebc62310b90bbd59005ef01873ca4a007d8c8ef31 /src/boot/O2/system_malloc.c
parent39523baf8c52d59b8ca52832c22e70eadf518f8a (diff)
Non libultra Boot Cleanup (#1370)
* reorganize * math64 * rcp_utils * osSyncPrintfUnused * comment spacing
Diffstat (limited to 'src/boot/O2/system_malloc.c')
-rw-r--r--src/boot/O2/system_malloc.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/boot/O2/system_malloc.c b/src/boot/O2/system_malloc.c
new file mode 100644
index 000000000..cea017b38
--- /dev/null
+++ b/src/boot/O2/system_malloc.c
@@ -0,0 +1,51 @@
+#include "global.h"
+#include "os_malloc.h"
+
+Arena gSystemArena;
+
+void* SystemArena_Malloc(size_t size) {
+ return __osMalloc(&gSystemArena, size);
+}
+
+void* SystemArena_MallocR(size_t size) {
+ return __osMallocR(&gSystemArena, size);
+}
+
+void* SystemArena_Realloc(void* oldPtr, size_t newSize) {
+ return __osRealloc(&gSystemArena, oldPtr, newSize);
+}
+
+void SystemArena_Free(void* ptr) {
+ __osFree(&gSystemArena, ptr);
+}
+
+void* SystemArena_Calloc(u32 elements, size_t size) {
+ void* ptr;
+ size_t totalSize = elements * size;
+
+ ptr = __osMalloc(&gSystemArena, totalSize);
+ if (ptr != NULL) {
+ bzero(ptr, totalSize);
+ }
+ return ptr;
+}
+
+void SystemArena_GetSizes(size_t* maxFreeBlock, size_t* bytesFree, size_t* bytesAllocated) {
+ __osGetSizes(&gSystemArena, maxFreeBlock, bytesFree, bytesAllocated);
+}
+
+u32 SystemArena_CheckArena(void) {
+ return __osCheckArena(&gSystemArena);
+}
+
+void SystemArena_Init(void* start, size_t size) {
+ __osMallocInit(&gSystemArena, start, size);
+}
+
+void SystemArena_Cleanup(void) {
+ __osMallocCleanup(&gSystemArena);
+}
+
+u8 SystemArena_IsInitialized(void) {
+ return __osMallocIsInitalized(&gSystemArena);
+}