diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2006-03-01 00:48:08 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2006-03-01 00:48:08 +0000 | 
| commit | a43c3c8624e01d14ef5834dfadcf07a4ed97d5a2 (patch) | |
| tree | c7a0d33a42b28e9e718f4df70f1e48c05420055a /libc/sysdeps | |
| parent | 54382dbecf5413826f934fc300739fc10c267ef4 (diff) | |
sync type style with glibc ... this fixes many alpha issues where it has different typesizes from the normal 64bit arch
Diffstat (limited to 'libc/sysdeps')
| -rw-r--r-- | libc/sysdeps/linux/alpha/bits/typesizes.h | 66 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/types.h | 166 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/typesizes.h | 66 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/typesizes.h | 66 | 
4 files changed, 302 insertions, 62 deletions
diff --git a/libc/sysdeps/linux/alpha/bits/typesizes.h b/libc/sysdeps/linux/alpha/bits/typesizes.h new file mode 100644 index 000000000..201585af1 --- /dev/null +++ b/libc/sysdeps/linux/alpha/bits/typesizes.h @@ -0,0 +1,66 @@ +/* bits/typesizes.h -- underlying types for *_t.  Linux/Alpha version. +   Copyright (C) 2002, 2003 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 Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 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 +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _BITS_TYPES_H +# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." +#endif + +#ifndef	_BITS_TYPESIZES_H +#define	_BITS_TYPESIZES_H	1 + +/* See <bits/types.h> for the meaning of these macros.  This file exists so +   that <bits/types.h> need not vary across different GNU platforms.  */ + +#define __DEV_T_TYPE		__U64_TYPE +#define __UID_T_TYPE		__U32_TYPE +#define __GID_T_TYPE		__U32_TYPE +#define __INO_T_TYPE		__U32_TYPE +#define __INO64_T_TYPE		__U64_TYPE +#define __MODE_T_TYPE		__U32_TYPE +#define __NLINK_T_TYPE		__U32_TYPE +#define __OFF_T_TYPE		__SLONGWORD_TYPE +#define __OFF64_T_TYPE		__S64_TYPE +#define __PID_T_TYPE		__S32_TYPE +#define __RLIM_T_TYPE		__ULONGWORD_TYPE +#define __RLIM64_T_TYPE		__U64_TYPE +#define	__BLKCNT_T_TYPE		__U32_TYPE +#define	__BLKCNT64_T_TYPE	__U64_TYPE +#define	__FSBLKCNT_T_TYPE	__S32_TYPE +#define	__FSBLKCNT64_T_TYPE	__S64_TYPE +#define	__FSFILCNT_T_TYPE	__U32_TYPE +#define	__FSFILCNT64_T_TYPE	__U64_TYPE +#define	__ID_T_TYPE		__U32_TYPE +#define __CLOCK_T_TYPE		__SLONGWORD_TYPE +#define __TIME_T_TYPE		__SLONGWORD_TYPE +#define __USECONDS_T_TYPE	__U32_TYPE +#define __SUSECONDS_T_TYPE	__S64_TYPE +#define __DADDR_T_TYPE		__S32_TYPE +#define __SWBLK_T_TYPE		__SLONGWORD_TYPE +#define __KEY_T_TYPE		__S32_TYPE +#define __CLOCKID_T_TYPE	__S32_TYPE +#define __TIMER_T_TYPE		void * +#define __BLKSIZE_T_TYPE	__U32_TYPE +#define __FSID_T_TYPE		struct { int __val[2]; } +#define __SSIZE_T_TYPE		__SWORD_TYPE + +/* Number of descriptors that can fit in an `fd_set'.  */ +#define	__FD_SETSIZE		1024 + + +#endif /* bits/typesizes.h */ diff --git a/libc/sysdeps/linux/common/bits/types.h b/libc/sysdeps/linux/common/bits/types.h index 6068f6fd2..755af2ec9 100644 --- a/libc/sysdeps/linux/common/bits/types.h +++ b/libc/sysdeps/linux/common/bits/types.h @@ -70,94 +70,136 @@ typedef struct  } __u_quad_t;  #endif + +/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE +   macros for each of the OS types we define below.  The definitions +   of those macros must use the following macros for underlying types. +   We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned +   variants of each of the following integer types on this machine. + +	16		-- "natural" 16-bit type (always short) +	32		-- "natural" 32-bit type (always int) +	64		-- "natural" 64-bit type (long or long long) +	LONG32		-- 32-bit type, traditionally long +	QUAD		-- 64-bit type, always long long +	WORD		-- natural type of __WORDSIZE bits (int or long) +	LONGWORD	-- type of __WORDSIZE bits, traditionally long + +   We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the +   conventional uses of `long' or `long long' type modifiers match the +   types we define, even when a less-adorned type would be the same size. +   This matters for (somewhat) portably writing printf/scanf formats for +   these types, where using the appropriate l or ll format modifiers can +   make the typedefs and the formats match up across all GNU platforms.  If +   we used `long' when it's 64 bits where `long long' is expected, then the +   compiler would warn about the formats not matching the argument types, +   and the programmer changing them to shut up the compiler would break the +   program's portability. + +   Here we assume what is presently the case in all the GCC configurations +   we support: long long is always 64 bits, long is always word/address size, +   and int is always 32 bits.  */ + +#define	__S16_TYPE		short int +#define __U16_TYPE		unsigned short int +#define	__S32_TYPE		int +#define __U32_TYPE		unsigned int +#define __SLONGWORD_TYPE	long int +#define __ULONGWORD_TYPE	unsigned long int  #if __WORDSIZE == 32 +# define __SQUAD_TYPE		__quad_t +# define __UQUAD_TYPE		__u_quad_t  # define __SWORD_TYPE		int +# define __UWORD_TYPE		unsigned int +# define __SLONG32_TYPE		long int +# define __ULONG32_TYPE		unsigned long int +# define __S64_TYPE		__quad_t +# define __U64_TYPE		__u_quad_t +/* We want __extension__ before typedef's that use nonstandard base types +   such as `long long' in C89 mode.  */ +# define __STD_TYPE		__extension__ typedef  #elif __WORDSIZE == 64 +# define __SQUAD_TYPE		long int +# define __UQUAD_TYPE		unsigned long int  # define __SWORD_TYPE		long int +# define __UWORD_TYPE		unsigned long int +# define __SLONG32_TYPE		int +# define __ULONG32_TYPE		unsigned int +# define __S64_TYPE		long int +# define __U64_TYPE		unsigned long int +/* No need to mark the typedef with __extension__.   */ +# define __STD_TYPE		typedef  #else  # error  #endif - -typedef __u_quad_t __dev_t;		/* Type of device numbers.  */ -typedef __u_int __uid_t;		/* Type of user identifications.  */ -typedef __u_int __gid_t;		/* Type of group identifications.  */ -typedef __u_long __ino_t;		/* Type of file serial numbers.  */ -typedef __u_int __mode_t;		/* Type of file attribute bitmasks.  */ -typedef __u_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 int __pid_t;			/* Type of process identifications.  */ -typedef __SWORD_TYPE __ssize_t;			/* Type of a byte count, or error.  */ -typedef __u_long __rlim_t;		/* Type of resource counts.  */ -typedef __u_quad_t __rlim64_t;		/* Type of resource counts (LFS).  */ -typedef __u_int __id_t;			/* General type for ID.  */ - -typedef struct -  { -    int __val[2]; -  } __fsid_t;				/* Type of file system IDs.  */ - -/* Everythin' else.  */ -typedef int __daddr_t;			/* The type of a disk address.  */ -typedef __quad_t *__rqaddr_t; -typedef char *__caddr_t; -typedef long int __time_t; -typedef unsigned int __useconds_t; -typedef long int __suseconds_t; -typedef long int __swblk_t;		/* Type of a swap block maybe?  */ - -typedef long int __clock_t; +#include <bits/typesizes.h>	/* Defines __*_T_TYPE macros.  */ + + +__STD_TYPE __DEV_T_TYPE __dev_t;	/* Type of device numbers.  */ +__STD_TYPE __UID_T_TYPE __uid_t;	/* Type of user identifications.  */ +__STD_TYPE __GID_T_TYPE __gid_t;	/* Type of group identifications.  */ +__STD_TYPE __INO_T_TYPE __ino_t;	/* Type of file serial numbers.  */ +__STD_TYPE __INO64_T_TYPE __ino64_t;	/* Type of file serial numbers (LFS).*/ +__STD_TYPE __MODE_T_TYPE __mode_t;	/* Type of file attribute bitmasks.  */ +__STD_TYPE __NLINK_T_TYPE __nlink_t;	/* Type of file link counts.  */ +__STD_TYPE __OFF_T_TYPE __off_t;	/* Type of file sizes and offsets.  */ +__STD_TYPE __OFF64_T_TYPE __off64_t;	/* Type of file sizes and offsets (LFS).  */ +__STD_TYPE __PID_T_TYPE __pid_t;	/* Type of process identifications.  */ +__STD_TYPE __FSID_T_TYPE __fsid_t;	/* Type of file system IDs.  */ +__STD_TYPE __CLOCK_T_TYPE __clock_t;	/* Type of CPU usage counts.  */ +__STD_TYPE __RLIM_T_TYPE __rlim_t;	/* Type for resource measurement.  */ +__STD_TYPE __RLIM64_T_TYPE __rlim64_t;	/* Type for resource measurement (LFS).  */ +__STD_TYPE __ID_T_TYPE __id_t;		/* General type for IDs.  */ +__STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */ +__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */ +__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */ + +__STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address.  */ +__STD_TYPE __SWBLK_T_TYPE __swblk_t;	/* Type of a swap block maybe?  */ +__STD_TYPE __KEY_T_TYPE __key_t;	/* Type of an IPC key.  */  /* Clock ID used in clock and timer functions.  */ -typedef int __clockid_t; +__STD_TYPE __CLOCKID_T_TYPE __clockid_t;  /* Timer ID returned by `timer_create'.  */ -typedef void *__timer_t; - - -/* Number of descriptors that can fit in an `fd_set'.  */ -#define __FD_SETSIZE	1024 - - -typedef int __key_t; - -/* Used in `struct shmid_ds'.  */ -typedef __kernel_ipc_pid_t __ipc_pid_t; - +__STD_TYPE __TIMER_T_TYPE __timer_t;  /* Type to represent block size.  */ -typedef long int __blksize_t; +__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;  /* Types from the Large File Support interface.  */ -/* Type to count number os disk blocks.  */ -typedef long int __blkcnt_t; -typedef __quad_t __blkcnt64_t; +/* Type to count number of disk blocks.  */ +__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; +__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;  /* Type to count file system blocks.  */ -typedef __u_long __fsblkcnt_t; -typedef __u_quad_t __fsblkcnt64_t; - -/* Type to count file system inodes.  */ -typedef __u_long __fsfilcnt_t; -typedef __u_quad_t __fsfilcnt64_t; +__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; +__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; -/* Type of file serial numbers.  */ -typedef __u_quad_t __ino64_t; +/* Type to count file system nodes.  */ +__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; +__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; -/* Type of file sizes and offsets.  */ -typedef __loff_t __off64_t; +__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error.  */ -/* Used in XTI.  */ -typedef long int __t_scalar_t; -typedef unsigned long int __t_uscalar_t; +/* These few don't really vary by system, they always correspond +   to one of the other defined types.  */ +typedef __off64_t __loff_t;	/* Type of file sizes and offsets (LFS).  */ +typedef __quad_t *__qaddr_t; +typedef char *__caddr_t;  /* Duplicates info from stdint.h but this is used in unistd.h.  */ -typedef __SWORD_TYPE __intptr_t; +__STD_TYPE __SWORD_TYPE __intptr_t;  /* Duplicate info from sys/socket.h.  */ -typedef unsigned int __socklen_t; +__STD_TYPE __U32_TYPE __socklen_t; + + +#undef __STD_TYPE +/* Used in `struct shmid_ds'.  */ +typedef __kernel_ipc_pid_t __ipc_pid_t;  /* Now add the thread types.  */  #if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98) diff --git a/libc/sysdeps/linux/common/bits/typesizes.h b/libc/sysdeps/linux/common/bits/typesizes.h new file mode 100644 index 000000000..e9226c417 --- /dev/null +++ b/libc/sysdeps/linux/common/bits/typesizes.h @@ -0,0 +1,66 @@ +/* bits/typesizes.h -- underlying types for *_t.  Generic version. +   Copyright (C) 2002, 2003 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 Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 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 +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _BITS_TYPES_H +# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." +#endif + +#ifndef	_BITS_TYPESIZES_H +#define	_BITS_TYPESIZES_H	1 + +/* See <bits/types.h> for the meaning of these macros.  This file exists so +   that <bits/types.h> need not vary across different GNU platforms.  */ + +#define __DEV_T_TYPE		__UQUAD_TYPE +#define __UID_T_TYPE		__U32_TYPE +#define __GID_T_TYPE		__U32_TYPE +#define __INO_T_TYPE		__ULONGWORD_TYPE +#define __INO64_T_TYPE		__UQUAD_TYPE +#define __MODE_T_TYPE		__U32_TYPE +#define __NLINK_T_TYPE		__UWORD_TYPE +#define __OFF_T_TYPE		__SLONGWORD_TYPE +#define __OFF64_T_TYPE		__SQUAD_TYPE +#define __PID_T_TYPE		__S32_TYPE +#define __RLIM_T_TYPE		__ULONGWORD_TYPE +#define __RLIM64_T_TYPE		__UQUAD_TYPE +#define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE +#define	__BLKCNT64_T_TYPE	__SQUAD_TYPE +#define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE +#define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE +#define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE +#define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE +#define	__ID_T_TYPE		__U32_TYPE +#define __CLOCK_T_TYPE		__SLONGWORD_TYPE +#define __TIME_T_TYPE		__SLONGWORD_TYPE +#define __USECONDS_T_TYPE	__U32_TYPE +#define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE +#define __DADDR_T_TYPE		__S32_TYPE +#define __SWBLK_T_TYPE		__SLONGWORD_TYPE +#define __KEY_T_TYPE		__S32_TYPE +#define __CLOCKID_T_TYPE	__S32_TYPE +#define __TIMER_T_TYPE		void * +#define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE +#define __FSID_T_TYPE		struct { int __val[2]; } +#define __SSIZE_T_TYPE		__SWORD_TYPE + +/* Number of descriptors that can fit in an `fd_set'.  */ +#define	__FD_SETSIZE		1024 + + +#endif /* bits/typesizes.h */ diff --git a/libc/sysdeps/linux/sparc/bits/typesizes.h b/libc/sysdeps/linux/sparc/bits/typesizes.h new file mode 100644 index 000000000..b0dd1bd89 --- /dev/null +++ b/libc/sysdeps/linux/sparc/bits/typesizes.h @@ -0,0 +1,66 @@ +/* bits/typesizes.h -- underlying types for *_t.  Linux/SPARC version. +   Copyright (C) 2002, 2003 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 Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 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 +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _BITS_TYPES_H +# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." +#endif + +#ifndef	_BITS_TYPESIZES_H +#define	_BITS_TYPESIZES_H	1 + +/* See <bits/types.h> for the meaning of these macros.  This file exists so +   that <bits/types.h> need not vary across different GNU platforms.  */ + +#define __DEV_T_TYPE		__UQUAD_TYPE +#define __UID_T_TYPE		__U32_TYPE +#define __GID_T_TYPE		__U32_TYPE +#define __INO_T_TYPE		__ULONGWORD_TYPE +#define __INO64_T_TYPE		__UQUAD_TYPE +#define __MODE_T_TYPE		__U32_TYPE +#define __NLINK_T_TYPE		__U32_TYPE +#define __OFF_T_TYPE		__SLONGWORD_TYPE +#define __OFF64_T_TYPE		__SQUAD_TYPE +#define __PID_T_TYPE		__S32_TYPE +#define __RLIM_T_TYPE		__ULONGWORD_TYPE +#define __RLIM64_T_TYPE		__UQUAD_TYPE +#define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE +#define	__BLKCNT64_T_TYPE	__SQUAD_TYPE +#define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE +#define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE +#define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE +#define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE +#define	__ID_T_TYPE		__U32_TYPE +#define __CLOCK_T_TYPE		__SLONGWORD_TYPE +#define __TIME_T_TYPE		__SLONGWORD_TYPE +#define __USECONDS_T_TYPE	__U32_TYPE +#define __SUSECONDS_T_TYPE	__S32_TYPE +#define __DADDR_T_TYPE		__S32_TYPE +#define __SWBLK_T_TYPE		__SLONGWORD_TYPE +#define __KEY_T_TYPE		__S32_TYPE +#define __CLOCKID_T_TYPE	__S32_TYPE +#define __TIMER_T_TYPE		void * +#define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE +#define __FSID_T_TYPE		struct { int __val[2]; } +#define __SSIZE_T_TYPE		__SWORD_TYPE + +/* Number of descriptors that can fit in an `fd_set'.  */ +#define	__FD_SETSIZE		1024 + + +#endif /* bits/typesizes.h */  | 
