* libio/ftello.c (ftello): Use _IO_off64_t for type of POS.

Check for the result overflowing off_t and fail with EOVERFLOW.
	* libio/ioftell.c (_IO_ftell): Likewise.
	* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.

	* login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
	use a temporary timeval on the stack for gettimeofday and copy it.
	* login/logout.c (logout): Likewise.
	Reported by Steven Munroe <sjmunroe@us.ibm.com>.

	* sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
	Use __SWORD_TYPE instead of int for member types.
	(struct statfs64): Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
	* sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
	* sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
	* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.

	* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
	* sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
	(ST_NODIRATIME): Restore fixed value of 2048.
	* sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
	* sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.

	Rearranged <bits/types.h> definitions to reduce duplication.
	* sysdeps/generic/bits/types.h: Rewritten, using macros from
	<bits/wordsize.h> and new header <bits/typesizes.h>.
	* posix/Makefile (headers): Add bits/typesizes.h here.
	* sysdeps/generic/bits/typesizes.h: New file.
	* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
	* sysdeps/mach/hurd/bits/typesizes.h: New file.
	* sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
	* sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
	* posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
	<bits/pthreadtypes.h> here, not in <bits/types.h>.
	* signal/signal.h: Likewise.

	* streams/stropts.h: Include <bits/xtitypes.h>.
	* streams/Makefile (headers): Add bits/xtitypes.h here.
	* sysdeps/generic/bits/xtitypes.h: New file.
	* sysdeps/s390/bits/xtitypes.h: New file.
	* sysdeps/ia64/bits/xtitypes.h: New file.
	* sysdeps/x86_64/bits/xtitypes.h: New file.

	* sysvipc/Makefile (headers): Add bits/ipctypes.h here.
	* sysdeps/generic/bits/ipctypes.h: New file.
	* sysdeps/mips/bits/ipctypes.h: New file.
	* sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
	* sysdeps/gnu/bits/msq.h: Likewise.
	* sysvipc/sys/ipc.h: Likewise.

2002-10-22  Roland McGrath  <roland@redhat.com>

	* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
	* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
	`_dl_tls_static_used'.
	(TLS_STATIC_MIN): New macro.
	* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
	(CHECK_STATIC_TLS): Use it.
This commit is contained in:
Roland McGrath 2002-10-23 23:50:19 +00:00
parent b02c687fd3
commit 3efdabe762
38 changed files with 873 additions and 1580 deletions

View File

@ -1,3 +1,72 @@
2002-10-23 Roland McGrath <roland@redhat.com>
* libio/ftello.c (ftello): Use _IO_off64_t for type of POS.
Check for the result overflowing off_t and fail with EOVERFLOW.
* libio/ioftell.c (_IO_ftell): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
use a temporary timeval on the stack for gettimeofday and copy it.
* login/logout.c (logout): Likewise.
Reported by Steven Munroe <sjmunroe@us.ibm.com>.
* sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
Use __SWORD_TYPE instead of int for member types.
(struct statfs64): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
* sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
(ST_NODIRATIME): Restore fixed value of 2048.
* sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.
Rearranged <bits/types.h> definitions to reduce duplication.
* sysdeps/generic/bits/types.h: Rewritten, using macros from
<bits/wordsize.h> and new header <bits/typesizes.h>.
* posix/Makefile (headers): Add bits/typesizes.h here.
* sysdeps/generic/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
* sysdeps/mach/hurd/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
* posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
<bits/pthreadtypes.h> here, not in <bits/types.h>.
* signal/signal.h: Likewise.
* streams/stropts.h: Include <bits/xtitypes.h>.
* streams/Makefile (headers): Add bits/xtitypes.h here.
* sysdeps/generic/bits/xtitypes.h: New file.
* sysdeps/s390/bits/xtitypes.h: New file.
* sysdeps/ia64/bits/xtitypes.h: New file.
* sysdeps/x86_64/bits/xtitypes.h: New file.
* sysvipc/Makefile (headers): Add bits/ipctypes.h here.
* sysdeps/generic/bits/ipctypes.h: New file.
* sysdeps/mips/bits/ipctypes.h: New file.
* sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
* sysdeps/gnu/bits/msq.h: Likewise.
* sysvipc/sys/ipc.h: Likewise.
2002-10-22 Roland McGrath <roland@redhat.com>
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
2002-10-22 Ulrich Drepper <drepper@redhat.com> 2002-10-22 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (struct filebuf): For buf element to have the * elf/dl-load.c (struct filebuf): For buf element to have the

37
bits/ipctypes.h Normal file
View File

@ -0,0 +1,37 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. Generic.
Copyright (C) 2002 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. */
/*
* Never include <bits/ipctypes.h> directly.
*/
#ifndef _BITS_IPCTYPES_H
#define _BITS_IPCTYPES_H 1
#include <bits/types.h>
/* Used in `struct shmid_ds'. */
# if __WORDSIZE == 32
typedef unsigned short int __ipc_pid_t;
# else
typedef int __ipc_pid_t;
# endif
#endif /* bits/ipctypes.h */

