[ros-diffs] [ion] 20801: - Add the ktrap_frame hack back because it's still missing parts until it can be removed. Sorry for not noticing earlier and breaking boot, it only happens on vmware (I guess due to the way it handles the CPU differently).

ion at svn.reactos.org ion at svn.reactos.org
Thu Jan 12 02:17:12 CET 2006


- Add the ktrap_frame hack back because it's still missing parts until
it can be removed. Sorry for not noticing earlier and breaking boot, it
only happens on vmware (I guess due to the way it handles the CPU
differently).
Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S
Modified: trunk/reactos/ntoskrnl/ke/i386/usercall_asm.S
  _____  

Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S
--- trunk/reactos/ntoskrnl/ke/i386/syscall.S	2006-01-12 00:46:35 UTC
(rev 20800)
+++ trunk/reactos/ntoskrnl/ke/i386/syscall.S	2006-01-12 01:16:57 UTC
(rev 20801)
@@ -470,14 +470,22 @@

     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
  _____  

Modified: trunk/reactos/ntoskrnl/ke/i386/usercall_asm.S
--- trunk/reactos/ntoskrnl/ke/i386/usercall_asm.S	2006-01-12
00:46:35 UTC (rev 20800)
+++ trunk/reactos/ntoskrnl/ke/i386/usercall_asm.S	2006-01-12
01:16:57 UTC (rev 20801)
@@ -185,6 +185,11 @@

     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 */
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20060112/61498c21/attachment.html


More information about the Ros-diffs mailing list