[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