Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/hppa/hppa put back the compat signal code; still ha...
details: https://anonhg.NetBSD.org/src/rev/2d9aa8de43bc
branches: trunk
changeset: 1024549:2d9aa8de43bc
user: christos <christos%NetBSD.org@localhost>
date: Thu Oct 28 11:11:11 2021 +0000
description:
put back the compat signal code; still have the stubs for it in libc
diffstat:
sys/arch/hppa/hppa/locore.S | 5 +-
sys/arch/hppa/hppa/sigcode.S | 118 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 122 insertions(+), 1 deletions(-)
diffs (139 lines):
diff -r f4e0ba2df23b -r 2d9aa8de43bc sys/arch/hppa/hppa/locore.S
--- a/sys/arch/hppa/hppa/locore.S Thu Oct 28 11:07:07 2021 +0000
+++ b/sys/arch/hppa/hppa/locore.S Thu Oct 28 11:11:11 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.5 2021/10/27 21:42:58 christos Exp $ */
+/* $NetBSD: locore.S,v 1.6 2021/10/28 11:11:11 christos Exp $ */
/* $OpenBSD: locore.S,v 1.158 2008/07/28 19:08:46 miod Exp $ */
/*
@@ -1000,4 +1000,7 @@
ldw L_MD(%t2), %t3
EXIT(lwp_trampoline)
+/* Include the signal code, used in compat code */
+#include <hppa/hppa/sigcode.S>
+
.end
diff -r f4e0ba2df23b -r 2d9aa8de43bc sys/arch/hppa/hppa/sigcode.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/hppa/hppa/sigcode.S Thu Oct 28 11:11:11 2021 +0000
@@ -0,0 +1,118 @@
+/* $NetBSD: sigcode.S,v 1.10 2021/10/28 11:11:11 christos Exp $ */
+
+/* $OpenBSD: locore.S,v 1.46 2001/09/20 18:33:03 mickey Exp $ */
+
+/*
+ * Copyright (c) 1998-2004 Michael Shalayeff
+ * 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 OR HIS RELATIVES 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 MIND, 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.
+ *
+ * Portitions of this file are derived from other sources, see
+ * the copyrights and acknowledgements below.
+ */
+/*
+ * Copyright (c) 1990,1991,1992,1994 The University of Utah and
+ * the Computer Systems Laboratory (CSL). All rights reserved.
+ *
+ * THE UNIVERSITY OF UTAH AND CSL PROVIDE THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION, AND DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM ITS USE.
+ *
+ * CSL requests users of this software to return to csl-dist%cs.utah.edu@localhost any
+ * improvements that they make and grant CSL redistribution rights.
+ *
+ * Utah $Hdr: locore.s 1.62 94/12/15$
+ */
+/*
+ * (c) Copyright 1988 HEWLETT-PACKARD COMPANY
+ *
+ * To anyone who acknowledges that this file is provided "AS IS"
+ * without any express or implied warranty:
+ * permission to use, copy, modify, and distribute this file
+ * for any purpose is hereby granted without fee, provided that
+ * the above copyright notice and this notice appears in all
+ * copies, and that the name of Hewlett-Packard Company not be
+ * used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission.
+ * Hewlett-Packard Company makes no representations about the
+ * suitability of this software for any purpose.
+ */
+
+/*
+ * NOTICE: This is not a standalone file. To use it, #include it in
+ * your port's locore.S, like so:
+ *
+ * #include <hppa/hppa/sigcode.S>
+ */
+
+/*
+ * Signal "trampoline" code. Invoked from RTE setup by sendsig().
+ */
+ENTRY_NOPROFILE(sigcode,0)
+ .call
+ /*
+ * Our sendsig() places the address of the signal handler
+ * in %arg3. It may actually be a PLABEL.
+ */
+ bb,>=,n %arg3, 30, L$sigcode_bounce ; branch if not a PLABEL
+ depi 0, 31, 2, %arg3 ; zero L bit in PLABEL pointer
+ ldw 4(%arg3), %r19 ; load shared library linkage
+ ldw 0(%arg3), %arg3 ; load real catcher address
+L$sigcode_bounce:
+ /*
+ * This blr puts the address of the following nop in rp.
+ * It also schedules the nop for execution, which is why
+ * that instruction has to be a nop, or, rather, not any
+ * instruction only meant to execute once the signal handler
+ * returns.
+ */
+ blr %r0, %rp
+ /*
+ * This bv schedules the instruction pointed to by arg3
+ * for execution. So, arg3 is the address of the signal
+ * handler.
+ */
+ bv,n %r0(%arg3)
+ nop
+ /*
+ * The signal handler has returned. Since %r3 is on the list
+ * of callee-saved registers, it's whatever the sendsig
+ * code wanted it set to. Since we copy it into arg0,
+ * it looks like sendsig leaves %r3 holding the desired
+ * single argument to sys___sigreturn14, i.e., the
+ * struct sigcontext *.
+ */
+ /* Make a SYS___sigreturn14 system call. */
+ copy %r3, %arg0
+ ldil L%SYSCALLGATE, %r1
+ .call
+ ble 4(%sr7, %r1)
+ ldi SYS_compat_16___sigreturn14, %t1
+ /* Make a SYS_exit system call. */
+ copy %ret0, %arg0
+ ldil L%SYSCALLGATE, %r1
+ .call
+ ble 4(%sr7, %r1)
+ ldi SYS_exit, %t1
+ALTENTRY(esigcode)
+EXIT(sigcode)
Home |
Main Index |
Thread Index |
Old Index