Files
my-kern/include/myke/mem/paging.h

44 lines
1.1 KiB
C

//
// 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