aboutsummaryrefslogtreecommitdiff
path: root/src/lib/mem.c
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2021-12-30 20:50:44 -0800
committerChristian Cunningham <cc@localhost>2021-12-30 20:50:44 -0800
commite15d41a5619c41f3440369e625d6d96921718221 (patch)
tree1291a6f4cb964d7143ab63626bc03ebefaff484b /src/lib/mem.c
parent104c6fdd6b217b06183df7007882afa9183688bb (diff)
Added Data Structures
Added basic scheduling TODO: Preserve registers for context switch
Diffstat (limited to 'src/lib/mem.c')
-rw-r--r--src/lib/mem.c19
1 files changed, 19 insertions, 0 deletions
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
+}