/* Copyright (C) 1991-2018 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, see <http://www.gnu.org/licenses/>. */
/* * POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> */
#ifdef __USE_MISC /* Old compatibility names for C types. */ typedefunsignedlongint ulong; typedefunsignedshortint ushort; typedefunsignedint uint; #endif
/* These size-specific names are used by some of the inet code. */
#include<bits/stdint-intn.h>
#if !__GNUC_PREREQ (2, 7)
/* These were defined by ISO C without the first `_'. */ typedefunsignedcharu_int8_t; typedefunsignedshortintu_int16_t; typedefunsignedintu_int32_t; # if __WORDSIZE == 64 typedefunsignedlongintu_int64_t; # else __extension__ typedefunsignedlonglongintu_int64_t; # endif
typedefintregister_t;
#else
/* For GCC 2.7 and later, we can use specific type-size attributes. */ # define __u_intN_t(N, MODE) \ typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
/* Some code from BIND tests this macro to see if the types above are defined. */ #endif #define __BIT_TYPES_DEFINED__ 1
#ifdef __USE_MISC /* In BSD <sys/types.h> is expected to define BYTE_ORDER. */ # include<endian.h>
/* It also defines `fd_set' and the FD_* macros for `select'. */ # include<sys/select.h>
/* BSD defines `major', `minor', and `makedev' in this header. However, these symbols are likely to collide with user code, so we are going to stop defining them here in an upcoming release. Code that needs these macros should include <sys/sysmacros.h> directly. Code that does not need these macros should #undef them after including this header. */ # define __SYSMACROS_DEPRECATED_INCLUSION # include<sys/sysmacros.h> # undef __SYSMACROS_DEPRECATED_INCLUSION #endif/* Use misc. */
/* Types from the Large File Support interface. */ #ifndef __USE_FILE_OFFSET64 # ifndef __blkcnt_t_defined typedef__blkcnt_tblkcnt_t; /* Type to count number of disk blocks. */ # define __blkcnt_t_defined # endif # ifndef __fsblkcnt_t_defined typedef__fsblkcnt_tfsblkcnt_t; /* Type to count file system blocks. */ # define __fsblkcnt_t_defined # endif # ifndef __fsfilcnt_t_defined typedef__fsfilcnt_tfsfilcnt_t; /* Type to count file system inodes. */ # define __fsfilcnt_t_defined # endif #else # ifndef __blkcnt_t_defined typedef__blkcnt64_tblkcnt_t; /* Type to count number of disk blocks. */ # define __blkcnt_t_defined # endif # ifndef __fsblkcnt_t_defined typedef__fsblkcnt64_tfsblkcnt_t; /* Type to count file system blocks. */ # define __fsblkcnt_t_defined # endif # ifndef __fsfilcnt_t_defined typedef__fsfilcnt64_tfsfilcnt_t; /* Type to count file system inodes. */ # define __fsfilcnt_t_defined # endif #endif
#ifdef __USE_LARGEFILE64 typedef__blkcnt64_tblkcnt64_t; /* Type to count number of disk blocks. */ typedef__fsblkcnt64_tfsblkcnt64_t; /* Type to count file system blocks. */ typedef__fsfilcnt64_tfsfilcnt64_t; /* Type to count file system inodes. */ #endif
/* Now add the thread types. */ #if defined __USE_POSIX199506 || defined __USE_UNIX98 # include<bits/pthreadtypes.h> #endif