View File

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1992,94-1999,2000,2001 Free Software Foundation, Inc. /* bits/types.h -- definitions of __*_t types underlying *_t types.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -24,18 +25,40 @@
#define _BITS_TYPES_H 1 #define _BITS_TYPES_H 1
#include <features.h> #include <features.h>
#include <bits/wordsize.h>
#define __need_size_t #define __need_size_t
#include <stddef.h> #include <stddef.h>
/* Convenience types. */ /* Convenience types. */
typedef unsigned char __u_char; typedef unsigned char __u_char;
typedef unsigned short __u_short; typedef unsigned short int __u_short;
typedef unsigned int __u_int; typedef unsigned int __u_int;
typedef unsigned long __u_long; typedef unsigned long int __u_long;
#ifdef __GNUC__
typedef unsigned long long int __u_quad_t; /* Fixed-size types, underlying types depend on word size and compiler. */
typedef long long int __quad_t; typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#elif defined __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
/* quad_t is also 64 bits, but is traditionally defined as `long long'
even when `long' is also 64 bits. */
#ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
#elif __WORDSIZE == 64
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
#else #else
typedef struct typedef struct
{ {
@ -46,86 +69,124 @@ typedef struct
__u_long __val[2]; __u_long __val[2];
} __u_quad_t; } __u_quad_t;
#endif #endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t; /* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
typedef unsigned short int __uint16_t; macros for each of the OS types we define below. The definitions
typedef signed int __int32_t; of those macros must use the following macros for underlying types.
typedef unsigned int __uint32_t; We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
#ifdef __GNUC__ variants of each of the following integer types on this machine.
typedef signed long long int __int64_t;
typedef unsigned long long int __uint64_t; 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
#define __SQUAD_TYPE long long int
#define __UQUAD_TYPE unsigned long long int
#if __WORDSIZE == 32
# 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
#elif __WORDSIZE == 64
# 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
#else
# error
#endif #endif
typedef __quad_t *__qaddr_t; #include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
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 unsigned int __id_t; /* General type for IDs. */
/* Everythin' else. */ typedef __DEV_T_TYPE __dev_t; /* Type of device numbers. */
typedef long int __daddr_t; /* The type of a disk address. */ typedef __UID_T_TYPE __uid_t; /* Type of user identifications. */
typedef char *__caddr_t; typedef __GID_T_TYPE __gid_t; /* Type of group identifications. */
typedef long int __time_t; typedef __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
typedef unsigned int __useconds_t; typedef __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS). */
typedef long int __suseconds_t; typedef __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
typedef long int __swblk_t; /* Type of a swap block maybe? */ typedef __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
typedef long int __key_t; /* Type of an IPC key */ typedef __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
typedef __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
typedef __PID_T_TYPE __pid_t; /* Type of process identifications. */
typedef __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
typedef __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
typedef __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
typedef __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
typedef __ID_T_TYPE __id_t; /* General type for IDs. */
typedef __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
typedef __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
typedef __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
typedef __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
typedef __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
typedef __KEY_T_TYPE __key_t; /* Type of an IPC key */
/* Clock ID used in clock and timer functions. */ /* Clock ID used in clock and timer functions. */
typedef int __clockid_t; typedef __CLOCKID_T_TYPE __clockid_t;
/* Timer ID returned by `timer_create'. */ /* Timer ID returned by `timer_create'. */
typedef int __timer_t; typedef __TIMER_T_TYPE __timer_t;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
/* XXX Used in `struct shmid_ds'. */
typedef unsigned short int __ipc_pid_t;
/* Type to represent block size. */ /* Type to represent block size. */
typedef unsigned int __blksize_t; typedef __BLKSIZE_T_TYPE __blksize_t;
/* Types from the Large File Support interface. */ /* Types from the Large File Support interface. */
/* Type to count number os disk blocks. */ /* Type to count number of disk blocks. */
typedef long int __blkcnt_t; typedef __BLKCNT_T_TYPE __blkcnt_t;
typedef __quad_t __blkcnt64_t; typedef __BLKCNT64_T_TYPE __blkcnt64_t;
/* Type to count file system blocks. */ /* Type to count file system blocks. */
typedef unsigned int __fsblkcnt_t; typedef __FSBLKCNT_T_TYPE __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t; typedef __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
/* Type to count file system inodes. */ /* Type to count file system nodes. */
typedef unsigned long int __fsfilcnt_t; typedef __FSFILCNT_T_TYPE __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t; typedef __FSFILCNT64_T_TYPE __fsfilcnt64_t;
/* Used in XTI. */
typedef int __t_scalar_t; /* These few don't really vary by system, they always correspond
typedef unsigned int __t_uscalar_t; to one of the other defined types. */
typedef __SWORD_TYPE __ssize_t; /* Type of a byte count, or error. */
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. */ /* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t; typedef __SWORD_TYPE __intptr_t;
/* Duplicate info from sys/socket.h. */ /* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t; typedef __U32_TYPE __socklen_t;
#endif /* bits/types.h */ #endif /* bits/types.h */

65
bits/typesizes.h Normal file
View File

@ -0,0 +1,65 @@
/* bits/typesizes.h -- underlying types for *_t. Generic version.
Copyright (C) 2002 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 __S32_TYPE
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */

View File

@ -35,7 +35,7 @@ off_t
ftello (fp) ftello (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
_IO_off_t pos; _IO_off64_t pos;
CHECK_FILE (fp, -1L); CHECK_FILE (fp, -1L);
_IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp); _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, fp);
_IO_flockfile (fp); _IO_flockfile (fp);
@ -52,6 +52,13 @@ ftello (fp)
#ifdef EIO #ifdef EIO
if (errno == 0) if (errno == 0)
__set_errno (EIO); __set_errno (EIO);
#endif
return -1L;
}
if ((_IO_off64_t) (off_t) pos != pos)
{
#ifdef EOVERFLOW
__set_errno (EOVERFLOW);
#endif #endif
return -1L; return -1L;
} }

View File

@ -35,7 +35,7 @@ _IO_new_fgetpos (fp, posp)
_IO_FILE *fp; _IO_FILE *fp;
_IO_fpos_t *posp; _IO_fpos_t *posp;
{ {
_IO_off_t pos; _IO_off64_t pos;
int result = 0; int result = 0;
CHECK_FILE (fp, EOF); CHECK_FILE (fp, EOF);
_IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
@ -53,6 +53,13 @@ _IO_new_fgetpos (fp, posp)
#ifdef EIO #ifdef EIO
if (errno == 0) if (errno == 0)
__set_errno (EIO); __set_errno (EIO);
#endif
result = EOF;
}
else if ((_IO_off64_t) (__typeof (posp->__pos)) pos != pos)
{
#ifdef EOVERFLOW
__set_errno (EOVERFLOW);
#endif #endif
result = EOF; result = EOF;
} }

View File

