Commit in reactos/ntoskrnl on KJKHyperion-RtlUnwind
Makefile.i386+1-41.16.24.2 -> 1.16.24.3
ke/i386/syscall.S+67-111.14.10.2 -> 1.14.10.3
       /sysret.inc.S-631.1.2.1 removed
ps/thread.c+2-21.124.14.1 -> 1.124.14.2
ps/i386/.cvsignore-31.1.2.1 removed
       /thread.asm-271.1.2.1 removed
+70-110
3 removed + 3 modified, total 6 files
Reverted some changes:
 - the NtContinue "fix" was a hack. Me and Royce have found a much better solution
 - the system call trap handler does terminate the exception list: the bug is in NtRaiseException which is supposed to restore it

reactos/ntoskrnl
Makefile.i386 1.16.24.2 -> 1.16.24.3
diff -u -r1.16.24.2 -r1.16.24.3
--- Makefile.i386	27 Jun 2004 22:11:21 -0000	1.16.24.2
+++ Makefile.i386	29 Jun 2004 20:48:55 -0000	1.16.24.3
@@ -39,9 +39,6 @@
 	mm/i386/page.o \
 	mm/i386/pfault.o
 
-OBJECTS_PS_I386 := \
-	ps/i386/thread.o
-
 OBJECTS_RTL_I386 := \
 	rtl/i386/alldiv.o \
 	rtl/i386/allmul.o \
@@ -56,5 +53,5 @@
 
 RTL_EXCLUDE_FILTER := 
 
-OBJECTS_ARCH = $(OBJECTS_BOOT) $(OBJECTS_EX_I386) $(OBJECTS_KE_I386) $(OBJECTS_MM_I386) $(OBJECTS_PS_I386) \
+OBJECTS_ARCH = $(OBJECTS_BOOT) $(OBJECTS_EX_I386) $(OBJECTS_KE_I386) $(OBJECTS_MM_I386) \
   $(OBJECTS_RTL_I386)

reactos/ntoskrnl/ke/i386
syscall.S 1.14.10.2 -> 1.14.10.3
diff -u -r1.14.10.2 -r1.14.10.3
--- syscall.S	27 Jun 2004 22:11:21 -0000	1.14.10.2
+++ syscall.S	29 Jun 2004 20:48:56 -0000	1.14.10.3
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: syscall.S,v 1.14.10.2 2004/06/27 22:11:21 hyperion Exp $
+/* $Id: syscall.S,v 1.14.10.3 2004/06/29 20:48:56 hyperion Exp $
  *
  * FILE:            ntoskrnl/hal/x86/syscall.s
  * PURPOSE:         2E trap handler
@@ -38,8 +38,6 @@
  */
 .globl KeReturnFromSystemCall
 .globl KeReturnFromSystemCallWithHook
-.globl KeSystemCallReturn
-.globl KeSystemCallReturn2
 .globl _interrupt_handler2e
 _interrupt_handler2e:
 
@@ -59,6 +57,8 @@
 	   /* Save the old exception list */
 	   movl         %fs:KPCR_EXCEPTION_LIST, %ebx
 	   pushl	%ebx
+	   /* Set the exception handler chain terminator */
+	   movl         $0xffffffff, %fs:KPCR_EXCEPTION_LIST
 	   /* Get a pointer to the current thread */
 	   movl         %fs:KPCR_CURRENT_THREAD, %esi
 	   /* Save the old previous mode */
@@ -153,8 +153,7 @@
 
            /*  Allocate room for argument list from kernel stack  */
            movl  %es:_KeServiceDescriptorTable + 12, %ecx
-           movb  %es:(%ecx, %eax), %cl
-           movzx %cl, %ecx
+           movl  %es:(%ecx, %eax, 4), %ecx
            subl  %ecx, %esp
 
            /*  Copy the arguments from the user stack to the kernel stack  */
@@ -175,7 +174,20 @@
            movl  %es:(%ecx, %eax, 4), %eax
            call  *%eax
 
-           jmp   KeSystemCallReturn
+#if CHECKED
+           /*  Bump Service Counter  */
+#endif
+
+           /*  Deallocate the kernel stack frame  */
+           movl %ebp,%esp
+
+	   /* Call the post system call hook and deliver any pending APCs */
+	   pushl %ebp
+	   pushl %eax
+	   call _KiAfterSystemCallHook
+	   addl $8,%esp
+
+           jmp  KeReturnFromSystemCall
 
 new_useShadowTable:
 
@@ -199,8 +211,7 @@
 
            /*  Allocate room for argument list from kernel stack  */
            movl  %es:_KeServiceDescriptorTableShadow + 28, %ecx
-           movb  %es:(%ecx, %eax), %cl
-           movzx %cl, %ecx
+           movl  %es:(%ecx, %eax, 4), %ecx
            subl  %ecx, %esp
 
            /*  Copy the arguments from the user stack to the kernel stack  */
@@ -226,7 +237,52 @@
            movl  %es:(%ecx, %eax, 4), %eax
            call  *%eax
 
-#include "sysret.inc.S"
+#if CHECKED
+           /*  Bump Service Counter  */
+#endif
+
+           /*  Deallocate the kernel stack frame  */
+           movl %ebp,%esp
 
