[ros-diffs] [tkreuzer] 35548: Fix Ke386SaveFlags and Ke386RestoreFlags. Rename KIDT_INIT's 3rd member to IstIndex and use it in KeInitExceptions.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Aug 23 03:31:52 CEST 2008


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/ntoskrnl/include/internal/amd64/intrin_i.h?rev=35548&r1=35547&r2=35548&view=diff
==============================================================================
--- 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/ntoskrnl/include/internal/amd64/ke.h?rev=35548&r1=35547&r2=35548&view=diff
==============================================================================
--- 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/ntoskrnl/ke/amd64/except.c?rev=35548&r1=35547&r2=35548&view=diff
==============================================================================
--- 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;



More information about the Ros-diffs mailing list