diff options
| author | Ada Christine <adachristine18@gmail.com> | 2021-06-02 13:52:02 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2021-06-02 13:52:02 +0000 |
| commit | 4971aa814d0ef52707503cc2138c67c4c5662b54 (patch) | |
| tree | 7c794e50f9dd5ad680b0bccde0a8eed29b499f5d /kernel/memory.h | |
| parent | 298ff8e784769588c9e39ffa5b50a8391216c43d (diff) | |
cast address and offset calculations
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); |
