[ros-diffs] [tkreuzer] 35021: use constants from winddk and get rid of private definitions.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Aug 2 00:18:58 CEST 2008


Author: tkreuzer
Date: Fri Aug  1 17:18:58 2008
New Revision: 35021

URL: http://svn.reactos.org/svn/reactos?rev=35021&view=rev
Log:
use constants from winddk and get rid of private definitions.

Modified:
    branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/arch/amd64/loader.c
    branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h

Modified: branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/arch/amd64/loader.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/arch/amd64/loader.c?rev=35021&r1=35020&r2=35021&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/arch/amd64/loader.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/arch/amd64/loader.c [iso-8859-1] Fri Aug  1 17:18:58 2008
@@ -134,14 +134,14 @@
 	PPAGE_DIRECTORY_AMD64 pDir3, pDir2, pDir1;
 	ULONG Index;
 
-	pDir3 = FrLdrGetOrCreatePageDir(pPML4, VAtoIndex4(VirtualAddress));
-	pDir2 = FrLdrGetOrCreatePageDir(pDir3, VAtoIndex3(VirtualAddress));
-	pDir1 = FrLdrGetOrCreatePageDir(pDir2, VAtoIndex2(VirtualAddress));
+	pDir3 = FrLdrGetOrCreatePageDir(pPML4, VAtoPXI(VirtualAddress));
+	pDir2 = FrLdrGetOrCreatePageDir(pDir3, VAtoPPI(VirtualAddress));
+	pDir1 = FrLdrGetOrCreatePageDir(pDir2, VAtoPDI(VirtualAddress));
 
 	if (!pDir1)
 		return FALSE;
 
-	Index = VAtoIndex1(VirtualAddress);
+	Index = VAtoPTI(VirtualAddress);
 	if (pDir1->Pde[Index].Valid)
 	{
 		return FALSE;
@@ -203,14 +203,9 @@
 	/* The page tables are located at 0xfffff68000000000 
 	 * We create a recursive self mapping through all 4 levels at 
 	 * virtual address 0xfffff6fb7dbedf68 */
-	pPML4->Pde[VAtoIndex4(PML4_BASE)].Valid = 1;
-	pPML4->Pde[VAtoIndex4(PML4_BASE)].Write = 1;
-	pPML4->Pde[VAtoIndex4(PML4_BASE)].PageFrameNumber = PtrToPfn(PML4_BASE);
-
-	ASSERT(VAtoIndex4(PML4_BASE) == 0x1ed);
-	ASSERT(VAtoIndex3(PML4_BASE) == 0x1ed);
-	ASSERT(VAtoIndex2(PML4_BASE) == 0x1ed);
-	ASSERT(VAtoIndex1(PML4_BASE) == 0x1ed);
+	pPML4->Pde[VAtoPXI(PXE_BASE)].Valid = 1;
+	pPML4->Pde[VAtoPXI(PXE_BASE)].Write = 1;
+	pPML4->Pde[VAtoPXI(PXE_BASE)].PageFrameNumber = PtrToPfn(PXE_BASE);
 
 	/* Setup low memory pages */
 	if (FrLdrMapRangeOfPages(0, 0, 1024) < 1024)

Modified: branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h?rev=35021&r1=35020&r2=35021&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h [iso-8859-1] Fri Aug  1 17:18:58 2008
@@ -28,21 +28,15 @@
 #define LMODE_DS	0x10
 
 #define VA_MASK 0x0000FFFFFFFFFFFFUL
-#define PML4_SHIFT (12+9+9+9)
-#define PDP_SHIFT (12+9+9)
-#define PD_SHIFT (12+9)
-#define PT_SHIFT 12
 
 #define PtrToPfn(p) \
-    ((((ULONGLONG)p) >> PT_SHIFT) & 0xffffffffffULL)
+    ((((ULONGLONG)p) >> PAGE_SHIFT) & 0xffffffffffULL)
 
-#define VAtoIndex4(va) (((va) >> PML4_SHIFT) & 0x1FF)
-#define VAtoIndex3(va) (((va) >> PDP_SHIFT) & 0x1FF)
-#define VAtoIndex2(va) (((va) >> PD_SHIFT) & 0x1FF)
-#define VAtoIndex1(va) (((va) >> PT_SHIFT) & 0x1FF)
+#define VAtoPXI(va) (((va) >> PXI_SHIFT) & 0x1FF)
+#define VAtoPPI(va) (((va) >> PPI_SHIFT) & 0x1FF)
+#define VAtoPDI(va) (((va) >> PDI_SHIFT) & 0x1FF)
+#define VAtoPTI(va) (((va) >> PTI_SHIFT) & 0x1FF)
 
-#define PAGETABLE_BASE              0xfffff68000000000ULL
-#define PML4_BASE                   0xfffff6fb7dbedf68ULL
 #define HYPERSPACE_BASE             0xfffff70000000000ULL
 #define HAL_BASE                    0xffffffff80000000ULL
 #define APIC_BASE                   0xffffffffff000000ULL // FIXME



More information about the Ros-diffs mailing list