Author: tkreuzer Date: Fri Aug 22 20:31:51 2008 New Revision: 35548
URL: http://svn.reactos.org/svn/reactos?rev=35548&view=rev Log: Fix Ke386SaveFlags and Ke386RestoreFlags. Rename KIDT_INIT's 3rd member to IstIndex and use it in KeInitExceptions.
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskr... ============================================================================== --- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h [iso-8859-1] Fri Aug 22 20:31:51 2008 @@ -48,8 +48,8 @@ : /* no outputs */ \ : "m" (X));
-#define Ke386SaveFlags(x) __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */) -#define Ke386RestoreFlags(x) __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory") +#define Ke386SaveFlags(x) __asm__ __volatile__("pushfq ; popq %0":"=g" (x): /* no input */) +#define Ke386RestoreFlags(x) __asm__ __volatile__("pushq %0 ; popfq": /* no output */ :"g" (x):"memory")
#define _Ke386GetSeg(N) ({ \ unsigned int __d; \
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskr... ============================================================================== --- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] Fri Aug 22 20:31:51 2008 @@ -54,7 +54,7 @@ { UCHAR InterruptId; UCHAR Dpl; - UCHAR Type; + UCHAR IstIndex; PVOID ServiceRoutine; } KIDT_INIT, *PKIDT_INIT;
Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskr... ============================================================================== --- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/except.c [iso-8859-1] Fri Aug 22 20:31:51 2008 @@ -42,7 +42,7 @@ {0x2D, 0x03, 0x00, KiDebugServiceTrap}, {0x2F, 0x00, 0x00, KiDpcInterrupt}, {0xE1, 0x00, 0x00, KiIpiInterrupt}, - {0, 0} + {0, 0, 0, 0} };
KIDTENTRY64 KiIdt[256]; @@ -68,17 +68,18 @@ { Offset = (ULONG64)KiInterruptInitTable[j].ServiceRoutine; KiIdt[i].Dpl = KiInterruptInitTable[j].Dpl; + KiIdt[i].IstIndex = KiInterruptInitTable[j].IstIndex; j++; } else { Offset = (ULONG64)KiUnexpectedInterrupt; KiIdt[i].Dpl = 0; + KiIdt[i].IstIndex = 0; } KiIdt[i].OffsetLow = Offset & 0xffff; KiIdt[i].Selector = KGDT_64_R0_CODE; KiIdt[i].Type = 0x0e; - KiIdt[i].IstIndex = 0; KiIdt[i].Reserved0 = 0; KiIdt[i].Present = 1; KiIdt[i].OffsetMiddle = (Offset >> 16) & 0xffff;