1
0
Fork 0

feat: Started om paging

This commit is contained in:
Kevin Alavik 2025-05-14 16:38:26 +02:00
parent 2bbc7dd70f
commit fc4de346a3
Signed by: cmpsb
GPG key ID: 10D1CC0526FDC6D7
9 changed files with 275 additions and 9 deletions

View file

@ -82,7 +82,7 @@ void pmm_init(void)
}
}
void *pmm_request_pages(size_t pages, bool higher_half)
void *palloc(size_t pages, bool higher_half)
{
if (pages == 0 || pages > free_pages)
return NULL;
@ -137,7 +137,7 @@ void *pmm_request_pages(size_t pages, bool higher_half)
return NULL;
}
void pmm_release_pages(void *ptr, size_t pages)
void pfree(void *ptr, size_t pages)
{
if (!ptr || !is_aligned(ptr, MIN_ALIGN))
return;

View file

@ -7,7 +7,7 @@
#define PAGE_SIZE 0x1000
void pmm_init();
void *pmm_request_pages(size_t pages, bool higher_half);
void pmm_release_pages(void *ptr, size_t pages);
void *palloc(size_t pages, bool higher_half);
void pfree(void *ptr, size_t pages);
#endif // PMM_H

22
kernel/src/mm/vmm.h Normal file
View file

@ -0,0 +1,22 @@
#ifndef VMM_H
#define VMM_H
#include <stdint.h>
typedef struct vm_region
{
uint64_t start;
uint64_t pages;
struct vm_region *next;
/* TOOD: Maybe store flags */
} vm_region_t;
typedef struct vma_ctx
{
vm_region_t *root;
uint64_t *pagemap;
} vma_ctx_t;
void vmm_init();
#endif // VMM_H