[NTOSKRNL]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 20 Nov 2010 10:57:26 +0000 (10:57 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 20 Nov 2010 10:57:26 +0000 (10:57 +0000)
Remove duplicated and incompatible implementations of setjmp / longjmp

svn path=/branches/cmake-bringup/; revision=49656

ntoskrnl/CMakeLists.txt
ntoskrnl/kdbg/i386/longjmp.S [deleted file]
ntoskrnl/kdbg/i386/setjmp.S [deleted file]

index b6db53f..92dd29c 100644 (file)
@@ -342,9 +342,7 @@ list(APPEND SOURCE
 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_dependencies(ntoskrnl psdk bugcodes kernel_zw kernel_napi asm)
 
 add_minicd_target(ntoskrnl reactos ntoskrnl.exe)
 add_livecd_target(ntoskrnl reactos/system32)
-add_importlib_target(ntoskrnl.spec)
\ No newline at end of file
+add_importlib_target(ntoskrnl.spec)
diff --git a/ntoskrnl/kdbg/i386/longjmp.S b/ntoskrnl/kdbg/i386/longjmp.S
deleted file mode 100644 (file)
index 99ac3b2..0000000
+++ /dev/null
@@ -1,70 +0,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)
-       
diff --git a/ntoskrnl/kdbg/i386/setjmp.S b/ntoskrnl/kdbg/i386/setjmp.S
deleted file mode 100644 (file)
index d407b3d..0000000
+++ /dev/null
@@ -1,61 +0,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
-