From 56ec6c782455f7d8e4560d30ad6d2c3e1cd2738f Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Sat, 27 Mar 2021 18:29:31 +0000 Subject: paging constants into header --- api/kernel/memory/paging.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 api/kernel/memory/paging.h (limited to 'api/kernel') diff --git a/api/kernel/memory/paging.h b/api/kernel/memory/paging.h new file mode 100644 index 0000000..25e5eea --- /dev/null +++ b/api/kernel/memory/paging.h @@ -0,0 +1,15 @@ +#pragma once + +#define PAGE_PR 1 +#define PAGE_WR 2 + +#define PAGE_MAP_LEVELS 4 +#define PAGE_MAP_BITS 9 +#define PAGE_OFFSET_BITS 12 + +#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) + -- cgit v1.3.1-1-g115d