@@ -16,10 +16,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_FCNTL_H
+#define _BITS_FCNTL_H 1
+
#ifndef _FCNTL_H
#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
#endif
+#include <bits/types.h>
/* File access modes for `open' and `fcntl'. */
#define O_RDONLY 0 /* Open read-only. */
@@ -104,9 +108,6 @@
/* File descriptor flags used with F_GETFD and F_SETFD. */
#define FD_CLOEXEC 1 /* Close on exec. */
-
-#include <bits/types.h>
-
/* The structure describing an advisory lock. This is the type of the third
argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */
struct flock
@@ -144,3 +145,5 @@ struct flock64
# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
#endif
+
+#endif
@@ -15,11 +15,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SEM_H
+#define _BITS_SEM_H 1
+
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
#endif
-#include <sys/types.h>
+#include <bits/types.h>
/* Flags for `semop'. */
#define SEM_UNDO 0x1000 /* undo the operation on exit */
@@ -58,3 +61,5 @@ struct semid_ds
incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
one must define the union or not. */
#define _SEM_SEMUN_UNDEFINED 1
+
+#endif /* bits/sem.h */
similarity index 83%
copy from sysdeps/gnu/bits/utmp.h
copy to bits/utmp.h
@@ -16,13 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_UTMP_H
+#define _BITS_UTMP_H 1
+
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
#endif
-#include <paths.h>
-#include <sys/time.h>
-#include <sys/types.h>
#include <bits/wordsize.h>
@@ -36,7 +36,7 @@
struct lastlog
{
#if __WORDSIZE_TIME64_COMPAT32
- int32_t ll_time;
+ __int32_t ll_time;
#else
__time_t ll_time;
#endif
@@ -68,23 +68,29 @@ struct utmp
__attribute_nonstring__; /* Hostname for remote login. */
struct exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */
+
/* The ut_session and ut_tv fields must be the same size when compiled
32- and 64-bit. This allows data files and shared memory to be
- shared between 32- and 64-bit applications. */
+ shared between 32- and 64-bit applications. Even on 64-bit systems,
+ struct timeval is not guaranteed to have both fields be 64 bits. */
#if __WORDSIZE_TIME64_COMPAT32
- int32_t ut_session; /* Session ID, used for windowing. */
+ __int32_t ut_session; /* Session ID, used for windowing. */
struct
{
- int32_t tv_sec; /* Seconds. */
- int32_t tv_usec; /* Microseconds. */
+ __int32_t tv_sec; /* Seconds. */
+ __int32_t tv_usec; /* Microseconds. */
} ut_tv; /* Time entry was made. */
#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
+ __int64_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ __int64_t tv_sec; /* Seconds. */
+ __int64_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
#endif
- int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __glibc_reserved[20]; /* Reserved for future use. */
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
};
/* Backwards compatibility hacks. */
@@ -124,3 +130,5 @@ struct utmp
#define _HAVE_UT_ID 1
#define _HAVE_UT_TV 1
#define _HAVE_UT_HOST 1
+
+#endif /* bits/utmp.h */
similarity index 82%
rename from sysdeps/gnu/bits/utmpx.h
rename to bits/utmpx.h
@@ -16,22 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_UTMPX_H
+#define _BITS_UTMPX_H 1
+
#ifndef _UTMPX_H
# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
#endif
-#include <bits/types.h>
-#include <sys/time.h>
-#include <bits/wordsize.h>
-
-
-#ifdef __USE_GNU
-# include <paths.h>
-# define _PATH_UTMPX _PATH_UTMP
-# define _PATH_WTMPX _PATH_WTMP
-#endif
-
-
#define __UT_LINESIZE 32
#define __UT_NAMESIZE 32
#define __UT_HOSTSIZE 256
@@ -55,7 +46,7 @@ struct __exit_status
struct utmpx
{
short int ut_type; /* Type of login. */
- __pid_t ut_pid; /* Process ID of login process. */
+ pid_t ut_pid; /* Process ID of login process. */
char ut_line[__UT_LINESIZE]; /* Devicename. */
char ut_id[4]; /* Inittab ID. */
char ut_user[__UT_NAMESIZE]; /* Username. */
@@ -63,9 +54,10 @@ struct utmpx
struct __exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */
-/* The fields ut_session and ut_tv must be the same size when compiled
- 32- and 64-bit. This allows files and shared memory to be shared
- between 32- and 64-bit applications. */
+/* The ut_session and ut_tv fields must be the same size when compiled
+ 32- and 64-bit. This allows data files and shared memory to be
+ shared between 32- and 64-bit applications. Even on 64-bit systems,
+ struct timeval is not guaranteed to have both fields be 64 bits. */
#if __WORDSIZE_TIME64_COMPAT32
__int32_t ut_session; /* Session ID, used for windowing. */
struct
@@ -74,9 +66,14 @@ struct utmpx
__int32_t tv_usec; /* Microseconds. */
} ut_tv; /* Time entry was made. */
#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
+ __int64_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ __int64_t tv_sec; /* Seconds. */
+ __int64_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
#endif
+
__int32_t ut_addr_v6[4]; /* Internet address of remote host. */
char __glibc_reserved[20]; /* Reserved for future use. */
};
@@ -100,3 +97,5 @@ struct utmpx
#ifdef __USE_GNU
# define ACCOUNTING 9 /* System accounting. */
#endif
+
+#endif /* bits/utmpx.h */
@@ -23,7 +23,6 @@
#include <features.h>
#include <elf.h>
#include <dlfcn.h>
-#include <sys/types.h>
/* We use this macro to refer to ELF types independent of the native wordsize.
`ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */
@@ -31,6 +30,7 @@
#define _ElfW(e,w,t) _ElfW_1 (e, w, _##t)
#define _ElfW_1(e,w,t) e##w##t
+#include <bits/types/size_t.h>
#include <bits/elfclass.h> /* Defines __ELF_NATIVE_CLASS. */
#include <bits/link.h>
@@ -34,8 +34,6 @@
#include <features.h>
-#include <sys/types.h>
-
/*
* See gmon_out.h for gmon.out format.
*/
@@ -20,8 +20,8 @@
#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
+#include <bits/types/size_t.h>
+#include <bits/types/struct_timeval.h>
/* This interface is intended to follow the sprofil() system calls as
described by the sprofil(2) man page of Irix v6.5, except that:
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/profil.h>
+#include <sys/time.h>
#include <bits/wordsize.h>
@@ -1,6 +1,6 @@
#ifndef _NET_IF_H
-# include_next <net/if.h>
+#include <socket/net/if.h>
#ifndef _ISOMAC
libc_hidden_proto (if_nametoindex)
@@ -2,6 +2,7 @@
#include <inet/netinet/ether.h>
# ifndef _ISOMAC
+# include <bits/types/size_t.h>
libc_hidden_proto (ether_aton_r)
libc_hidden_proto (ether_ntoa_r)
new file mode 100644
@@ -0,0 +1 @@
+#include <inet/netinet/in_systm.h>
new file mode 100644
@@ -0,0 +1 @@
+#include <inet/netinet/ip.h>
new file mode 100644
@@ -0,0 +1 @@
+#include <inet/netinet/tcp.h>
new file mode 100644
@@ -0,0 +1 @@
+#include <misc/sys/mtio.h>
new file mode 100644
@@ -0,0 +1 @@
+#include <login/utmpx.h>
@@ -19,9 +19,7 @@
#define _ALIASES_H 1
#include <features.h>
-
-#include <sys/types.h>
-
+#include <bits/types/size_t.h>
__BEGIN_DECLS
@@ -15,8 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#include <stdint.h>
#include <netinet/in.h>
+#include <endian.h>
+#include <stdint.h>
#undef htonl
#undef ntohl
@@ -16,6 +16,8 @@
<http://www.gnu.org/licenses/>. */
#include <netinet/in.h>
+#include <endian.h>
+#include <stdint.h>
#undef htons
#undef ntohs
similarity index 97%
rename from sysdeps/generic/netinet/in_systm.h
rename to inet/netinet/in_systm.h
@@ -19,8 +19,7 @@
#ifndef _NETINET_IN_SYSTM_H
#define _NETINET_IN_SYSTM_H 1
-#include <sys/types.h>
-#include <stdint.h>
+#include <bits/stdint-uintn.h>
__BEGIN_DECLS
similarity index 99%
rename from sysdeps/generic/netinet/ip.h
rename to inet/netinet/ip.h
@@ -19,9 +19,10 @@
#define __NETINET_IP_H 1
#include <features.h>
-#include <sys/types.h>
#include <netinet/in.h>
+#include <bits/endian.h>
+#include <bits/stdint-uintn.h>
__BEGIN_DECLS
similarity index 99%
rename from sysdeps/gnu/netinet/tcp.h
rename to inet/netinet/tcp.h
@@ -85,9 +85,9 @@
#define TCP_REPAIR_OFF_NO_WP -1
#ifdef __USE_MISC
-# include <sys/types.h>
+# include <bits/stdint-uintn.h>
+# include <bits/endian.h>
# include <sys/socket.h>
-# include <stdint.h>
typedef uint32_t tcp_seq;
/*
@@ -51,8 +51,11 @@
#define _FTS_H 1
#include <features.h>
-#include <sys/types.h>
+#include <bits/types/dev_t.h>
+#include <bits/types/ino_t.h>
+#include <bits/types/ino64_t.h>
+#include <bits/types/nlink_t.h>
typedef struct {
struct _ftsent *fts_cur; /* current node */
@@ -24,7 +24,6 @@
#include <features.h>
-#include <sys/types.h>
#include <sys/stat.h>
@@ -20,7 +20,11 @@
#define _SYS_SENDFILE_H 1
#include <features.h>
-#include <sys/types.h>
+
+#include <bits/types.h>
+#include <bits/types/off_t.h>
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
__BEGIN_DECLS
@@ -23,12 +23,15 @@ subdir := login
include ../Makeconfig
-headers := utmp.h bits/utmp.h lastlog.h pty.h
+headers := utmp.h bits/utmp.h utmpx.h bits/utmpx.h lastlog.h pty.h
-routines := getlogin getlogin_r setlogin getlogin_r_chk \
- getutent getutent_r getutid getutline getutid_r getutline_r \
- utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \
- ptsname_r_chk
+routines := \
+ getlogin getlogin_r getlogin_r_chk setlogin \
+ getpt grantpt ptsname ptsname_r_chk unlockpt \
+ getutent getutent_r getutid getutid_r getutline getutline_r \
+ getutmp updwtmp utmp_file utmpname \
+ endutxent getutmpx getutxent getutxid getutxline pututxline \
+ setutxent updwtmpx utmpxname
CFLAGS-grantpt.c += -DLIBEXECDIR='"$(libexecdir)"'
@@ -20,21 +20,26 @@
#include <features.h>
-#include <sys/types.h>
-
-
-__BEGIN_DECLS
+/* utmp.h is not standardized; utmpx.h is, and is required to define
+ pid_t and struct timeval. It makes sense for utmp.h to be
+ consistent. */
+#include <bits/types.h>
+#include <bits/types/pid_t.h>
+#include <bits/types/suseconds_t.h>
+#include <bits/types/time_t.h>
+#include <bits/types/struct_timeval.h>
/* Get system dependent values and data structures. */
#include <bits/utmp.h>
/* Compatibility names for the strings of the canonical file names. */
+#include <paths.h>
#define UTMP_FILE _PATH_UTMP
#define UTMP_FILENAME _PATH_UTMP
#define WTMP_FILE _PATH_WTMP
#define WTMP_FILENAME _PATH_WTMP
-
+__BEGIN_DECLS
/* Make FD be the controlling terminal, stdin, stdout, and stderr;
then close FD. Returns 0 on success, nonzero on error. */
similarity index 94%
rename from sysdeps/gnu/utmpx.h
rename to login/utmpx.h
@@ -19,15 +19,22 @@
#define _UTMPX_H 1
#include <features.h>
-#include <sys/time.h>
/* Required according to Unix98. */
+#include <bits/types.h>
#include <bits/types/pid_t.h>
+#include <bits/types/suseconds_t.h>
+#include <bits/types/time_t.h>
+#include <bits/types/struct_timeval.h>
/* Get system dependent values and data structures. */
#include <bits/utmpx.h>
#ifdef __USE_GNU
+# include <paths.h>
+# define _PATH_UTMPX _PATH_UTMP
+# define _PATH_WTMPX _PATH_WTMP
+
/* Compatibility names for the strings of the canonical file names. */
# define UTMPX_FILE _PATH_UTMPX
# define UTMPX_FILENAME _PATH_UTMPX
@@ -36,9 +36,9 @@ headers := \
bits/uio-ext.h bits/uio_lim.h bits/xopen_lim.h \
gnu/libc-version.h \
sys/auxv.h sys/cdefs.h sys/dir.h sys/file.h sys/ioctl.h \
- sys/mman.h sys/param.h sys/ptrace.h sys/queue.h sys/reboot.h \
- sys/select.h sys/swap.h sys/syscall.h sys/sysinfo.h \
- sys/syslog.h sys/sysmacros.h sys/uio.h sys/xattr.h
+ sys/mman.h sys/mtio.h sys/param.h sys/ptrace.h sys/queue.h \
+ sys/reboot.h sys/select.h sys/swap.h sys/syscall.h \
+ sys/sysinfo.h sys/syslog.h sys/sysmacros.h sys/uio.h sys/xattr.h
routines := brk sbrk sstk ioctl \
readv writev preadv preadv64 pwritev pwritev64 \
similarity index 99%
rename from sysdeps/gnu/sys/mtio.h
rename to misc/sys/mtio.h
@@ -21,11 +21,8 @@
#ifndef _SYS_MTIO_H
#define _SYS_MTIO_H 1
-/* Get necessary definitions from system and kernel headers. */
-#include <sys/types.h>
#include <sys/ioctl.h>
-
/* Structure for MTIOCTOP - magnetic tape operation command. */
struct mtop
{
@@ -19,7 +19,10 @@
#define _SYS_UIO_H 1
#include <features.h>
-#include <sys/types.h>
+
+#include <bits/types.h>
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
#include <bits/types/struct_iovec.h>
#include <bits/uio_lim.h>
#ifdef __IOV_MAX
@@ -19,8 +19,9 @@
#define _SYS_XATTR_H 1
#include <features.h>
-#include <sys/types.h>
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
__BEGIN_DECLS
@@ -22,7 +22,7 @@
#define _NSS_H 1
#include <features.h>
-#include <stdint.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -44,8 +44,8 @@ struct gaih_addrtuple
struct gaih_addrtuple *next;
char *name;
int family;
- uint32_t addr[4];
- uint32_t scopeid;
+ __uint32_t addr[4];
+ __uint32_t scopeid;
};
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <support/support.h>
@@ -21,7 +21,10 @@
#include <features.h>
#include <sched.h>
-#include <sys/types.h>
+
+#include <bits/types.h>
+#include <bits/types/mode_t.h>
+#include <bits/types/pid_t.h>
#include <bits/types/sigset_t.h>
@@ -1,7 +1,7 @@
#ifndef __res_state_defined
#define __res_state_defined 1
-#include <sys/types.h>
+#include <bits/types.h>
#include <netinet/in.h>
/* res_state: the global state used by the resolver stub. */
@@ -28,7 +28,7 @@ struct __res_state {
unsigned unused:23;
struct {
struct in_addr addr;
- uint32_t mask;
+ __uint32_t mask;
} sort_list[MAXRESOLVSORT];
/* 4 byte hole here on 64-bit architectures. */
void * __glibc_unused_qhook;
@@ -40,11 +40,11 @@ struct __res_state {
union {
char pad[52]; /* On an i386 this means 512b total. */
struct {
- uint16_t nscount;
- uint16_t nsmap[MAXNS];
+ __uint16_t nscount;
+ __uint16_t nsmap[MAXNS];
int nssocks[MAXNS];
- uint16_t nscount6;
- uint16_t nsinit;
+ __uint16_t nscount6;
+ __uint16_t nsinit;
struct sockaddr_in6 *nsaddrs[MAXNS];
#ifdef _LIBC
unsigned long long int __glibc_extension_index
@@ -23,7 +23,12 @@
#define _AIO_H 1
#include <features.h>
-#include <sys/types.h>
+
+#include <bits/types.h>
+#include <bits/pthreadtypes.h>
+#include <bits/types/off_t.h>
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
#include <bits/types/sigevent_t.h>
#include <bits/sigevent-consts.h>
#include <bits/types/struct_timespec.h>
@@ -19,13 +19,19 @@
#define _MQUEUE_H 1
#include <features.h>
-#include <sys/types.h>
#include <fcntl.h>
+
+#include <bits/types.h>
+#include <bits/pthreadtypes.h>
#include <bits/types/sigevent_t.h>
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
#include <bits/types/struct_timespec.h>
+
/* Get the definition of mqd_t and struct mq_attr. */
#include <bits/mqueue.h>
+
__BEGIN_DECLS
/* Establish connection between a process and a message queue NAME and
@@ -515,16 +515,15 @@ HEADER_ALLOWED_INCLUDES = {
# mqueue.h -> fcntl.h
# sched.h -> time.h
# spawn.h -> sched.h
- "aio.h": [ "sys/types.h" ],
- "ftw.h": [ "sys/stat.h", "sys/types.h" ],
+ "ftw.h": [ "sys/stat.h" ],
"langinfo.h": [ "nl_types.h" ],
- "mqueue.h": [ "fcntl.h", "sys/types.h" ],
+ "mqueue.h": [ "fcntl.h" ],
"pthread.h": [ "sched.h", "time.h" ],
"regex.h": [ "limits.h", "sys/types.h" ],
"sched.h": [ "time.h" ],
- "semaphore.h": [ "sys/types.h" ],
- "spawn.h": [ "sched.h", "sys/types.h" ],
+ "spawn.h": [ "sched.h" ],
"termios.h": [ "sys/ttydefaults.h" ],
+ "utmpx.h": [ "paths.h" ],
# POSIX sys/ headers
# mandated: sys/msg.h -> sys/ipc.h
@@ -538,77 +537,54 @@ HEADER_ALLOWED_INCLUDES = {
# necessary for backward compatibility with BSD
"sys/types.h": [ "endian.h" ],
- "sys/uio.h": [ "sys/types.h" ],
-
# POSIX networking headers
# allowed: netdb.h -> netinet/in.h
# arpa/inet.h -> netinet/in.h
"netdb.h": [ "netinet/in.h", "rpc/netdb.h" ],
"arpa/inet.h": [ "netinet/in.h" ],
- "net/if.h": [ "sys/socket.h", "sys/types.h" ],
+ "net/if.h": [ "sys/socket.h" ],
"netinet/in.h": [ "sys/socket.h" ],
- "netinet/tcp.h": [ "stdint.h", "sys/socket.h",
- "sys/types.h" ],
+ "netinet/tcp.h": [ "sys/socket.h" ],
# Nonstandardized top-level headers
- "aliases.h": [ "sys/types.h" ],
"argp.h": [ "ctype.h", "errno.h", "getopt.h",
"limits.h", "stdio.h" ],
"argz.h": [ "errno.h", "string.h" ],
"elf.h": [ "stdint.h" ],
"envz.h": [ "argz.h", "errno.h" ],
- "fts.h": [ "sys/types.h" ],
"gshadow.h": [ "paths.h" ],
"ieee754.h": [ "float.h" ],
"lastlog.h": [ "utmp.h" ],
"libintl.h": [ "locale.h" ],
- "link.h": [ "dlfcn.h", "elf.h", "sys/types.h" ],
+ "link.h": [ "dlfcn.h", "elf.h" ],
"mntent.h": [ "paths.h" ],
- "nss.h": [ "stdint.h" ],
"obstack.h": [ "stddef.h", "string.h" ],
"proc_service.h": [ "sys/procfs.h" ],
"pty.h": [ "sys/ioctl.h", "termios.h" ],
"sgtty.h": [ "sys/ioctl.h" ],
"shadow.h": [ "paths.h" ],
"stdio_ext.h": [ "stdio.h" ],
- "thread_db.h": [ "pthread.h", "stdint.h", "sys/procfs.h",
- "sys/types.h" ],
+ "thread_db.h": [ "pthread.h", "stdint.h", "sys/procfs.h" ],
"ucontext.h": [ "sys/ucontext.h" ],
- "utmp.h": [ "sys/types.h" ],
- "utmpx.h": [ "sys/time.h" ],
+ "utmp.h": [ "paths.h" ],
"values.h": [ "float.h", "limits.h" ],
# Nonstandardized sys/ headers
- "sys/acct.h": [ "endian.h", "stdint.h", "sys/types.h" ],
"sys/auxv.h": [ "elf.h" ],
"sys/elf.h": [ "sys/procfs.h" ],
- "sys/epoll.h": [ "stdint.h", "sys/types.h" ],
- "sys/eventfd.h": [ "stdint.h" ],
- "sys/fanotify.h": [ "stdint.h" ],
"sys/file.h": [ "fcntl.h" ],
- "sys/fsuid.h": [ "sys/types.h" ],
- "sys/gmon.h": [ "sys/types.h" ],
- "sys/inotify.h": [ "stdint.h" ],
"sys/ioctl.h": [ "sys/ttydefaults.h" ],
"sys/mount.h": [ "sys/ioctl.h" ],
- "sys/mtio.h": [ "sys/ioctl.h", "sys/types.h" ],
+ "sys/mtio.h": [ "sys/ioctl.h" ],
"sys/param.h": [ "endian.h", "limits.h", "sys/types.h" ],
- "sys/platform/ppc.h": [ "stdint.h" ],
- "sys/procfs.h": [ "sys/time.h", "sys/types.h",
- "sys/user.h" ],
- "sys/profil.h": [ "sys/time.h", "sys/types.h" ],
+ "sys/procfs.h": [ "sys/ucontext.h", "sys/user.h" ],
"sys/ptrace.h": [ "sys/ucontext.h" ],
- "sys/quota.h": [ "sys/types.h" ],
- "sys/random.h": [ "sys/types.h" ],
- "sys/raw.h": [ "stdint.h", "sys/ioctl.h" ],
- "sys/sendfile.h": [ "sys/types.h" ],
- "sys/signalfd.h": [ "stdint.h" ],
+ "sys/raw.h": [ "sys/ioctl.h" ],
"sys/socketvar.h": [ "sys/socket.h" ],
"sys/timerfd.h": [ "time.h" ],
"sys/ttychars.h": [ "sys/ttydefaults.h" ],
"sys/ucontext.h": [ "sys/procfs.h" ],
"sys/vfs.h": [ "sys/statfs.h" ],
- "sys/xattr.h": [ "sys/types.h" ],
# Nonstandardized headers that do nothing but include some other
# header(s). These exist for compatibility with old systems where
@@ -656,8 +632,7 @@ HEADER_ALLOWED_INCLUDES = {
"netinet/if_fddi.h": [ "stdint.h", "sys/types.h" ],
"netinet/if_tr.h": [ "stdint.h", "sys/types.h" ],
"netinet/igmp.h": [ "netinet/in.h", "sys/types.h" ],
- "netinet/in_systm.h": [ "stdint.h", "sys/types.h" ],
- "netinet/ip.h": [ "netinet/in.h", "sys/types.h" ],
+ "netinet/ip.h": [ "netinet/in.h" ],
"netinet/ip6.h": [ "inttypes.h", "netinet/in.h" ],
"netinet/ip_icmp.h": [ "netinet/in.h", "netinet/ip.h",
"stdint.h", "sys/types.h" ],
@@ -675,14 +650,8 @@ HEADER_ALLOWED_INCLUDES = {
"features.h": [ "gnu/stubs.h", "stdc-predef.h",
"sys/cdefs.h" ],
- "bits/fcntl.h": [ "sys/types.h" ],
- "bits/ipc.h": [ "sys/types.h" ],
"bits/procfs.h": [ "signal.h", "sys/ucontext.h" ],
- "bits/sem.h": [ "sys/types.h" ],
- "bits/socket.h": [ "sys/types.h" ],
- "bits/types/res_state.h": [ "netinet/in.h", "sys/types.h" ],
- "bits/utmp.h": [ "paths.h", "sys/time.h", "sys/types.h" ],
- "bits/utmpx.h": [ "paths.h", "sys/time.h" ],
+ "bits/types/res_state.h": [ "netinet/in.h" ],
"bits/types/__va_list.h": [ "stdarg.h" ],
"bits/types/ptrdiff_t.h": [ "stddef.h" ],
@@ -730,7 +699,8 @@ SYSDEP_ALLOWED_INCLUDES = {
"bits/ioctls.h": [ "asm/ioctls.h", "linux/sockios.h" ],
"bits/local_lim.h": [ "linux/limits.h" ],
"bits/param.h": [ "linux/limits.h", "linux/param.h" ],
- "bits/procfs.h": [ "asm/ptrace.h" ],
+ "bits/procfs.h": [ "asm/elf.h", "asm/ptrace.h" ],
+ "bits/procfs-prregset.h": [ "sys/ucontext.h" ],
"bits/sigcontext.h": [ "asm/sigcontext.h" ],
"bits/socket.h": [ "asm/socket.h" ],
},
similarity index 98%
rename from sysdeps/gnu/net/if.h
rename to socket/net/if.h
@@ -21,12 +21,6 @@
#include <features.h>
-#ifdef __USE_MISC
-# include <sys/types.h>
-# include <sys/socket.h>
-#endif
-
-
/* Length of interface name. */
#define IF_NAMESIZE 16
@@ -38,6 +32,8 @@ struct if_nameindex
#ifdef __USE_MISC
+# include <sys/socket.h> /* for struct sockaddr */
+
/* Standard interface flags. */
enum
{
@@ -23,7 +23,10 @@
__BEGIN_DECLS
+#include <bits/types.h>
#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
+#include <bits/types/socklen_t.h>
#include <bits/types/struct_iovec.h>
/* This operating system-specific header file defines the SOCK_*, PF_*,
@@ -20,7 +20,9 @@
#define _SYS_RANDOM_H 1
#include <features.h>
-#include <sys/types.h>
+
+#include <bits/types/size_t.h>
+#include <bits/types/ssize_t.h>
/* Flags for use with getrandom. */
#define GRND_NONBLOCK 0x01
deleted file mode 100644
deleted file mode 100644
@@ -58,24 +58,12 @@ $(foreach o,$(object-suffixes) $(object-suffixes:=.d),\
$(objpfx)errlist$o): $(objpfx)errlist-compat.h
endif
-ifeq ($(subdir),login)
-sysdep_routines += setutxent getutxent endutxent getutxid getutxline \
- pututxline utmpxname updwtmpx getutmpx getutmp
-
-sysdep_headers += utmpx.h bits/utmpx.h
-endif
-
ifeq ($(subdir),inet)
sysdep_headers += netinet/udp.h netinet/ip_icmp.h
endif
-ifeq ($(subdir),misc)
-sysdep_headers += sys/mtio.h
-endif
-
-
ifeq ($(subdir),csu)
routines += unwind-resume
shared-only-routines += unwind-resume
@@ -15,11 +15,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SEM_H
+#define _BITS_SEM_H 1
+
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
#endif
-#include <sys/types.h>
+#include <bits/types.h>
/* Flags for `semop'. */
#define SEM_UNDO 0x1000 /* undo the operation on exit */
@@ -85,3 +88,5 @@ struct seminfo
};
#endif /* __USE_MISC */
+
+#endif /* bits/sem.h */
@@ -16,11 +16,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_FCNTL_H
+#define _BITS_FCNTL_H 1
+
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
#endif
-#include <sys/types.h>
+#include <bits/types.h>
/* File access modes. These are understood by io servers; they can be
passed in `dir_lookup', and are returned by `io_get_openmodes'.
@@ -180,13 +183,9 @@
# define F_DUPFD_CLOEXEC 1030 /* Duplicate, set FD_CLOEXEC on new one. */
#endif
-
/* File descriptor flags used with F_GETFD and F_SETFD. */
#define FD_CLOEXEC 1 /* Close on exec. */
-
-#include <bits/types.h>
-
/* The structure describing an advisory lock. This is the type of the third
argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */
struct flock
@@ -228,3 +227,5 @@ struct flock64
# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
#endif
+
+#endif /* bits/fcntl.h */
@@ -25,7 +25,7 @@
#endif
-#include <sys/types.h>
+#include <bits/types.h>
#include <bits/types/size_t.h>
#include <bits/types/socklen_t.h>
#include <bits/wordsize.h>
@@ -20,69 +20,34 @@ ifeq ($(subdir),conform)
conformtest-xfail-conds += i386-gnu
# For bug 23088
-test-xfail-POSIX/fcntl.h/conform = yes
test-xfail-POSIX/signal.h/conform = yes
-test-xfail-POSIX/semaphore.h/conform = yes
test-xfail-POSIX/regex.h/conform = yes
test-xfail-POSIX/aio.h/conform = yes
test-xfail-POSIX/mqueue.h/conform = yes
test-xfail-POSIX/sys/types.h/conform = yes
-test-xfail-UNIX98/fcntl.h/conform = yes
-test-xfail-UNIX98/netdb.h/conform = yes
test-xfail-UNIX98/signal.h/conform = yes
-test-xfail-UNIX98/semaphore.h/conform = yes
test-xfail-UNIX98/regex.h/conform = yes
test-xfail-UNIX98/aio.h/conform = yes
-test-xfail-UNIX98/ftw.h/conform = yes
test-xfail-UNIX98/mqueue.h/conform = yes
-test-xfail-UNIX98/netinet/in.h/conform = yes
-test-xfail-UNIX98/sys/sem.h/conform = yes
-test-xfail-UNIX98/sys/uio.h/conform = yes
-test-xfail-UNIX98/sys/socket.h/conform = yes
test-xfail-UNIX98/sys/types.h/conform = yes
test-xfail-UNIX98/stdlib.h/conform = yes
-test-xfail-UNIX98/arpa/inet.h/conform = yes
-test-xfail-POSIX2008/fcntl.h/conform = yes
-test-xfail-POSIX2008/netdb.h/conform = yes
test-xfail-POSIX2008/signal.h/conform = yes
-test-xfail-POSIX2008/semaphore.h/conform = yes
test-xfail-POSIX2008/regex.h/conform = yes
test-xfail-POSIX2008/aio.h/conform = yes
test-xfail-POSIX2008/mqueue.h/conform = yes
-test-xfail-POSIX2008/netinet/in.h/conform = yes
-test-xfail-POSIX2008/sys/socket.h/conform = yes
test-xfail-POSIX2008/sys/types.h/conform = yes
-test-xfail-POSIX2008/arpa/inet.h/conform = yes
-test-xfail-XOPEN2K/fcntl.h/conform = yes
-test-xfail-XOPEN2K/netdb.h/conform = yes
test-xfail-XOPEN2K/signal.h/conform = yes
-test-xfail-XOPEN2K/semaphore.h/conform = yes
test-xfail-XOPEN2K/regex.h/conform = yes
test-xfail-XOPEN2K/aio.h/conform = yes
-test-xfail-XOPEN2K/ftw.h/conform = yes
test-xfail-XOPEN2K/mqueue.h/conform = yes
-test-xfail-XOPEN2K/netinet/in.h/conform = yes
-test-xfail-XOPEN2K/sys/sem.h/conform = yes
-test-xfail-XOPEN2K/sys/uio.h/conform = yes
-test-xfail-XOPEN2K/sys/socket.h/conform = yes
test-xfail-XOPEN2K/sys/types.h/conform = yes
test-xfail-XOPEN2K/stdlib.h/conform = yes
-test-xfail-XOPEN2K/arpa/inet.h/conform = yes
-test-xfail-XOPEN2K8/fcntl.h/conform = yes
-test-xfail-XOPEN2K8/netdb.h/conform = yes
test-xfail-XOPEN2K8/signal.h/conform = yes
-test-xfail-XOPEN2K8/semaphore.h/conform = yes
test-xfail-XOPEN2K8/regex.h/conform = yes
test-xfail-XOPEN2K8/aio.h/conform = yes
-test-xfail-XOPEN2K8/ftw.h/conform = yes
test-xfail-XOPEN2K8/mqueue.h/conform = yes
-test-xfail-XOPEN2K8/netinet/in.h/conform = yes
-test-xfail-XOPEN2K8/sys/sem.h/conform = yes
-test-xfail-XOPEN2K8/sys/uio.h/conform = yes
-test-xfail-XOPEN2K8/sys/socket.h/conform = yes
test-xfail-XOPEN2K8/sys/types.h/conform = yes
test-xfail-XOPEN2K8/stdlib.h/conform = yes
-test-xfail-XOPEN2K8/arpa/inet.h/conform = yes
# For bug 23819
test-xfail-ISO11/threads.h/linknamespace = yes
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
+#include <sys/types.h>
#include <stddef.h>
/* Send COUNT bytes from file associated with IN_FD starting at OFFSET to
@@ -22,6 +22,9 @@
/* The definitions in this file must correspond to those in the debugger. */
#include <sys/procfs.h>
+#include <bits/types/size_t.h>
+#include <bits/types/pid_t.h>
+
__BEGIN_DECLS
/* Functions in this interface return one of these status codes. */
@@ -19,7 +19,8 @@
#ifndef _SYS_PROCFS_H
#define _SYS_PROCFS_H 1
-#include <sys/types.h>
+#include <features.h>
+#include <bits/types.h>
/* The rest of this file provides the types for emulation of the
Solaris <proc_service.h> interfaces that should be implemented by
@@ -24,7 +24,6 @@
with the goal to share the same code in the debugger. */
#include <pthread.h>
#include <stdint.h>
-#include <sys/types.h>
#include <sys/procfs.h>
#include <bits/types/sigset_t.h>
@@ -23,8 +23,8 @@
a unique identifier for a file. */
struct r_file_id
{
- dev_t dev;
- ino64_t ino;
+ __dev_t dev;
+ __ino64_t ino;
};
/* Sample FD to fill in *ID. Returns true on success.
@@ -20,24 +20,24 @@
#define _SYS_PLATFORM_PPC_H 1
#include <features.h>
-#include <stdint.h>
+#include <bits/types.h>
#include <bits/ppc.h>
/* Read the Time Base Register. */
-static __inline__ uint64_t
+static __inline__ __uint64_t
__ppc_get_timebase (void)
{
#if __GNUC_PREREQ (4, 8)
return __builtin_ppc_get_timebase ();
#else
# ifdef __powerpc64__
- uint64_t __tb;
+ __uint64_t __tb;
/* "volatile" is necessary here, because the user expects this assembly
isn't moved after an optimization. */
__asm__ volatile ("mfspr %0, 268" : "=r" (__tb));
return __tb;
# else /* not __powerpc64__ */
- uint32_t __tbu, __tbl, __tmp; \
+ __uint32_t __tbu, __tbl, __tmp;
__asm__ volatile ("0:\n\t"
"mftbu %0\n\t"
"mftbl %1\n\t"
@@ -45,7 +45,7 @@ __ppc_get_timebase (void)
"cmpw %0, %2\n\t"
"bne- 0b"
: "=r" (__tbu), "=r" (__tbl), "=r" (__tmp));
- return (((uint64_t) __tbu << 32) | __tbl);
+ return (((__uint64_t) __tbu << 32) | __tbl);
# endif /* not __powerpc64__ */
#endif
}
@@ -19,7 +19,7 @@
#define _SEMAPHORE_H 1
#include <features.h>
-#include <sys/types.h>
+
#ifdef __USE_XOPEN2K
# include <bits/types/struct_timespec.h>
#endif
@@ -17,19 +17,28 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
+#include <bits/types.h>
+
/* Type for a general-purpose register. */
typedef __uint64_t elf_greg_t;
/* And the whole bunch of them. We could have used `struct
- pt_regs' directly in the typedef, but tradition says that
+ user_regs_struct' directly in the typedef, but tradition says that
the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
+ semantics, so leave it that way.
+
+ struct user_regs_struct is defined in sys/user.h. */
#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
/* Register set for the floating-point registers. */
typedef struct user_fpsimd_struct elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -25,3 +28,5 @@ enum
EPOLL_CLOEXEC = 010000000
#define EPOLL_CLOEXEC EPOLL_CLOEXEC
};
+
+#endif /* bits/epoll.h */
@@ -17,9 +17,18 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_PRREGSET_H
+#define _BITS_PROCFS_PRREGSET_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs-prregset.h> directly; use <sys/procfs.h> instead."
#endif
+/* For gregset_t and fpregset_t. FIXME: sys/procfs.h should not
+ expose all of sys/ucontext.h. */
+#include <sys/ucontext.h>
+
typedef gregset_t __prgregset_t;
typedef fpregset_t __prfpregset_t;
+
+#endif
@@ -16,13 +16,13 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
-#include <signal.h>
-#include <sys/ucontext.h>
-
/*
* The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
* I have no idea why that is so. For now, we just leave it at 33
@@ -36,3 +36,5 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef double elf_fpreg_t;
typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+#endif /* bits/procfs.h */
@@ -16,8 +16,8 @@
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_ACCT_H
-
#define _SYS_ACCT_H 1
+
#include <features.h>
#include <bits/types/time_t.h>
@@ -16,6 +16,9 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -26,9 +29,13 @@ typedef unsigned long elf_greg_t;
/* And the whole bunch of them. We could have used `struct
user_regs' directly in the typedef, but tradition says that
the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
+ semantics, so leave it that way.
+
+ struct user_regs is defined in sys/user.h. */
#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
/* Register set for the floating-point registers. */
typedef struct user_fpregs elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -25,3 +28,5 @@ enum
EPOLL_CLOEXEC = 02000000
#define EPOLL_CLOEXEC EPOLL_CLOEXEC
};
+
+#endif /* bits/epoll.h */
@@ -15,11 +15,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SEM_H
+#define _BITS_SEM_H 1
+
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
#endif
-#include <sys/types.h>
+#include <bits/types.h>
#include <bits/sem-pad.h>
/* Flags for `semop'. */
@@ -95,3 +98,5 @@ struct seminfo
};
#endif /* __USE_MISC */
+
+#endif /* bits/sem.h */
@@ -24,7 +24,7 @@
#endif
-#include <sys/types.h>
+#include <bits/types.h>
#include <bits/types/size_t.h>
#include <bits/types/socklen_t.h>
@@ -337,9 +337,9 @@ enum
/* User visible structure for SCM_CREDENTIALS message */
struct ucred
{
- pid_t pid; /* PID of sending process. */
- uid_t uid; /* UID of sending process. */
- gid_t gid; /* GID of sending process. */
+ __pid_t pid; /* PID of sending process. */
+ __uid_t uid; /* UID of sending process. */
+ __gid_t gid; /* GID of sending process. */
};
#endif
@@ -26,7 +26,7 @@
__BEGIN_DECLS
/* Read from another process' address space. */
-extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec,
+extern ssize_t process_vm_readv (__pid_t __pid, const struct iovec *__lvec,
unsigned long int __liovcnt,
const struct iovec *__rvec,
unsigned long int __riovcnt,
@@ -34,7 +34,7 @@ extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec,
__THROW;
/* Write to another process' address space. */
-extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
+extern ssize_t process_vm_writev (__pid_t __pid, const struct iovec *__lvec,
unsigned long int __liovcnt,
const struct iovec *__rvec,
unsigned long int __riovcnt,
@@ -16,6 +16,9 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -35,3 +38,5 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
#define ELF_NFPREG (sizeof (struct user_fp) / sizeof (elf_fpreg_t))
typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+#endif /* bits/procfs.h */
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -25,3 +28,5 @@ enum
EPOLL_CLOEXEC = 010000000
#define EPOLL_CLOEXEC EPOLL_CLOEXEC
};
+
+#endif /* bits/epoll.h */
@@ -16,6 +16,9 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -28,3 +31,5 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
#define ELF_NFPREG 32
typedef double elf_fpreg_t;
typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+#endif /* bits/procfs.h */
@@ -20,7 +20,7 @@
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
#endif
-#include <sys/types.h>
+#include <bits/types.h>
/* Mode bits for `msgget', `semget', and `shmget'. */
#define IPC_CREAT 01000 /* Create key if key does not exist. */
@@ -16,11 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
-#include <signal.h>
+/* For struct __ia64_fpreg. FIXME: sys/procfs.h should not expose all
+ of sys/ucontext.h. */
#include <sys/ucontext.h>
#include <bits/sigcontext.h>
@@ -39,3 +43,5 @@ typedef elf_greg_t greg_t;
typedef elf_gregset_t gregset_t;
typedef elf_fpregset_t fpregset_t;
#define NGREG ELF_NGREG
+
+#endif /* bits/procfs.h */
@@ -16,6 +16,9 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -26,9 +29,13 @@ typedef unsigned long elf_greg_t;
/* And the whole bunch of them. We could have used `struct
user_regs_struct' directly in the typedef, but tradition says that
the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
+ semantics, so leave it that way.
+
+ struct user_regs_struct is defined by sys/user.h. */
#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
/* Register set for the floating-point registers. */
typedef struct user_m68kfp_struct elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -17,6 +17,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -27,9 +30,13 @@ typedef unsigned long elf_greg_t;
/* And the whole bunch of them. We could have used `struct
user_regs_struct' directly in the typedef, but tradition says that
the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
+ semantics, so leave it that way.
+
+ struct user_regs_struct is defined by sys/user.h. */
#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
/* Register set for the floating-point registers. */
typedef struct user_fpregs_struct elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -17,7 +17,9 @@
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
-# define _SYS_USER_H 1
+#define _SYS_USER_H 1
+
+#include <features.h>
#include <features.h>
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -25,3 +28,5 @@ enum
EPOLL_CLOEXEC = 02000000
#define EPOLL_CLOEXEC EPOLL_CLOEXEC
};
+
+#endif /* bits/epoll.h */
@@ -16,6 +16,9 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -35,3 +38,5 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef double elf_fpreg_t;
typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+#endif /* bits/procfs.h */
@@ -16,6 +16,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -32,3 +35,5 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
/* Register set for the floating-point registers. */
typedef struct user_fpregs elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -26,7 +26,7 @@
__BEGIN_DECLS
/* Read the time base frequency. */
-extern uint64_t __ppc_get_timebase_freq (void);
+extern __uint64_t __ppc_get_timebase_freq (void);
__END_DECLS
@@ -16,17 +16,20 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
-#include <signal.h>
-#include <sys/ucontext.h>
+#include <bits/wordsize.h>
+#include <asm/elf.h>
+
+/* These definitions may have been provided by asm/elf.h. Otherwise
+ we define them here. */
+#ifndef ELF_NGREG
-/* These definitions are normally provided by ucontext.h via
- asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define
- them here. */
-#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H
#define ELF_NGREG 48 /* includes nip, msr, lr, etc. */
#define ELF_NFPREG 33 /* includes fpscr */
#if __WORDSIZE == 32
@@ -46,4 +49,7 @@ typedef struct {
unsigned int u[4];
} __attribute__ ((__aligned__ (16))) elf_vrreg_t;
typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
-#endif
+
+#endif /* ifndef ELF_NGREG */
+
+#endif /* bits/procfs.h */
@@ -22,6 +22,7 @@
#include <bits/types/size_t.h>
#include <asm/ptrace.h>
+#include <bits/types/size_t.h>
struct user {
struct pt_regs regs; /* entire machine state */
@@ -16,10 +16,16 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
+/* FIXME: sys/ucontext.h does not define NGREG or NFPREG unless
+ __USE_MISC is active, and sys/procfs.h should not expose all of
+ sys/ucontext.h. */
#include <sys/ucontext.h>
/* ELF register definitions */
@@ -29,3 +35,5 @@
typedef unsigned long int elf_greg_t;
typedef unsigned long int elf_gregset_t[32];
typedef union __riscv_mc_fp_state elf_fpregset_t;
+
+#endif /* bits/procfs.h */
@@ -16,10 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
+/* FIXME: sys/ucontext.h does not define NGREG unless __USE_MISC is
+ active, and sys/procfs.h should not expose all of sys/ucontext.h. */
#include <sys/ucontext.h>
typedef greg_t elf_greg_t;
@@ -27,3 +32,5 @@ typedef greg_t elf_greg_t;
typedef gregset_t elf_gregset_t;
typedef fpreg_t elf_fpreg_t;
typedef fpregset_t elf_fpregset_t;
+
+#endif /* bits/procfs.h */
similarity index 83%
rename from sysdeps/gnu/bits/utmp.h
rename to sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -1,4 +1,4 @@
-/* The `struct utmp' type, describing entries in the utmp file. GNU version.
+/* The `struct utmp' type, describing entries in the utmp file. S/390 version.
Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -16,15 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_UTMP_H
+#define _BITS_UTMP_H 1
+
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
#endif
-#include <paths.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
#define UT_LINESIZE 32
#define UT_NAMESIZE 32
@@ -35,11 +33,7 @@
previous logins. */
struct lastlog
{
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ll_time;
-#else
- __time_t ll_time;
-#endif
+ __time64_t ll_time;
char ll_line[UT_LINESIZE];
char ll_host[UT_HOSTSIZE];
};
@@ -68,23 +62,20 @@ struct utmp
__attribute_nonstring__; /* Hostname for remote login. */
struct exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */
+
/* The ut_session and ut_tv fields must be the same size when compiled
32- and 64-bit. This allows data files and shared memory to be
- shared between 32- and 64-bit applications. */
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ut_session; /* Session ID, used for windowing. */
+ shared between 32- and 64-bit applications. Even on 64-bit systems,
+ struct timeval is not guaranteed to have both fields be 64 bits. */
+ __int64_t ut_session; /* Session ID, used for windowing. */
struct
{
- int32_t tv_sec; /* Seconds. */
- int32_t tv_usec; /* Microseconds. */
+ __int64_t tv_sec; /* Seconds. */
+ __int64_t tv_usec; /* Microseconds. */
} ut_tv; /* Time entry was made. */
-#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
-#endif
- int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __glibc_reserved[20]; /* Reserved for future use. */
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
};
/* Backwards compatibility hacks. */
@@ -124,3 +115,5 @@ struct utmp
#define _HAVE_UT_ID 1
#define _HAVE_UT_TV 1
#define _HAVE_UT_HOST 1
+
+#endif /* bits/utmp.h */
@@ -1,4 +1,4 @@
-/* Structures and definitions for the user accounting database. GNU version.
+/* Structures and definitions for the user accounting database. S/390 version.
Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -16,22 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_UTMPX_H
+#define _BITS_UTMPX_H 1
+
#ifndef _UTMPX_H
# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
#endif
-#include <bits/types.h>
-#include <sys/time.h>
-#include <bits/wordsize.h>
-
-
-#ifdef __USE_GNU
-# include <paths.h>
-# define _PATH_UTMPX _PATH_UTMP
-# define _PATH_WTMPX _PATH_WTMP
-#endif
-
-
#define __UT_LINESIZE 32
#define __UT_NAMESIZE 32
#define __UT_HOSTSIZE 256
@@ -55,7 +46,7 @@ struct __exit_status
struct utmpx
{
short int ut_type; /* Type of login. */
- __pid_t ut_pid; /* Process ID of login process. */
+ pid_t ut_pid; /* Process ID of login process. */
char ut_line[__UT_LINESIZE]; /* Devicename. */
char ut_id[4]; /* Inittab ID. */
char ut_user[__UT_NAMESIZE]; /* Username. */
@@ -63,20 +54,17 @@ struct utmpx
struct __exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */
-/* The fields ut_session and ut_tv must be the same size when compiled
- 32- and 64-bit. This allows files and shared memory to be shared
- between 32- and 64-bit applications. */
-#if __WORDSIZE == 32
+/* The ut_session and ut_tv fields must be the same size when compiled
+ 32- and 64-bit. This allows data files and shared memory to be
+ shared between 32- and 64-bit applications. Even on 64-bit systems,
+ struct timeval is not guaranteed to have both fields be 64 bits. */
__int64_t ut_session; /* Session ID, used for windowing. */
struct
{
__int64_t tv_sec; /* Seconds. */
__int64_t tv_usec; /* Microseconds. */
} ut_tv; /* Time entry was made. */
-#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
-#endif
+
__int32_t ut_addr_v6[4]; /* Internet address of remote host. */
char __glibc_reserved[20]; /* Reserved for future use. */
};
@@ -100,3 +88,5 @@ struct utmpx
#ifdef __USE_GNU
# define ACCOUNTING 9 /* System accounting. */
#endif
+
+#endif /* bits/utmpx.h */
@@ -16,9 +16,14 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
/* elf_gregset_t and elf_fpregset_t are defined by sys/user.h for
SH. */
+
+#endif /* bits/procfs.h */
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -25,3 +28,5 @@ enum
EPOLL_CLOEXEC = 0x400000
#define EPOLL_CLOEXEC EPOLL_CLOEXEC
};
+
+#endif /* bits/epoll.h */
@@ -16,12 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
-#include <signal.h>
-#include <sys/ucontext.h>
#include <bits/wordsize.h>
#if __WORDSIZE == 64
@@ -59,3 +60,5 @@ typedef struct
typedef unsigned long elf_greg_t;
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#endif /* bits/procfs.h */
@@ -18,10 +18,10 @@
#ifndef _SYS_ACCT_H
#define _SYS_ACCT_H 1
-#include <sys/types.h>
-#include <stdint.h>
+#include <features.h>
+
#include <bits/endian.h>
-#include <bits/types/time_t.h>
+#include <bits/stdint-uintn.h>
__BEGIN_DECLS
@@ -18,9 +18,9 @@
#ifndef _SYS_EPOLL_H
#define _SYS_EPOLL_H 1
-#include <stdint.h>
-#include <sys/types.h>
+#include <features.h>
+#include <bits/types.h>
#include <bits/types/sigset_t.h>
/* Get the platform-dependent flags. */
@@ -76,13 +76,13 @@ typedef union epoll_data
{
void *ptr;
int fd;
- uint32_t u32;
- uint64_t u64;
+ __uint32_t u32;
+ __uint64_t u64;
} epoll_data_t;
struct epoll_event
{
- uint32_t events; /* Epoll events */
+ __uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
} __EPOLL_PACKED;
@@ -18,13 +18,14 @@
#ifndef _SYS_EVENTFD_H
#define _SYS_EVENTFD_H 1
-#include <stdint.h>
+#include <features.h>
+#include <bits/types.h>
/* Get the platform-dependent flags. */
#include <bits/eventfd.h>
/* Type for event counter. */
-typedef uint64_t eventfd_t;
+typedef __uint64_t eventfd_t;
__BEGIN_DECLS
@@ -18,10 +18,10 @@
#ifndef _SYS_FANOTIFY_H
#define _SYS_FANOTIFY_H 1
-#include <stdint.h>
+#include <features.h>
+#include <bits/types.h>
#include <linux/fanotify.h>
-
__BEGIN_DECLS
/* Create and initialize fanotify group. */
@@ -30,7 +30,7 @@ extern int fanotify_init (unsigned int __flags, unsigned int __event_f_flags)
/* Add, remove, or modify an fanotify mark on a filesystem object. */
extern int fanotify_mark (int __fanotify_fd, unsigned int __flags,
- uint64_t __mask, int __dfd, const char *__pathname)
+ __uint64_t __mask, int __dfd, const char *__pathname)
__THROW;
__END_DECLS
@@ -19,7 +19,7 @@
#define _SYS_FSUID_H 1
#include <features.h>
-#include <sys/types.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -18,7 +18,8 @@
#ifndef _SYS_INOTIFY_H
#define _SYS_INOTIFY_H 1
-#include <stdint.h>
+#include <features.h>
+#include <bits/types.h>
/* Get the platform-dependent flags. */
#include <bits/inotify.h>
@@ -28,9 +29,9 @@
struct inotify_event
{
int wd; /* Watch descriptor. */
- uint32_t mask; /* Watch mask. */
- uint32_t cookie; /* Cookie to synchronize two events. */
- uint32_t len; /* Length (including NULs) of name. */
+ __uint32_t mask; /* Watch mask. */
+ __uint32_t cookie; /* Cookie to synchronize two events. */
+ __uint32_t len; /* Length (including NULs) of name. */
char name __flexarr; /* Name. */
};
@@ -89,7 +90,7 @@ extern int inotify_init1 (int __flags) __THROW;
/* Add watch of object NAME to inotify instance FD. Notify about
events specified by MASK. */
-extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
+extern int inotify_add_watch (int __fd, const char *__name, __uint32_t __mask)
__THROW;
/* Remove the watch specified by WD from the inotify instance FD. */
@@ -30,8 +30,10 @@
GDB unless you know what you are doing. */
#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
+
+#include <bits/types.h>
+#include <bits/types/struct_timeval.h>
+
#include <sys/user.h>
/* bits/procfs.h, provided by each architecture, must define
@@ -52,8 +52,8 @@
#define _SYS_QUOTA_H 1
#include <features.h>
-#include <sys/types.h>
+#include <bits/types.h>
#include <linux/quota.h>
/*
@@ -18,7 +18,8 @@
#ifndef _SYS_RAW_H
#define _SYS_RAW_H 1
-#include <stdint.h>
+#include <features.h>
+#include <bits/types.h>
#include <sys/ioctl.h>
/* The major device number for raw devices. */
@@ -31,8 +32,8 @@
struct raw_config_request
{
int raw_minor;
- uint64_t block_major;
- uint64_t block_minor;
+ __uint64_t block_major;
+ __uint64_t block_minor;
};
#endif /* sys/raw.h */
@@ -18,7 +18,8 @@
#ifndef _SYS_SIGNALFD_H
#define _SYS_SIGNALFD_H 1
-#include <stdint.h>
+#include <features.h>
+#include <bits/types.h>
#include <bits/types/sigset_t.h>
/* Get the platform-dependent flags. */
@@ -26,28 +27,28 @@
struct signalfd_siginfo
{
- uint32_t ssi_signo;
- int32_t ssi_errno;
- int32_t ssi_code;
- uint32_t ssi_pid;
- uint32_t ssi_uid;
- int32_t ssi_fd;
- uint32_t ssi_tid;
- uint32_t ssi_band;
- uint32_t ssi_overrun;
- uint32_t ssi_trapno;
- int32_t ssi_status;
- int32_t ssi_int;
- uint64_t ssi_ptr;
- uint64_t ssi_utime;
- uint64_t ssi_stime;
- uint64_t ssi_addr;
- uint16_t ssi_addr_lsb;
- uint16_t __pad2;
- int32_t ssi_syscall;
- uint64_t ssi_call_addr;
- uint32_t ssi_arch;
- uint8_t __pad[28];
+ __uint32_t ssi_signo;
+ __int32_t ssi_errno;
+ __int32_t ssi_code;
+ __uint32_t ssi_pid;
+ __uint32_t ssi_uid;
+ __int32_t ssi_fd;
+ __uint32_t ssi_tid;
+ __uint32_t ssi_band;
+ __uint32_t ssi_overrun;
+ __uint32_t ssi_trapno;
+ __int32_t ssi_status;
+ __int32_t ssi_int;
+ __uint64_t ssi_ptr;
+ __uint64_t ssi_utime;
+ __uint64_t ssi_stime;
+ __uint64_t ssi_addr;
+ __uint16_t ssi_addr_lsb;
+ __uint16_t __pad2;
+ __int32_t ssi_syscall;
+ __uint64_t ssi_call_addr;
+ __uint32_t ssi_arch;
+ __uint8_t __pad[28];
};
__BEGIN_DECLS
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_EPOLL_H
+#define _BITS_EPOLL_H 1
+
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
#endif
@@ -27,3 +30,5 @@ enum
};
#define __EPOLL_PACKED __attribute__ ((__packed__))
+
+#endif /* bits/epoll.h */
@@ -16,6 +16,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_PROCFS_H
+#define _BITS_PROCFS_H 1
+
#ifndef _SYS_PROCFS_H
# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
@@ -48,3 +51,5 @@ typedef struct user_fpxregs_struct elf_fpxregset_t;
floating-point stuff. */
typedef struct user_fpregs_struct elf_fpregset_t;
#endif
+
+#endif /* bits/procfs.h */
@@ -25,6 +25,8 @@
/* Define types required by the standard. */
#include <bits/types/size_t.h>
+#include <bits/types/pid_t.h>
+#include <bits/types/time_t.h>
#ifdef __USE_GNU
# include <bits/types/struct_timespec.h>
#endif