111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (C) 2008 The Android Open Source Project
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * All rights reserved.
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Redistribution and use in source and binary forms, with or without
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modification, are permitted provided that the following conditions
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * are met:
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *  * Redistributions of source code must retain the above copyright
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    notice, this list of conditions and the following disclaimer.
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *  * Redistributions in binary form must reproduce the above copyright
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    notice, this list of conditions and the following disclaimer in
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    the documentation and/or other materials provided with the
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    distribution.
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * SUCH DAMAGE.
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STDINT_H
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STDINT_H
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stddef.h>
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <sys/_types.h>
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define __STDINT_LIMITS
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define  __STDINT_MACROS
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __int8_t      int8_t;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __uint8_t     uint8_t;
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __int16_t     int16_t;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __uint16_t    uint16_t;
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __int32_t     int32_t;
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __uint32_t    uint32_t;
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __int64_t     int64_t;
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __uint64_t    uint64_t;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * int8_t & uint8_t
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int8_t        int_least8_t;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int8_t        int_fast8_t;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint8_t       uint_least8_t;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint8_t       uint_fast8_t;
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT8_MIN         (-128)
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT8_MAX         (127)
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST8_MIN   INT8_MIN
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST8_MAX   INT8_MAX
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST8_MIN    INT8_MIN
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST8_MAX    INT8_MAX
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT8_MAX           (255)
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST8_MAX     UINT8_MAX
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST8_MAX      UINT8_MAX
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT8_C(c)	c
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST8_C(c)	 INT8_C(c)
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST8_C(c)	INT8_C(c)
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT8_C(c)	c
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST8_C(c)  UINT8_C(c)
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST8_C(c)  UINT8_C(c)
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * int16_t & uint16_t
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int16_t       int_least16_t;
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int32_t       int_fast16_t;
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint16_t      uint_least16_t;
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint32_t      uint_fast16_t;
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT16_MIN	(-32768)
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT16_MAX	(32767)
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST16_MIN	INT16_MIN
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST16_MAX	INT16_MAX
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST16_MIN	INT32_MIN
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST16_MAX	INT32_MAX
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT16_MAX	(65535)
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST16_MAX UINT16_MAX
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST16_MAX UINT32_MAX
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT16_C(c)	c
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST16_C(c) INT16_C(c)
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST16_C(c)	 INT32_C(c)
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT16_C(c)	c
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST16_C(c) UINT16_C(c)
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST16_C(c) UINT32_C(c)
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * int32_t & uint32_t
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int32_t       int_least32_t;
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int32_t       int_fast32_t;
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint32_t      uint_least32_t;
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint32_t      uint_fast32_t;
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT32_MIN	(-2147483647-1)
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT32_MAX	(2147483647)
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST32_MIN	INT32_MIN
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST32_MAX	INT32_MAX
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST32_MIN	INT32_MIN
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST32_MAX	INT32_MAX
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT32_MAX	(4294967295U)
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST32_MAX UINT32_MAX
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST32_MAX UINT32_MAX
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT32_C(c)	c
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST32_C(c) INT32_C(c)
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST32_C(c)  INT32_C(c)
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT32_C(c)	c ## U
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST32_C(c) UINT32_C(c)
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST32_C(c) UINT32_C(c)
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *  int64_t
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int64_t       int_least64_t;
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int64_t       int_fast64_t;
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint64_t      uint_least64_t;
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint64_t      uint_fast64_t;
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT64_MIN        (__INT64_C(-9223372036854775807)-1)
16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT64_MAX        (__INT64_C(9223372036854775807))
16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST64_MIN  INT64_MIN
16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST64_MAX  INT64_MAX
16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST64_MIN   INT64_MIN
16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST64_MAX   INT64_MAX
16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT64_MAX       (__UINT64_C(18446744073709551615))
16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST64_MAX UINT64_MAX
17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST64_MAX UINT64_MAX
17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __INT64_C(c)     c ## LL
17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __UINT64_C(c)     c ## ULL
17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT64_C(c)       __INT64_C(c)
17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_LEAST64_C(c) INT64_C(c)
17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INT_FAST64_C(c)  INT64_C(c)
18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT64_C(c)       __UINT64_C(c)
18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_LEAST64_C(c) UINT64_C(c)
18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINT_FAST64_C(c)  UINT64_C(c)
18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define __PRI64_RANK   "ll"
18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define __PRIFAST_RANK ""
18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define __PRIPTR_RANK  ""
18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * intptr_t & uintptr_t
19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __LP64__
19511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef long          intptr_t;
19611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned long uintptr_t;
19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
19811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int           intptr_t;
19911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned int  uintptr_t;
20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTPTR_MIN    INT32_MIN
20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTPTR_MAX    INT32_MAX
20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINTPTR_MAX   UINT32_MAX
20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define PTRDIFF_MIN   INT32_MIN
20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define PTRDIFF_MAX   INT32_MAX
20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTPTR_C(c)   INT32_C(c)
21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINTPTR_C(c)  UINT32_C(c)
21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define PTRDIFF_C(c)  INT32_C(c)
21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *  intmax_t & uintmax_t
21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
22011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef uint64_t uintmax_t;
22111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int64_t  intmax_t;
22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTMAX_MIN	INT64_MIN
22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTMAX_MAX	INT64_MAX
22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINTMAX_MAX	UINT64_MAX
22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_MACROS
23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define INTMAX_C(c)	INT64_C(c)
23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define UINTMAX_C(c)	UINT64_C(c)
23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Limits of sig_atomic_t. */
23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define SIG_ATOMIC_MIN  INT32_MIN
23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define SIG_ATOMIC_MAX  INT32_MAX
23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Limits of wchar_t. */
24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <sys/_wchar_limits.h>
24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Limits of wint_t. */
24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __STDINT_LIMITS
24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define WINT_MIN        INT32_MIN
24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define WINT_MAX        INT32_MAX
24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* size_t is defined by the GCC-specific <stddef.h> */
25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _SSIZE_T_DEFINED_
25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _SSIZE_T_DEFINED_
25411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef int  ssize_t;
25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _BITSIZE 32
25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Keep the kernel from trying to define these types... */
26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __BIT_TYPES_DEFINED__
26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STDINT_H */
263