diff --git a/sdk/xtdk/amd64/mmtypes.h b/sdk/xtdk/amd64/mmtypes.h index 367f7b6..b92236b 100644 --- a/sdk/xtdk/amd64/mmtypes.h +++ b/sdk/xtdk/amd64/mmtypes.h @@ -45,6 +45,40 @@ #define MM_PPE_PER_PAGE 512 #define MM_PXE_PER_PAGE 512 +/* PTE state flags */ +#define MM_PTE_VALID 0x0000000000000001ULL +#define MM_PTE_ACCESSED 0x0000000000000020ULL +#define MM_PTE_DIRTY 0x0000000000000040ULL + +/* PTE scope flags */ +#define MM_PTE_LARGE_PAGE 0x0000000000000080ULL +#define MM_PTE_GLOBAL 0x0000000000000100ULL + +/* PTE access flags */ +#define MM_PTE_NOACCESS 0x0000000000000000ULL +#define MM_PTE_READONLY 0x0000000000000000ULL +#define MM_PTE_EXECUTE 0x0000000000000000ULL +#define MM_PTE_EXECUTE_READ 0x0000000000000000ULL +#define MM_PTE_READWRITE 0x8000000000000002ULL +#define MM_PTE_WRITECOPY 0x8000000000000200ULL +#define MM_PTE_EXECUTE_READWRITE 0x0000000000000002ULL +#define MM_PTE_EXECUTE_WRITECOPY 0x0000000000000200ULL + +/* PTE protection flags */ +#define MM_PTE_NOEXECUTE 0x8000000000000000ULL +#define MM_PTE_PROTECT 0x8000000000000612ULL + +/* PTE cache flags */ +#define MM_PTE_CACHE_ENABLE 0x0000000000000000ULL +#define MM_PTE_CACHE_DISABLE 0x0000000000000010ULL +#define MM_PTE_CACHE_WRITECOMBINED 0x0000000000000010ULL +#define MM_PTE_CACHE_WRITETHROUGH 0x0000000000000008ULL + +/* PTE software flags */ +#define MM_PTE_COPY_ON_WRITE 0x0000000000000200ULL +#define MM_PTE_PROTOTYPE 0x0000000000000400ULL +#define MM_PTE_TRANSITION 0x0000000000000800ULL + /* Minimum number of physical pages needed by the system */ #define MM_MINIMUM_PHYSICAL_PAGES 2048 diff --git a/sdk/xtdk/i686/mmtypes.h b/sdk/xtdk/i686/mmtypes.h index 98fced0..b90b5b2 100644 --- a/sdk/xtdk/i686/mmtypes.h +++ b/sdk/xtdk/i686/mmtypes.h @@ -35,6 +35,40 @@ #define MM_PTE_LEGACY_SHIFT 2 #define MM_PDI_LEGACY_SHIFT 22 +/* PTE state flags */ +#define MM_PTE_VALID 0x00000001 +#define MM_PTE_ACCESSED 0x00000020 +#define MM_PTE_DIRTY 0x00000040 + +/* PTE scope flags */ +#define MM_PTE_LARGE_PAGE 0x00000080 +#define MM_PTE_GLOBAL 0x00000100 + +/* PTE access flags */ +#define MM_PTE_NOACCESS 0x00000000 +#define MM_PTE_READONLY 0x00000000 +#define MM_PTE_EXECUTE 0x00000000 +#define MM_PTE_EXECUTE_READ 0x00000000 +#define MM_PTE_READWRITE 0x00000002 +#define MM_PTE_WRITECOPY 0x00000200 +#define MM_PTE_EXECUTE_READWRITE 0x00000002 +#define MM_PTE_EXECUTE_WRITECOPY 0x00000200 + +/* PTE protection flags */ +#define MM_PTE_NOEXECUTE 0x00000000 +#define MM_PTE_PROTECT 0x00000612 + +/* PTE cache flags */ +#define MM_PTE_CACHE_ENABLE 0x00000000 +#define MM_PTE_CACHE_DISABLE 0x00000010 +#define MM_PTE_CACHE_WRITECOMBINED 0x00000010 +#define MM_PTE_CACHE_WRITETHROUGH 0x00000008 + +/* PTE software flags */ +#define MM_PTE_COPY_ON_WRITE 0x00000200 +#define MM_PTE_PROTOTYPE 0x00000400 +#define MM_PTE_TRANSITION 0x00000800 + /* Minimum number of physical pages needed by the system */ #define MM_MINIMUM_PHYSICAL_PAGES 1100