- Add the ktrap_frame hack back because it's still missing parts until it can be...
authorAlex Ionescu <aionescu@gmail.com>
Thu, 12 Jan 2006 01:16:57 +0000 (01:16 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Thu, 12 Jan 2006 01:16:57 +0000 (01:16 +0000)
svn path=/trunk/; revision=20801

reactos/ntoskrnl/ke/i386/syscall.S
reactos/ntoskrnl/ke/i386/usercall_asm.S

index 18ea36e..850a363 100644 (file)
@@ -470,14 +470,22 @@ V86_Exit_Return:
     ja RestoreAll
 // ==================== END IF FULL RESTORE NEEDED ====================//
 
+//badbadbad     
+     add esp, 0x30      
+     pop gs     
+     pop es     
+     pop ds     
+     add esp, 0x14      
+//badbadbad
+
     /* Restore FS */
 RestoreFs:
-    lea esp, [ebp+KTRAP_FRAME_FS]
+    //lea esp, [ebp+KTRAP_FRAME_FS]
     pop fs
 
 CommonStackClean:
     /* Skip debug information and unsaved registers */
-    lea esp, [ebp+KTRAP_FRAME_EDI]
+    //lea esp, [ebp+KTRAP_FRAME_EDI]
     pop edi
     pop esi
     pop ebx
index 35d3383..f20e70e 100644 (file)
@@ -185,6 +185,11 @@ DontBias:
     lea esi, [edx+KTRAP_FRAME_FS]
     rep movsd
 
+    /* TODO: Ugly hack because of some missing logic in syscall.s */
+    mov dword ptr [esp+KTRAP_FRAME_GS], 0
+    mov dword ptr [esp+KTRAP_FRAME_DS], KGDT_R3_DATA + RPL_MASK
+    mov dword ptr [esp+KTRAP_FRAME_ES], KGDT_R3_DATA + RPL_MASK
+
     /* FIXME: Copy debug registers if needed */
 
     /* Get user-mode dispatcher address and set it as EIP */