16ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 26ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * Copyright (C) 2008 The Android Open Source Project 36ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * All rights reserved. 46ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * 56ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * Redistribution and use in source and binary forms, with or without 66ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * modification, are permitted provided that the following conditions 76ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * are met: 86ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * * Redistributions of source code must retain the above copyright 96ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * notice, this list of conditions and the following disclaimer. 106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * * Redistributions in binary form must reproduce the above copyright 116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * notice, this list of conditions and the following disclaimer in 126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * the documentation and/or other materials provided with the 136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * distribution. 146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * 156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * SUCH DAMAGE. 276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef _STDINT_H 296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _STDINT_H 306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <stddef.h> 326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <sys/_types.h> 336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) 356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define __STDINT_LIMITS 366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) 396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define __STDINT_MACROS 406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __int8_t int8_t; 436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __uint8_t uint8_t; 446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __int16_t int16_t; 456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __uint16_t uint16_t; 466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __int32_t int32_t; 476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __uint32_t uint32_t; 486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __int64_t int64_t; 496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef __uint64_t uint64_t; 506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * int8_t & uint8_t 536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int8_t int_least8_t; 566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int8_t int_fast8_t; 576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint8_t uint_least8_t; 596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint8_t uint_fast8_t; 606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT8_MIN (-128) 636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT8_MAX (127) 646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST8_MIN INT8_MIN 656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST8_MAX INT8_MAX 666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST8_MIN INT8_MIN 676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST8_MAX INT8_MAX 686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT8_MAX (255) 706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST8_MAX UINT8_MAX 716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST8_MAX UINT8_MAX 726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT8_C(c) c 766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST8_C(c) INT8_C(c) 776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST8_C(c) INT8_C(c) 786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT8_C(c) c 806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST8_C(c) UINT8_C(c) 816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST8_C(c) UINT8_C(c) 826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * int16_t & uint16_t 866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int16_t int_least16_t; 896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int32_t int_fast16_t; 906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint16_t uint_least16_t; 926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint32_t uint_fast16_t; 936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT16_MIN (-32768) 966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT16_MAX (32767) 976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST16_MIN INT16_MIN 986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST16_MAX INT16_MAX 996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST16_MIN INT32_MIN 1006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST16_MAX INT32_MAX 1016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT16_MAX (65535) 1036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST16_MAX UINT16_MAX 1046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST16_MAX UINT32_MAX 1056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 1086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT16_C(c) c 1096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST16_C(c) INT16_C(c) 1106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST16_C(c) INT32_C(c) 1116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT16_C(c) c 1136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST16_C(c) UINT16_C(c) 1146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST16_C(c) UINT32_C(c) 1156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 1186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * int32_t & uint32_t 1196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 1206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int32_t int_least32_t; 1226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int32_t int_fast32_t; 1236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint32_t uint_least32_t; 1256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint32_t uint_fast32_t; 1266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 1286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT32_MIN (-2147483647-1) 1296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT32_MAX (2147483647) 1306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST32_MIN INT32_MIN 1316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST32_MAX INT32_MAX 1326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST32_MIN INT32_MIN 1336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST32_MAX INT32_MAX 1346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT32_MAX (4294967295U) 1366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST32_MAX UINT32_MAX 1376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST32_MAX UINT32_MAX 1386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 1416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT32_C(c) c 1426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST32_C(c) INT32_C(c) 1436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST32_C(c) INT32_C(c) 1446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT32_C(c) c ## U 1466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST32_C(c) UINT32_C(c) 1476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST32_C(c) UINT32_C(c) 1486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 1516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * int64_t 1526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 1536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int64_t int_least64_t; 1556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int64_t int_fast64_t; 1566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint64_t uint_least64_t; 1586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint64_t uint_fast64_t; 1596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 1616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT64_MIN (__INT64_C(-9223372036854775807)-1) 1626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT64_MAX (__INT64_C(9223372036854775807)) 1636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST64_MIN INT64_MIN 1646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST64_MAX INT64_MAX 1656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST64_MIN INT64_MIN 1666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST64_MAX INT64_MAX 1676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT64_MAX (__UINT64_C(18446744073709551615)) 1686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST64_MAX UINT64_MAX 1706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST64_MAX UINT64_MAX 1716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define __INT64_C(c) c ## LL 1746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define __UINT64_C(c) c ## ULL 1756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 1776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT64_C(c) __INT64_C(c) 1786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_LEAST64_C(c) INT64_C(c) 1796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INT_FAST64_C(c) INT64_C(c) 1806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT64_C(c) __UINT64_C(c) 1826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_LEAST64_C(c) UINT64_C(c) 1836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINT_FAST64_C(c) UINT64_C(c) 1846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 1856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define __PRI64_RANK "ll" 1876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define __PRIFAST_RANK "" 1886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define __PRIPTR_RANK "" 1896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 1916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * intptr_t & uintptr_t 1926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 1936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int intptr_t; 1956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef unsigned int uintptr_t; 1966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 1976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 1986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTPTR_MIN INT32_MIN 1996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTPTR_MAX INT32_MAX 2006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINTPTR_MAX UINT32_MAX 2016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define PTRDIFF_MIN INT32_MIN 2026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define PTRDIFF_MAX INT32_MAX 2036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 2066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTPTR_C(c) INT32_C(c) 2076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINTPTR_C(c) UINT32_C(c) 2086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define PTRDIFF_C(c) INT32_C(c) 2096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* 2126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh * intmax_t & uintmax_t 2136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh */ 2146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef uint64_t uintmax_t; 2166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef int64_t intmax_t; 2176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 2196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTMAX_MIN INT64_MIN 2206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTMAX_MAX INT64_MAX 2216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINTMAX_MAX UINT64_MAX 2226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_MACROS 2256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define INTMAX_C(c) INT64_C(c) 2266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define UINTMAX_C(c) UINT64_C(c) 2276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* Limits of sig_atomic_t. */ 2306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 2316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define SIG_ATOMIC_MIN INT32_MIN 2326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define SIG_ATOMIC_MAX INT32_MAX 2336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* Limits of wchar_t. */ 2366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 2376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh /* Also possibly defined in <wchar.h> */ 2386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# ifndef WCHAR_MIN 2396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define WCHAR_MIN INT32_MIN 2406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define WCHAR_MAX INT32_MAX 2416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# endif 2426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* Limits of wint_t. */ 2456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifdef __STDINT_LIMITS 2466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define WINT_MIN INT32_MIN 2476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh# define WINT_MAX INT32_MAX 2486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* size_t is defined by the GCC-specific <stddef.h> */ 2516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef _SSIZE_T_DEFINED_ 2526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _SSIZE_T_DEFINED_ 2536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehtypedef long int ssize_t; 2546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif 2556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _BITSIZE 32 2576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/* Keep the kernel from trying to define these types... */ 2596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define __BIT_TYPES_DEFINED__ 2606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh 2616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif /* _STDINT_H */ 262