feat: Started om paging
This commit is contained in:
parent
2bbc7dd70f
commit
fc4de346a3
9 changed files with 275 additions and 9 deletions
|
@ -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;
|
||||
|
|
|
@ -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
22
kernel/src/mm/vmm.h
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue