[ros-diffs] [tkreuzer] 49656: [NTOSKRNL] Remove duplicated and incompatible implementations of setjmp / longjmp

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Nov 20 10:57:27 UTC 2010


Author: tkreuzer
Date: Sat Nov 20 10:57:26 2010
New Revision: 49656

URL: http://svn.reactos.org/svn/reactos?rev=49656&view=rev
Log:
[NTOSKRNL]
Remove duplicated and incompatible implementations of setjmp / longjmp

Removed:
    branches/cmake-bringup/ntoskrnl/kdbg/i386/longjmp.S
    branches/cmake-bringup/ntoskrnl/kdbg/i386/setjmp.S
Modified:
    branches/cmake-bringup/ntoskrnl/CMakeLists.txt

Modified: branches/cmake-bringup/ntoskrnl/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/CMakeLists.txt?rev=49656&r1=49655&r2=49656&view=diff
==============================================================================
--- branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] (original)
+++ branches/cmake-bringup/ntoskrnl/CMakeLists.txt [iso-8859-1] Sat Nov 20 10:57:26 2010
@@ -342,9 +342,7 @@
 if(KDBG)
 list(APPEND SOURCE
     kdbg/i386/i386-dis.c
-    kdbg/i386/kdb_help.S
-    kdbg/i386/longjmp.S
-    kdbg/i386/setjmp.S)
+    kdbg/i386/kdb_help.S)
 endif(KDBG)
 
 elseif(ARCH MATCHES amd64)
@@ -430,4 +428,4 @@
 
 add_minicd_target(ntoskrnl reactos ntoskrnl.exe)
 add_livecd_target(ntoskrnl reactos/system32)
-add_importlib_target(ntoskrnl.spec)
+add_importlib_target(ntoskrnl.spec)

Removed: branches/cmake-bringup/ntoskrnl/kdbg/i386/longjmp.S
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/kdbg/i386/longjmp.S?rev=49655&view=auto
==============================================================================
--- branches/cmake-bringup/ntoskrnl/kdbg/i386/longjmp.S [iso-8859-1] (original)
+++ branches/cmake-bringup/ntoskrnl/kdbg/i386/longjmp.S (removed)
@@ -1,70 +1,0 @@
-        .file   "longjmp.S"
-/*
- * Copyright (C) 1998, 1999, Jonathan S. Shapiro.
- *
- * This file is part of the EROS Operating System.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-        /*
-         * typedef struct {
-         *  unsigned long ebx, esi, edi;
-         *  unsigned long ebp;
-         *  unsigned long sp;
-         *  unsigned long pc;
-         * } jmp_buf[1];
-         */
-        
-        /*
-         * On entry, the stack to longjmp looks like:
-         *
-         *     value
-         *     ptr to jmp_buf
-         *     return PC
-         */
-
-.globl _longjmp
-_longjmp:
-        pushl   %ebp
-        movl    %esp,%ebp
-
-        movl    8(%ebp),%ecx            /* address of jmp_buf to ecx */
-        movl    12(%ebp),%eax           /* return value to %eax */
-        testl   %eax,%eax
-        jne     1f
-        incl    %eax                    /* return 1 if handed 0 */
-
-1:      
-        movl    (%ecx),%ebx             /* restore %ebx */
-        movl    4(%ecx),%esi            /* restore %esi */
-        movl    8(%ecx),%edi            /* restore %edi */
-        
-        /*
-         * From this instant on we are not running in a valid frame
-         */
-        
-        movl    12(%ecx),%ebp           /* restore %ebp */
-        movl    16(%ecx),%esp           /* restore %esp */
-        /* movl 20(%ecx),%eax           return PC */
-
-        /*
-         * Since we are abandoning the stack in any case, 
-         * there isn't much point in doing the usual return 
-         * discipline.
-         */
-        
-        jmpl    *20(%ecx)
-	

Removed: branches/cmake-bringup/ntoskrnl/kdbg/i386/setjmp.S
URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/ntoskrnl/kdbg/i386/setjmp.S?rev=49655&view=auto
==============================================================================
--- branches/cmake-bringup/ntoskrnl/kdbg/i386/setjmp.S [iso-8859-1] (original)
+++ branches/cmake-bringup/ntoskrnl/kdbg/i386/setjmp.S (removed)
@@ -1,61 +1,0 @@
-        .file   "setjmp.S"
-/*
- * Copyright (C) 1998, 1999, Jonathan S. Shapiro.
- *
- * This file is part of the EROS Operating System.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-/* #include <eros/i486/asm.h> */
-        
-        
-        /*
-         * typedef struct {
-         *  unsigned long ebx, esi, edi;
-         *  unsigned long ebp;
-         *  unsigned long sp;
-         *  unsigned long pc;
-         * } jmp_buf[1];
-         */
-        
-        /*
-         * On entry, the stack to setjmp looks like:
-         *
-         *     ptr to jmp_buf
-         *     return PC
-         */
-.globl _setjmp
-.globl __setjmp
-_setjmp:	
-__setjmp:	
-        pushl   %ebp
-        movl    %esp,%ebp
-        
-        movl    0x8(%ebp),%eax          /* address of jmp_buf to eax */
-        movl    %ebx,(%eax)             /* save %ebx */
-        movl    %esi,4(%eax)            /* save %esi */
-        movl    %edi,8(%eax)            /* save %edi */
-        leal    8(%ebp),%edx            /* calling proc's esp, not ours! */
-        movl    %edx,16(%eax)
-        movl    4(%ebp), %edx           /* save return PC */
-        movl    %edx,20(%eax)
-        movl    0(%ebp),%edx            /* calling proc's ebp, not ours! */
-        movl    %edx,12(%eax)
-
-        xorl    %eax,%eax               /* return 0 the first time */
-        leave
-        ret
-




More information about the Ros-diffs mailing list