2012-05-26 16:14:36 -07:00
|
|
|
/* Provide a more complete sys/types.h.
|
|
|
|
|
2019-01-01 00:59:58 +00:00
|
|
|
Copyright (C) 2011-2019 Free Software Foundation, Inc.
|
2012-05-26 16:14:36 -07:00
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 3, or (at your option)
|
|
|
|
any later version.
|
|
|
|
|
|
|
|
This program 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 General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2017-09-13 02:07:03 -07:00
|
|
|
along with this program; if not, see <https://www.gnu.org/licenses/>. */
|
2012-05-26 16:14:36 -07:00
|
|
|
|
|
|
|
#if __GNUC__ >= 3
|
|
|
|
@PRAGMA_SYSTEM_HEADER@
|
|
|
|
#endif
|
|
|
|
@PRAGMA_COLUMNS@
|
|
|
|
|
Update from Gnulib
This incorporates:
2018-05-21 crypto: omit stream ops Emacs doesn’t need
2018-05-13 truncate: Fix compilation error on Android
2018-05-13 imaxdiv: Fix compilation error on Android
2018-05-13 Support selective inclusion of recent mingw.org headers
2018-05-13 Add cross-compilation guesses for Linux systems sans glibc
2018-05-13 stdioext: Fix compilation errors with newer Android headers
2018-05-07 af_alg: Pacify --enable-gcc-warnings
2018-05-06 af_alg: Fix bug with streams that are not at position 0
2018-05-06 Followup to 'af_alg: New module'
2018-05-05 crypto/{md5,sha1,sha256,sha512}: simplify
2018-05-05 af_alg: New module
2018-05-05 af_alg: Improve function signature
2018-04-28 md5sum: Use AF_ALG when available
2018-04-28 sha512sum: Use AF_ALG when available
2018-04-28 sha256sum: Use AF_ALG when available
2018-04-28 sha1sum: Use AF_ALG when available
2018-05-05 all: Replace more http URLs by https URLs
2018-05-03 maint: port more modules to GCC 8
2018-05-03 Simplify code; drop support for Borland C++ on Windows
* admin/merge-gnulib (GNULIB_MODULES): Use crypto/md5-buffer
rather than crypto/md5, since Emacs doesn’t use the stream
operations that in recent Gnulib pull in other stuff Emacs doesn’t
need. Similarly for crypto/sha1-buffer, crypto/sha256-buffer,
crypto/sha512-buffer.
* build-aux/config.guess, build-aux/config.sub, lib/dosname.h:
* lib/dup2.c, lib/errno.in.h, lib/euidaccess.c, lib/fcntl.c:
* lib/fcntl.in.h, lib/fpending.c, lib/fsync.c, lib/getdtablesize.c:
* lib/getopt.c, lib/gettimeofday.c, lib/inttypes.in.h, lib/md5.c:
* lib/md5.h, lib/open.c, lib/pipe2.c, lib/putenv.c, lib/sha1.c:
* lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c:
* lib/sha512.h, lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h:
* lib/stdlib.in.h, lib/sys_stat.in.h, lib/sys_types.in.h:
* lib/timespec.h, lib/unistd.in.h, lib/utimens.c, m4/c-strtod.m4:
* m4/gnulib-common.m4, m4/inttypes.m4, m4/lstat.m4, m4/nocrash.m4:
* m4/pselect.m4, m4/readlink.m4, m4/stdio_h.m4, m4/symlink.m4:
* m4/unistd_h.m4, m4/utimens.m4:
Copy from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2018-05-21 11:42:18 -07:00
|
|
|
#if defined _WIN32 && !defined __CYGWIN__ \
|
|
|
|
&& (defined __need_off_t || defined __need___off64_t \
|
|
|
|
|| defined __need_ssize_t || defined __need_time_t)
|
|
|
|
|
|
|
|
/* Special invocation convention inside mingw header files. */
|
|
|
|
|
|
|
|
#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
|
|
|
|
|
|
|
|
#else
|
|
|
|
/* Normal invocation convention. */
|
|
|
|
|
2012-05-26 16:14:36 -07:00
|
|
|
#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
|
|
|
|
|
|
|
|
/* The include_next requires a split double-inclusion guard. */
|
2014-03-07 10:57:11 -08:00
|
|
|
# define _GL_INCLUDING_SYS_TYPES_H
|
2012-05-26 16:14:36 -07:00
|
|
|
#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
|
2014-03-07 10:57:11 -08:00
|
|
|
# undef _GL_INCLUDING_SYS_TYPES_H
|
2012-05-26 16:14:36 -07:00
|
|
|
|
|
|
|
#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
|
|
|
|
#define _@GUARD_PREFIX@_SYS_TYPES_H
|
|
|
|
|
|
|
|
/* Override off_t if Large File Support is requested on native Windows. */
|
|
|
|
#if @WINDOWS_64_BIT_OFF_T@
|
|
|
|
/* Same as int64_t in <stdint.h>. */
|
|
|
|
# if defined _MSC_VER
|
|
|
|
# define off_t __int64
|
|
|
|
# else
|
|
|
|
# define off_t long long int
|
|
|
|
# endif
|
|
|
|
/* Indicator, for gnulib internal purposes. */
|
|
|
|
# define _GL_WINDOWS_64_BIT_OFF_T 1
|
|
|
|
#endif
|
|
|
|
|
2017-05-14 12:39:26 -07:00
|
|
|
/* Override dev_t and ino_t if distinguishable inodes support is requested
|
|
|
|
on native Windows. */
|
|
|
|
#if @WINDOWS_STAT_INODES@
|
|
|
|
|
|
|
|
# if @WINDOWS_STAT_INODES@ == 2
|
|
|
|
/* Experimental, not useful in Windows 10. */
|
|
|
|
|
|
|
|
/* Define dev_t to a 64-bit type. */
|
|
|
|
# if !defined GNULIB_defined_dev_t
|
|
|
|
typedef unsigned long long int rpl_dev_t;
|
|
|
|
# undef dev_t
|
|
|
|
# define dev_t rpl_dev_t
|
|
|
|
# define GNULIB_defined_dev_t 1
|
|
|
|
# endif
|
|
|
|
|
|
|
|
/* Define ino_t to a 128-bit type. */
|
|
|
|
# if !defined GNULIB_defined_ino_t
|
|
|
|
/* MSVC does not have a 128-bit integer type.
|
|
|
|
GCC has a 128-bit integer type __int128, but only on 64-bit targets. */
|
|
|
|
typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t;
|
|
|
|
# undef ino_t
|
|
|
|
# define ino_t rpl_ino_t
|
|
|
|
# define GNULIB_defined_ino_t 1
|
|
|
|
# endif
|
|
|
|
|
|
|
|
# else /* @WINDOWS_STAT_INODES@ == 1 */
|
|
|
|
|
|
|
|
/* Define ino_t to a 64-bit type. */
|
|
|
|
# if !defined GNULIB_defined_ino_t
|
|
|
|
typedef unsigned long long int rpl_ino_t;
|
|
|
|
# undef ino_t
|
|
|
|
# define ino_t rpl_ino_t
|
|
|
|
# define GNULIB_defined_ino_t 1
|
|
|
|
# endif
|
|
|
|
|
|
|
|
# endif
|
|
|
|
|
|
|
|
/* Indicator, for gnulib internal purposes. */
|
|
|
|
# define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2012-05-26 16:14:36 -07:00
|
|
|
/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */
|
|
|
|
/* But avoid namespace pollution on glibc systems. */
|
Update from Gnulib
This incorporates:
2018-05-21 crypto: omit stream ops Emacs doesn’t need
2018-05-13 truncate: Fix compilation error on Android
2018-05-13 imaxdiv: Fix compilation error on Android
2018-05-13 Support selective inclusion of recent mingw.org headers
2018-05-13 Add cross-compilation guesses for Linux systems sans glibc
2018-05-13 stdioext: Fix compilation errors with newer Android headers
2018-05-07 af_alg: Pacify --enable-gcc-warnings
2018-05-06 af_alg: Fix bug with streams that are not at position 0
2018-05-06 Followup to 'af_alg: New module'
2018-05-05 crypto/{md5,sha1,sha256,sha512}: simplify
2018-05-05 af_alg: New module
2018-05-05 af_alg: Improve function signature
2018-04-28 md5sum: Use AF_ALG when available
2018-04-28 sha512sum: Use AF_ALG when available
2018-04-28 sha256sum: Use AF_ALG when available
2018-04-28 sha1sum: Use AF_ALG when available
2018-05-05 all: Replace more http URLs by https URLs
2018-05-03 maint: port more modules to GCC 8
2018-05-03 Simplify code; drop support for Borland C++ on Windows
* admin/merge-gnulib (GNULIB_MODULES): Use crypto/md5-buffer
rather than crypto/md5, since Emacs doesn’t use the stream
operations that in recent Gnulib pull in other stuff Emacs doesn’t
need. Similarly for crypto/sha1-buffer, crypto/sha256-buffer,
crypto/sha512-buffer.
* build-aux/config.guess, build-aux/config.sub, lib/dosname.h:
* lib/dup2.c, lib/errno.in.h, lib/euidaccess.c, lib/fcntl.c:
* lib/fcntl.in.h, lib/fpending.c, lib/fsync.c, lib/getdtablesize.c:
* lib/getopt.c, lib/gettimeofday.c, lib/inttypes.in.h, lib/md5.c:
* lib/md5.h, lib/open.c, lib/pipe2.c, lib/putenv.c, lib/sha1.c:
* lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c:
* lib/sha512.h, lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h:
* lib/stdlib.in.h, lib/sys_stat.in.h, lib/sys_types.in.h:
* lib/timespec.h, lib/unistd.in.h, lib/utimens.c, m4/c-strtod.m4:
* m4/gnulib-common.m4, m4/inttypes.m4, m4/lstat.m4, m4/nocrash.m4:
* m4/pselect.m4, m4/readlink.m4, m4/stdio_h.m4, m4/symlink.m4:
* m4/unistd_h.m4, m4/utimens.m4:
Copy from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2018-05-21 11:42:18 -07:00
|
|
|
#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__
|
2012-05-26 16:14:36 -07:00
|
|
|
# include <stddef.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
|
|
|
|
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
|
Update from Gnulib
This incorporates:
2018-05-21 crypto: omit stream ops Emacs doesn’t need
2018-05-13 truncate: Fix compilation error on Android
2018-05-13 imaxdiv: Fix compilation error on Android
2018-05-13 Support selective inclusion of recent mingw.org headers
2018-05-13 Add cross-compilation guesses for Linux systems sans glibc
2018-05-13 stdioext: Fix compilation errors with newer Android headers
2018-05-07 af_alg: Pacify --enable-gcc-warnings
2018-05-06 af_alg: Fix bug with streams that are not at position 0
2018-05-06 Followup to 'af_alg: New module'
2018-05-05 crypto/{md5,sha1,sha256,sha512}: simplify
2018-05-05 af_alg: New module
2018-05-05 af_alg: Improve function signature
2018-04-28 md5sum: Use AF_ALG when available
2018-04-28 sha512sum: Use AF_ALG when available
2018-04-28 sha256sum: Use AF_ALG when available
2018-04-28 sha1sum: Use AF_ALG when available
2018-05-05 all: Replace more http URLs by https URLs
2018-05-03 maint: port more modules to GCC 8
2018-05-03 Simplify code; drop support for Borland C++ on Windows
* admin/merge-gnulib (GNULIB_MODULES): Use crypto/md5-buffer
rather than crypto/md5, since Emacs doesn’t use the stream
operations that in recent Gnulib pull in other stuff Emacs doesn’t
need. Similarly for crypto/sha1-buffer, crypto/sha256-buffer,
crypto/sha512-buffer.
* build-aux/config.guess, build-aux/config.sub, lib/dosname.h:
* lib/dup2.c, lib/errno.in.h, lib/euidaccess.c, lib/fcntl.c:
* lib/fcntl.in.h, lib/fpending.c, lib/fsync.c, lib/getdtablesize.c:
* lib/getopt.c, lib/gettimeofday.c, lib/inttypes.in.h, lib/md5.c:
* lib/md5.h, lib/open.c, lib/pipe2.c, lib/putenv.c, lib/sha1.c:
* lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c:
* lib/sha512.h, lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h:
* lib/stdlib.in.h, lib/sys_stat.in.h, lib/sys_types.in.h:
* lib/timespec.h, lib/unistd.in.h, lib/utimens.c, m4/c-strtod.m4:
* m4/gnulib-common.m4, m4/inttypes.m4, m4/lstat.m4, m4/nocrash.m4:
* m4/pselect.m4, m4/readlink.m4, m4/stdio_h.m4, m4/symlink.m4:
* m4/unistd_h.m4, m4/utimens.m4:
Copy from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2018-05-21 11:42:18 -07:00
|
|
|
#endif /* __need_XXX */
|