feat: initial paging setup

This commit is contained in:
2021-08-06 20:46:44 +02:00
parent 8152ad6e9a
commit f0cc2c73b7
15 changed files with 257 additions and 114 deletions

View File

@@ -1,8 +0,0 @@
//
// Created by rick on 21-02-21.
//
#ifndef NEW_KERNEL_PAGING_H
#define NEW_KERNEL_PAGING_H
#endif //NEW_KERNEL_PAGING_H

19
include/myke/mem/pm.h Normal file
View File

@@ -0,0 +1,19 @@
//
// Created by rick on 23-02-21.
//
#ifndef NEW_KERNEL_PM_H
#define NEW_KERNEL_PM_H
#include <sys/types.h>
// 4k blocks
#define PAGE_SIZE 4096
void pm_init(void *start_addr, size_t size);
void *pm_get_pages(uint32_t num_pages);
void pm_free_pages(void *page, uint32_t num_pages);
#endif //NEW_KERNEL_PM_H

View File

@@ -1,19 +0,0 @@
//
// Created by rick on 23-02-21.
//
#ifndef NEW_KERNEL_PMM_H
#define NEW_KERNEL_PMM_H
#include <sys/types.h>
// 4k blocks
#define PAGE_SIZE 4096
void pmm_init(void *start_addr, size_t size);
void *pmm_get_pages(uint32_t num_pages);
void pmm_free_pages(void *page, uint32_t num_pages);
#endif //NEW_KERNEL_PMM_H

13
include/myke/mem/vmm.h Normal file
View File

@@ -0,0 +1,13 @@
//
// Created by rick on 21-02-21.
//
#ifndef NEW_KERNEL_VMM_H
#define NEW_KERNEL_VMM_H
#include <sys/types.h>
void vmm_assign_page(void *paddr, void *vaddr, size_t number_of_pages);
void vmm_unassign_page(void *vaddr, size_t number_of_pages);
#endif //NEW_KERNEL_VMM_H