root/lib/sys_types.in.h

/* [<][>][^][v][top][bottom][index][help] */
     1 /* Provide a more complete sys/types.h.
     2 
     3    Copyright (C) 2011-2023 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 /* This file uses #include_next of a system file that defines time_t.
    24    For the 'year2038' module to work right, <config.h> needs to have been
    25    included before.  */
    26 #if !_GL_CONFIG_H_INCLUDED
    27  #error "Please include config.h first."
    28 #endif
    29 
    30 #if defined _WIN32 && !defined __CYGWIN__ \
    31     && (defined __need_off_t || defined __need___off64_t \
    32         || defined __need_ssize_t || defined __need_time_t)
    33 
    34 /* Special invocation convention inside mingw header files.  */
    35 
    36 #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
    37 
    38 #else
    39 /* Normal invocation convention.  */
    40 
    41 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
    42 
    43 /* The include_next requires a split double-inclusion guard.  */
    44 # define _GL_INCLUDING_SYS_TYPES_H
    45 #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
    46 # undef _GL_INCLUDING_SYS_TYPES_H
    47 
    48 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
    49 #define _@GUARD_PREFIX@_SYS_TYPES_H
    50 
    51 /* Override off_t if Large File Support is requested on native Windows.  */
    52 #if @WINDOWS_64_BIT_OFF_T@
    53 /* Same as int64_t in <stdint.h>.  */
    54 # if defined _MSC_VER
    55 #  define off_t __int64
    56 # else
    57 #  define off_t long long int
    58 # endif
    59 /* Indicator, for gnulib internal purposes.  */
    60 # define _GL_WINDOWS_64_BIT_OFF_T 1
    61 #endif
    62 
    63 /* Override dev_t and ino_t if distinguishable inodes support is requested
    64    on native Windows.  */
    65 #if @WINDOWS_STAT_INODES@
    66 
    67 # if @WINDOWS_STAT_INODES@ == 2
    68 /* Experimental, not useful in Windows 10.  */
    69 
    70 /* Define dev_t to a 64-bit type.  */
    71 #  if !defined GNULIB_defined_dev_t
    72 typedef unsigned long long int rpl_dev_t;
    73 #   undef dev_t
    74 #   define dev_t rpl_dev_t
    75 #   define GNULIB_defined_dev_t 1
    76 #  endif
    77 
    78 /* Define ino_t to a 128-bit type.  */
    79 #  if !defined GNULIB_defined_ino_t
    80 /* MSVC does not have a 128-bit integer type.
    81    GCC has a 128-bit integer type __int128, but only on 64-bit targets.  */
    82 typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t;
    83 #   undef ino_t
    84 #   define ino_t rpl_ino_t
    85 #   define GNULIB_defined_ino_t 1
    86 #  endif
    87 
    88 # else /* @WINDOWS_STAT_INODES@ == 1 */
    89 
    90 /* Define ino_t to a 64-bit type.  */
    91 #  if !defined GNULIB_defined_ino_t
    92 typedef unsigned long long int rpl_ino_t;
    93 #   undef ino_t
    94 #   define ino_t rpl_ino_t
    95 #   define GNULIB_defined_ino_t 1
    96 #  endif
    97 
    98 # endif
    99 
   100 /* Indicator, for gnulib internal purposes.  */
   101 # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@
   102 
   103 #endif
   104 
   105 /* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>.  */
   106 /* But avoid namespace pollution on glibc systems.  */
   107 #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__
   108 # include <stddef.h>
   109 #endif
   110 
   111 #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
   112 #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
   113 #endif /* __need_XXX */

/* [<][>][^][v][top][bottom][index][help] */