summaryrefslogtreecommitdiff
path: root/kernel/mem.c
diff options
context:
space:
mode:
authorNathan Lee <me@nwlee.tech>2026-06-17 13:05:15 -0500
committerNathan Lee <me@nwlee.tech>2026-06-17 13:05:15 -0500
commitb106df2447d23d6b3fcffa7cc87edde218d054f3 (patch)
tree85b01191beada41b85bc391482cee7294b73f89b /kernel/mem.c
parent2fb81f37d20fd442d1954a7356e3ab7f88314a9c (diff)
create wdt device discovery
discuss: per wrv32em status, consider moving custom wdt format to dtb or pci device discovery (potentially both: we have the framework for pci.ko extension after using dtb to discover memory and pci devices)
Diffstat (limited to 'kernel/mem.c')
-rw-r--r--kernel/mem.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/kernel/mem.c b/kernel/mem.c
new file mode 100644
index 0000000..531dd81
--- /dev/null
+++ b/kernel/mem.c
@@ -0,0 +1,32 @@
+#include <types.h>
+#include <mem.h>
+
+static char eheap[EHEAP_SIZE] = {0};
+static size_t eheap_off = 0;
+
+void* kmalloc(size_t size) {
+ return (void*)size;
+}
+
+void* kemalloc(size_t size) {
+ size = (size + 7) & ~7;
+
+ if (eheap_off + size > EHEAP_SIZE) {
+ return NULL;
+ }
+
+ void *ptr = &eheap[eheap_off];
+ eheap_off += size;
+ return ptr;
+}
+
+void* memcpy(void *to, const void *from, size_t size) {
+ char *dest = (char *)to;
+ const char *src = (const char *)from;
+
+ while (size--) {
+ *dest++ = *src++;
+ }
+
+ return dest;
+}