about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips')
-rw-r--r--sysdeps/unix/sysv/linux/mips/Dist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h29
-rw-r--r--sysdeps/unix/sysv/linux/mips/fpregdef.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/regdef.h1
-rw-r--r--sysdeps/unix/sysv/linux/mips/sgidefs.h28
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/asm.h28
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/regdef.h29
-rw-r--r--sysdeps/unix/sysv/linux/mips/syscalls.list7
-rw-r--r--sysdeps/unix/sysv/linux/mips/sysdep.S (renamed from sysdeps/unix/sysv/linux/mips/sys/fpregdef.h)25
10 files changed, 45 insertions, 112 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist
index 5f0429b282..576aef8046 100644
--- a/sysdeps/unix/sysv/linux/mips/Dist
+++ b/sysdeps/unix/sysv/linux/mips/Dist
@@ -3,14 +3,8 @@ kernel_sigaction.h
 kernel_stat.h
 kernel_termios.h
 entry.h
-regdef.h
-fpregdef.h
-sgidefs.h
 xstatconv.c
 sys/acct.h
-sys/asm.h
 sys/cachectl.h
-sys/fpregdef.h
 sys/procfs.h
-sys/regdef.h
 sys/sysmips.h
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index 5d3e280d7c..41451ca7d1 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -7,6 +7,5 @@ endif
 ifeq ($(subdir),misc)
 sysdep_routines += cachectl cacheflush sysmips
 
-headers += regdef.h fpregdef.h sys/asm.h sys/cachectl.h sys/fpregdef.h \
-	   sys/regdef.h sys/sysmips.h
+headers += sys/cachectl.h sys/sysmips.h
 endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
index 435f8e00f6..855fe287d4 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -28,8 +28,20 @@ struct sigaction
     unsigned int sa_flags;
 
     /* Signal handler.  */
+#ifdef __USE_POSIX199309
+    union
+      {
+	/* Used if SA_SIGINFO is not set.  */
+	__sighandler_t sa_handler;
+	/* Used if SA_SIGINFO is set.  */
+	void (*sa_sigaction) __PMT ((int, siginfo_t *, void *));
+      }
+    __sigaction_handler;
+# define sa_handler    __sigaction_handler.sa_handler
+# define sa_sigaction  __sigaction_handler.sa_sigaction
+#else
     __sighandler_t sa_handler;
-
+#endif
     /* Additional set of signals to be blocked.  */
     __sigset_t sa_mask;
 
@@ -43,14 +55,17 @@ struct sigaction
   };
 
 /* Bits in `sa_flags'.  */
-#define	SA_NOCLDSTOP  1		 /* Don't send SIGCHLD when children stop.  */
-#ifdef __USE_MISC
+#define SA_NOCLDSTOP  0x00020000 /* Don't send SIGCHLD when children stop.  */
+#define SA_SIGINFO    0x00000008 /* Invoke signal-catching function with
+				    three arguments instead of one.  */
+#if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 # define SA_RESTART   0x00000004 /* Restart syscall on signal return.  */
-# define SA_INTERRUPT 0x00000000 /* Historical no-op.  */
 # define SA_NODEFER   0x00000010 /* Don't automatically block the signal when
 				    its handler is being executed.  */
-# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler.  */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x01000000 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants.  */
 # define SA_NOMASK    SA_NODEFER
@@ -63,5 +78,7 @@ struct sigaction
 #define	SIG_BLOCK     1		/* Block signals.  */
 #define	SIG_UNBLOCK   2		/* Unblock signals.  */
 #define	SIG_SETMASK   3		/* Set the set of blocked signals.  */
