1169689Skan/* This file is automatically generated.  DO NOT EDIT! */
2169689Skan/* Generated from: NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp  */
3169689Skan/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4169689Skan
5169689Skan/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
6169689Skan/* A GNU-like <limits.h>.
7169689Skan
8169689Skan   Copyright 2016-2022 Free Software Foundation, Inc.
9169689Skan
10169689Skan   This file is free software: you can redistribute it and/or modify
11169689Skan   it under the terms of the GNU Lesser General Public License as
12169689Skan   published by the Free Software Foundation; either version 2.1 of the
13169689Skan   License, or (at your option) any later version.
14169689Skan
15169689Skan   This file is distributed in the hope that it will be useful,
16169689Skan   but WITHOUT ANY WARRANTY; without even the implied warranty of
17169689Skan   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18169689Skan   GNU Lesser General Public License for more details.
19169689Skan
20169689Skan   You should have received a copy of the GNU Lesser General Public License
21169689Skan   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
22169689Skan
23169689Skan#if __GNUC__ >= 3
24169689Skan#pragma GCC system_header
25169689Skan#endif
26169689Skan
27169689Skan
28169689Skan#if defined _GL_ALREADY_INCLUDING_LIMITS_H
29169689Skan/* Special invocation convention:
30169689Skan   On Haiku/x86_64, we have a sequence of nested includes
31169689Skan   <limits.h> -> <syslimits.h> -> <limits.h>.
32169689Skan   In this situation, LONG_MAX and INT_MAX are not yet defined,
33169689Skan   therefore we should not attempt to define LONG_BIT.  */
34169689Skan
35169689Skan#include_next <limits.h>
36169689Skan
37169689Skan#else
38169689Skan/* Normal invocation convention.  */
39169689Skan
40169689Skan#ifndef _GL_LIMITS_H
41169689Skan
42169689Skan# define _GL_ALREADY_INCLUDING_LIMITS_H
43169689Skan
44169689Skan/* The include_next requires a split double-inclusion guard.  */
45169689Skan# include_next <limits.h>
46169689Skan
47169689Skan# undef _GL_ALREADY_INCLUDING_LIMITS_H
48169689Skan
49169689Skan#ifndef _GL_LIMITS_H
50169689Skan#define _GL_LIMITS_H
51169689Skan
52169689Skan#ifndef LLONG_MIN
53169689Skan# if defined LONG_LONG_MIN /* HP-UX 11.31 */
54169689Skan#  define LLONG_MIN LONG_LONG_MIN
55169689Skan# elif defined LONGLONG_MIN /* IRIX 6.5 */
56169689Skan#  define LLONG_MIN LONGLONG_MIN
57169689Skan# elif defined __GNUC__
58169689Skan#  define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL)
59169689Skan# endif
60169689Skan#endif
61169689Skan#ifndef LLONG_MAX
62169689Skan# if defined LONG_LONG_MAX /* HP-UX 11.31 */
63169689Skan#  define LLONG_MAX LONG_LONG_MAX
64169689Skan# elif defined LONGLONG_MAX /* IRIX 6.5 */
65169689Skan#  define LLONG_MAX LONGLONG_MAX
66169689Skan# elif defined __GNUC__
67169689Skan#  define LLONG_MAX __LONG_LONG_MAX__
68169689Skan# endif
69169689Skan#endif
70169689Skan#ifndef ULLONG_MAX
71169689Skan# if defined ULONG_LONG_MAX /* HP-UX 11.31 */
72169689Skan#  define ULLONG_MAX ULONG_LONG_MAX
73169689Skan# elif defined ULONGLONG_MAX /* IRIX 6.5 */
74169689Skan#  define ULLONG_MAX ULONGLONG_MAX
75169689Skan# elif defined __GNUC__
76169689Skan#  define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL)
77169689Skan# endif
78169689Skan#endif
79169689Skan
80169689Skan/* The number of usable bits in an unsigned or signed integer type
81169689Skan   with minimum value MIN and maximum value MAX, as an int expression
82169689Skan   suitable in #if.  Cover all known practical hosts.  This
83169689Skan   implementation exploits the fact that MAX is 1 less than a power of
84169689Skan   2, and merely counts the number of 1 bits in MAX; "COBn" means
85169689Skan   "count the number of 1 bits in the low-order n bits").  */
86169689Skan#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max))
87169689Skan#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n))
88169689Skan#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n))
89169689Skan#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n))
90169689Skan#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n))
91169689Skan#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n))
92169689Skan#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1))
93169689Skan
94169689Skan#ifndef WORD_BIT
95169689Skan/* Assume 'int' is 32 bits wide.  */
96169689Skan# define WORD_BIT 32
97169689Skan#endif
98169689Skan#ifndef LONG_BIT
99169689Skan/* Assume 'long' is 32 or 64 bits wide.  */
100169689Skan# if LONG_MAX == INT_MAX
101169689Skan#  define LONG_BIT 32
102169689Skan# else
103169689Skan#  define LONG_BIT 64
104169689Skan# endif
105169689Skan#endif
106169689Skan
107169689Skan/* Macros specified by C2x and by ISO/IEC TS 18661-1:2014.  */
108169689Skan
109169689Skan#if (! defined ULLONG_WIDTH                                             \
110169689Skan     && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \
111169689Skan         || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)))
112169689Skan# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX)
113169689Skan# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX)
114169689Skan# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX)
115169689Skan# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX)
116169689Skan# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX)
117169689Skan# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX)
118169689Skan# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX)
119169689Skan# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX)
120169689Skan# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX)
121169689Skan# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX)
122169689Skan# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX)
123169689Skan#endif
124169689Skan
125169689Skan/* Macros specified by C2x.  */
126169689Skan
127169689Skan#if (! defined BOOL_WIDTH \
128169689Skan     && (defined _GNU_SOURCE \
129169689Skan         || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)))
130169689Skan# define BOOL_MAX 1
131169689Skan# define BOOL_WIDTH 1
132169689Skan#endif
133169689Skan
134169689Skan#endif /* _GL_LIMITS_H */
135169689Skan#endif /* _GL_LIMITS_H */
136169689Skan#endif
137169689Skan