mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 08:54:40 +00:00
Remove r42305 hack, preserve racial purity of KiSystemStartupReal.
svn path=/trunk/; revision=42352
This commit is contained in:
parent
ba74c030d2
commit
8876d8092b
|
@ -712,34 +712,18 @@ KiSystemStartupReal(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||||
Ke386SetDs(KGDT_R3_DATA | RPL_MASK);
|
Ke386SetDs(KGDT_R3_DATA | RPL_MASK);
|
||||||
Ke386SetEs(KGDT_R3_DATA | RPL_MASK);
|
Ke386SetEs(KGDT_R3_DATA | RPL_MASK);
|
||||||
|
|
||||||
/* HACK compensates for KiRosPrepareForSystemStartup hack */
|
/* Save NMI and double fault traps */
|
||||||
if ((ULONG)Idt == KiIdtDescriptor.Base)
|
RtlCopyMemory(&NmiEntry, &Idt[2], sizeof(KIDTENTRY));
|
||||||
{
|
RtlCopyMemory(&DoubleFaultEntry, &Idt[8], sizeof(KIDTENTRY));
|
||||||
USHORT FlippedSelector;
|
|
||||||
|
|
||||||
FlippedSelector = KiIdt[2].Selector;
|
/* Copy kernel's trap handlers */
|
||||||
KiIdt[2].Selector = KiIdt[2].ExtendedOffset;
|
RtlCopyMemory(Idt,
|
||||||
KiIdt[2].ExtendedOffset = FlippedSelector;
|
(PVOID)KiIdtDescriptor.Base,
|
||||||
|
KiIdtDescriptor.Limit + 1);
|
||||||
|
|
||||||
FlippedSelector = KiIdt[8].Selector;
|
/* Restore NMI and double fault */
|
||||||
KiIdt[8].Selector = KiIdt[8].ExtendedOffset;
|
RtlCopyMemory(&Idt[2], &NmiEntry, sizeof(KIDTENTRY));
|
||||||
KiIdt[8].ExtendedOffset = FlippedSelector;
|
RtlCopyMemory(&Idt[8], &DoubleFaultEntry, sizeof(KIDTENTRY));
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Save NMI and double fault traps */
|
|
||||||
RtlCopyMemory(&NmiEntry, &Idt[2], sizeof(KIDTENTRY));
|
|
||||||
RtlCopyMemory(&DoubleFaultEntry, &Idt[8], sizeof(KIDTENTRY));
|
|
||||||
|
|
||||||
/* Copy kernel's trap handlers */
|
|
||||||
RtlCopyMemory(Idt,
|
|
||||||
(PVOID)KiIdtDescriptor.Base,
|
|
||||||
KiIdtDescriptor.Limit + 1);
|
|
||||||
|
|
||||||
/* Restore NMI and double fault */
|
|
||||||
RtlCopyMemory(&Idt[2], &NmiEntry, sizeof(KIDTENTRY));
|
|
||||||
RtlCopyMemory(&Idt[8], &DoubleFaultEntry, sizeof(KIDTENTRY));
|
|
||||||
}
|
|
||||||
|
|
||||||
AppCpuInit:
|
AppCpuInit:
|
||||||
/* Loop until we can release the freeze lock */
|
/* Loop until we can release the freeze lock */
|
||||||
|
|
Loading…
Reference in a new issue