diff options
Diffstat (limited to 'kernel/mem.c')
| -rw-r--r-- | kernel/mem.c | 32 |
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; +} |
