about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/enbl-secure.c2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h18
-rw-r--r--sysdeps/unix/sysv/linux/i386/s_pread64.S45
-rw-r--r--sysdeps/unix/sysv/linux/i386/s_pwrite64.S45
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/rt_sigprocmask.c2
-rw-r--r--sysdeps/unix/sysv/linux/rt_sigqueueinfo.c1
-rw-r--r--sysdeps/unix/sysv/linux/rt_sigsuspend.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigreturn.c1
-rw-r--r--sysdeps/unix/sysv/linux/sys/pci.h2
-rw-r--r--sysdeps/wordsize-32/bits/environments.h7
-rw-r--r--sysdeps/wordsize-64/bits/environments.h11
12 files changed, 122 insertions, 18 deletions
diff --git a/sysdeps/generic/enbl-secure.c b/sysdeps/generic/enbl-secure.c
index 8e1327c878..3520ad5fb0 100644
--- a/sysdeps/generic/enbl-secure.c
+++ b/sysdeps/generic/enbl-secure.c
@@ -32,7 +32,7 @@ uid_t __libc_uid;
 void
 __libc_init_secure (void)
 {
-  __libc_uid == __getuid ();
+  __libc_uid = __getuid ();
   __libc_enable_secure = (__geteuid () != __libc_uid
 			  || __getegid () != __getgid ());
 }
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index f48f2d1403..42a4f8b74f 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -66,7 +66,15 @@ enum __socket_type
 #define	PF_AAL5		8	/* Reserved for Werner's ATM.  */
 #define	PF_X25		9	/* Reserved for X.25 project.  */
 #define	PF_INET6	10	/* IP version 6.  */
-#define	PF_MAX		12	/* For now.. */
+#define	PF_ROSE		11	/* Amateur Radio X.25 PLP       */
+#define	PF_DECnet	12	/* Reserved for DECnet project  */
+#define	PF_NETBEUI	13	/* Reserved for 802.2LLC project*/
+#define	PF_SECURITY	14	/* Security callback pseudo AF */
+#define	pseudo_PF_KEY	15	/* PF_KEY key management API */
+#define	PF_NETLINK	16
+#define	PF_ROUTE	PF_NETLINK /* Alias to emulate 4.4BSD */
+#define	PF_PACKET	17	/* Packet family                */
+#define	PF_MAX		32	/* For now.. */
 
 /* Address families.  */
 #define	AF_UNSPEC	PF_UNSPEC
@@ -82,6 +90,14 @@ enum __socket_type
 #define	AF_AAL5		PF_AAL5
 #define	AF_X25		PF_X25
 #define	AF_INET6	PF_INET6
+#define	AF_ROSE		PF_ROSE
+#define	AF_DECnet	PF_DECnet
+#define	AF_NETBEUI	PF_NETBEUI
+#define	AF_SECURITY	PF_SECURITY
+#define	AF_KEY		pseudo_PF_KEY
+#define	AF_NETLINK	PF_NETLINK
+#define	AF_ROUTE	PF_ROUTE
+#define	AF_PACKET	PF_PACKET
 #define	AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