@ -34,7 +34,7 @@ long int
_IO_ftell (fp) _IO_ftell (fp)
_IO_FILE *fp; _IO_FILE *fp;
{ {
_IO_off_t pos; _IO_off64_t pos;
CHECK_FILE (fp, -1L); CHECK_FILE (fp, -1L);
_IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp); _IO_flockfile (fp);
@ -51,6 +51,13 @@ _IO_ftell (fp)
#ifdef EIO #ifdef EIO
if (errno == 0) if (errno == 0)
__set_errno (EIO); __set_errno (EIO);
#endif
return -1L;
}
if ((_IO_off64_t) (off_t) pos != pos)
{
#ifdef EOVERFLOW
__set_errno (EOVERFLOW);
#endif #endif
return -1L; return -1L;
} }

View File

@ -51,7 +51,15 @@ logout (const char *line)
bzero (ut->ut_host, sizeof ut->ut_host); bzero (ut->ut_host, sizeof ut->ut_host);
#endif #endif
#if _HAVE_UT_TV - 0 #if _HAVE_UT_TV - 0
gettimeofday (&ut->ut_tv, NULL); if (sizeof (ut->ut_tv) == sizeof (struct timeval))
__gettimeofday ((struct timeval *) &ut->ut_tv, NULL);
else
{
struct timeval tv;
__gettimeofday (&tv, NULL);
ut->ut_tv.tv_sec = tv.tv_sec;
ut->ut_tv.tv_usec = tv.tv_usec;
}
#else #else
ut->ut_time = time (NULL); ut->ut_time = time (NULL);
#endif #endif

View File

@ -44,7 +44,15 @@ logwtmp (const char *line, const char *name, const char *host)
#endif #endif
#if _HAVE_UT_TV - 0 #if _HAVE_UT_TV - 0
__gettimeofday (&ut.ut_tv, NULL); if (sizeof (ut.ut_tv) == sizeof (struct timeval))
__gettimeofday ((struct timeval *) &ut.ut_tv, NULL);
else
{
struct timeval tv;
__gettimeofday (&tv, NULL);
ut.ut_tv.tv_sec = tv.tv_sec;
ut.ut_tv.tv_usec = tv.tv_usec;
}
#else #else
ut.ut_time = time (NULL); ut.ut_time = time (NULL);
#endif #endif

View File

@ -22,7 +22,8 @@
subdir := posix subdir := posix
headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \ headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \
glob.h regex.h wordexp.h fnmatch.h bits/types.h getopt.h \ glob.h regex.h wordexp.h fnmatch.h getopt.h \
bits/types.h bits/typesizes.h \
bits/posix1_lim.h bits/posix2_lim.h bits/posix_opt.h \ bits/posix1_lim.h bits/posix2_lim.h bits/posix_opt.h \
bits/local_lim.h tar.h bits/utsname.h bits/confname.h \ bits/local_lim.h tar.h bits/utsname.h bits/confname.h \
bits/waitflags.h bits/waitstatus.h sys/unistd.h sched.h \ bits/waitflags.h bits/waitstatus.h sys/unistd.h sched.h \

View File

@ -1,4 +1,5 @@
/* Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. /* Copyright (C) 1991,1992,1994,1995,1996,1997,1998,1999,2000,2001,2002
Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -259,6 +260,12 @@ typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks. */
typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */ typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */
#endif #endif
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
__END_DECLS __END_DECLS
#endif /* sys/types.h */ #endif /* sys/types.h */

View File

@ -361,6 +361,7 @@ extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
#if defined __USE_POSIX199506 || defined __USE_UNIX98 #if defined __USE_POSIX199506 || defined __USE_UNIX98
/* Some of the functions for handling signals in threaded programs must /* Some of the functions for handling signals in threaded programs must
be defined here. */ be defined here. */
# include <bits/pthreadtypes.h>
# include <bits/sigthread.h> # include <bits/sigthread.h>
#endif /* use Unix98 */ #endif /* use Unix98 */

View File

@ -0,0 +1,37 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. Generic.
Copyright (C) 2002 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. */
/*
* Never include <bits/ipctypes.h> directly.
*/
#ifndef _BITS_IPCTYPES_H
#define _BITS_IPCTYPES_H 1
#include <bits/types.h>
/* Used in `struct shmid_ds'. */
# if __WORDSIZE == 32
typedef unsigned short int __ipc_pid_t;
# else
typedef int __ipc_pid_t;
# endif
#endif /* bits/ipctypes.h */

