diff options
Diffstat (limited to 'kernel/memory.h')
| -rw-r--r-- | kernel/memory.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/kernel/memory.h b/kernel/memory.h index 9093985..67b0648 100644 --- a/kernel/memory.h +++ b/kernel/memory.h @@ -1,8 +1,11 @@ #pragma once +#include <kernel/memory/paging.h> +#include <kernel/memory/range.h> + #include <stddef.h> -#include <kernel/memory/range.h> +typdef int (*memory_space_handler_func)(uint32_t code, void *vaddr); enum page_map_flags { @@ -17,6 +20,19 @@ enum page_map_flags SIZE_MASK = 0xc, }; +enum memory_space_flags +{ + SYSTEM_SPACE = 0x1, // memory cannot be swapped +}; + +struct memory_space +{ + enum memory_space_flags flags; + memory_space_handler_func handler; + void *base; + void *head; +}; + void memory_init(struct memory_range *ranges, int count); void *memcpy(void *dest, const void *src, size_t size); @@ -30,5 +46,8 @@ void page_unmap(void *vaddr); phys_addr_t page_alloc(void); void page_free(phys_addr_t paddr); -void *malloc(size_t size); -void free(void *block); +void *heap_alloc(size_t size); +void heap_free(void *block); + +void *memory_alloc(size_t size); +void memory_free(void *block); |
