Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/riscv/include/_stdint.h
39481 views
1
/*-
2
* Copyright (c) 2001, 2002 Mike Barcroft <[email protected]>
3
* Copyright (c) 2001 The NetBSD Foundation, Inc.
4
* All rights reserved.
5
*
6
* This code is derived from software contributed to The NetBSD Foundation
7
* by Klaus Klein.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
* POSSIBILITY OF SUCH DAMAGE.
29
*/
30
31
#ifndef _MACHINE__STDINT_H_
32
#define _MACHINE__STDINT_H_
33
34
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
35
36
#define INT8_C(c) (c)
37
#define INT16_C(c) (c)
38
#define INT32_C(c) (c)
39
#define INT64_C(c) (c ## L)
40
41
#define UINT8_C(c) (c)
42
#define UINT16_C(c) (c)
43
#define UINT32_C(c) (c ## U)
44
#define UINT64_C(c) (c ## UL)
45
46
#define INTMAX_C(c) INT64_C(c)
47
#define UINTMAX_C(c) UINT64_C(c)
48
49
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
50
51
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
52
53
/*
54
* ISO/IEC 9899:1999
55
* 7.18.2.1 Limits of exact-width integer types
56
*/
57
/* Minimum values of exact-width signed integer types. */
58
#define INT8_MIN (-0x7f-1)
59
#define INT16_MIN (-0x7fff-1)
60
#define INT32_MIN (-0x7fffffff-1)
61
#define INT64_MIN (-0x7fffffffffffffffL-1)
62
63
/* Maximum values of exact-width signed integer types. */
64
#define INT8_MAX 0x7f
65
#define INT16_MAX 0x7fff
66
#define INT32_MAX 0x7fffffff
67
#define INT64_MAX 0x7fffffffffffffffL
68
69
/* Maximum values of exact-width unsigned integer types. */
70
#define UINT8_MAX 0xff
71
#define UINT16_MAX 0xffff
72
#define UINT32_MAX 0xffffffffU
73
#define UINT64_MAX 0xffffffffffffffffUL
74
75
/*
76
* ISO/IEC 9899:1999
77
* 7.18.2.2 Limits of minimum-width integer types
78
*/
79
/* Minimum values of minimum-width signed integer types. */
80
#define INT_LEAST8_MIN INT8_MIN
81
#define INT_LEAST16_MIN INT16_MIN
82
#define INT_LEAST32_MIN INT32_MIN
83
#define INT_LEAST64_MIN INT64_MIN
84
85
/* Maximum values of minimum-width signed integer types. */
86
#define INT_LEAST8_MAX INT8_MAX
87
#define INT_LEAST16_MAX INT16_MAX
88
#define INT_LEAST32_MAX INT32_MAX
89
#define INT_LEAST64_MAX INT64_MAX
90
91
/* Maximum values of minimum-width unsigned integer types. */
92
#define UINT_LEAST8_MAX UINT8_MAX
93
#define UINT_LEAST16_MAX UINT16_MAX
94
#define UINT_LEAST32_MAX UINT32_MAX
95
#define UINT_LEAST64_MAX UINT64_MAX
96
97
/*
98
* ISO/IEC 9899:1999
99
* 7.18.2.3 Limits of fastest minimum-width integer types
100
*/
101
/* Minimum values of fastest minimum-width signed integer types. */
102
#define INT_FAST8_MIN INT32_MIN
103
#define INT_FAST16_MIN INT32_MIN
104
#define INT_FAST32_MIN INT32_MIN
105
#define INT_FAST64_MIN INT64_MIN
106
107
/* Maximum values of fastest minimum-width signed integer types. */
108
#define INT_FAST8_MAX INT32_MAX
109
#define INT_FAST16_MAX INT32_MAX
110
#define INT_FAST32_MAX INT32_MAX
111
#define INT_FAST64_MAX INT64_MAX
112
113
/* Maximum values of fastest minimum-width unsigned integer types. */
114
#define UINT_FAST8_MAX UINT32_MAX
115
#define UINT_FAST16_MAX UINT32_MAX
116
#define UINT_FAST32_MAX UINT32_MAX
117
#define UINT_FAST64_MAX UINT64_MAX
118
119
/*
120
* ISO/IEC 9899:1999
121
* 7.18.2.4 Limits of integer types capable of holding object pointers
122
*/
123
#define INTPTR_MIN INT64_MIN
124
#define INTPTR_MAX INT64_MAX
125
#define UINTPTR_MAX UINT64_MAX
126
127
/*
128
* ISO/IEC 9899:1999
129
* 7.18.2.5 Limits of greatest-width integer types
130
*/
131
#define INTMAX_MIN INT64_MIN
132
#define INTMAX_MAX INT64_MAX
133
#define UINTMAX_MAX UINT64_MAX
134
135
/*
136
* ISO/IEC 9899:1999
137
* 7.18.3 Limits of other integer types
138
*/
139
/* Limits of ptrdiff_t. */
140
#define PTRDIFF_MIN INT64_MIN
141
#define PTRDIFF_MAX INT64_MAX
142
143
/* Limits of sig_atomic_t. */
144
#define SIG_ATOMIC_MIN INT64_MIN
145
#define SIG_ATOMIC_MAX INT64_MAX
146
147
/* Limit of size_t. */
148
#define SIZE_MAX UINT64_MAX
149
150
/* Limits of wint_t. */
151
#define WINT_MIN INT32_MIN
152
#define WINT_MAX INT32_MAX
153
154
#endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
155
156
#endif /* !_MACHINE__STDINT_H_ */
157
158