View File

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1992,94-1999,2000,2001 Free Software Foundation, Inc. /* bits/types.h -- definitions of __*_t types underlying *_t types.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -24,18 +25,40 @@
#define _BITS_TYPES_H 1 #define _BITS_TYPES_H 1
#include <features.h> #include <features.h>
#include <bits/wordsize.h>
#define __need_size_t #define __need_size_t
#include <stddef.h> #include <stddef.h>
/* Convenience types. */ /* Convenience types. */
typedef unsigned char __u_char; typedef unsigned char __u_char;
typedef unsigned short __u_short; typedef unsigned short int __u_short;
typedef unsigned int __u_int; typedef unsigned int __u_int;
typedef unsigned long __u_long; typedef unsigned long int __u_long;
#ifdef __GNUC__
typedef unsigned long long int __u_quad_t; /* Fixed-size types, underlying types depend on word size and compiler. */
typedef long long int __quad_t; typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#elif defined __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
/* quad_t is also 64 bits, but is traditionally defined as `long long'
even when `long' is also 64 bits. */
#ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
#elif __WORDSIZE == 64
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
#else #else
typedef struct typedef struct
{ {
@ -46,86 +69,124 @@ typedef struct
__u_long __val[2]; __u_long __val[2];
} __u_quad_t; } __u_quad_t;
#endif #endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t; /* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
typedef unsigned short int __uint16_t; macros for each of the OS types we define below. The definitions
typedef signed int __int32_t; of those macros must use the following macros for underlying types.
typedef unsigned int __uint32_t; We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
#ifdef __GNUC__ variants of each of the following integer types on this machine.
typedef signed long long int __int64_t;
typedef unsigned long long int __uint64_t; 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
#define __SQUAD_TYPE long long int
#define __UQUAD_TYPE unsigned long long int
#if __WORDSIZE == 32
# 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
#elif __WORDSIZE == 64
# 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
#else
# error
#endif #endif
typedef __quad_t *__qaddr_t; #include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
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 unsigned int __id_t; /* General type for IDs. */
/* Everythin' else. */ typedef __DEV_T_TYPE __dev_t; /* Type of device numbers. */
typedef long int __daddr_t; /* The type of a disk address. */ typedef __UID_T_TYPE __uid_t; /* Type of user identifications. */
typedef char *__caddr_t; typedef __GID_T_TYPE __gid_t; /* Type of group identifications. */
typedef long int __time_t; typedef __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
typedef unsigned int __useconds_t; typedef __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS). */
typedef long int __suseconds_t; typedef __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
typedef long int __swblk_t; /* Type of a swap block maybe? */ typedef __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
typedef long int __key_t; /* Type of an IPC key */ typedef __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
typedef __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
typedef __PID_T_TYPE __pid_t; /* Type of process identifications. */
typedef __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
typedef __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
typedef __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
typedef __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
typedef __ID_T_TYPE __id_t; /* General type for IDs. */
typedef __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
typedef __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
typedef __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
typedef __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
typedef __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
typedef __KEY_T_TYPE __key_t; /* Type of an IPC key */
/* Clock ID used in clock and timer functions. */ /* Clock ID used in clock and timer functions. */
typedef int __clockid_t; typedef __CLOCKID_T_TYPE __clockid_t;
/* Timer ID returned by `timer_create'. */ /* Timer ID returned by `timer_create'. */
typedef int __timer_t; typedef __TIMER_T_TYPE __timer_t;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
/* XXX Used in `struct shmid_ds'. */
typedef unsigned short int __ipc_pid_t;
/* Type to represent block size. */ /* Type to represent block size. */
typedef unsigned int __blksize_t; typedef __BLKSIZE_T_TYPE __blksize_t;
/* Types from the Large File Support interface. */ /* Types from the Large File Support interface. */
/* Type to count number os disk blocks. */ /* Type to count number of disk blocks. */
typedef long int __blkcnt_t; typedef __BLKCNT_T_TYPE __blkcnt_t;
typedef __quad_t __blkcnt64_t; typedef __BLKCNT64_T_TYPE __blkcnt64_t;
/* Type to count file system blocks. */ /* Type to count file system blocks. */
typedef unsigned int __fsblkcnt_t; typedef __FSBLKCNT_T_TYPE __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t; typedef __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
/* Type to count file system inodes. */ /* Type to count file system nodes. */
typedef unsigned long int __fsfilcnt_t; typedef __FSFILCNT_T_TYPE __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t; typedef __FSFILCNT64_T_TYPE __fsfilcnt64_t;
/* Used in XTI. */
typedef int __t_scalar_t; /* These few don't really vary by system, they always correspond
typedef unsigned int __t_uscalar_t; to one of the other defined types. */
typedef __SWORD_TYPE __ssize_t; /* Type of a byte count, or error. */
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. */ /* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t; typedef __SWORD_TYPE __intptr_t;
/* Duplicate info from sys/socket.h. */ /* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t; typedef __U32_TYPE __socklen_t;
#endif /* bits/types.h */ #endif /* bits/types.h */

View File

@ -0,0 +1,65 @@
/* bits/typesizes.h -- underlying types for *_t. Generic version.
Copyright (C) 2002 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 __S32_TYPE
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc. /* Copyright (C) 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -21,6 +21,7 @@
#endif #endif
#include <bits/types.h> #include <bits/types.h>
#include <bits/ipctypes.h>
/* Define options for message queue functions. */ /* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */ #define MSG_NOERROR 010000 /* no error if message is too big */

View File

@ -21,6 +21,7 @@
#endif #endif
#include <bits/types.h> #include <bits/types.h>
#include <bits/ipctypes.h>
/* Permission flag for shmget. */ /* Permission flag for shmget. */
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ #define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */

View File

@ -0,0 +1,65 @@
/* bits/typesizes.h -- underlying types for *_t. Hurd version.
Copyright (C) 2002 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 __S32_TYPE
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE __UQUAD_TYPE
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
#endif /* bits/typesizes.h */

View File

@ -0,0 +1,32 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. MIPS version
Copyright (C) 2002 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. */
/*
* Never include <bits/ipctypes.h> directly.
*/
#ifndef _BITS_IPCTYPES_H
#define _BITS_IPCTYPES_H 1
#include <bits/types.h>
typedef __SLONG32_TYPE __ipc_pid_t;
#endif /* bits/ipctypes.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,12 +20,12 @@
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif #endif
#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/ #include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */
struct statfs struct statfs
{ {
long int f_type; int f_type;
long int f_bsize; int f_bsize;
#ifndef __USE_FILE_OFFSET64 #ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks; __fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree; __fsblkcnt_t f_bfree;
@ -40,25 +40,25 @@ struct statfs
__fsfilcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
#endif #endif
__fsid_t f_fsid; __fsid_t f_fsid;
long int f_namelen; int f_namelen;
long int f_spare[6]; int f_spare[6];
}; };
#ifdef __USE_LARGEFILE64 #ifdef __USE_LARGEFILE64
struct statfs64 struct statfs64
{ {
long int f_type; int f_type;
long int f_bsize; int f_bsize;
__fsblkcnt64_t f_blocks; __fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail; __fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files; __fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
__fsid_t f_fsid; __fsid_t f_fsid;
long int f_namelen; int f_namelen;
long int f_spare[6]; int f_spare[6];
}; };
#endif #endif
/* Tell code we have these members. */ /* Tell code we have this member. */
#define _STATFS_F_NAMELEN #define _STATFS_F_NAMELEN

View File