diff --git a/sysdeps/unix/sysv/linux/i386/s_pread64.S b/sysdeps/unix/sysv/linux/i386/s_pread64.S
new file mode 100644
index 0000000000..22ce79b3f0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/s_pread64.S
@@ -0,0 +1,45 @@
+/* pread64 syscall for Linux/ix86.
+   Copyright (C) 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 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.  */
+
+#include <sysdep.h>
+
+/* Please consult the file sysdeps/unix/sysv/linux/i386/sysdep.h for
+   more information about the value -4095 used below.*/
+
+	.text
+ENTRY (__syscall_pread64)
+
+	PUSHARGS_5		/* Save register contents.  */
+
+	/* Load arguments.  This is unfortunately a little bit of a problem
+	   since the kernel expects the arguments in a different order.  */
+	movl	0x20(%esp,1),%esi
+	movl	0x1c(%esp,1),%edi
+	movl	0x18(%esp,1),%edx
+	movl	0x14(%esp,1),%ecx
+	movl	0x10(%esp,1),%ebx
+	/* Load syscall number into %eax.  */
+	movl	$SYS_ify(pread), %eax
+	int	$0x80		/* Do the system call.  */
+	POPARGS_5		/* Restore register contents.  */
+	cmpl	$-4095, %eax	/* Check %eax for error.  */
+	jae	syscall_error	/* Jump to error handler if error.  */
+	ret			/* Return to caller.  */
+
+PSEUDO_END (__syscall_pread64)
diff --git a/sysdeps/unix/sysv/linux/i386/s_pwrite64.S b/sysdeps/unix/sysv/linux/i386/s_pwrite64.S
new file mode 100644
index 0000000000..6a1987b72e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/s_pwrite64.S
@@ -0,0 +1,45 @@
+/* pwrite64 syscall for Linux/ix86.
+   Copyright (C) 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 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.  */
+
+#include <sysdep.h>
+
+/* Please consult the file sysdeps/unix/sysv/linux/i386/sysdep.h for
+   more information about the value -4095 used below.*/
+
+	.text
+ENTRY (__syscall_pwrite64)
+
+	PUSHARGS_5		/* Save register contents.  */
+
+	/* Load arguments.  This is unfortunately a little bit of a problem
+	   since the kernel expects the arguments in a different order.  */
+	movl	0x20(%esp,1),%esi
+	movl	0x1c(%esp,1),%edi
+	movl	0x18(%esp,1),%edx
+	movl	0x14(%esp,1),%ecx
+	movl	0x10(%esp,1),%ebx
+	/* Load syscall number into %eax.  */
+	movl	$SYS_ify(pwrite), %eax
+	int	$0x80		/* Do the system call.  */
+	POPARGS_5		/* Restore register contents.  */
+	cmpl	$-4095, %eax	/* Check %eax for error.  */
+	jae	syscall_error	/* Jump to error handler if error.  */
+	ret			/* Return to caller.  */
+
+PSEUDO_END (__syscall_pwrite64)
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
index 99ed694f49..90d61a08a1 100644
--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -28,8 +28,8 @@
 #include <kernel_sigaction.h>
 
 
-extern int __syscall_rt_signal (int, const struct sigaction *,
-				struct sigaction *, size_t);
+extern int __syscall_rt_sigaction (int, const struct sigaction *,
+				   struct sigaction *, size_t);
 
 /* The variable is shared between all wrappers around signal handling
    functions which have RT equivalents.  It is defined in sigsuspend.c.  */
diff --git a/sysdeps/unix/sysv/linux/rt_sigprocmask.c b/sysdeps/unix/sysv/linux/rt_sigprocmask.c
index 0ce2815780..c9adaf08c4 100644
--- a/sysdeps/unix/sysv/linux/rt_sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/rt_sigprocmask.c
@@ -20,7 +20,7 @@
 #include <signal.h>
 
 int
