summaryrefslogtreecommitdiff
path: root/user/lib/alloc.c
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-08 10:39:48 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-08 10:39:48 -0400
commit8a19547957a86bed3f58c9abc1ac218d04698faf (patch)
treeed7ccc6f3a8902915dfe6c9bf763fc45d752b3c4 /user/lib/alloc.c
parentfmt (diff)
downloadcomus-8a19547957a86bed3f58c9abc1ac218d04698faf.tar.gz
comus-8a19547957a86bed3f58c9abc1ac218d04698faf.tar.bz2
comus-8a19547957a86bed3f58c9abc1ac218d04698faf.zip
break apart c libaray
Diffstat (limited to '')
-rw-r--r--user/lib/alloc.c (renamed from lib/alloc.c)4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/alloc.c b/user/lib/alloc.c
index dfa2df5..49c762b 100644
--- a/lib/alloc.c
+++ b/user/lib/alloc.c
@@ -1,8 +1,10 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#define MAGIC 0xBEEFCAFE
+#define PAGE_SIZE 4096
struct page_header {
struct page_header *next;
@@ -37,6 +39,7 @@ static void *alloc_new(size_t size)
{
size_t pages = ((size + header_len) / PAGE_SIZE) + 1;
+ // FIXME: use brk/sbrk
void *addr = alloc_pages(pages);
void *mem = (char *)addr + header_len;
@@ -206,6 +209,7 @@ void free(void *ptr)
header->next->prev = header->prev;
if (header->prev)
header->prev->next = header->next;
+ // FIXME: use brk/sbrk
free_pages(header);
}
}