@ -1,97 +0,0 @@
/* Copyright (C) 1997, 1998, 2000, 2001, 2002 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 _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
#endif
#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
struct statvfs
{
unsigned long int f_bsize;
unsigned long int f_frsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsfilcnt_t f_files;
__fsfilcnt_t f_ffree;
__fsfilcnt_t f_favail;
#else
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
#endif
unsigned long int f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statvfs64
{
unsigned long int f_bsize;
unsigned long int f_frsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
unsigned long int f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#endif
/* Definitions for the flag in `f_flag'. These definitions should be
kept in sync with the definitions in <sys/mount.h>. */
enum
{
ST_RDONLY = 1, /* Mount read-only. */
#define ST_RDONLY ST_RDONLY
ST_NOSUID = 2 /* Ignore suid and sgid bits. */
#define ST_NOSUID ST_NOSUID
#ifdef __USE_GNU
,
ST_NODEV = 4, /* Disallow access to device special files. */
# define ST_NODEV ST_NODEV
ST_NOEXEC = 8, /* Disallow program execution. */
# define ST_NOEXEC ST_NOEXEC
ST_SYNCHRONOUS = 16, /* Writes are synced at once. */
# define ST_SYNCHRONOUS ST_SYNCHRONOUS
ST_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
# define ST_MANDLOCK ST_MANDLOCK
ST_WRITE = 128, /* Write on file/directory/symlink. */
# define ST_WRITE ST_WRITE
ST_APPEND = 256, /* Append-only file. */
# define ST_APPEND ST_APPEND
ST_IMMUTABLE = 512, /* Immutable file. */
# define ST_IMMUTABLE ST_IMMUTABLE
ST_NOATIME = 1024, /* Do not update access times. */
# define ST_NOATIME ST_NOATIME
ST_NODIRATIME /* Do not update directory access times. */
# define ST_NODIRATIME ST_NODIRATIME
#endif /* Use GNU. */
};

View File

@ -1,115 +0,0 @@
/* Copyright (C) 1991,92,1994-1999,2000,2001 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#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;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __uint64_t __dev_t; /* Type of device numbers. */
typedef __uint32_t __uid_t; /* Type of user identifications. */
typedef __uint32_t __gid_t; /* Type of group identifications. */
typedef __uint32_t __ino_t; /* Type of file serial numbers. */
typedef __uint64_t __ino64_t; /* "" (LFS) */
typedef __uint32_t __mode_t; /* Type of file attribute bitmasks. */
typedef __uint32_t __nlink_t; /* Type of file link counts. */
typedef __int64_t __off_t; /* Type of file sizes and offsets. */
typedef __int64_t __off64_t; /* "" (LFS) */
typedef __int64_t __loff_t; /* Type of file sizes and offsets. */
typedef __int32_t __pid_t; /* Type of process identifications. */
typedef __int64_t __ssize_t; /* Type of a byte count, or error. */
typedef __uint64_t __rlim_t; /* Type of resource counts. */
typedef __uint64_t __rlim64_t; /* "" (LFS) */
typedef __uint32_t __blksize_t; /* Type to represnet block size. */
typedef __uint32_t __blkcnt_t; /* Type to count nr disk blocks. */
typedef __uint64_t __blkcnt64_t; /* "" (LFS) */
typedef __int32_t __fsblkcnt_t; /* Type to count file system blocks. */
typedef __int64_t __fsblkcnt64_t; /* "" (LFS) */
typedef __uint32_t __fsfilcnt_t; /* Type to count file system inodes. */
typedef __uint64_t __fsfilcnt64_t; /* "" (LFS) */
typedef __uint32_t __id_t; /* General type for IDs. */
typedef struct
{
int __val[2];
} __fsid_t; /* Type of file system IDs. */
/* Everythin' else. */
typedef int __daddr_t; /* Type of a disk address. */
typedef char *__caddr_t; /* Type of a core address. */
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;
typedef int __key_t; /* Type of a SYSV IPC key. */
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __timer_t;
/* Used in `struct shmid_ds'. */
typedef int __ipc_pid_t;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
/* Used in XTI. */
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -0,0 +1,65 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/Alpha version.
Copyright (C) 2002 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 __S32_TYPE
#define __BLKSIZE_T_TYPE __U32_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,12 +20,12 @@
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif #endif
#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/ #include <bits/types.h>
struct statfs struct statfs
{ {
int f_type; __SWORD_TYPE f_type;
int f_bsize; __SWORD_TYPE f_bsize;
#ifndef __USE_FILE_OFFSET64 #ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks; __fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree; __fsblkcnt_t f_bfree;
@ -40,23 +40,23 @@ struct statfs
__fsfilcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
#endif #endif
__fsid_t f_fsid; __fsid_t f_fsid;
int f_namelen; __SWORD_TYPE f_namelen;
int f_spare[6]; __SWORD_TYPE f_spare[6];
}; };
#ifdef __USE_LARGEFILE64 #ifdef __USE_LARGEFILE64
struct statfs64 struct statfs64
{ {
int f_type; __SWORD_TYPE f_type;
int f_bsize; __SWORD_TYPE f_bsize;
__fsblkcnt64_t f_blocks; __fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail; __fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files; __fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
__fsid_t f_fsid; __fsid_t f_fsid;
int f_namelen; __SWORD_TYPE f_namelen;
int f_spare[6]; __SWORD_TYPE f_spare[6];
}; };
#endif #endif

View File

