Author: sginsberg Date: Wed Oct 14 20:07:29 2009 New Revision: 43462
URL: http://svn.reactos.org/svn/reactos?rev=43462&view=rev Log: - Remove a hack from KiGetMachineBootPointers and set the TSS selector properly in KiRosPrepareForSystemStartup instead. - Use KGDT_TSS in WinLdrSetProcessorContext instead of a hardcoded value.
Modified: trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c trunk/reactos/ntoskrnl/ke/freeldr.c trunk/reactos/ntoskrnl/ke/i386/kiinit.c
Modified: trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/wlmemory.c [iso-8859-1] Wed Oct 14 20:07:29 2009 @@ -919,7 +919,7 @@ Ke386SetLocalDescriptorTable(Ldt);
// Load TSR - Ke386SetTr(0x28); + Ke386SetTr(KGDT_TSS);
// Clear GS Ke386SetGs(0);
Modified: trunk/reactos/ntoskrnl/ke/freeldr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/freeldr.c?rev=4... ============================================================================== --- trunk/reactos/ntoskrnl/ke/freeldr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/freeldr.c [iso-8859-1] Wed Oct 14 20:07:29 2009 @@ -1289,6 +1289,9 @@ TssEntry->BaseLow = (USHORT)((ULONG_PTR)Tss & 0xFFFF); TssEntry->HighWord.Bytes.BaseMid = (UCHAR)((ULONG_PTR)Tss >> 16); TssEntry->HighWord.Bytes.BaseHi = (UCHAR)((ULONG_PTR)Tss >> 24); + + /* Set the TSS selector */ + Ke386SetTr(KGDT_TSS); #endif
#if defined(_M_PPC) @@ -1351,5 +1354,3 @@ /* Do general System Startup */ KiSystemStartupReal(NtLoaderBlock); } - -/* EOF */
Modified: trunk/reactos/ntoskrnl/ke/i386/kiinit.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kiinit.c?r... ============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/kiinit.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/i386/kiinit.c [iso-8859-1] Wed Oct 14 20:07:29 2009 @@ -621,7 +621,6 @@
/* Get TSS and FS Selectors */ Tr = Ke386GetTr(); - if (Tr != KGDT_TSS) Tr = KGDT_TSS; // FIXME: HACKHACK Fs = Ke386GetFs();
/* Get PCR Selector, mask it and get its GDT Entry */