diff --git a/include/mm/heap.h b/include/mm/heap.h new file mode 100644 index 0000000..96f2287 --- /dev/null +++ b/include/mm/heap.h @@ -0,0 +1,19 @@ +#ifndef _HEAP_H +#define _HEAP_H + +#include + +#define HEAP_START 0xC0000000 +#define HEAP_SIZE (1024 * 4096) /* 1MB heap */ + +void heap_init(void); + +void* malloc(size_t size); +void* malloc_aligned(size_t size, size_t alignment); + +void* calloc(size_t nmemb, size_t size); +void* realloc(void* ptr, size_t size); + +void free(void* ptr); + +#endif diff --git a/include/mm/mm.h b/include/mm/mm.h new file mode 100644 index 0000000..acbdfee --- /dev/null +++ b/include/mm/mm.h @@ -0,0 +1,8 @@ +#ifndef _MM_H +#define _MM_H + +#include +#include +#include + +#endif diff --git a/include/mm/paging.h b/include/mm/paging.h new file mode 100644 index 0000000..d6152b7 --- /dev/null +++ b/include/mm/paging.h @@ -0,0 +1,9 @@ +#ifndef _PAGING_H +#define _PAGING_H + +#include + +void paging_init(void); +void map_page(void* phys, void* virt); + +#endif diff --git a/include/mm/pmm.h b/include/mm/pmm.h new file mode 100644 index 0000000..e59ea60 --- /dev/null +++ b/include/mm/pmm.h @@ -0,0 +1,11 @@ +#ifndef _PMM_H +#define _PMM_H + +#include +#include + +void pmm_init(multiboot_info_t* mb_info); +void* alloc_page(void); +void free_page(void* ptr); + +#endif