-__syscall_rt_sigprocmask (int how, const sigset *set, sigset_t *oset,
+__syscall_rt_sigprocmask (int how, const sigset_t *set, sigset_t *oset,
 			  size_t setsize)
 {
   __set_errno (ENOSYS);
diff --git a/sysdeps/unix/sysv/linux/rt_sigqueueinfo.c b/sysdeps/unix/sysv/linux/rt_sigqueueinfo.c
index ff99e9e555..ec9f9803a7 100644
--- a/sysdeps/unix/sysv/linux/rt_sigqueueinfo.c
+++ b/sysdeps/unix/sysv/linux/rt_sigqueueinfo.c
@@ -18,6 +18,7 @@
 
 #include <errno.h>
 #include <signal.h>
+#include <sys/types.h>
 
 int
 __syscall_rt_sigqueueinfo (pid_t pid, int sig, siginfo_t *uinfo)
diff --git a/sysdeps/unix/sysv/linux/rt_sigsuspend.c b/sysdeps/unix/sysv/linux/rt_sigsuspend.c
index 59fb5c4bcd..dc32dcc067 100644
--- a/sysdeps/unix/sysv/linux/rt_sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/rt_sigsuspend.c
@@ -20,7 +20,7 @@
 #include <signal.h>
 
 int
-__syscall_rt_sigsuspend (const sigset *set, size_t setsize)
+__syscall_rt_sigsuspend (const sigset_t *set, size_t setsize)
 {
   if (set == NULL)
     {
diff --git a/sysdeps/unix/sysv/linux/sigreturn.c b/sysdeps/unix/sysv/linux/sigreturn.c
index e57ac74212..ecef3d67ad 100644
--- a/sysdeps/unix/sysv/linux/sigreturn.c
+++ b/sysdeps/unix/sysv/linux/sigreturn.c
@@ -18,7 +18,6 @@
 
 #include <errno.h>
 #include <signal.h>
-#include <sigcontext.h>
 #include <unistd.h>
 
 extern int __syscall_sigreturn (struct sigcontext *);
diff --git a/sysdeps/unix/sysv/linux/sys/pci.h b/sysdeps/unix/sysv/linux/sys/pci.h
index 03d9b9a768..8c190d644f 100644
--- a/sysdeps/unix/sysv/linux/sys/pci.h
+++ b/sysdeps/unix/sysv/linux/sys/pci.h
@@ -20,6 +20,6 @@
 #define _SYS_PCI_H	1
 
 /* We use the constants from the kernel.  */
-#include <asm/pci.h>
+#include <linux/pci.h>
 
 #endif /* sys/pci.h */
diff --git a/sysdeps/wordsize-32/bits/environments.h b/sysdeps/wordsize-32/bits/environments.h
index 40a53ab236..8d1403fefe 100644
--- a/sysdeps/wordsize-32/bits/environments.h
+++ b/sysdeps/wordsize-32/bits/environments.h
@@ -16,8 +16,9 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _BITS_ENVIRONMENTS_H
-#define _BITS_ENVIRONMENTS_H	1
+#ifndef _UNISTD_H
+# error "Never include this file directly.  Use <unistd.h> instead"
+#endif
 
 /* By default we have 32-bit wide `int', `long int', pointers and `off_t'.  */
 #define _XBS5_ILP32_OFF32	1
@@ -28,5 +29,3 @@
 /* We can never provide environments with 64-bit wide pointers.  */
 #define _XBS5_LP64_OFF64	-1
 #define _XBS5_LPBIG_OFFBIG	-1
-
-#endif /* bits/environments.h */
diff --git a/sysdeps/wordsize-64/bits/environments.h b/sysdeps/wordsize-64/bits/environments.h
index af2d212618..f1d5bb8135 100644
--- a/sysdeps/wordsize-64/bits/environments.h
+++ b/sysdeps/wordsize-64/bits/environments.h
@@ -16,15 +16,14 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _BITS_ENVIRONMENTS_H
-#define _BITS_ENVIRONMENTS_H	1
+#ifndef _UNISTD_H
+# error "Never include this file directly.  Use <unistd.h> instead"
+#endif
 
-/* We can never provide environments with 64-bit wide pointers.  */
+/* We can never provide environments with 32-bit wide pointers.  */
 #define _XBS5_ILP32_OFF32	-1
 #define _XBS5_ILP32_OFFBIG	-1
 
-/* By default we have 64-bit wide `int', `long int', pointers and `off_t'.  */
+/* By default we have 64-bit wide `long int', pointers and `off_t'.  */
 #define _XBS5_LP64_OFF32	1
 #define _XBS5_LPBIG_OFFBIG	1
-
-#endif /* bits/environments.h */