Remove get/make/signalcontext.
authorSimon Schubert <corecode@dragonflybsd.org>
Thu, 27 Jul 2006 00:44:20 +0000 (00:44 +0000)
committerSimon Schubert <corecode@dragonflybsd.org>
Thu, 27 Jul 2006 00:44:20 +0000 (00:44 +0000)
SUSv3 calls it "obsolescent" and i386 doesn't have it either.

lib/libc/amd64/gen/Makefile.inc
lib/libc/amd64/gen/makecontext.c [deleted file]
lib/libc/amd64/gen/signalcontext.c [deleted file]
lib/libc/amd64/sys/Makefile.inc
lib/libc/amd64/sys/getcontext.S [deleted file]

index 43317fb..cbf1283 100644 (file)
@@ -1,10 +1,9 @@
 #      @(#)Makefile.inc        8.1 (Berkeley) 6/4/93
 # $FreeBSD: src/lib/libc/amd64/gen/Makefile.inc,v 1.24 2003/10/13 20:32:33 alc Exp $
-# $DragonFly: src/lib/libc/amd64/gen/Makefile.inc,v 1.1 2004/02/02 05:43:14 dillon Exp $
+# $DragonFly: src/lib/libc/amd64/gen/Makefile.inc,v 1.2 2006/07/27 00:44:20 corecode Exp $
 
 SRCS+= _setjmp.S rfork_thread.S setjmp.S sigsetjmp.S \
        fabs.S modf.S \
        frexp.c infinity.c isinf.c ldexp.c \
-       makecontext.c signalcontext.c \
        fpgetmask.c fpsetmask.c fpgetprec.c fpsetprec.c \
        fpgetround.c fpsetround.c fpgetsticky.c fpsetsticky.c
diff --git a/lib/libc/amd64/gen/makecontext.c b/lib/libc/amd64/gen/makecontext.c
deleted file mode 100644 (file)
index 75b8281..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/amd64/gen/makecontext.c,v 1.2 2003/12/05 01:36:44 peter Exp $
- * $DragonFly: src/lib/libc/amd64/gen/Attic/makecontext.c,v 1.1 2004/02/02 05:43:14 dillon Exp $
- */
-
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <stdarg.h>
-#include <stdlib.h>
-
-typedef void (*func_t)(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t,
-    uint64_t);
-
-/* Prototypes */
-static void ctx_wrapper(ucontext_t *ucp, func_t func, uint64_t *args);
-
-__weak_reference(__makecontext, makecontext);
-
-void
-__makecontext(ucontext_t *ucp, void (*start)(void), int argc, ...)
-{
-       uint64_t *args;
-       uint64_t *sp;
-       va_list ap;
-       int i;
-
-       /* A valid context is required. */
-       if ((ucp == NULL) || (ucp->uc_mcontext.mc_len != sizeof(mcontext_t)))
-               return;
-       else if ((argc < 0) || (argc > 6) || (ucp->uc_stack.ss_sp == NULL) ||
-           (ucp->uc_stack.ss_size < MINSIGSTKSZ)) {
-               /*
-                * This should really return -1 with errno set to ENOMEM
-                * or something, but the spec says that makecontext is
-                * a void function.   At least make sure that the context
-                * isn't valid so it can't be used without an error.
-                */
-               ucp->uc_mcontext.mc_len = 0;
-               return;
-       }
-
-       /* Align the stack to 16 bytes. */
-       sp = (uint64_t *)(ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-       sp = (uint64_t *)((uint64_t)sp & -15UL);
-
-       /* Allocate space for a maximum of 6 arguments on the stack. */
-       args = sp - 6;
-
-       /*
-        * Account for arguments on stack and do the funky C entry alignment.
-        * This means that we need an 8-byte-odd alignment since the ABI expects
-        * the return address to be pushed, thus breaking the 16 byte alignment.
-        */
-       sp -= 7;
-
-       /* Add the arguments: */
-       va_start(ap, argc);
-       for (i = 0; i < argc; i++)
-               args[i] = va_arg(ap, uint64_t);
-       va_end(ap);
-       for (i = argc; i < 6; i++)
-               args[i] = 0;
-
-       ucp->uc_mcontext.mc_rdi = (register_t)ucp;
-       ucp->uc_mcontext.mc_rsi = (register_t)start;
-       ucp->uc_mcontext.mc_rdx = (register_t)args;
-       ucp->uc_mcontext.mc_rbp = (register_t)sp;
-       ucp->uc_mcontext.mc_rbx = (register_t)sp;
-       ucp->uc_mcontext.mc_rsp = (register_t)sp;
-       ucp->uc_mcontext.mc_rip = (register_t)ctx_wrapper;
-}
-
-static void
-ctx_wrapper(ucontext_t *ucp, func_t func, uint64_t *args)
-{
-       (*func)(args[0], args[1], args[2], args[3], args[4], args[5]);
-       if (ucp->uc_link == NULL)
-               exit(0);
-       setcontext((const ucontext_t *)ucp->uc_link);
-       /* should never get here */
-       abort();
-       /* NOTREACHED */
-}
diff --git a/lib/libc/amd64/gen/signalcontext.c b/lib/libc/amd64/gen/signalcontext.c
deleted file mode 100644 (file)
index 63c0825..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/amd64/gen/signalcontext.c,v 1.2 2003/07/26 12:58:28 davidxu Exp $
- * $DragonFly: src/lib/libc/amd64/gen/Attic/signalcontext.c,v 1.1 2004/02/02 05:43:14 dillon Exp $
- */
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <strings.h>
-
-typedef void (*handler_t)(uint64_t, uint64_t, uint64_t);
-
-/* Prototypes */
-static void ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args);
-
-__weak_reference(__signalcontext, signalcontext);
-
-int
-__signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
-{
-       uint64_t *args;
-       siginfo_t *sig_si;
-       ucontext_t *sig_uc;
-       uint64_t sp;
-
-       /* Bail out if we don't have a valid ucontext pointer. */
-       if (ucp == NULL)
-               abort();
-
-       /*
-        * Build a signal frame and copy the arguments of signal handler
-        * 'func' onto the stack. We only need 3 arguments, but we
-        * create room for 4 so that we are 16-byte aligned.
-        */
-       sp = (ucp->uc_mcontext.mc_rsp - sizeof(ucontext_t)) & ~15UL;
-       sig_uc = (ucontext_t *)sp;
-       bcopy(ucp, sig_uc, sizeof(*sig_uc));
-       sp = (sp - sizeof(siginfo_t)) & ~15UL;
-       sig_si = (siginfo_t *)sp;
-       bzero(sig_si, sizeof(*sig_si));
-       sig_si->si_signo = sig;
-       sp -= 4 * sizeof(uint64_t);
-       args = (uint64_t *)sp;
-       args[0] = sig;
-       args[1] = (intptr_t)sig_si;
-       args[2] = (intptr_t)sig_uc;
-       args[3] = 0;
-       sp -= 16;
-
-       /*
-        * Setup the ucontext of the signal handler.
-        */
-       bzero(&ucp->uc_mcontext, sizeof(ucp->uc_mcontext));
-       ucp->uc_link = sig_uc;
-       sigdelset(&ucp->uc_sigmask, sig);
-
-       ucp->uc_mcontext.mc_len = sizeof(mcontext_t);
-       ucp->uc_mcontext.mc_rdi = (register_t)ucp;
-       ucp->uc_mcontext.mc_rsi = (register_t)func;
-       ucp->uc_mcontext.mc_rdx = (register_t)args;
-       ucp->uc_mcontext.mc_rbp = (register_t)sp;
-       ucp->uc_mcontext.mc_rbx = (register_t)sp;
-       ucp->uc_mcontext.mc_rsp = (register_t)sp;
-       ucp->uc_mcontext.mc_rip = (register_t)ctx_wrapper;
-       return (0);
-}
-
-static void
-ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args)
-{
-
-       (*func)(args[0], args[1], args[2]);
-       if (ucp->uc_link == NULL)
-               exit(0);
-       setcontext((const ucontext_t *)ucp->uc_link);
-       /* should never get here */
-       abort();
-       /* NOTREACHED */
-}
index b36e7c9..e291674 100644 (file)
@@ -1,10 +1,10 @@
 #      from: Makefile.inc,v 1.1 1993/09/03 19:04:23 jtc Exp
 # $FreeBSD: src/lib/libc/amd64/sys/Makefile.inc,v 1.29 2003/10/23 06:07:09 peter Exp $
