[NTOS]
[reactos.git] / reactos / ntoskrnl / include / internal / i386 / mm.h
index c9b41ca..27237a6 100644 (file)
@@ -16,6 +16,10 @@ PULONG MmGetPageDirectory(VOID);
 #define PAGE_MASK(x)           ((x)&(~0xfff))
 #define PAE_PAGE_MASK(x)       ((x)&(~0xfffLL))
 
+/* MMPTE related defines */
+#define MM_EMPTY_PTE_LIST  ((ULONG)0xFFFFF)
+#define MM_EMPTY_LIST  ((ULONG_PTR)-1)
+
 /* Base addresses of PTE and PDE */
 #define PAGETABLE_MAP       (0xc0000000)
 #define PAGEDIRECTORY_MAP   (0xc0000000 + (PAGETABLE_MAP / (1024)))
@@ -26,6 +30,9 @@ PULONG MmGetPageDirectory(VOID);
 #define PDE_TOP     0xC0300FFF
 #define PTE_TOP     0xC03FFFFF
 #define HYPER_SPACE 0xC0400000
+#define HYPER_SPACE_END 0xC07FFFFF
+
+#define PTE_PER_PAGE 0x400
 
 /* Converting address to a corresponding PDE or PTE entry */
 #define MiAddressToPde(x) \
@@ -89,11 +96,11 @@ PULONG MmGetPageDirectory(VOID);
 #define MI_MAPPING_RANGE_START              (ULONG)HYPER_SPACE
 #define MI_MAPPING_RANGE_END                (MI_MAPPING_RANGE_START + \
                                                      MI_HYPERSPACE_PTES * PAGE_SIZE)
-#define MI_DUMMY_PTE                        (PMMPTE)(MI_MAPPING_RANGE_END + \
+#define MI_DUMMY_PTE                        (PMMPTE)((ULONG_PTR)MI_MAPPING_RANGE_END + \
                                                      PAGE_SIZE)
-#define MI_VAD_BITMAP                       (PMMPTE)(MI_DUMMY_PTE + \
+#define MI_VAD_BITMAP                       (PMMPTE)((ULONG_PTR)MI_DUMMY_PTE + \
                                                      PAGE_SIZE)
-#define MI_WORKING_SET_LIST                 (PMMPTE)(MI_VAD_BITMAP + \
+#define MI_WORKING_SET_LIST                 (PMMPTE)((ULONG_PTR)MI_VAD_BITMAP + \
                                                      PAGE_SIZE)
 
 /* On x86, these two are the same */