root/maint/gnulib/lib/sys_types.in.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 /* Provide a more complete sys/types.h.
   2 
   3    Copyright (C) 2011-2021 Free Software Foundation, Inc.
   4 
   5    This file is free software: you can redistribute it and/or modify
   6    it under the terms of the GNU Lesser General Public License as
   7    published by the Free Software Foundation; either version 2.1 of the
   8    License, or (at your option) any later version.
   9 
  10    This file is distributed in the hope that it will be useful,
  11    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13    GNU Lesser General Public License for more details.
  14 
  15    You should have received a copy of the GNU Lesser General Public License
  16    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  17 
  18 #if __GNUC__ >= 3
  19 @PRAGMA_SYSTEM_HEADER@
  20 #endif
  21 @PRAGMA_COLUMNS@
  22 
  23 #if defined _WIN32 && !defined __CYGWIN__ \
  24     && (defined __need_off_t || defined __need___off64_t \
  25         || defined __need_ssize_t || defined __need_time_t)
  26 
  27 /* Special invocation convention inside mingw header files.  */
  28 
  29 #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
  30 
  31 #else
  32 /* Normal invocation convention.  */
  33 
  34 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
  35 
  36 /* The include_next requires a split double-inclusion guard.  */
  37 # define _GL_INCLUDING_SYS_TYPES_H
  38 #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
  39 # undef _GL_INCLUDING_SYS_TYPES_H
  40 
  41 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
  42 #define _@GUARD_PREFIX@_SYS_TYPES_H
  43 
  44 /* Override off_t if Large File Support is requested on native Windows.  */
  45 #if @WINDOWS_64_BIT_OFF_T@
  46 /* Same as int64_t in <stdint.h>.  */
  47 # if defined _MSC_VER
  48 #  define off_t __int64
  49 # else
  50 #  define off_t long long int
  51 # endif
  52 /* Indicator, for gnulib internal purposes.  */
  53 # define _GL_WINDOWS_64_BIT_OFF_T 1
  54 #endif
  55 
  56 /* Override dev_t and ino_t if distinguishable inodes support is requested
  57    on native Windows.  */
  58 #if @WINDOWS_STAT_INODES@
  59 
  60 # if @WINDOWS_STAT_INODES@ == 2
  61 /* Experimental, not useful in Windows 10.  */
  62 
  63 /* Define dev_t to a 64-bit type.  */
  64 #  if !defined GNULIB_defined_dev_t
  65 typedef unsigned long long int rpl_dev_t;
  66 #   undef dev_t
  67 #   define dev_t rpl_dev_t
  68 #   define GNULIB_defined_dev_t 1
  69 #  endif
  70 
  71 /* Define ino_t to a 128-bit type.  */
  72 #  if !defined GNULIB_defined_ino_t
  73 /* MSVC does not have a 128-bit integer type.
  74    GCC has a 128-bit integer type __int128, but only on 64-bit targets.  */
  75 typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t;
  76 #   undef ino_t
  77 #   define ino_t rpl_ino_t
  78 #   define GNULIB_defined_ino_t 1
  79 #  endif
  80 
  81 # else /* @WINDOWS_STAT_INODES@ == 1 */
  82 
  83 /* Define ino_t to a 64-bit type.  */
  84 #  if !defined GNULIB_defined_ino_t
  85 typedef unsigned long long int rpl_ino_t;
  86 #   undef ino_t
  87 #   define ino_t rpl_ino_t
  88 #   define GNULIB_defined_ino_t 1
  89 #  endif
  90 
  91 # endif
  92 
  93 /* Indicator, for gnulib internal purposes.  */
  94 # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@
  95 
  96 #endif
  97 
  98 /* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>.  */
  99 /* But avoid namespace pollution on glibc systems.  */
 100 #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__
 101 # include <stddef.h>
 102 #endif
 103 
 104 #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
 105 #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
 106 #endif /* __need_XXX */

/* [previous][next][first][last][top][bottom][index][help] */