-#define _KeSystemCallReturn2
-#include "sysret.inc.S"
+KeReturnFromSystemCallWithHook:	
+	   /* Call the post system call hook and deliver any pending APCs */
+	   pushl %esp
+	   pushl %eax
+	   call _KiAfterSystemCallHook
+	   addl $8,%esp
+
+KeReturnFromSystemCall:
+	
+           /* Restore the user context */
+	   /* Get a pointer to the current thread */
+           movl %fs:0x124, %esi
+	
+           /* Restore the old trap frame pointer */
+           movl 0x3c(%esp), %ebx
+	   movl %ebx, KTHREAD_TRAP_FRAME(%esi)
+	
+	   /* Skip debug information and unsaved registers */
+	   addl	$0x30, %esp
+	   popl %gs
+	   popl %es
+	   popl %ds
+	   popl %edx
+	   popl %ecx
+	   addl $0x4, %esp   /* Don't restore eax */
+
+	   /* Restore the old previous mode */
+	   popl %ebx
+	   movb %bl, %ss:KTHREAD_PREVIOUS_MODE(%esi)
+
+	   /* Restore the old exception handler list */
+	   popl %ebx
+	   movl %ebx, %fs:KPCR_EXCEPTION_LIST
+	
+	   popl %fs 
+	   popl %edi
+	   popl %esi
+	   popl %ebx
+	   popl %ebp
+	   addl $0x4, %esp  /* Ignore error code */
+		
+           iret

reactos/ntoskrnl/ke/i386
sysret.inc.S removed after 1.1.2.1
diff -N sysret.inc.S
--- sysret.inc.S	27 Jun 2004 22:11:22 -0000	1.1.2.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,63 +0,0 @@
-#ifndef _KeSystemCallReturn2
-KeSystemCallReturn:
-#else
-KeSystemCallReturn2:
-#endif
-
-#if CHECKED
-           /*  Bump Service Counter  */
-#endif
-
-           /*  Deallocate the kernel stack frame  */
-           movl %ebp,%esp
-
-#ifndef _KeSystemCallReturn2
-KeReturnFromSystemCallWithHook:	
-#endif
-	   /* Call the post system call hook and deliver any pending APCs */
-	   pushl %esp
-	   pushl %eax
-	   call _KiAfterSystemCallHook
-	   addl $8,%esp
-
-#ifndef _KeSystemCallReturn2
-KeReturnFromSystemCall:
-#endif
-	
-           /* Restore the user context */
-	   /* Get a pointer to the current thread */
-           movl %fs:0x124, %esi
-	
-           /* Restore the old trap frame pointer */
-           movl 0x3c(%esp), %ebx
-	   movl %ebx, KTHREAD_TRAP_FRAME(%esi)
-	
-	   /* Skip debug information and unsaved registers */
-	   addl	$0x30, %esp
-	   popl %gs
-	   popl %es
-	   popl %ds
-	   popl %edx
-	   popl %ecx
-#ifndef _KeSystemCallReturn2
-	   addl $0x4, %esp   /* Don't restore eax */
-#else
-           popl %eax
-#endif
-
-	   /* Restore the old previous mode */
-	   popl %ebx
-	   movb %bl, %ss:KTHREAD_PREVIOUS_MODE(%esi)
-
-	   /* Restore the old exception handler list */
-	   popl %ebx
-	   movl %ebx, %fs:KPCR_EXCEPTION_LIST
-	
-	   popl %fs 
-	   popl %edi
-	   popl %esi
-	   popl %ebx
-	   popl %ebp
-	   addl $0x4, %esp  /* Ignore error code */
-		
-           iret

reactos/ntoskrnl/ps
thread.c 1.124.14.1 -> 1.124.14.2
diff -u -r1.124.14.1 -r1.124.14.2
--- thread.c	27 Jun 2004 22:11:22 -0000	1.124.14.1
+++ thread.c	29 Jun 2004 20:48:56 -0000	1.124.14.2
@@ -1,4 +1,4 @@
-/* $Id: thread.c,v 1.124.14.1 2004/06/27 22:11:22 hyperion Exp $
+/* $Id: thread.c,v 1.124.14.2 2004/06/29 20:48:56 hyperion Exp $
  *
  * COPYRIGHT:              See COPYING in the top level directory
  * PROJECT:                ReactOS kernel
@@ -722,7 +722,7 @@
 }
 
 NTSTATUS STDCALL
-KeRosContinue(IN PCONTEXT	Context,
+NtContinue(IN PCONTEXT	Context,
 	   IN BOOLEAN TestAlert)
 {
    PKTRAP_FRAME TrapFrame;

reactos/ntoskrnl/ps/i386
.cvsignore removed after 1.1.2.1
diff -N .cvsignore
--- .cvsignore	28 Jun 2004 21:45:00 -0000	1.1.2.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,3 +0,0 @@
-*.d
-*.o
-*.sym

reactos/ntoskrnl/ps/i386
thread.asm removed after 1.1.2.1
diff -N thread.asm
--- thread.asm	27 Jun 2004 22:11:22 -0000	1.1.2.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-cpu 486
-segment .text use32
-
-extern _KeRosContinue@8
-extern KeSystemCallReturn
-extern KeSystemCallReturn2
-
-global _NtContinue@8
-_NtContinue@8:
- ; Make KeRosContinue "return forwards" to our .ret label. This will take care
- ; of resetting the stack to the address KeSystemCallReturn[2] expects
- mov [esp], dword .ret
-
- ; Call the real function (see ps\thread.c)
- jmp _KeRosContinue@8
-
-.ret
- ; Test the return value
- cmp eax, 0
-
- ; Success: return without overwriting EAX with the return value
- jge KeSystemCallReturn2
-
- ; Failure: normal return
- jmp KeSystemCallReturn
-
-; EOF
CVSspam 0.2.8