Blame gnulib/lib/sys_types.in.h

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