feat: start of paging setup
This commit is contained in:
@@ -5,4 +5,39 @@
|
||||
#ifndef NEW_KERNEL_PAGING_H
|
||||
#define NEW_KERNEL_PAGING_H
|
||||
|
||||
#define PAGING_MASK_4K 0xFFFFF000
|
||||
#define PAGING_MASK_4M 0xFFC00000
|
||||
|
||||
#define DIRECTORY_PRESENT_BIT (0)
|
||||
#define DIRECTORY_RW_BIT (1)
|
||||
#define DIRECTORY_US_BIT (2)
|
||||
#define DIRECTORY_WT_BIT (3)
|
||||
#define DIRECTORY_CACHE_BIT (4)
|
||||
#define DIRECTORY_ACCESSED_BIT (5)
|
||||
#define DIRECTORY_PAGE_SIZE_BIT (7)
|
||||
|
||||
#define DIRECTORY_ADDR_MASK 0xFFFFF000
|
||||
#define DIRECTORY_PRESENT_MASK (1 << DIRECTORY_PRESENT_BIT)
|
||||
#define DIRECTORY_RW_MASK (1 << DIRECTORY_RW_BIT)
|
||||
#define DIRECTORY_US_MASK (1 << DIRECTORY_US_BIT)
|
||||
#define DIRECTORY_WT_MASK (1 << DIRECTORY_WT_BIT)
|
||||
#define DIRECTORY_CACHE_MASK (1 << DIRECTORY_CACHE_BIT)
|
||||
#define DIRECTORY_ACCESSED_MASK (1 << DIRECTORY_ACCESSED_BIT)
|
||||
#define DIRECTORY_PAGE_SIZE_MASK (1 << DIRECTORY_PAGE_SIZE_BIT)
|
||||
|
||||
#define DIRECTORY_SIZE 1024
|
||||
|
||||
#define PAGING_MODE_4M (1 << 0)
|
||||
#define PAGING_MODE_RW (1 << 1)
|
||||
#define PAGING_MODE_US (1 << 2)
|
||||
|
||||
#define PAGING_RESULT_OK 0
|
||||
#define PAGING_RESULT_INUSE 1
|
||||
#define PAGING_RESULT_ALIGN 2
|
||||
#define PAGING_RESULT_ERR 99
|
||||
|
||||
typedef uint32_t page_directory_entry;
|
||||
|
||||
typedef uint32_t page_table_entry;
|
||||
|
||||
#endif //NEW_KERNEL_PAGING_H
|
||||
|
||||
10
include/myke/mem/vmm.h
Normal file
10
include/myke/mem/vmm.h
Normal file
@@ -0,0 +1,10 @@
|
||||
//
|
||||
// Created by rick on 17-10-21.
|
||||
//
|
||||
|
||||
#ifndef NEW_KERNEL_VMM_H
|
||||
#define NEW_KERNEL_VMM_H
|
||||
|
||||
void vmm_init(multiboot_info_t *multiboot_info);
|
||||
|
||||
#endif //NEW_KERNEL_VMM_H
|
||||
Reference in New Issue
Block a user