@ -22,6 +22,10 @@
#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */ #include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
#if __WORDSIZE == 32
#define _STATVFSBUF_F_UNUSED
#endif
struct statvfs struct statvfs
{ {
unsigned long int f_bsize; unsigned long int f_bsize;
@ -42,12 +46,13 @@ struct statvfs
__fsfilcnt64_t f_favail; __fsfilcnt64_t f_favail;
#endif #endif
unsigned long int f_fsid; unsigned long int f_fsid;
#ifdef _STATVFSBUF_F_UNUSED
int __f_unused; int __f_unused;
#endif
unsigned long int f_flag; unsigned long int f_flag;
unsigned long int f_namemax; unsigned long int f_namemax;
int __f_spare[6]; int __f_spare[6];
}; };
#define _STATVFSBUF_F_UNUSED
#ifdef __USE_LARGEFILE64 #ifdef __USE_LARGEFILE64
struct statvfs64 struct statvfs64
@ -61,7 +66,9 @@ struct statvfs64
__fsfilcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail; __fsfilcnt64_t f_favail;
unsigned long int f_fsid; unsigned long int f_fsid;
#ifdef _STATVFSBUF_F_UNUSED
int __f_unused; int __f_unused;
#endif
unsigned long int f_flag; unsigned long int f_flag;
unsigned long int f_namemax; unsigned long int f_namemax;
int __f_spare[6]; int __f_spare[6];

View File

@ -1,146 +0,0 @@
/* Copyright (C) 1991,92,1994-1999,2000,2001 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#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;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
#ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
#else
typedef struct
{
long int __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
typedef __quad_t *__qaddr_t;
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 int __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 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;
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __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 unsigned short int __ipc_pid_t;
/* Type to represent block size. */
typedef long int __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 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;
/* Type of file serial numbers. */
typedef __u_quad_t __ino64_t;
/* Type of file sizes and offsets. */
typedef __loff_t __off64_t;
/* Used in XTI. */
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef int __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -1,58 +0,0 @@
/* Copyright (C) 1997, 2000 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 _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif
#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */
struct statfs
{
long int f_type;
long int f_bsize;
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsblkcnt_t f_files;
__fsblkcnt_t f_ffree;
__fsid_t f_fsid;
long int f_namelen;
long int f_spare[6];
};
#ifdef __USE_LARGEFILE64
/* We already use 64-bit types in the normal structure,
so this is the same as the above. */
struct statfs64
{
long int f_type;
long int f_bsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsblkcnt64_t f_files;
__fsblkcnt64_t f_ffree;
__fsid_t f_fsid;
long int f_namelen;
long int f_spare[6];
};
#endif
/* Tell code we have this member. */
#define _STATFS_F_NAMELEN

View File

@ -1,97 +0,0 @@
/* Copyright (C) 1997, 1998, 2000, 2001, 2002 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 _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
#endif
#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
struct statvfs
{
unsigned long int f_bsize;
unsigned long int f_frsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsfilcnt_t f_files;
__fsfilcnt_t f_ffree;
__fsfilcnt_t f_favail;
#else
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
#endif
unsigned long int f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statvfs64
{
unsigned long int f_bsize;
unsigned long int f_frsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
unsigned long int f_fsid;
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#endif
/* Definitions for the flag in `f_flag'. These definitions should be
kept in sync with the definitions in <sys/mount.h>. */
enum
{
ST_RDONLY = 1, /* Mount read-only. */
#define ST_RDONLY ST_RDONLY
ST_NOSUID = 2 /* Ignore suid and sgid bits. */
#define ST_NOSUID ST_NOSUID
#ifdef __USE_GNU
,
ST_NODEV = 4, /* Disallow access to device special files. */
# define ST_NODEV ST_NODEV
ST_NOEXEC = 8, /* Disallow program execution. */
# define ST_NOEXEC ST_NOEXEC
ST_SYNCHRONOUS = 16, /* Writes are synced at once. */
# define ST_SYNCHRONOUS ST_SYNCHRONOUS
ST_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
# define ST_MANDLOCK ST_MANDLOCK
ST_WRITE = 128, /* Write on file/directory/symlink. */
# define ST_WRITE ST_WRITE
ST_APPEND = 256, /* Append-only file. */
# define ST_APPEND ST_APPEND
ST_IMMUTABLE = 512, /* Immutable file. */
# define ST_IMMUTABLE ST_IMMUTABLE
ST_NOATIME = 1024, /* Do not update access times. */
# define ST_NOATIME ST_NOATIME
ST_NODIRATIME /* Do not update directory access times. */
# define ST_NODIRATIME ST_NODIRATIME
#endif /* Use GNU. */
};

View File

