[ros-diffs] [ion] 23625: - Remove some FPU deprecated constants and use the new ones. - Deliver APCs on return from context switch with pending kernel APCs.

ion at svn.reactos.org ion at svn.reactos.org
Sun Aug 20 22:27:03 CEST 2006


Author: ion
Date: Mon Aug 21 00:27:03 2006
New Revision: 23625

URL: http://svn.reactos.org/svn/reactos?rev=23625&view=rev
Log:
- Remove some FPU deprecated constants and use the new ones.
- Deliver APCs on return from context switch with pending kernel APCs.

Modified:
    trunk/reactos/ntoskrnl/include/internal/i386/ke.h
    trunk/reactos/ntoskrnl/ke/i386/fpu.c
    trunk/reactos/ntoskrnl/ke/kthread.c

Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/ke.h?rev=23625&r1=23624&r2=23625&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/ke.h (original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/ke.h Mon Aug 21 00:27:03 2006
@@ -42,11 +42,6 @@
 
 #define DR7_ACTIVE              0x00000055  /* If any of these bits are set, a Dr is active */
 
-/* Possible values for KTHREAD's NpxState */
-#define NPX_STATE_INVALID   0x01
-#define NPX_STATE_VALID     0x02
-#define NPX_STATE_DIRTY     0x04
-
 #define FRAME_EDITED        0xFFF8
 
 #ifndef __ASM__

Modified: trunk/reactos/ntoskrnl/ke/i386/fpu.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/fpu.c?rev=23625&r1=23624&r2=23625&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/fpu.c (original)
+++ trunk/reactos/ntoskrnl/ke/i386/fpu.c Mon Aug 21 00:27:03 2006
@@ -330,10 +330,10 @@
     ULONG Cr0;
 
     KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
-    if (Thread->NpxState & NPX_STATE_VALID)
+    if (Thread->NpxState & NPX_STATE_LOADED)
     {
         FxSaveArea = (PFX_SAVE_AREA)((ULONG_PTR)Thread->InitialStack - sizeof (FX_SAVE_AREA));
-        if (Thread->NpxState & NPX_STATE_DIRTY)
+        if (Thread->NpxState & NPX_STATE_NOT_LOADED)
         {
             ASSERT(KeGetCurrentPrcb()->NpxThread == Thread);
 
@@ -349,7 +349,7 @@
                 KeGetCurrentPrcb()->NpxThread = NULL;
             }
             Ke386SetCr0(Cr0);
-            Thread->NpxState = NPX_STATE_VALID;
+            Thread->NpxState = NPX_STATE_LOADED;
         }
     }
     KeLowerIrql(OldIrql);
@@ -382,7 +382,7 @@
         CurrentThread = KeGetCurrentThread();
         ASSERT(CurrentThread != NULL);
 
-        CurrentThread->NpxState |= NPX_STATE_DIRTY;
+        CurrentThread->NpxState |= NPX_STATE_NOT_LOADED;
         KeLowerIrql(oldIrql);
         DPRINT("Device not present exception handled!\n");
 

Modified: trunk/reactos/ntoskrnl/ke/kthread.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/kthread.c?rev=23625&r1=23624&r2=23625&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/kthread.c (original)
+++ trunk/reactos/ntoskrnl/ke/kthread.c Mon Aug 21 00:27:03 2006
@@ -210,7 +210,6 @@
     DPRINT("Dispatching Thread as blocked\n");
     ApcState = KiDispatchThreadNoLock(Waiting);
 
-#if 0
     /* Check if we need to deliver APCs */
     if (ApcState)
     {
@@ -221,7 +220,6 @@
         KiDeliverApc(KernelMode, NULL, NULL);
         ASSERT(CurrentThread->WaitIrql == 0);
     }
-#endif
 
     /* Lower IRQL back to what it was */
     KfLowerIrql(CurrentThread->WaitIrql);




More information about the Ros-diffs mailing list