Blame lib/sys_types.in.h

Packit 1ac44c
/* Provide a more complete sys/types.h.
Packit 1ac44c
Packit 1ac44c
   Copyright (C) 2011-2018 Free Software Foundation, Inc.
Packit 1ac44c
Packit 1ac44c
   This program is free software; you can redistribute it and/or modify
Packit 1ac44c
   it under the terms of the GNU General Public License as published by
Packit 1ac44c
   the Free Software Foundation; either version 3, or (at your option)
Packit 1ac44c
   any later version.
Packit 1ac44c
Packit 1ac44c
   This program is distributed in the hope that it will be useful,
Packit 1ac44c
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 1ac44c
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 1ac44c
   GNU General Public License for more details.
Packit 1ac44c
Packit 1ac44c
   You should have received a copy of the GNU General Public License
Packit 1ac44c
   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
Packit 1ac44c
Packit 1ac44c
#if __GNUC__ >= 3
Packit 1ac44c
@PRAGMA_SYSTEM_HEADER@
Packit 1ac44c
#endif
Packit 1ac44c
@PRAGMA_COLUMNS@
Packit 1ac44c
Packit 1ac44c
#if defined _WIN32 && !defined __CYGWIN__ \
Packit 1ac44c
    && (defined __need_off_t || defined __need___off64_t \
Packit 1ac44c
        || defined __need_ssize_t || defined __need_time_t)
Packit 1ac44c
Packit 1ac44c
/* Special invocation convention inside mingw header files.  */
Packit 1ac44c
Packit 1ac44c
#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
Packit 1ac44c
Packit 1ac44c
#else
Packit 1ac44c
/* Normal invocation convention.  */
Packit 1ac44c
Packit 1ac44c
#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
Packit 1ac44c
Packit 1ac44c
/* The include_next requires a split double-inclusion guard.  */
Packit 1ac44c
# define _GL_INCLUDING_SYS_TYPES_H
Packit 1ac44c
#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
Packit 1ac44c
# undef _GL_INCLUDING_SYS_TYPES_H
Packit 1ac44c
Packit 1ac44c
#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
Packit 1ac44c
#define _@GUARD_PREFIX@_SYS_TYPES_H
Packit 1ac44c
Packit 1ac44c
/* Override off_t if Large File Support is requested on native Windows.  */
Packit 1ac44c
#if @WINDOWS_64_BIT_OFF_T@
Packit 1ac44c
/* Same as int64_t in <stdint.h>.  */
Packit 1ac44c
# if defined _MSC_VER
Packit 1ac44c
#  define off_t __int64
Packit 1ac44c
# else
Packit 1ac44c
#  define off_t long long int
Packit 1ac44c
# endif
Packit 1ac44c
/* Indicator, for gnulib internal purposes.  */
Packit 1ac44c
# define _GL_WINDOWS_64_BIT_OFF_T 1
Packit 1ac44c
#endif
Packit 1ac44c
Packit 1ac44c
/* Override dev_t and ino_t if distinguishable inodes support is requested
Packit 1ac44c
   on native Windows.  */
Packit 1ac44c
#if @WINDOWS_STAT_INODES@
Packit 1ac44c
Packit 1ac44c
# if @WINDOWS_STAT_INODES@ == 2
Packit 1ac44c
/* Experimental, not useful in Windows 10.  */
Packit 1ac44c
Packit 1ac44c
/* Define dev_t to a 64-bit type.  */
Packit 1ac44c
#  if !defined GNULIB_defined_dev_t
Packit 1ac44c
typedef unsigned long long int rpl_dev_t;
Packit 1ac44c
#   undef dev_t
Packit 1ac44c
#   define dev_t rpl_dev_t
Packit 1ac44c
#   define GNULIB_defined_dev_t 1
Packit 1ac44c
#  endif
Packit 1ac44c
Packit 1ac44c
/* Define ino_t to a 128-bit type.  */
Packit 1ac44c
#  if !defined GNULIB_defined_ino_t
Packit 1ac44c
/* MSVC does not have a 128-bit integer type.
Packit 1ac44c
   GCC has a 128-bit integer type __int128, but only on 64-bit targets.  */
Packit 1ac44c
typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t;
Packit 1ac44c
#   undef ino_t
Packit 1ac44c
#   define ino_t rpl_ino_t
Packit 1ac44c
#   define GNULIB_defined_ino_t 1
Packit 1ac44c
#  endif
Packit 1ac44c
Packit 1ac44c
# else /* @WINDOWS_STAT_INODES@ == 1 */
Packit 1ac44c
Packit 1ac44c
/* Define ino_t to a 64-bit type.  */
Packit 1ac44c
#  if !defined GNULIB_defined_ino_t
Packit 1ac44c
typedef unsigned long long int rpl_ino_t;
Packit 1ac44c
#   undef ino_t
Packit 1ac44c
#   define ino_t rpl_ino_t
Packit 1ac44c
#   define GNULIB_defined_ino_t 1
Packit 1ac44c
#  endif
Packit 1ac44c
Packit 1ac44c
# endif
Packit 1ac44c
Packit 1ac44c
/* Indicator, for gnulib internal purposes.  */
Packit 1ac44c
# define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@
Packit 1ac44c
Packit 1ac44c
#endif
Packit 1ac44c
Packit 1ac44c
/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>.  */
Packit 1ac44c
/* But avoid namespace pollution on glibc systems.  */
Packit 1ac44c
#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__
Packit 1ac44c
# include <stddef.h>
Packit 1ac44c
#endif
Packit 1ac44c
Packit 1ac44c
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
Packit 1ac44c
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
Packit 1ac44c
#endif /* __need_XXX */