[FAST486]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Wed, 5 Nov 2014 00:50:11 +0000 (00:50 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Wed, 5 Nov 2014 00:50:11 +0000 (00:50 +0000)
Allow direct calls/jumps to TSS selectors in Fast486ProcessGate.

svn path=/trunk/; revision=65262

reactos/lib/fast486/common.inl

index 8bc4cf8..6828583 100644 (file)
@@ -702,25 +702,37 @@ Fast486ProcessGate(PFAST486_STATE State, USHORT Selector, ULONG Offset, BOOLEAN
         return FALSE;
     }
 
-    if (Descriptor.Signature == FAST486_TASK_GATE_SIGNATURE)
+    switch (Descriptor.Signature)
     {
-        /* Task gate */
+        case FAST486_TASK_GATE_SIGNATURE:
+        {
+            Fast486TaskSwitch(State,
+                              Call ? FAST486_TASK_CALL : FAST486_TASK_JUMP,
+                              ((PFAST486_IDT_ENTRY)&Descriptor)->Selector);
 
-        Fast486TaskSwitch(State,
-                          Call ? FAST486_TASK_CALL : FAST486_TASK_JUMP,
-                          ((PFAST486_IDT_ENTRY)&Descriptor)->Selector);
+            return FALSE;
+        }
 
-        return FALSE;
-    }
-    else if (Descriptor.Signature == FAST486_CALL_GATE_SIGNATURE)
-    {
-        /* Call gate */
+        case FAST486_TSS_SIGNATURE:
+        {
+            Fast486TaskSwitch(State,
+                              Call ? FAST486_TASK_CALL : FAST486_TASK_JUMP,
+                              Selector);
 
-        // TODO: NOT IMPLEMENTED
-        UNIMPLEMENTED;
-    }
+            return FALSE;
+        }
 
-    return TRUE;
+        case FAST486_CALL_GATE_SIGNATURE:
+        {
+            // TODO: NOT IMPLEMENTED
+            UNIMPLEMENTED;
+        }
+
+        default:
+        {
+            return TRUE;
+        }
+    }
 }
 
 FORCEINLINE