@ -1,116 +0,0 @@
/* Copyright (C) 1999, 2000, 2001 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#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;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __uint64_t __dev_t; /* Type of device numbers. */
typedef __uint32_t __uid_t; /* Type of user identifications. */
typedef __uint32_t __gid_t; /* Type of group identifications. */
typedef __uint64_t __ino_t; /* Type of file serial numbers. */
typedef __uint64_t __ino64_t; /* "" (LFS) */
typedef __uint32_t __mode_t; /* Type of file attribute bitmasks. */
typedef __uint64_t __nlink_t; /* Type of file link counts. */
typedef __int64_t __off_t; /* Type of file sizes and offsets. */
typedef __int64_t __off64_t; /* "" (LFS) */
typedef __int64_t __loff_t; /* Type of file sizes and offsets. */
typedef __int32_t __pid_t; /* Type of process identifications. */
typedef __int64_t __ssize_t; /* Type of a byte count, or error. */
typedef __uint64_t __rlim_t; /* Type of resource counts. */
typedef __uint64_t __rlim64_t; /* "" (LFS) */
typedef __int64_t __blkcnt_t; /* Type to count nr disk blocks. */
typedef __int64_t __blkcnt64_t; /* "" (LFS) */
typedef __uint64_t __fsblkcnt_t; /* Type to count file system blocks. */
typedef __uint64_t __fsblkcnt64_t; /* "" (LFS) */
typedef __uint64_t __fsfilcnt_t; /* Type to count file system inodes. */
typedef __uint64_t __fsfilcnt64_t; /* "" (LFS) */
typedef __uint32_t __id_t; /* General type for IDs. */
typedef struct
{
int __val[2];
} __fsid_t; /* Type of file system IDs. */
/* Everythin' else. */
typedef int __daddr_t; /* Type of a disk address. */
typedef char *__caddr_t; /* Type of a core address. */
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;
typedef int __key_t; /* Type of a SYSV IPC key. */
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __timer_t;
/* Used in `struct shmid_ds'. */
typedef int __ipc_pid_t;
/* type to represent block size. */
typedef long int __blksize_t;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
/* Used in XTI. */
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -1,145 +0,0 @@
/* Copyright (C) 1991,92,1994-1999,2000,2001 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#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;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
#ifdef __GNUC__
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
#else
typedef struct
{
long int __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#ifdef __GNUC__
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
typedef __quad_t *__qaddr_t;
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 int __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 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;
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __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 long int __ipc_pid_t;
/* Type to represent block size. */
typedef long int __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 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;
/* Type of file serial numbers. */
typedef __u_quad_t __ino64_t;
/* Type of file sizes and offsets. */
typedef __loff_t __off64_t;
/* Used in XTI. */
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef int __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2001 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,37 +20,43 @@
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif #endif
#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */ #include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */
struct statfs struct statfs
{ {
long int f_type; int f_type;
long int f_bsize; int f_bsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks; __fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree; __fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail; __fsblkcnt_t f_bavail;
__fsblkcnt_t f_files; __fsfilcnt_t f_files;
__fsblkcnt_t f_ffree; __fsfilcnt_t f_ffree;
__fsid_t f_fsid; #else
long int f_namelen;
long int f_spare[6];
};
#ifdef __USE_LARGEFILE64
/* We already use 64-bit types in the normal structure,
so this is the same as the above. */
struct statfs64
{
long int f_type;
long int f_bsize;
__fsblkcnt64_t f_blocks; __fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail; __fsblkcnt64_t f_bavail;
__fsblkcnt64_t f_files; __fsfilcnt64_t f_files;
__fsblkcnt64_t f_ffree; __fsfilcnt64_t f_ffree;
#endif
__fsid_t f_fsid; __fsid_t f_fsid;
long int f_namelen; int f_namelen;
long int f_spare[6]; int f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statfs64
{
int f_type;
int f_bsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsid_t f_fsid;
int f_namelen;
int f_spare[6];
}; };
#endif #endif

View File

@ -1,161 +0,0 @@
/* Copyright (C) 2001, 2002 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#define __need_size_t
#include <stddef.h>
#include <bits/wordsize.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
#if __WORDSIZE == 64
typedef unsigned long __u_quad_t;
typedef long __quad_t;
#else
# ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# else
typedef struct
{
long int __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
# endif
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#else
# ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
# endif
#endif
typedef __quad_t *__qaddr_t;
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_long __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 long __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 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;
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __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'. */
#if __WORDSIZE == 64
typedef int __ipc_pid_t;
#else
typedef unsigned short int __ipc_pid_t;
#endif
/* Type to represent block size. */
typedef long int __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 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;
/* Type of file serial numbers. */
typedef __u_quad_t __ino64_t;
/* Type of file sizes and offsets. */
typedef __loff_t __off64_t;
/* Used in XTI. */
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef long int __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -1,107 +0,0 @@
/* Copyright (C) 1997, 1998, 2000, 2001, 2002 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 _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
#endif
#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
#if __WORDSIZE == 32
#define _STATVFSBUF_F_UNUSED
#endif
struct statvfs
{
unsigned long int f_bsize;
unsigned long int f_frsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__fsblkcnt_t f_bavail;
__fsfilcnt_t f_files;
__fsfilcnt_t f_ffree;
__fsfilcnt_t f_favail;
#else
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
#endif
unsigned long int f_fsid;
#ifdef _STATVFSBUF_F_UNUSED
int __f_unused;
#endif
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#ifdef __USE_LARGEFILE64
struct statvfs64
{
unsigned long int f_bsize;
unsigned long int f_frsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsfilcnt64_t f_favail;
unsigned long int f_fsid;
#ifdef _STATVFSBUF_F_UNUSED
int __f_unused;
#endif
unsigned long int f_flag;
unsigned long int f_namemax;
int __f_spare[6];
};
#endif
/* Definitions for the flag in `f_flag'. These definitions should be
kept in sync with the definitions in <sys/mount.h>. */
enum
{
ST_RDONLY = 1, /* Mount read-only. */
#define ST_RDONLY ST_RDONLY
ST_NOSUID = 2 /* Ignore suid and sgid bits. */
#define ST_NOSUID ST_NOSUID
#ifdef __USE_GNU
,
ST_NODEV = 4, /* Disallow access to device special files. */
# define ST_NODEV ST_NODEV
ST_NOEXEC = 8, /* Disallow program execution. */
# define ST_NOEXEC ST_NOEXEC
ST_SYNCHRONOUS = 16, /* Writes are synced at once. */
# define ST_SYNCHRONOUS ST_SYNCHRONOUS
ST_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
# define ST_MANDLOCK ST_MANDLOCK
ST_WRITE = 128, /* Write on file/directory/symlink. */
# define ST_WRITE ST_WRITE
ST_APPEND = 256, /* Append-only file. */
# define ST_APPEND ST_APPEND
ST_IMMUTABLE = 512, /* Immutable file. */
# define ST_IMMUTABLE ST_IMMUTABLE
ST_NOATIME = 1024, /* Do not update access times. */
# define ST_NOATIME ST_NOATIME
ST_NODIRATIME /* Do not update directory access times. */
# define ST_NODIRATIME ST_NODIRATIME
#endif /* Use GNU. */
};

View File

@ -1,164 +0,0 @@
/* Copyright (C) 1991,92,1994-1999,2000,2001 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#define __need_size_t
#include <stddef.h>
#include <bits/wordsize.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
#if __WORDSIZE == 64
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
#else
# ifdef __GNUC__
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# else
typedef struct
{
long int __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
# endif
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#else
# ifdef __GNUC__
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
# endif
#endif
typedef __quad_t *__qaddr_t;
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_quad_t __ino64_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 __off64_t; /* "" (LFS) */
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
typedef int __pid_t; /* Type of process identifications. */
#if __WORDSIZE == 64
typedef long int __ssize_t; /* Type of a byte count, or error. */
#else
typedef int __ssize_t; /* Type of a byte count, or error. */
#endif
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 IDs. */
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 char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef int __suseconds_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
typedef long int __clock_t;
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __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'. */
#if __WORDSIZE == 64
typedef int __ipc_pid_t;
#else
typedef unsigned short int __ipc_pid_t;
#endif
/* Type to represent block size. */
typedef long int __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 file system blocks. */
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
/* Type to count file system inodes. */
typedef unsigned long int __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
/* Used in XTI. */
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
#if __WORDSIZE == 64
typedef long int __intptr_t;
#else
typedef int __intptr_t;
#endif
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -0,0 +1,65 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version.
Copyright (C) 2002 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 __S32_TYPE
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */

View File

@ -1,185 +0,0 @@
/* Copyright (C) 2001, 2002 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. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#define __need_size_t
#include <stddef.h>
#include <bits/wordsize.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
#if __WORDSIZE == 64
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
#else
# ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# else
typedef struct
{
long int __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
# endif
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#else
# ifdef __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
# endif
#endif
typedef __quad_t *__qaddr_t;
#if __WORDSIZE == 64
typedef __uint64_t __dev_t; /* Type of device numbers. */
#else
typedef __u_quad_t __dev_t; /* Type of device numbers. */
#endif
typedef __uint32_t __uid_t; /* Type of user identifications. */
typedef __uint32_t __gid_t; /* Type of group identifications. */
#if __WORDSIZE == 64
typedef __uint64_t __ino_t; /* Type of file serial numbers. */
typedef __uint64_t __ino64_t; /* "" (LFS) */
#else
typedef __u_long __ino_t; /* Type of file serial numbers. */
typedef __u_quad_t __ino64_t; /* "" (LFS) */
#endif
typedef __uint32_t __mode_t; /* Type of file attribute bitmasks. */
#if __WORDSIZE == 64
typedef __uint64_t __nlink_t; /* Type of file link counts. */
typedef __int64_t __off_t; /* Type of file sizes and offsets. */
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
typedef __loff_t __off64_t; /* "" (LFS) */
#else
typedef __u_int __nlink_t; /* Type of file link counts. */
typedef long int __off_t; /* Type of file sizes and offsets. */
typedef __int64_t __loff_t; /* Type of file sizes and offsets. */
typedef __int64_t __off64_t; /* "" (LFS) */
#endif
typedef __int32_t __pid_t; /* Type of process identifications. */
#if __WORDSIZE == 64
typedef __int64_t __ssize_t; /* Type of a byte count, or error. */
typedef __uint64_t __rlim_t; /* Type of resource counts. */
typedef __uint64_t __rlim64_t; /* "" (LFS) */
typedef __int64_t __blkcnt_t; /* Type to count nr disk blocks. */
typedef __int64_t __blkcnt64_t; /* "" (LFS) */
typedef __uint64_t __fsblkcnt_t; /* Type to count file system blocks. */
typedef __uint64_t __fsblkcnt64_t; /* "" (LFS) */
typedef __uint64_t __fsfilcnt_t; /* Type to count file system inodes. */
typedef __uint64_t __fsfilcnt64_t; /* "" (LFS) */
typedef __uint32_t __id_t; /* General type for IDs. */
#else
typedef int __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 long int __blkcnt_t; /* Type to count nr disk blocks. */
typedef __quad_t __blkcnt64_t; /* "" (LFS) */
typedef __u_long __fsblkcnt_t; /* Type to count file system blocks. */
typedef __u_quad_t __fsblkcnt64_t; /* "" (LFS) */
typedef __u_long __fsfilcnt_t; /* Type to count file system inodes. */
typedef __u_quad_t __fsfilcnt64_t; /* "" (LFS) */
typedef __u_int __id_t; /* General type for ID. */
#endif
typedef struct
{
int __val[2];
} __fsid_t; /* Type of file system IDs. */
/* Everythin' else. */
typedef int __daddr_t; /* Type of a disk address. */
typedef char *__caddr_t; /* Type of a core address. */
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;
typedef int __key_t; /* Type of a SYSV IPC key. */
/* Clock ID used in clock and timer functions. */
typedef int __clockid_t;
/* Timer ID returned by `timer_create'. */
typedef int __timer_t;
/* Used in `struct shmid_ds'. */
#if __WORDSIZE == 64
typedef int __ipc_pid_t;
#else
typedef unsigned short int __ipc_pid_t;
#endif
/* type to represent block size. */
typedef long int __blksize_t;
/* Due to incaution, we may have gotten these from a kernel header file. */
#undef __FD_SETSIZE
#undef __FDMASK
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
/* Used in XTI. */
#if __WORDSIZE == 64
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
#else
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
#endif
/* Duplicates info from stdint.h but this is used in unistd.h. */
#if __WORDSIZE == 64
typedef long int __intptr_t;
#else
typedef int __intptr_t;
#endif
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;
/* Now add the thread types. */
#if defined __USE_POSIX199506 || defined __USE_UNIX98
# include <bits/pthreadtypes.h>
#endif
#endif /* bits/types.h */

View File

@ -1,4 +1,4 @@
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. # Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -22,7 +22,7 @@
subdir := sysvipc subdir := sysvipc
headers := sys/ipc.h sys/msg.h sys/sem.h sys/shm.h \ headers := sys/ipc.h sys/msg.h sys/sem.h sys/shm.h \
bits/ipc.h bits/msq.h bits/sem.h bits/shm.h bits/ipctypes.h bits/ipc.h bits/msq.h bits/sem.h bits/shm.h
routines := ftok \ routines := ftok \
msgsnd msgrcv msgget msgctl \ msgsnd msgrcv msgget msgctl \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. /* Copyright (C) 1995,1996,1997,1999,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -26,6 +26,7 @@
#endif #endif
/* Get system dependent definition of `struct ipc_perm' and more. */ /* Get system dependent definition of `struct ipc_perm' and more. */
#include <bits/ipctypes.h>
#include <bits/ipc.h> #include <bits/ipc.h>
#ifndef __uid_t_defined #ifndef __uid_t_defined