From 4971aa814d0ef52707503cc2138c67c4c5662b54 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Wed, 2 Jun 2021 13:52:02 +0000 Subject: cast address and offset calculations --- kernel/memory.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'kernel/memory.h') 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 +#include + #include -#include +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); -- cgit v1.3.1-1-g115d