diff options
Diffstat (limited to 'api/kernel')
| -rw-r--r-- | api/kernel/memory/paging.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/api/kernel/memory/paging.h b/api/kernel/memory/paging.h index 25e5eea..3d13eda 100644 --- a/api/kernel/memory/paging.h +++ b/api/kernel/memory/paging.h @@ -1,14 +1,17 @@ #pragma once -#define PAGE_PR 1 -#define PAGE_WR 2 +#define PAGE_PR (1ULL << 0) +#define PAGE_WR (1ULL << 1) +#define PAGE_NX (1ULL << 63) #define PAGE_MAP_LEVELS 4 #define PAGE_MAP_BITS 9 #define PAGE_OFFSET_BITS 12 +#define PAGE_ADDRESS_MASK 0x0007fffffffff000 +#define PAGE_ATTRIBUTE_MASK 0xf800000000000fff + #define PAGE_TABLE_INDEX_MASK ((1 << PAGE_MAP_BITS) - 1) -#define PAGE_TABLE_ADDRESS_MASK ~((1 << PAGE_OFFSET_BITS) - 1) #define page_table_index_bits(l) (PAGE_OFFSET_BITS + PAGE_MAP_BITS * (l - 1)) #define page_table_index(v, l) ((v >> page_table_index_bits(l)) & PAGE_TABLE_INDEX_MASK) |
