// // Created by rick on 21-02-21. // #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