blob: 5da59d6adf57c26780a60deaf70ff814514c4f40 [file] [log] [blame]
Minos Galanakisf4ca6ac2017-12-11 02:39:21 +01001<?xml version="1.0"?>
2<!--
3#-------------------------------------------------------------------------------
4# Copyright (c) 2018-2019, Arm Limited and Contributors. All rights reserved.
5#
6# SPDX-License-Identifier: BSD-3-Clause
7#
8#-------------------------------------------------------------------------------
9-->
10<def format="2">
11 <!-- Minimum-width integer types -->
12 <podtype name="int_least8_t" sign="s" size="1"/>
13 <podtype name="uint_least8_t" sign="u" size="1"/>
14 <podtype name="int_least16_t" sign="s" size="2"/>
15 <podtype name="uint_least16_t" sign="u" size="2"/>
16 <podtype name="int_least32_t" sign="s" size="4"/>
17 <podtype name="uint_least32_t" sign="u" size="4"/>
18 <podtype name="int_least64_t" sign="s" size="8"/>
19 <podtype name="uint_least64_t" sign="u" size="8"/>
20 <!-- Greatest-width integer types -->
21 <podtype name="intmax_t" sign="s" size="8"/>
22 <podtype name="uintmax_t" sign="u" size="8"/>
23 <!-- inttypes.h -->
24 <podtype name="intptr_t" sign="s" size="4"/>
25 <podtype name="uintptr_t" sign="u" size="4"/>
26 <define name="INT8_MAX" value="0x7f"/>
27 <define name="INT8_MIN" value="(-INT8_MAX - 1)"/>
28 <define name="UINT8_MAX" value="(__CONCAT(INT8_MAX, U) * 2U + 1U)"/>
29 <define name="INT16_MAX" value="0x7fff"/>
30 <define name="INT16_MIN" value="(-INT16_MAX - 1)"/>
31 <define name="UINT16_MAX" value="(__CONCAT(INT16_MAX, U) * 2U + 1U)"/>
32 <define name="INT32_MAX" value="0x7fffffffL"/>
33 <define name="INT32_MIN" value="(-INT32_MAX - 1L)"/>
34 <define name="UINT32_MAX" value="(__CONCAT(INT32_MAX, U) * 2UL + 1UL)"/>
35 <define name="INT64_MAX" value="0x7fffffffffffffffLL"/>
36 <define name="INT64_MIN" value="(-INT64_MAX - 1LL)"/>
37 <define name="UINT64_MAX" value="(__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)"/>
38 <!-- Limits of minimum-width integer types -->
39 <define name="INT_LEAST8_MAX" value="INT8_MAX"/>
40 <define name="INT_LEAST8_MIN" value="INT8_MIN"/>
41 <define name="UINT_LEAST8_MAX" value="UINT8_MAX"/>
42 <define name="INT_LEAST16_MAX" value="INT16_MAX"/>
43 <define name="INT_LEAST16_MIN" value="INT16_MIN"/>
44 <define name="UINT_LEAST16_MAX" value="UINT16_MAX"/>
45 <define name="INT_LEAST32_MAX" value="INT32_MAX"/>
46 <define name="INT_LEAST32_MIN" value="INT32_MIN"/>
47 <define name="UINT_LEAST32_MAX" value="UINT32_MAX"/>
48 <define name="INT_LEAST64_MAX" value="INT64_MAX"/>
49 <define name="INT_LEAST64_MIN" value="INT64_MIN"/>
50 <define name="UINT_LEAST64_MAX" value="UINT64_MAX"/>
51 <!-- Limits of fastest minimum-width integer types -->
52 <define name="INT_FAST8_MAX" value="INT8_MAX"/>
53 <define name="INT_FAST8_MIN" value="INT8_MIN"/>
54 <define name="UINT_FAST8_MAX" value="UINT8_MAX"/>
55 <define name="INT_FAST16_MAX" value="INT16_MAX"/>
56 <define name="INT_FAST16_MIN" value="INT16_MIN"/>
57 <define name="UINT_FAST16_MAX" value="UINT16_MAX"/>
58 <define name="INT_FAST32_MAX" value="INT32_MAX"/>
59 <define name="INT_FAST32_MIN" value="INT32_MIN"/>
60 <define name="UINT_FAST32_MAX" value="UINT32_MAX"/>
61 <define name="INT_FAST64_MAX" value="INT64_MAX"/>
62 <define name="INT_FAST64_MIN" value="INT64_MIN"/>
63 <define name="UINT_FAST64_MAX" value="UINT64_MAX"/>
64 <!-- Limits of integer types capable of holding object pointers -->
65 <define name="INTPTR_MAX" value="INT32_MAX"/>
66 <define name="INTPTR_MIN" value="INT32_MIN"/>
67 <define name="UINTPTR_MAX" value="UINT32_MAX"/>
68 <!-- Limits of greatest-width integer types -->
69 <define name="INTMAX_MAX" value="INT64_MAX"/>
70 <define name="INTMAX_MIN" value="INT64_MIN"/>
71 <define name="UINTMAX_MAX" value="UINT64_MAX"/>
72 <!-- Limits of other integer types -->
73 <define name="PTRDIFF_MAX" value="INT32_MAX"/>
74 <define name="PTRDIFF_MIN" value="INT32_MIN"/>
75 <define name="SIG_ATOMIC_MAX" value="INT8_MAX"/>
76 <define name="SIG_ATOMIC_MIN" value="INT8_MIN"/>
77 <define name="SIZE_MAX" value="(__CONCAT(INT16_MAX, U))"/>
78 <!-- Macros for integer constants -->
79 <define name="INT8_C(value)" value="((int8_t) value)"/>
80 <define name="UINT8_C(value)" value="((uint8_t) __CONCAT(value, U))"/>
81 <define name="INT16_C(value)" value="value"/>
82 <define name="UINT16_C(value)" value="__CONCAT(value, U)"/>
83 <define name="INT32_C(value)" value="__CONCAT(value, L)"/>
84 <define name="UINT32_C(value)" value="__CONCAT(value, UL)"/>
85 <define name="INT64_C(value)" value="__CONCAT(value, LL)"/>
86 <define name="UINT64_C(value)" value="__CONCAT(value, ULL)"/>
87 <define name="INTMAX_C(value)" value="__CONCAT(value, LL)"/>
88 <define name="UINTMAX_C(value)" value="__CONCAT(value, ULL)"/>
89</def>