160727d8bSWarner Losh /*- 251369649SPedro F. Giffuni * SPDX-License-Identifier: BSD-3-Clause 351369649SPedro F. Giffuni * 46fd839f9SAlexander Kabaev * Copyright (c) 1988, 1993 56fd839f9SAlexander Kabaev * The Regents of the University of California. All rights reserved. 66fd839f9SAlexander Kabaev * 76fd839f9SAlexander Kabaev * Redistribution and use in source and binary forms, with or without 86fd839f9SAlexander Kabaev * modification, are permitted provided that the following conditions 96fd839f9SAlexander Kabaev * are met: 106fd839f9SAlexander Kabaev * 1. Redistributions of source code must retain the above copyright 116fd839f9SAlexander Kabaev * notice, this list of conditions and the following disclaimer. 126fd839f9SAlexander Kabaev * 2. Redistributions in binary form must reproduce the above copyright 136fd839f9SAlexander Kabaev * notice, this list of conditions and the following disclaimer in the 146fd839f9SAlexander Kabaev * documentation and/or other materials provided with the distribution. 15fbbd9655SWarner Losh * 3. Neither the name of the University nor the names of its contributors 166fd839f9SAlexander Kabaev * may be used to endorse or promote products derived from this software 176fd839f9SAlexander Kabaev * without specific prior written permission. 186fd839f9SAlexander Kabaev * 196fd839f9SAlexander Kabaev * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 206fd839f9SAlexander Kabaev * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 216fd839f9SAlexander Kabaev * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 226fd839f9SAlexander Kabaev * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 236fd839f9SAlexander Kabaev * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 246fd839f9SAlexander Kabaev * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 256fd839f9SAlexander Kabaev * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 266fd839f9SAlexander Kabaev * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 276fd839f9SAlexander Kabaev * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 286fd839f9SAlexander Kabaev * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 296fd839f9SAlexander Kabaev * SUCH DAMAGE. 306fd839f9SAlexander Kabaev */ 316fd839f9SAlexander Kabaev 326fd839f9SAlexander Kabaev #ifndef _SYS_LIMITS_H_ 336fd839f9SAlexander Kabaev #define _SYS_LIMITS_H_ 346fd839f9SAlexander Kabaev 350eda4c08SAlexander Kabaev #include <sys/cdefs.h> 366fd839f9SAlexander Kabaev #include <machine/_limits.h> 376fd839f9SAlexander Kabaev 386fd839f9SAlexander Kabaev #define CHAR_BIT __CHAR_BIT /* number of bits in a char */ 396fd839f9SAlexander Kabaev 406fd839f9SAlexander Kabaev #define SCHAR_MAX __SCHAR_MAX /* max value for a signed char */ 416fd839f9SAlexander Kabaev #define SCHAR_MIN __SCHAR_MIN /* min value for a signed char */ 426fd839f9SAlexander Kabaev 436fd839f9SAlexander Kabaev #define UCHAR_MAX __UCHAR_MAX /* max value for an unsigned char */ 4435653f38SAlexander Kabaev 4535653f38SAlexander Kabaev #ifdef __CHAR_UNSIGNED__ 4635653f38SAlexander Kabaev #define CHAR_MAX UCHAR_MAX /* max value for a char */ 4735653f38SAlexander Kabaev #define CHAR_MIN 0 /* min value for a char */ 4835653f38SAlexander Kabaev #else 490eda4c08SAlexander Kabaev #define CHAR_MAX SCHAR_MAX 500eda4c08SAlexander Kabaev #define CHAR_MIN SCHAR_MIN 5135653f38SAlexander Kabaev #endif 526fd839f9SAlexander Kabaev 536fd839f9SAlexander Kabaev #define USHRT_MAX __USHRT_MAX /* max value for an unsigned short */ 546fd839f9SAlexander Kabaev #define SHRT_MAX __SHRT_MAX /* max value for a short */ 556fd839f9SAlexander Kabaev #define SHRT_MIN __SHRT_MIN /* min value for a short */ 566fd839f9SAlexander Kabaev 575c352f0eSAlexander Kabaev #define UINT_MAX __UINT_MAX /* max value for an unsigned int */ 586fd839f9SAlexander Kabaev #define INT_MAX __INT_MAX /* max value for an int */ 596fd839f9SAlexander Kabaev #define INT_MIN __INT_MIN /* min value for an int */ 606fd839f9SAlexander Kabaev 616fd839f9SAlexander Kabaev #define ULONG_MAX __ULONG_MAX /* max for an unsigned long */ 626fd839f9SAlexander Kabaev #define LONG_MAX __LONG_MAX /* max for a long */ 636fd839f9SAlexander Kabaev #define LONG_MIN __LONG_MIN /* min for a long */ 646fd839f9SAlexander Kabaev 650eda4c08SAlexander Kabaev #ifdef __LONG_LONG_SUPPORTED 660eda4c08SAlexander Kabaev #define ULLONG_MAX __ULLONG_MAX /* max for an unsigned long long */ 676fd839f9SAlexander Kabaev #define LLONG_MAX __LLONG_MAX /* max for a long long */ 686fd839f9SAlexander Kabaev #define LLONG_MIN __LLONG_MIN /* min for a long long */ 690eda4c08SAlexander Kabaev #endif 706fd839f9SAlexander Kabaev 71980ded9aSAlexander Kabaev #if __POSIX_VISIBLE || __XSI_VISIBLE 72980ded9aSAlexander Kabaev #define SSIZE_MAX __SSIZE_MAX /* max value for an ssize_t */ 73980ded9aSAlexander Kabaev #endif 746fd839f9SAlexander Kabaev 75980ded9aSAlexander Kabaev #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE 766fd839f9SAlexander Kabaev #define SIZE_T_MAX __SIZE_T_MAX /* max value for a size_t */ 776fd839f9SAlexander Kabaev 78980ded9aSAlexander Kabaev #define OFF_MAX __OFF_MAX /* max value for an off_t */ 79980ded9aSAlexander Kabaev #define OFF_MIN __OFF_MIN /* min value for an off_t */ 80980ded9aSAlexander Kabaev #endif 816fd839f9SAlexander Kabaev 82980ded9aSAlexander Kabaev #if __BSD_VISIBLE 83657ea5ebSMax Laier #define GID_MAX UINT_MAX /* max value for a gid_t */ 84657ea5ebSMax Laier #define UID_MAX UINT_MAX /* max value for a uid_t */ 85657ea5ebSMax Laier 866fd839f9SAlexander Kabaev #define UQUAD_MAX (__UQUAD_MAX) /* max value for a uquad_t */ 876fd839f9SAlexander Kabaev #define QUAD_MAX (__QUAD_MAX) /* max value for a quad_t */ 886fd839f9SAlexander Kabaev #define QUAD_MIN (__QUAD_MIN) /* min value for a quad_t */ 89980ded9aSAlexander Kabaev #endif 906fd839f9SAlexander Kabaev 91e39ab7e0SJilles Tjoelker #if __XSI_VISIBLE || __POSIX_VISIBLE >= 200809 926fd839f9SAlexander Kabaev #define LONG_BIT __LONG_BIT 936fd839f9SAlexander Kabaev #define WORD_BIT __WORD_BIT 946fd839f9SAlexander Kabaev #endif 956fd839f9SAlexander Kabaev 9606a7aa69SDavid Xu #if __POSIX_VISIBLE 9706a7aa69SDavid Xu #define MQ_PRIO_MAX 64 9806a7aa69SDavid Xu #endif 9906a7aa69SDavid Xu 1006fd839f9SAlexander Kabaev #endif /* !_SYS_LIMITS_H_ */ 101