xref: /freebsd/contrib/llvm-project/libcxx/include/cstdint (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric// -*- C++ -*-
2349cc55cSDimitry Andric//===----------------------------------------------------------------------===//
30b57cec5SDimitry Andric//
40b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
50b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
60b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
70b57cec5SDimitry Andric//
80b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
90b57cec5SDimitry Andric
100b57cec5SDimitry Andric#ifndef _LIBCPP_CSTDINT
110b57cec5SDimitry Andric#define _LIBCPP_CSTDINT
120b57cec5SDimitry Andric
130b57cec5SDimitry Andric/*
140b57cec5SDimitry Andric    cstdint synopsis
150b57cec5SDimitry Andric
160b57cec5SDimitry AndricMacros:
170b57cec5SDimitry Andric
180b57cec5SDimitry Andric    INT8_MIN
190b57cec5SDimitry Andric    INT16_MIN
200b57cec5SDimitry Andric    INT32_MIN
210b57cec5SDimitry Andric    INT64_MIN
220b57cec5SDimitry Andric
230b57cec5SDimitry Andric    INT8_MAX
240b57cec5SDimitry Andric    INT16_MAX
250b57cec5SDimitry Andric    INT32_MAX
260b57cec5SDimitry Andric    INT64_MAX
270b57cec5SDimitry Andric
280b57cec5SDimitry Andric    UINT8_MAX
290b57cec5SDimitry Andric    UINT16_MAX
300b57cec5SDimitry Andric    UINT32_MAX
310b57cec5SDimitry Andric    UINT64_MAX
320b57cec5SDimitry Andric
330b57cec5SDimitry Andric    INT_LEAST8_MIN
340b57cec5SDimitry Andric    INT_LEAST16_MIN
350b57cec5SDimitry Andric    INT_LEAST32_MIN
360b57cec5SDimitry Andric    INT_LEAST64_MIN
370b57cec5SDimitry Andric
380b57cec5SDimitry Andric    INT_LEAST8_MAX
390b57cec5SDimitry Andric    INT_LEAST16_MAX
400b57cec5SDimitry Andric    INT_LEAST32_MAX
410b57cec5SDimitry Andric    INT_LEAST64_MAX
420b57cec5SDimitry Andric
430b57cec5SDimitry Andric    UINT_LEAST8_MAX
440b57cec5SDimitry Andric    UINT_LEAST16_MAX
450b57cec5SDimitry Andric    UINT_LEAST32_MAX
460b57cec5SDimitry Andric    UINT_LEAST64_MAX
470b57cec5SDimitry Andric
480b57cec5SDimitry Andric    INT_FAST8_MIN
490b57cec5SDimitry Andric    INT_FAST16_MIN
500b57cec5SDimitry Andric    INT_FAST32_MIN
510b57cec5SDimitry Andric    INT_FAST64_MIN
520b57cec5SDimitry Andric
530b57cec5SDimitry Andric    INT_FAST8_MAX
540b57cec5SDimitry Andric    INT_FAST16_MAX
550b57cec5SDimitry Andric    INT_FAST32_MAX
560b57cec5SDimitry Andric    INT_FAST64_MAX
570b57cec5SDimitry Andric
580b57cec5SDimitry Andric    UINT_FAST8_MAX
590b57cec5SDimitry Andric    UINT_FAST16_MAX
600b57cec5SDimitry Andric    UINT_FAST32_MAX
610b57cec5SDimitry Andric    UINT_FAST64_MAX
620b57cec5SDimitry Andric
630b57cec5SDimitry Andric    INTPTR_MIN
640b57cec5SDimitry Andric    INTPTR_MAX
650b57cec5SDimitry Andric    UINTPTR_MAX
660b57cec5SDimitry Andric
670b57cec5SDimitry Andric    INTMAX_MIN
680b57cec5SDimitry Andric    INTMAX_MAX
690b57cec5SDimitry Andric
700b57cec5SDimitry Andric    UINTMAX_MAX
710b57cec5SDimitry Andric
720b57cec5SDimitry Andric    PTRDIFF_MIN
730b57cec5SDimitry Andric    PTRDIFF_MAX
740b57cec5SDimitry Andric
750b57cec5SDimitry Andric    SIG_ATOMIC_MIN
760b57cec5SDimitry Andric    SIG_ATOMIC_MAX
770b57cec5SDimitry Andric
780b57cec5SDimitry Andric    SIZE_MAX
790b57cec5SDimitry Andric
800b57cec5SDimitry Andric    WCHAR_MIN
810b57cec5SDimitry Andric    WCHAR_MAX
820b57cec5SDimitry Andric
830b57cec5SDimitry Andric    WINT_MIN
840b57cec5SDimitry Andric    WINT_MAX
850b57cec5SDimitry Andric
860b57cec5SDimitry Andric    INT8_C(value)
870b57cec5SDimitry Andric    INT16_C(value)
880b57cec5SDimitry Andric    INT32_C(value)
890b57cec5SDimitry Andric    INT64_C(value)
900b57cec5SDimitry Andric
910b57cec5SDimitry Andric    UINT8_C(value)
920b57cec5SDimitry Andric    UINT16_C(value)
930b57cec5SDimitry Andric    UINT32_C(value)
940b57cec5SDimitry Andric    UINT64_C(value)
950b57cec5SDimitry Andric
960b57cec5SDimitry Andric    INTMAX_C(value)
970b57cec5SDimitry Andric    UINTMAX_C(value)
980b57cec5SDimitry Andric
990b57cec5SDimitry Andricnamespace std
1000b57cec5SDimitry Andric{
1010b57cec5SDimitry Andric
1020b57cec5SDimitry AndricTypes:
1030b57cec5SDimitry Andric
1040b57cec5SDimitry Andric    int8_t
1050b57cec5SDimitry Andric    int16_t
1060b57cec5SDimitry Andric    int32_t
1070b57cec5SDimitry Andric    int64_t
1080b57cec5SDimitry Andric
1090b57cec5SDimitry Andric    uint8_t
1100b57cec5SDimitry Andric    uint16_t
1110b57cec5SDimitry Andric    uint32_t
1120b57cec5SDimitry Andric    uint64_t
1130b57cec5SDimitry Andric
1140b57cec5SDimitry Andric    int_least8_t
1150b57cec5SDimitry Andric    int_least16_t
1160b57cec5SDimitry Andric    int_least32_t
1170b57cec5SDimitry Andric    int_least64_t
1180b57cec5SDimitry Andric
1190b57cec5SDimitry Andric    uint_least8_t
1200b57cec5SDimitry Andric    uint_least16_t
1210b57cec5SDimitry Andric    uint_least32_t
1220b57cec5SDimitry Andric    uint_least64_t
1230b57cec5SDimitry Andric
1240b57cec5SDimitry Andric    int_fast8_t
1250b57cec5SDimitry Andric    int_fast16_t
1260b57cec5SDimitry Andric    int_fast32_t
1270b57cec5SDimitry Andric    int_fast64_t
1280b57cec5SDimitry Andric
1290b57cec5SDimitry Andric    uint_fast8_t
1300b57cec5SDimitry Andric    uint_fast16_t
1310b57cec5SDimitry Andric    uint_fast32_t
1320b57cec5SDimitry Andric    uint_fast64_t
1330b57cec5SDimitry Andric
1340b57cec5SDimitry Andric    intptr_t
1350b57cec5SDimitry Andric    uintptr_t
1360b57cec5SDimitry Andric
1370b57cec5SDimitry Andric    intmax_t
1380b57cec5SDimitry Andric    uintmax_t
1390b57cec5SDimitry Andric
1400b57cec5SDimitry Andric}  // std
1410b57cec5SDimitry Andric*/
1420b57cec5SDimitry Andric
1430b57cec5SDimitry Andric#include <__config>
144*bdd1243dSDimitry Andric
1450b57cec5SDimitry Andric#include <stdint.h>
1460b57cec5SDimitry Andric
147*bdd1243dSDimitry Andric#ifndef _LIBCPP_STDINT_H
148*bdd1243dSDimitry Andric#   error <cstdint> tried including <stdint.h> but didn't find libc++'s <stdint.h> header. \
149*bdd1243dSDimitry Andric          This usually means that your header search paths are not configured properly. \
150*bdd1243dSDimitry Andric          The header search paths should contain the C++ Standard Library headers before \
151*bdd1243dSDimitry Andric          any C Standard Library, and you are probably using compiler flags that make that \
152*bdd1243dSDimitry Andric          not be the case.
153*bdd1243dSDimitry Andric#endif
154*bdd1243dSDimitry Andric
1550b57cec5SDimitry Andric#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
1560b57cec5SDimitry Andric#  pragma GCC system_header
1570b57cec5SDimitry Andric#endif
1580b57cec5SDimitry Andric
1590b57cec5SDimitry Andric_LIBCPP_BEGIN_NAMESPACE_STD
1600b57cec5SDimitry Andric
161fe6060f1SDimitry Andricusing ::int8_t _LIBCPP_USING_IF_EXISTS;
162fe6060f1SDimitry Andricusing ::int16_t _LIBCPP_USING_IF_EXISTS;
163fe6060f1SDimitry Andricusing ::int32_t _LIBCPP_USING_IF_EXISTS;
164fe6060f1SDimitry Andricusing ::int64_t _LIBCPP_USING_IF_EXISTS;
1650b57cec5SDimitry Andric
166fe6060f1SDimitry Andricusing ::uint8_t _LIBCPP_USING_IF_EXISTS;
167fe6060f1SDimitry Andricusing ::uint16_t _LIBCPP_USING_IF_EXISTS;
168fe6060f1SDimitry Andricusing ::uint32_t _LIBCPP_USING_IF_EXISTS;
169fe6060f1SDimitry Andricusing ::uint64_t _LIBCPP_USING_IF_EXISTS;
1700b57cec5SDimitry Andric
171fe6060f1SDimitry Andricusing ::int_least8_t _LIBCPP_USING_IF_EXISTS;
172fe6060f1SDimitry Andricusing ::int_least16_t _LIBCPP_USING_IF_EXISTS;
173fe6060f1SDimitry Andricusing ::int_least32_t _LIBCPP_USING_IF_EXISTS;
174fe6060f1SDimitry Andricusing ::int_least64_t _LIBCPP_USING_IF_EXISTS;
1750b57cec5SDimitry Andric
176fe6060f1SDimitry Andricusing ::uint_least8_t _LIBCPP_USING_IF_EXISTS;
177fe6060f1SDimitry Andricusing ::uint_least16_t _LIBCPP_USING_IF_EXISTS;
178fe6060f1SDimitry Andricusing ::uint_least32_t _LIBCPP_USING_IF_EXISTS;
179fe6060f1SDimitry Andricusing ::uint_least64_t _LIBCPP_USING_IF_EXISTS;
1800b57cec5SDimitry Andric
181fe6060f1SDimitry Andricusing ::int_fast8_t _LIBCPP_USING_IF_EXISTS;
182fe6060f1SDimitry Andricusing ::int_fast16_t _LIBCPP_USING_IF_EXISTS;
183fe6060f1SDimitry Andricusing ::int_fast32_t _LIBCPP_USING_IF_EXISTS;
184fe6060f1SDimitry Andricusing ::int_fast64_t _LIBCPP_USING_IF_EXISTS;
1850b57cec5SDimitry Andric
186fe6060f1SDimitry Andricusing ::uint_fast8_t _LIBCPP_USING_IF_EXISTS;
187fe6060f1SDimitry Andricusing ::uint_fast16_t _LIBCPP_USING_IF_EXISTS;
188fe6060f1SDimitry Andricusing ::uint_fast32_t _LIBCPP_USING_IF_EXISTS;
189fe6060f1SDimitry Andricusing ::uint_fast64_t _LIBCPP_USING_IF_EXISTS;
1900b57cec5SDimitry Andric
191fe6060f1SDimitry Andricusing ::intptr_t _LIBCPP_USING_IF_EXISTS;
192fe6060f1SDimitry Andricusing ::uintptr_t _LIBCPP_USING_IF_EXISTS;
1930b57cec5SDimitry Andric
194fe6060f1SDimitry Andricusing ::intmax_t _LIBCPP_USING_IF_EXISTS;
195fe6060f1SDimitry Andricusing ::uintmax_t _LIBCPP_USING_IF_EXISTS;
1960b57cec5SDimitry Andric
1970b57cec5SDimitry Andric_LIBCPP_END_NAMESPACE_STD
1980b57cec5SDimitry Andric
1990b57cec5SDimitry Andric#endif // _LIBCPP_CSTDINT
200