From e15d41a5619c41f3440369e625d6d96921718221 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 30 Dec 2021 20:50:44 -0800 Subject: Added Data Structures Added basic scheduling TODO: Preserve registers for context switch --- src/lib/mem.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/lib/mem.c') diff --git a/src/lib/mem.c b/src/lib/mem.c index 3683ae7..0069623 100644 --- a/src/lib/mem.c +++ b/src/lib/mem.c @@ -41,3 +41,22 @@ unsigned char memcmp32(unsigned long* a, unsigned long* b, unsigned int n) } return 1; } + +#define MAX_MM 0x100000 +static unsigned char rpi_heap[MAX_MM] = {0,}; + +void* malloc(unsigned char size) +{ + unsigned char* mem = (unsigned char*)rpi_heap; + unsigned long i = 0; + while (mem[i] != 0) { + i += mem[i]+1; + } + mem[i] = size; + return (void*)&mem[i+1]; +} + +void free(__attribute__((unused)) void* memloc) +{ + // TODO: Implement free +} -- cgit v1.2.1