-#define SIG_SETMASK32 256	/* Goodie from SGI for BSD compatibility:
+#ifdef __USE_MISC
+# define SIG_SETMASK32 256	/* Goodie from SGI for BSD compatibility:
 				   set only the low 32 bit of the sigset.  */
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/fpregdef.h b/sysdeps/unix/sysv/linux/mips/fpregdef.h
deleted file mode 100644
index a963d5f588..0000000000
--- a/sysdeps/unix/sysv/linux/mips/fpregdef.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/fpregdef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/regdef.h b/sysdeps/unix/sysv/linux/mips/regdef.h
deleted file mode 100644
index b613c8b250..0000000000
--- a/sysdeps/unix/sysv/linux/mips/regdef.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/regdef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/sgidefs.h b/sysdeps/unix/sysv/linux/mips/sgidefs.h
deleted file mode 100644
index a36ece0175..0000000000
--- a/sysdeps/unix/sysv/linux/mips/sgidefs.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _SGIDEFS_H
-#define _SGIDEFS_H	1
-
-/*
- * The real definitions come from the Linux kernel sources
- */
-#include <asm/sgidefs.h>
-
-#endif /* sgidefs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/asm.h b/sysdeps/unix/sysv/linux/mips/sys/asm.h
deleted file mode 100644
index 346a9c4ec2..0000000000
--- a/sysdeps/unix/sysv/linux/mips/sys/asm.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _SYS_ASM_H
-#define _SYS_ASM_H
-
-/*
- * The real definitions come from the Linux kernel sources
- */
-#include <asm/asm.h>
-
-#endif /* sys/asm.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/regdef.h b/sysdeps/unix/sysv/linux/mips/sys/regdef.h
deleted file mode 100644
index 700fd66f0b..0000000000
--- a/sysdeps/unix/sysv/linux/mips/sys/regdef.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _REGDEF_H
-#define _REGDEF_H	1
-
-/*
- * The real definitions come from the Linux kernel sources
- */
-#include <asm/regdef.h>
-#include <asm/fpregdef.h>
-
-#endif /* regdef.h */
diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
index dd29d159aa..434be84898 100644
--- a/sysdeps/unix/sysv/linux/mips/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -37,7 +37,7 @@ socketpair	-	socketpair	4	__socketpair	socketpair
 #
 # There are defined locally because the caller is also defined in this dir.
 #
-s_llseek	llseek	_llseek		5	__sys_llseek
+s_llseek	llseek	_llseek		5	__syscall_llseek
 s_sigaction	sigaction sigaction	3	__syscall_sigaction
 s_ustat		ustat	ustat		2	__syscall_ustat
 sys_mknod	xmknod	mknod		3	__syscall_mknod
@@ -57,10 +57,11 @@ s_getdents	getdents getdents	3	__syscall_getdents
 s_getpriority	getpriority getpriority	2	__syscall_getpriority
 s_getresgid	getresgid getresgid	3	__syscall_getresgid
 s_getresuid	getresuid getresuid	3	__syscall_getresuid
+s_ipc		msgget	ipc		5	__syscall_ipc
 s_poll		poll	poll		3	__syscall_poll
-s_pread		pread	pread		6	__syscall_pread
+s_pread64	pread64	pread		6	__syscall_pread
 s_ptrace	ptrace	ptrace		4	__syscall_ptrace
-s_pwrite	pwrite	pwrite		6	__syscall_pwrite
+s_pwrite64	pwrite64 pwrite		6	__syscall_pwrite
 s_reboot	reboot	reboot		3	__syscall_reboot
 s_sigpending	sigpending sigpending	1	__syscall_sigpending
 s_sigprocmask	sigprocmask sigprocmask	3	__syscall_sigprocmask
diff --git a/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h b/sysdeps/unix/sysv/linux/mips/sysdep.S
index 48d8f7513e..c7bc193a40 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h
+++ b/sysdeps/unix/sysv/linux/mips/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1998 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
@@ -16,12 +16,21 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _SYS_FPREGDEF_H
-#define _SYS_FPREGDEF_H
+#include <sysdep.h>
 
-/*
- * The real definitions come from the Linux kernel sources
- */
-#include <asm/fpregdef.h>
+/* Because the Linux version is in fact MIPS/ELF and the start.? file
+   for this system (sysdeps/mips/elf/start.S) is also used by The Hurd
+   and therefore this files must not contain the definition of the
+   `errno' variable (I don't know why, ask Roland), we have to define
+   it somewhere else.
 
-#endif /* sys/fpregdef.h */
+   ...and this place is here.  */
+	.bss
+	.globl  errno
+	.type   errno,@object
+	.size   errno,4
+errno:	.word   4
+	.text
+weak_alias(errno, _errno)
+
+#include <sysdeps/unix/mips/sysdep.S>