From 3f1668290da19734dcbfed633b6f415d1fa21a1a Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Wed, 26 Aug 2020 18:01:03 +0200 Subject: Started stack allocator. This will replace the current linear allocator so we can free and realloc memory correctly. This is especially important for the window resizing due to a fixed LFB size. --- libc/inc/mem.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'libc/inc') diff --git a/libc/inc/mem.h b/libc/inc/mem.h index cb64ce8..9aeeee9 100644 --- a/libc/inc/mem.h +++ b/libc/inc/mem.h @@ -7,8 +7,13 @@ // Huh #ifdef kernel -#define malloc(n) (void *)((HEAP += n) - n) // TODO: Implement real/better malloc/free -#define free(ptr) +#define HEAP_SIZE 0x10000 +#define HEAP_MAGIC 0x42 +void heap_init(u32 start); +void *malloc(u32 size); +void free(void *ptr); +/* #define malloc(n) (void *)((HEAP += n) - n) // TODO: Implement real/better malloc/free */ +/* #define free(ptr) */ #elif defined(userspace) #include #define malloc(n) (void *)sys1(SYS_MALLOC, n) @@ -17,11 +22,8 @@ #error "No lib target specified. Please use -Dkernel or -Duserspace" #endif -u32 HEAP; -u32 HEAP_START; - void *memcpy(void *dest, const void *src, u32 n); -void *memset(void *dest, int c, u32 n); +void *memset(void *dest, int val, u32 n); int memcmp(const void *s1, const void *s2, u32 n); #endif -- cgit v1.2.3