about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--bits/types.h20
-rw-r--r--sysdeps/generic/bits/types.h20
3 files changed, 32 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 47d33bb04a..2e34716a1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1998-09-13  Mark Kettenis  <kettenis@phys.uva.nl>
+
+	* sysdeps/generic/bits/types.h: Include <features.h>.  Make sure
+	size_t is defined.  Some reordering of defenitions to make
+	maintaining this file in parallel with the linux-specific file easier.
+
 1998-09-13  Ulrich Drepper  <drepper@cygnus.com>
 
 	* io/pwd.c (main): Add call to mtrace.
diff --git a/bits/types.h b/bits/types.h
index c6b7b8884e..d79851c22a 100644
--- a/bits/types.h
+++ b/bits/types.h
@@ -23,6 +23,10 @@
 #ifndef	_BITS_TYPES_H
 #define	_BITS_TYPES_H	1
 
+#include <features.h>
+
+#define __need_size_t
+#include <stddef.h>
 
 /* Convenience types.  */
 typedef unsigned char __u_char;
@@ -53,22 +57,23 @@ typedef signed long long int __int64_t;
 typedef unsigned long long int __uint64_t;
 #endif
 typedef __quad_t *__qaddr_t;
+
 typedef int __dev_t;		/* Type of device numbers.  */
 typedef unsigned int __uid_t;	/* Type of user identifications.  */
 typedef unsigned int __gid_t;	/* Type of group identifications.  */
 typedef unsigned int __ino_t;	/* Type of file serial numbers.  */
+typedef __quad_t __ino64_t;	/* Type of file serial numbers (LFS).  */
 typedef unsigned int __mode_t;	/* Type of file attribute bitmasks.  */
 typedef unsigned short int __nlink_t; /* Type of file link counts.  */
 typedef long int __off_t;	/* Type of file sizes and offsets.  */
 typedef __quad_t __loff_t;	/* Type of file sizes and offsets.  */
+typedef __loff_t __off64_t;	/* Type of file sizes and offsets (LFS).  */
 typedef int __pid_t;		/* Type of process identifications.  */
 typedef int __ssize_t;		/* Type of a byte count, or error.  */
 typedef __u_quad_t __fsid_t;	/* Type of file system IDs.  */
 typedef long int __clock_t;	/* Type of CPU usage counts.  */
 typedef long int __rlim_t;	/* Type for resource measurement.  */
 typedef __quad_t __rlim64_t;	/* Type for resource measurement (LFS).  */
-typedef __quad_t __ino64_t;	/* Type for file serial numbers.  */
-typedef __loff_t __off64_t;	/* Type of file izes and offsets.  */
 typedef unsigned int __id_t;	/* General type for IDs.  */
 
 /* Everythin' else.  */
@@ -78,7 +83,9 @@ typedef long int __time_t;
 typedef long int __swblk_t;	/* Type of a swap block maybe?  */
 typedef long int __key_t;	/* Type of an IPC key */
 
-/* fd_set for select.  */
+
+/* One element in the file descriptor mask array.  */
+typedef unsigned long int __fd_mask;
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE	256
@@ -88,14 +95,13 @@ typedef long int __key_t;	/* Type of an IPC key */
 #define	__FDELT(d)	((d) / __NFDBITS)
 #define	__FDMASK(d)	((unsigned long int) 1 << ((d) % __NFDBITS))
 
+/* fd_set for select and pselect.  */
 typedef struct
   {
     /* XPG4.2 requires this member name.  */
-    unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+    __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
   } __fd_set;
 
-typedef unsigned long int __fd_mask;
-
 
 /* Types from the Large File Support interface.  */
 
@@ -115,7 +121,7 @@ typedef __u_quad_t __fsfilcnt64_t;
 typedef int __t_scalar_t;
 typedef unsigned int __t_uscalar_t;
 
-/* This definition makes this file kind of architecture dependent.  */
+/* Duplicates info from stdint.h but this is used in unistd.h.  */
 typedef long int __intptr_t;
 
 #endif /* bits/types.h */
diff --git a/sysdeps/generic/bits/types.h b/sysdeps/generic/bits/types.h
index c6b7b8884e..d79851c22a 100644
--- a/sysdeps/generic/bits/types.h
+++ b/sysdeps/generic/bits/types.h
@@ -23,6 +23,10 @@
 #ifndef	_BITS_TYPES_H
 #define	_BITS_TYPES_H	1
 
+#include <features.h>
+
+#define __need_size_t
+#include <stddef.h>
 
 /* Convenience types.  */
 typedef unsigned char __u_char;
@@ -53,22 +57,23 @@ typedef signed long long int __int64_t;
 typedef unsigned long long int __uint64_t;
 #endif
 typedef __quad_t *__qaddr_t;
+
 typedef int __dev_t;		/* Type of device numbers.  */
 typedef unsigned int __uid_t;	/* Type of user identifications.  */
 typedef unsigned int __gid_t;	/* Type of group identifications.  */
 typedef unsigned int __ino_t;	/* Type of file serial numbers.  */
+typedef __quad_t __ino64_t;	/* Type of file serial numbers (LFS).  */
 typedef unsigned int __mode_t;	/* Type of file attribute bitmasks.  */
 typedef unsigned short int __nlink_t; /* Type of file link counts.  */
 typedef long int __off_t;	/* Type of file sizes and offsets.  */
 typedef __quad_t __loff_t;	/* Type of file sizes and offsets.  */
+typedef __loff_t __off64_t;	/* Type of file sizes and offsets (LFS).  */
 typedef int __pid_t;		/* Type of process identifications.  */
 typedef int __ssize_t;		/* Type of a byte count, or error.  */
 typedef __u_quad_t __fsid_t;	/* Type of file system IDs.  */
 typedef long int __clock_t;	/* Type of CPU usage counts.  */
 typedef long int __rlim_t;	/* Type for resource measurement.  */
 typedef __quad_t __rlim64_t;	/* Type for resource measurement (LFS).  */
-typedef __quad_t __ino64_t;	/* Type for file serial numbers.  */
-typedef __loff_t __off64_t;	/* Type of file izes and offsets.  */
 typedef unsigned int __id_t;	/* General type for IDs.  */
 
 /* Everythin' else.  */
@@ -78,7 +83,9 @@ typedef long int __time_t;
 typedef long int __swblk_t;	/* Type of a swap block maybe?  */
 typedef long int __key_t;	/* Type of an IPC key */
 
-/* fd_set for select.  */
+
+/* One element in the file descriptor mask array.  */
+typedef unsigned long int __fd_mask;
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE	256
@@ -88,14 +95,13 @@ typedef long int __key_t;	/* Type of an IPC key */
 #define	__FDELT(d)	((d) / __NFDBITS)
 #define	__FDMASK(d)	((unsigned long int) 1 << ((d) % __NFDBITS))
 
+/* fd_set for select and pselect.  */
 typedef struct
   {
     /* XPG4.2 requires this member name.  */
-    unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+    __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
   } __fd_set;
 
-typedef unsigned long int __fd_mask;
-
 
 /* Types from the Large File Support interface.  */
 
@@ -115,7 +121,7 @@ typedef __u_quad_t __fsfilcnt64_t;
 typedef int __t_scalar_t;
 typedef unsigned int __t_uscalar_t;
 
-/* This definition makes this file kind of architecture dependent.  */
+/* Duplicates info from stdint.h but this is used in unistd.h.  */
 typedef long int __intptr_t;
 
 #endif /* bits/types.h */