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