-# $DragonFly: src/lib/libc/amd64/sys/Makefile.inc,v 1.1 2004/02/02 05:43:14 dillon Exp $
+# $DragonFly: src/lib/libc/amd64/sys/Makefile.inc,v 1.2 2006/07/27 00:44:20 corecode Exp $
 
 SRCS+= amd64_get_fsbase.c amd64_get_gsbase.c amd64_set_fsbase.c amd64_set_gsbase.c
 
-MDASM= vfork.S brk.S cerror.S exect.S getcontext.S pipe.S ptrace.S \
+MDASM= vfork.S brk.S cerror.S exect.S pipe.S ptrace.S \
        reboot.S sbrk.S setlogin.S sigreturn.S
 
 # Don't generate default code for these syscalls:
diff --git a/lib/libc/amd64/sys/getcontext.S b/lib/libc/amd64/sys/getcontext.S
deleted file mode 100644 (file)
index 2824e11..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * Copyright (c) 2003 Peter Wemm <peter@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/amd64/sys/getcontext.S,v 1.2 2003/09/04 00:31:45 peter Exp $
- * $DragonFly: src/lib/libc/amd64/sys/Attic/getcontext.S,v 1.1 2004/02/02 05:43:14 dillon Exp $
- */
-
-#include <machine/asm.h>
-#include <SYS.h>
-
-/*
- * This has to be magic to handle the multiple returns.
- * Otherwise, the setcontext() syscall will return here and we'll
- * pop off the return address and go to the *setcontext* call.
- */
-       .weak   _getcontext
-       .set    _getcontext,__sys_getcontext
-       .weak   getcontext
-       .set    getcontext,__sys_getcontext
-ENTRY(__sys_getcontext)
-       movq    (%rsp),%rsi     /* save getcontext return address */
-       mov     $SYS_getcontext,%rax
-       KERNCALL
-       jb      1f
-       addq    $8,%rsp         /* remove stale (setcontext) return address */
-       jmp     *%rsi           /* restore return address */
-1:
-#ifdef PIC
-       movq    PIC_GOT(HIDENAME(cerror)),%rdx
-       jmp     *%rdx
-#else
-       jmp     HIDENAME(cerror)
-#endif