OvmfPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PageTable.h File Reference

Data Structures

union  PAGE_MAP_AND_DIRECTORY_POINTER
 
union  PAGE_TABLE_4K_ENTRY
 
union  PAGE_TABLE_ENTRY
 
union  PAGE_TABLE_1G_ENTRY
 

Macros

#define IA32_PG_P   BIT0
 
#define IA32_PG_RW   BIT1
 
#define IA32_PG_PS   BIT7
 
#define PAGING_PAE_INDEX_MASK   0x1FF
 
#define PAGING_4K_ADDRESS_MASK_64   0x000FFFFFFFFFF000ull
 
#define PAGING_2M_ADDRESS_MASK_64   0x000FFFFFFFE00000ull
 
#define PAGING_1G_ADDRESS_MASK_64   0x000FFFFFC0000000ull
 
#define PAGING_L1_ADDRESS_SHIFT   12
 
#define PAGING_L2_ADDRESS_SHIFT   21
 
#define PAGING_L3_ADDRESS_SHIFT   30
 
#define PAGING_L4_ADDRESS_SHIFT   39
 
#define PAGING_PML4E_NUMBER   4
 
#define PAGETABLE_ENTRY_MASK   ((1UL << 9) - 1)
 
#define PML4_OFFSET(x)   ( (x >> 39) & PAGETABLE_ENTRY_MASK)
 
#define PDP_OFFSET(x)   ( (x >> 30) & PAGETABLE_ENTRY_MASK)
 
#define PDE_OFFSET(x)   ( (x >> 21) & PAGETABLE_ENTRY_MASK)
 
#define PTE_OFFSET(x)   ( (x >> 12) & PAGETABLE_ENTRY_MASK)
 
#define PAGING_1G_ADDRESS_MASK_64   0x000FFFFFC0000000ull
 

Detailed Description

x86_64 Page Tables structures

Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
Copyright (c) 2017 - 2020, AMD Incorporated. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Code is derived from MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.h

Macro Definition Documentation

#define IA32_PG_P   BIT0
#define IA32_PG_PS   BIT7
#define IA32_PG_RW   BIT1
#define PAGETABLE_ENTRY_MASK   ((1UL << 9) - 1)
#define PAGING_1G_ADDRESS_MASK_64   0x000FFFFFC0000000ull
#define PAGING_1G_ADDRESS_MASK_64   0x000FFFFFC0000000ull
#define PAGING_2M_ADDRESS_MASK_64   0x000FFFFFFFE00000ull
#define PAGING_4K_ADDRESS_MASK_64   0x000FFFFFFFFFF000ull
#define PAGING_L1_ADDRESS_SHIFT   12
#define PAGING_L2_ADDRESS_SHIFT   21
#define PAGING_L3_ADDRESS_SHIFT   30
#define PAGING_L4_ADDRESS_SHIFT   39
#define PAGING_PAE_INDEX_MASK   0x1FF
#define PAGING_PML4E_NUMBER   4
#define PDE_OFFSET (   x)    ( (x >> 21) & PAGETABLE_ENTRY_MASK)
#define PDP_OFFSET (   x)    ( (x >> 30) & PAGETABLE_ENTRY_MASK)
#define PML4_OFFSET (   x)    ( (x >> 39) & PAGETABLE_ENTRY_MASK)
#define PTE_OFFSET (   x)    ( (x >> 12) & PAGETABLE_ENTRY_MASK)