summaryrefslogtreecommitdiff
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 */