stdint.h (4668B)
1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 2 #include <stddef.h> 3 #if __GLIBC__ >= 2 4 #include <stdint.h> 5 #else 6 /* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc. 7 Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. 8 This file is part of gnulib. 9 10 This program is free software; you can redistribute it and/or modify 11 it under the terms of the GNU Lesser General Public License as published by 12 the Free Software Foundation; either version 2, or (at your option) 13 any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU Lesser General Public License for more details. 19 20 You should have received a copy of the GNU Lesser General Public License 21 along with this program; if not, see <https://www.gnu.org/licenses/>. */ 22 23 /* 24 * Subset of ISO C 99 <stdint.h> for platforms that lack it. 25 * <http://www.opengroup.org/susv3xbd/stdint.h.html> 26 */ 27 28 #ifndef _UNISTRING_STDINT_H 29 30 /* When including a system file that in turn includes <inttypes.h>, 31 use the system <inttypes.h>, not our substitute. This avoids 32 problems with (for example) VMS, whose <sys/bitypes.h> includes 33 <inttypes.h>. */ 34 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 35 36 /* Get those types that are already defined in other system include 37 files, so that we can "#define int8_t signed char" below without 38 worrying about a later system include file containing a "typedef 39 signed char int8_t;" that will get messed up by our macro. Our 40 macros should all be consistent with the system versions, except 41 for the "fast" types and macros, which we recommend against using 42 in public interfaces due to compiler differences. */ 43 44 #if 1 45 # if defined __sgi && ! defined __c99 46 /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users 47 with "This header file is to be used only for c99 mode compilations" 48 diagnostics. */ 49 # define __STDINT_H__ 50 # endif 51 /* Other systems may have an incomplete or buggy <stdint.h>. 52 Include it before <inttypes.h>, since any "#include <stdint.h>" 53 in <inttypes.h> would reinclude us, skipping our contents because 54 _UNISTRING_STDINT_H is defined. 55 The include_next requires a split double-inclusion guard. */ 56 # if __GNUC__ >= 3 57 58 # endif 59 # include <stdint.h> 60 #endif 61 62 #if ! defined _UNISTRING_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H 63 #define _UNISTRING_STDINT_H 64 65 /* <sys/types.h> defines some of the stdint.h types as well, on glibc, 66 IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). 67 AIX 5.2 <sys/types.h> isn't needed and causes troubles. 68 MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but 69 relies on the system <stdint.h> definitions, so include 70 <sys/types.h> after <stdint.h>. */ 71 #if 1 && ! defined _AIX 72 # include <sys/types.h> 73 #endif 74 75 /* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ 76 #include <limits.h> 77 78 #if 1 79 /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines 80 int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. 81 <inttypes.h> also defines intptr_t and uintptr_t. */ 82 # include <inttypes.h> 83 #elif 0 84 /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and 85 the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ 86 # include <sys/inttypes.h> 87 #endif 88 89 #if 0 && ! defined __BIT_TYPES_DEFINED__ 90 /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines 91 int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is 92 included by <sys/types.h>. */ 93 # include <sys/bitypes.h> 94 #endif 95 96 #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 97 98 99 /* 7.18.1.1. Exact-width integer types */ 100 101 /* Here we assume a standard architecture where the hardware integer 102 types have 8, 16, 32, optionally 64 bits. */ 103 104 #undef int8_t 105 #undef uint8_t 106 typedef signed char unistring_int8_t; 107 typedef unsigned char unistring_uint8_t; 108 #define int8_t unistring_int8_t 109 #define uint8_t unistring_uint8_t 110 111 #undef int16_t 112 #undef uint16_t 113 typedef short int unistring_int16_t; 114 typedef unsigned short int unistring_uint16_t; 115 #define int16_t unistring_int16_t 116 #define uint16_t unistring_uint16_t 117 118 #undef int32_t 119 #undef uint32_t 120 typedef int unistring_int32_t; 121 typedef unsigned int unistring_uint32_t; 122 #define int32_t unistring_int32_t 123 #define uint32_t unistring_uint32_t 124 125 /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ 126 #define _UINT8_T 127 #define _UINT32_T 128 129 130 #endif /* _UNISTRING_STDINT_H */ 131 #endif /* !defined _UNISTRING_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ 132 #endif