1951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 2951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (C) 2008 The Android Open Source Project 3951a39d68df598db08dfced8b4707755864a0492Ying Wang * All rights reserved. 4951a39d68df598db08dfced8b4707755864a0492Ying Wang * 5951a39d68df598db08dfced8b4707755864a0492Ying Wang * Redistribution and use in source and binary forms, with or without 6951a39d68df598db08dfced8b4707755864a0492Ying Wang * modification, are permitted provided that the following conditions 7951a39d68df598db08dfced8b4707755864a0492Ying Wang * are met: 8951a39d68df598db08dfced8b4707755864a0492Ying Wang * * Redistributions of source code must retain the above copyright 9951a39d68df598db08dfced8b4707755864a0492Ying Wang * notice, this list of conditions and the following disclaimer. 10951a39d68df598db08dfced8b4707755864a0492Ying Wang * * Redistributions in binary form must reproduce the above copyright 11951a39d68df598db08dfced8b4707755864a0492Ying Wang * notice, this list of conditions and the following disclaimer in 12951a39d68df598db08dfced8b4707755864a0492Ying Wang * the documentation and/or other materials provided with the 13951a39d68df598db08dfced8b4707755864a0492Ying Wang * distribution. 14951a39d68df598db08dfced8b4707755864a0492Ying Wang * 15951a39d68df598db08dfced8b4707755864a0492Ying Wang * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16951a39d68df598db08dfced8b4707755864a0492Ying Wang * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17951a39d68df598db08dfced8b4707755864a0492Ying Wang * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18951a39d68df598db08dfced8b4707755864a0492Ying Wang * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19951a39d68df598db08dfced8b4707755864a0492Ying Wang * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20951a39d68df598db08dfced8b4707755864a0492Ying Wang * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21951a39d68df598db08dfced8b4707755864a0492Ying Wang * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22951a39d68df598db08dfced8b4707755864a0492Ying Wang * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23951a39d68df598db08dfced8b4707755864a0492Ying Wang * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24951a39d68df598db08dfced8b4707755864a0492Ying Wang * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25951a39d68df598db08dfced8b4707755864a0492Ying Wang * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26951a39d68df598db08dfced8b4707755864a0492Ying Wang * SUCH DAMAGE. 27951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 28951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STDINT_H 29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _STDINT_H 30951a39d68df598db08dfced8b4707755864a0492Ying Wang 31951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <stddef.h> 32951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <sys/_types.h> 33951a39d68df598db08dfced8b4707755864a0492Ying Wang 34951a39d68df598db08dfced8b4707755864a0492Ying Wang 35951a39d68df598db08dfced8b4707755864a0492Ying Wang 36951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) 37951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __STDINT_LIMITS 38951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 39951a39d68df598db08dfced8b4707755864a0492Ying Wang 40951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) 41951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __STDINT_MACROS 42951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 43951a39d68df598db08dfced8b4707755864a0492Ying Wang 44951a39d68df598db08dfced8b4707755864a0492Ying Wang#if !defined __STRICT_ANSI__ || __STDC_VERSION__ >= 199901L 45951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __STDC_INT64__ 46951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 47951a39d68df598db08dfced8b4707755864a0492Ying Wang 48951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __int8_t int8_t; 49951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __uint8_t uint8_t; 50951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __int16_t int16_t; 51951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __uint16_t uint16_t; 52951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __int32_t int32_t; 53951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __uint32_t uint32_t; 54951a39d68df598db08dfced8b4707755864a0492Ying Wang#if defined(__STDC_INT64__) 55951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __int64_t int64_t; 56951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __uint64_t uint64_t; 57951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 58951a39d68df598db08dfced8b4707755864a0492Ying Wang 59951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 60951a39d68df598db08dfced8b4707755864a0492Ying Wang * int8_t & uint8_t 61951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 62951a39d68df598db08dfced8b4707755864a0492Ying Wang 63951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int8_t int_least8_t; 64951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int8_t int_fast8_t; 65951a39d68df598db08dfced8b4707755864a0492Ying Wang 66951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint8_t uint_least8_t; 67951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint8_t uint_fast8_t; 68951a39d68df598db08dfced8b4707755864a0492Ying Wang 69951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 70951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT8_MIN (-128) 71951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT8_MAX (127) 72951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST8_MIN INT8_MIN 73951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST8_MAX INT8_MAX 74951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST8_MIN INT8_MIN 75951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST8_MAX INT8_MAX 76951a39d68df598db08dfced8b4707755864a0492Ying Wang 77951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT8_MAX (255U) 78951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST8_MAX UINT8_MAX 79951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST8_MAX UINT8_MAX 80951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 81951a39d68df598db08dfced8b4707755864a0492Ying Wang 82951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 83951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT8_C(c) c 84951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST8_C(c) INT8_C(c) 85951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST8_C(c) INT8_C(c) 86951a39d68df598db08dfced8b4707755864a0492Ying Wang 87951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT8_C(c) c ## U 88951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST8_C(c) UINT8_C(c) 89951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST8_C(c) UINT8_C(c) 90951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 91951a39d68df598db08dfced8b4707755864a0492Ying Wang 92951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 93951a39d68df598db08dfced8b4707755864a0492Ying Wang * int16_t & uint16_t 94951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 95951a39d68df598db08dfced8b4707755864a0492Ying Wang 96951a39d68df598db08dfced8b4707755864a0492Ying Wang 97951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int16_t int_least16_t; 98951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int32_t int_fast16_t; 99951a39d68df598db08dfced8b4707755864a0492Ying Wang 100951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint16_t uint_least16_t; 101951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint32_t uint_fast16_t; 102951a39d68df598db08dfced8b4707755864a0492Ying Wang 103951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 104951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT16_MIN (-32768) 105951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT16_MAX (32767) 106951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST16_MIN INT16_MIN 107951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST16_MAX INT16_MAX 108951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST16_MIN INT32_MIN 109951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST16_MAX INT32_MAX 110951a39d68df598db08dfced8b4707755864a0492Ying Wang 111951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT16_MAX (65535U) 112951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST16_MAX UINT16_MAX 113951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST16_MAX UINT32_MAX 114951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 115951a39d68df598db08dfced8b4707755864a0492Ying Wang 116951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 117951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT16_C(c) c 118951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST16_C(c) INT16_C(c) 119951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST16_C(c) INT32_C(c) 120951a39d68df598db08dfced8b4707755864a0492Ying Wang 121951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT16_C(c) c ## U 122951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST16_C(c) UINT16_C(c) 123951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST16_C(c) UINT32_C(c) 124951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 125951a39d68df598db08dfced8b4707755864a0492Ying Wang 126951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 127951a39d68df598db08dfced8b4707755864a0492Ying Wang * int32_t & uint32_t 128951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 129951a39d68df598db08dfced8b4707755864a0492Ying Wang 130951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int32_t int_least32_t; 131951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int32_t int_fast32_t; 132951a39d68df598db08dfced8b4707755864a0492Ying Wang 133951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint32_t uint_least32_t; 134951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint32_t uint_fast32_t; 135951a39d68df598db08dfced8b4707755864a0492Ying Wang 136951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 137951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT32_MIN (-2147483647-1) 138951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT32_MAX (2147483647) 139951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST32_MIN INT32_MIN 140951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST32_MAX INT32_MAX 141951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST32_MIN INT32_MIN 142951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST32_MAX INT32_MAX 143951a39d68df598db08dfced8b4707755864a0492Ying Wang 144951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT32_MAX (4294967295U) 145951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST32_MAX UINT32_MAX 146951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST32_MAX UINT32_MAX 147951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 148951a39d68df598db08dfced8b4707755864a0492Ying Wang 149951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 150951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT32_C(c) c 151951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST32_C(c) INT32_C(c) 152951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST32_C(c) INT32_C(c) 153951a39d68df598db08dfced8b4707755864a0492Ying Wang 154951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT32_C(c) c ## U 155951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST32_C(c) UINT32_C(c) 156951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST32_C(c) UINT32_C(c) 157951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 158951a39d68df598db08dfced8b4707755864a0492Ying Wang 159951a39d68df598db08dfced8b4707755864a0492Ying Wang#if defined(__STDC_INT64__) 160951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 161951a39d68df598db08dfced8b4707755864a0492Ying Wang * int64_t 162951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 163951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int64_t int_least64_t; 164951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int64_t int_fast64_t; 165951a39d68df598db08dfced8b4707755864a0492Ying Wang 166951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint64_t uint_least64_t; 167951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint64_t uint_fast64_t; 168951a39d68df598db08dfced8b4707755864a0492Ying Wang 169951a39d68df598db08dfced8b4707755864a0492Ying Wang 170951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 171951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT64_MIN (__INT64_C(-9223372036854775807)-1) 172951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT64_MAX (__INT64_C(9223372036854775807)) 173951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST64_MIN INT64_MIN 174951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST64_MAX INT64_MAX 175951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST64_MIN INT64_MIN 176951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST64_MAX INT64_MAX 177951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT64_MAX (__UINT64_C(18446744073709551615)) 178951a39d68df598db08dfced8b4707755864a0492Ying Wang 179951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST64_MAX UINT64_MAX 180951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST64_MAX UINT64_MAX 181951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 182951a39d68df598db08dfced8b4707755864a0492Ying Wang 183951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __INT64_C(c) c ## LL 184951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __UINT64_C(c) c ## ULL 185951a39d68df598db08dfced8b4707755864a0492Ying Wang 186951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 187951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT64_C(c) __INT64_C(c) 188951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_LEAST64_C(c) INT64_C(c) 189951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INT_FAST64_C(c) INT64_C(c) 190951a39d68df598db08dfced8b4707755864a0492Ying Wang 191951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT64_C(c) __UINT64_C(c) 192951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_LEAST64_C(c) UINT64_C(c) 193951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINT_FAST64_C(c) UINT64_C(c) 194951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 195951a39d68df598db08dfced8b4707755864a0492Ying Wang 196951a39d68df598db08dfced8b4707755864a0492Ying Wang 197951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __PRI64_RANK "ll" 198951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __PRIFAST_RANK "" 199951a39d68df598db08dfced8b4707755864a0492Ying Wang# define __PRIPTR_RANK "" 200951a39d68df598db08dfced8b4707755864a0492Ying Wang 201951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* __STDC_INT64__ */ 202951a39d68df598db08dfced8b4707755864a0492Ying Wang 203951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 204951a39d68df598db08dfced8b4707755864a0492Ying Wang * intptr_t & uintptr_t 205951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 206951a39d68df598db08dfced8b4707755864a0492Ying Wang 207951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int intptr_t; 208951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef unsigned int uintptr_t; 209951a39d68df598db08dfced8b4707755864a0492Ying Wang 210951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 211951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTPTR_MIN INT32_MIN 212951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTPTR_MAX INT32_MAX 213951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTPTR_MAX UINT32_MAX 214951a39d68df598db08dfced8b4707755864a0492Ying Wang# define PTRDIFF_MIN INT32_MIN 215951a39d68df598db08dfced8b4707755864a0492Ying Wang# define PTRDIFF_MAX INT32_MAX 216951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 217951a39d68df598db08dfced8b4707755864a0492Ying Wang 218951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 219951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTPTR_C(c) INT32_C(c) 220951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTPTR_C(c) UINT32_C(c) 221951a39d68df598db08dfced8b4707755864a0492Ying Wang# define PTRDIFF_C(c) INT32_C(c) 222951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 223951a39d68df598db08dfced8b4707755864a0492Ying Wang 224951a39d68df598db08dfced8b4707755864a0492Ying Wang 225951a39d68df598db08dfced8b4707755864a0492Ying Wang 226951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 227951a39d68df598db08dfced8b4707755864a0492Ying Wang * intmax_t & uintmax_t 228951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 229951a39d68df598db08dfced8b4707755864a0492Ying Wang 230951a39d68df598db08dfced8b4707755864a0492Ying Wang#if defined(__STDC_INT64__) 231951a39d68df598db08dfced8b4707755864a0492Ying Wang 232951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint64_t uintmax_t; 233951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int64_t intmax_t; 234951a39d68df598db08dfced8b4707755864a0492Ying Wang 235951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 236951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_MIN INT64_MIN 237951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_MAX INT64_MAX 238951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTMAX_MAX UINT64_MAX 239951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 240951a39d68df598db08dfced8b4707755864a0492Ying Wang 241951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 242951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_C(c) INT64_C(c) 243951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTMAX_C(c) UINT64_C(c) 244951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 245951a39d68df598db08dfced8b4707755864a0492Ying Wang 246951a39d68df598db08dfced8b4707755864a0492Ying Wang#else /* !__STDC_INT64__ */ 247951a39d68df598db08dfced8b4707755864a0492Ying Wang 248951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef uint32_t uintmax_t; 249951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef int32_t intmax_t; 250951a39d68df598db08dfced8b4707755864a0492Ying Wang 251951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_LIMITS 252951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_MIN INT32_MIN 253951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_MAX INT32_MAX 254951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTMAX_MAX UINT32_MAX 255951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 256951a39d68df598db08dfced8b4707755864a0492Ying Wang 257951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifdef __STDINT_MACROS 258951a39d68df598db08dfced8b4707755864a0492Ying Wang# define INTMAX_C(c) INT32_C(c) 259951a39d68df598db08dfced8b4707755864a0492Ying Wang# define UINTMAX_C(c) UINT32_C(c) 260951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 261951a39d68df598db08dfced8b4707755864a0492Ying Wang 262951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* !__STDC_INT64__ */ 263951a39d68df598db08dfced8b4707755864a0492Ying Wang 264951a39d68df598db08dfced8b4707755864a0492Ying Wang 265951a39d68df598db08dfced8b4707755864a0492Ying Wang/* size_t is defined by the GCC-specific <stddef.h> */ 266951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _SSIZE_T_DEFINED_ 267951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _SSIZE_T_DEFINED_ 268951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef long int ssize_t; 269951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 270951a39d68df598db08dfced8b4707755864a0492Ying Wang 271951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _BITSIZE 32 272951a39d68df598db08dfced8b4707755864a0492Ying Wang 273951a39d68df598db08dfced8b4707755864a0492Ying Wang/* Keep the kernel from trying to define these types... */ 274951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __BIT_TYPES_DEFINED__ 275951a39d68df598db08dfced8b4707755864a0492Ying Wang 276951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* _STDINT_H */ 277