[ros-diffs] [tkreuzer] 44095: Use the kernel mode address for the gdt/idt

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Nov 11 05:29:05 CET 2009


Author: tkreuzer
Date: Wed Nov 11 05:29:05 2009
New Revision: 44095

URL: http://svn.reactos.org/svn/reactos?rev=44095&view=rev
Log:
Use the kernel mode address for the gdt/idt

Modified:
    branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/windows/amd64/wlmemory.c

Modified: branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/windows/amd64/wlmemory.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/windows/amd64/wlmemory.c?rev=44095&r1=44094&r2=44095&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/windows/amd64/wlmemory.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/boot/freeldr/freeldr/windows/amd64/wlmemory.c [iso-8859-1] Wed Nov 11 05:29:05 2009
@@ -335,10 +335,13 @@
 	/* Set the new PML4 */
 	__writecr3((ULONGLONG)pPML4);
 
-	RtlZeroMemory(GdtIdt, PAGE_SIZE);
-
+    /* Get kernel mode address of gdt / idt */
+	GdtIdt = (PVOID)((LONG64)GdtIdt + KSEG0_BASE);
+
+    /* Create gdt entries and load gdtr */
     WinLdrSetupGdt(GdtIdt, Tss);
 
+    /* Copy old Idt and set idtr */
     WinLdrSetupIdt((PVOID)((ULONG64)GdtIdt + 2048)); // HACK!
 
     /* LDT is unused */




More information about the Ros-diffs mailing list