added some preprocessor macros for upcoming paging code
This commit is contained in:
parent
d2db43e93a
commit
e514ae24f8
1 changed files with 8 additions and 4 deletions
|
@ -54,6 +54,9 @@
|
|||
/// Mask the page address without page map flags
|
||||
#define PAGE_MASK 0xFFFFF000
|
||||
|
||||
/// Make address canonical
|
||||
#define CANONICAL(addr) (addr) // only for 32 bit paging
|
||||
|
||||
/// The number of entries in a page map table
|
||||
#define PAGE_MAP_ENTRIES (1L << PAGE_MAP_BITS)
|
||||
|
||||
|
@ -61,6 +64,11 @@
|
|||
#define PAGE_MAP_PGD 0xFFFFF000
|
||||
#define PAGE_MAP_PGT 0xFFC00000
|
||||
|
||||
/// Align to next page
|
||||
#define PAGE_FLOOR(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK)
|
||||
/// Align to page
|
||||
#define PAGE_CEIL(addr) ( (addr) & PAGE_MASK)
|
||||
|
||||
/// Page is present
|
||||
#define PG_PRESENT (1 << 0)
|
||||
/// Page is read- and writable
|
||||
|
@ -84,10 +92,6 @@
|
|||
/// This page or table is used during the boot process
|
||||
#define PG_BOOT (1 << 9)
|
||||
|
||||
/// This is a whole set of flags (PRESENT,RW,ACCESSED,DIRTY) for kernelspace tables
|
||||
#define PG_TABLE (PG_PRESENT|PG_RW)
|
||||
/// This is a whole set of flags (PRESENT,RW,GLOBAL) for kernelspace pages
|
||||
#define PG_PAGE (PG_PRESENT|PG_RW|PG_GLOBAL)
|
||||
|
||||
/** @brief A single entry in a page map
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue