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