diff options
Diffstat (limited to 'sysdeps/unix/bsd/ultrix4/mips')
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/Dist | 1 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/__handler.S | 115 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h | 63 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/sigvec.c | 55 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/start.S | 87 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/syscalls.list | 3 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/sysdep.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/vfork.S | 36 |
9 files changed, 0 insertions, 366 deletions
diff --git a/sysdeps/unix/bsd/ultrix4/mips/Dist b/sysdeps/unix/bsd/ultrix4/mips/Dist deleted file mode 100644 index 06cf9cc2de..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/Dist +++ /dev/null @@ -1 +0,0 @@ -__handler.S diff --git a/sysdeps/unix/bsd/ultrix4/mips/Makefile b/sysdeps/unix/bsd/ultrix4/mips/Makefile deleted file mode 100644 index 74e3b04f6c..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(subdir),signal) -sysdep_routines := $(sysdep_routines) __handler -endif diff --git a/sysdeps/unix/bsd/ultrix4/mips/__handler.S b/sysdeps/unix/bsd/ultrix4/mips/__handler.S deleted file mode 100644 index 2b815c46dd..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/__handler.S +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright (C) 1992, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Brendan Kehoe (brendan@zen.org). - Also hacked by Ian Lance Taylor (ian@airs.com). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -/* This function saves all the registers, calls the - user function, and then executes a sigreturn system call. The - sigreturn call wants the address of a sigcontext structure. This - is all hideously system dependent and, for all intents and - purposes, undocumented. - - When we enter here, a3 holds the user's signal handler. We are - supposed to fill in the context given in a2, and then pass it and - the first two arguments to the user's function. If the user's - function returns, we execute a sigreturn system call. - - The sc_onstack, sc_mask and sc_pc elements of the context are - already set by the kernel. For some reason we don't have to save - the floating point state or the coprocessor state; the kernel may - have saved them for us, or it doesn't use them. */ - -.set noat -ENTRY (__handler) - /* Store zero and the asm temp reg. */ - sw $0, 12(a2) - sw AT, 16(a2) - - /* Put v1 in sc_regs[3]. */ - sw v1, 24(a2) - - /* Save the caller saved registers in sc_regs[8..15]. */ - sw t0, 44(a2) - sw t1, 48(a2) - sw t2, 52(a2) - sw t3, 56(a2) - sw t4, 60(a2) - sw t5, 64(a2) - sw t6, 68(a2) - sw t7, 72(a2) - - /* Save the callee saved registers in sc_regs[16..23]. */ - sw s0, 76(a2) - sw s1, 80(a2) - sw s2, 84(a2) - sw s3, 88(a2) - sw s4, 92(a2) - sw s5, 96(a2) - sw s6, 100(a2) - sw s7, 104(a2) - - /* Save the code generator registers in sc_regs[24] & sc_regs[25]. */ - sw t8, 108(a2) - sw t9, 112(a2) - - /* Save the kernel temp regs in sc_regs[26] & sc_regs[27]. */ - sw k0, 116(a2) - sw k1, 120(a2) - - /* Save the global pointer in sc_regs[28]. */ - sw gp, 124(a2) - - /* ... and also the return address in sc_regs[31]. */ - sw ra, 136(a2) - - /* Note: we don't save the stack pointer in sc_regs[29]; - instead, we use the one that was already there. */ -#if 0 - sw sp, 128(a2) -#endif - - /* Save the floating pointer in sc_regs[30]. */ - sw $fp, 132(a2) - - /* Save the mul/div stuff in sc_mdlo and sc_mdhi. */ - mflo t0 - sw t0, 140(a2) - mfhi t0 - sw t0, 144(a2) - - /* Move the stack up four. This will save the context. */ - addu sp, sp, -32 - sw a2, 16(sp) - - /* Call their handler with the signal, code, and context; note - this will clobber the context. */ - .set noreorder - jal ra, a3 - nop - .set reorder - - /* When we come back, restore the context and pass it right - on into sigreturn(). */ - lw a0, 16(sp) - - /* Do a sigreturn syscall; this doesn't return. */ - la v0, __sigreturn - jal ra, v0 - .end __handler diff --git a/sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h b/sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h deleted file mode 100644 index 3674651372..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (C) 1992, 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _SIGNAL_H -# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." -#endif - -/* Note that ANY change to this instantly implies a change to __handler.S. */ - -struct sigcontext - { - /* Nonzero if running on signal stack. */ - int sc_onstack; - - /* Signal mask to restore. */ - __sigset_t sc_mask; - - /* Program counter when the signal hit. */ - __ptr_t sc_pc; - - /* Registers 0 through 31. */ - int sc_regs[32]; - - /* mul/div low and hi; these aren't part of a jmp_buf, but are part of the - sigcontext and are referenced from the signal trampoline code. */ - int sc_mdlo; - int sc_mdhi; - - /* Flag to see if the FP's been used. */ - int sc_ownedfp; - - /* Floating point registers 0 to 31. */ - int sc_fpregs[32]; - /* Control & status register for FP. */ - int sc_fpc_csr; - - /* Exception instruction register for FP. */ - int sc_fpc_eir; - - /* The coprocessor's cause register. */ - int sc_cause; - - /* CPU bad virtual address. */ - __ptr_t sc_badvaddr; - - /* CPU board bad physical address. */ - __ptr_t sc_badpaddr; - }; diff --git a/sysdeps/unix/bsd/ultrix4/mips/sigvec.c b/sysdeps/unix/bsd/ultrix4/mips/sigvec.c deleted file mode 100644 index 5775c9adb9..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/sigvec.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (C) 1992, 1996, 1997, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* The sigvec system call on MIPS Ultrix takes an additional - parameter, which is the address that is actually called when the - signal occurs. - - When a signal occurs, we arrange for the kernel to call __handler. - That will save the frame and stack pointers into the context, and - then jump to this routine. See __handler.S. - - This code is based on sysdeps/unix/bsd/sun4/sigtramp.c, but it's - different because since we get passed the user signal handler we - don't actually need a trampoline. */ - -#include <signal.h> -#include <stddef.h> -#include <errno.h> - -/* The user's signal handler is called with three arguments. */ -typedef void (*handler_type) (int sig, int code, struct sigcontext *); - -extern int __raw_sigvec (int sig, CONST struct sigvec *vec, - struct sigvec *ovec, - void (*)(int sig, int code, - struct sigcontext *, - handler_type)); - -extern void __handler (int sig, int code, - struct sigcontext *, - handler_type); - -int -__sigvec (sig, vec, ovec) - int sig; - const struct sigvec *vec; - struct sigvec *ovec; -{ - return __raw_sigvec (sig, vec, ovec, __handler); -} diff --git a/sysdeps/unix/bsd/ultrix4/mips/start.S b/sysdeps/unix/bsd/ultrix4/mips/start.S deleted file mode 100644 index a88268af45..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/start.S +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Brendan Kehoe (brendan@zen.org). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -ENTRY(__start) - .set noreorder - - /* The first thing on the stack is argc. */ - lw s0, 0(sp) - nop - - /* Set up the global pointer. */ - la gp, _gp - - /* Then set up argv. */ - addiu s1, sp, 4 - - /* To compute where envp is, first we have to jump ahead four - bytes from what argv was. This will bring us ahead, so we don't - need to compute the NULL at the end of argv later. */ - addiu v1, s1, 4 - - /* Now, compute the space to skip given the number of arguments - we've got. We do this by multiplying argc by 4. */ - sll v0, s0, 2 - - /* Now, add (argv+4) with the space to skip...that's envp. */ - addu s2, v1, v0 - - /* __environ = envp; */ - sw s2, __environ - - addiu sp, sp, -24 - - /* __libc_init (argc, argv, envp); */ - move a0, s0 - move a1, s1 - jal __libc_init - move a2, s2 - - /* errno = 0; */ - sw zero, errno - - /* exit (main (argc, argv, envp)); */ - move a0, s0 - move a1, s1 - jal main - move a2, s2 - - /* Make the value returned by main be the argument to exit. */ - jal exit - move a0, v0 - .end __start diff --git a/sysdeps/unix/bsd/ultrix4/mips/syscalls.list b/sysdeps/unix/bsd/ultrix4/mips/syscalls.list deleted file mode 100644 index f7d0bba6a8..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/syscalls.list +++ /dev/null @@ -1,3 +0,0 @@ -# File name Caller Syscall name # args Strong name Weak names - -raw-sigvec sigvec sigvec 4 __raw_sigvec diff --git a/sysdeps/unix/bsd/ultrix4/mips/sysdep.h b/sysdeps/unix/bsd/ultrix4/mips/sysdep.h deleted file mode 100644 index 09b69ff854..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/sysdep.h +++ /dev/null @@ -1,3 +0,0 @@ -#define NO_UNDERSCORES - -#include <sysdeps/unix/mips/sysdep.h> diff --git a/sysdeps/unix/bsd/ultrix4/mips/vfork.S b/sysdeps/unix/bsd/ultrix4/mips/vfork.S deleted file mode 100644 index d413e45dc1..0000000000 --- a/sysdeps/unix/bsd/ultrix4/mips/vfork.S +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 1992, 1995, 1997, 2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Brendan Kehoe (brendan@zen.org). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -#ifndef SYS_vfork -#define SYS_vfork 66 -#endif - -SYSCALL__ (vfork, 0) - beq v1, zero, parent /* Branch if parent. */ - nop - move v0, zero -parent: - ret - nop - .end __vfork -libc_hidden_def (__vfork) - -weak_alias (__vfork, vfork) |