/ include / limits.h
limits.h
  1  /*
  2   * Copyright (c) 2000, 2004-2007, 2009 Apple Inc. All rights reserved.
  3   *
  4   * @APPLE_LICENSE_HEADER_START@
  5   * 
  6   * This file contains Original Code and/or Modifications of Original Code
  7   * as defined in and that are subject to the Apple Public Source License
  8   * Version 2.0 (the 'License'). You may not use this file except in
  9   * compliance with the License. Please obtain a copy of the License at
 10   * http://www.opensource.apple.com/apsl/ and read it before using this
 11   * file.
 12   * 
 13   * The Original Code and all software distributed under the License are
 14   * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 15   * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 16   * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 17   * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 18   * Please see the License for the specific language governing rights and
 19   * limitations under the License.
 20   * 
 21   * @APPLE_LICENSE_HEADER_END@
 22   */
 23  /*	$NetBSD: limits.h,v 1.8 1996/10/21 05:10:50 jtc Exp $	*/
 24  
 25  /*
 26   * Copyright (c) 1988, 1993
 27   *	The Regents of the University of California.  All rights reserved.
 28   *
 29   * Redistribution and use in source and binary forms, with or without
 30   * modification, are permitted provided that the following conditions
 31   * are met:
 32   * 1. Redistributions of source code must retain the above copyright
 33   *    notice, this list of conditions and the following disclaimer.
 34   * 2. Redistributions in binary form must reproduce the above copyright
 35   *    notice, this list of conditions and the following disclaimer in the
 36   *    documentation and/or other materials provided with the distribution.
 37   * 3. All advertising materials mentioning features or use of this software
 38   *    must display the following acknowledgement:
 39   *	This product includes software developed by the University of
 40   *	California, Berkeley and its contributors.
 41   * 4. Neither the name of the University nor the names of its contributors
 42   *    may be used to endorse or promote products derived from this software
 43   *    without specific prior written permission.
 44   *
 45   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 46   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 47   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 48   * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 49   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 50   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 51   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 52   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 53   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 54   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 55   * SUCH DAMAGE.
 56   *
 57   *	@(#)limits.h	8.2 (Berkeley) 1/4/94
 58   */
 59  
 60  #ifndef _LIMITS_H_
 61  #define	_LIMITS_H_
 62  
 63  #include <sys/cdefs.h>
 64  #include <machine/limits.h>
 65  #ifndef UNIFDEF_DRIVERKIT
 66  #include <sys/syslimits.h>
 67  
 68  #if __DARWIN_C_LEVEL > __DARWIN_C_ANSI
 69  #define	_POSIX_ARG_MAX		4096
 70  #define	_POSIX_CHILD_MAX	25
 71  #define	_POSIX_LINK_MAX		8
 72  #define	_POSIX_MAX_CANON	255
 73  #define	_POSIX_MAX_INPUT	255
 74  #define	_POSIX_NAME_MAX		14
 75  #define	_POSIX_NGROUPS_MAX	8
 76  #define	_POSIX_OPEN_MAX		20
 77  #define	_POSIX_PATH_MAX		256
 78  #define	_POSIX_PIPE_BUF		512
 79  #define	_POSIX_SSIZE_MAX	32767
 80  #define	_POSIX_STREAM_MAX	8
 81  #define	_POSIX_TZNAME_MAX	6
 82  
 83  #define	_POSIX2_BC_BASE_MAX		99
 84  #define	_POSIX2_BC_DIM_MAX		2048
 85  #define	_POSIX2_BC_SCALE_MAX		99
 86  #define	_POSIX2_BC_STRING_MAX		1000
 87  #define	_POSIX2_EQUIV_CLASS_MAX		2
 88  #define	_POSIX2_EXPR_NEST_MAX		32
 89  #define	_POSIX2_LINE_MAX		2048
 90  #define	_POSIX2_RE_DUP_MAX		255
 91  #endif /* __DARWIN_C_LEVEL > __DARWIN_C_ANSI */
 92  
 93  #if __DARWIN_C_LEVEL >= 199309L
 94  #define _POSIX_AIO_LISTIO_MAX   2
 95  #define _POSIX_AIO_MAX          1
 96  #define _POSIX_DELAYTIMER_MAX   32
 97  #define _POSIX_MQ_OPEN_MAX      8
 98  #define _POSIX_MQ_PRIO_MAX	32
 99  #define _POSIX_RTSIG_MAX 			8
100  #define _POSIX_SEM_NSEMS_MAX 			256
101  #define _POSIX_SEM_VALUE_MAX 			32767
102  #define _POSIX_SIGQUEUE_MAX 			32
103  #define _POSIX_TIMER_MAX 			32
104  
105  #define _POSIX_CLOCKRES_MIN 20000000
106  #endif /* __DARWIN_C_LEVEL >= 199309L */
107  
108  #if __DARWIN_C_LEVEL >= 199506L
109  #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 	4
110  #define _POSIX_THREAD_KEYS_MAX 			128
111  #define _POSIX_THREAD_THREADS_MAX 		64
112  
113  #define PTHREAD_DESTRUCTOR_ITERATIONS 	4
114  #define PTHREAD_KEYS_MAX 		512
115  #if defined(__arm__) || defined(__arm64__)
116  #define PTHREAD_STACK_MIN 		16384
117  #else
118  #define PTHREAD_STACK_MIN 		8192
119  #endif
120  #endif /* __DARWIN_C_LEVEL >= 199506L */
121  
122  #if __DARWIN_C_LEVEL >= 200112
123  #define _POSIX_HOST_NAME_MAX    255
124  #define _POSIX_LOGIN_NAME_MAX   9
125  #define _POSIX_SS_REPL_MAX 			4
126  #define _POSIX_SYMLINK_MAX 			255
127  #define _POSIX_SYMLOOP_MAX 			8
128  #define _POSIX_TRACE_EVENT_NAME_MAX 		30
129  #define _POSIX_TRACE_NAME_MAX 			8
130  #define _POSIX_TRACE_SYS_MAX 			8
131  #define _POSIX_TRACE_USER_EVENT_MAX 		32
132  #define _POSIX_TTY_NAME_MAX 			9
133  #define _POSIX2_CHARCLASS_NAME_MAX	14
134  #define	_POSIX2_COLL_WEIGHTS_MAX	2
135  
136  #define _POSIX_RE_DUP_MAX 		_POSIX2_RE_DUP_MAX
137  #endif /* __DARWIN_C_LEVEL >= 200112 */
138  
139  #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
140  #define OFF_MIN		LLONG_MIN	/* min value for an off_t */
141  #define OFF_MAX		LLONG_MAX	/* max value for an off_t */
142  #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
143  
144  /* Actually for XSI Visible */
145  #if __DARWIN_C_LEVEL > __DARWIN_C_ANSI
146  
147  /* Removed in Issue 6 */
148  #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
149  #define PASS_MAX	128
150  #endif
151  
152  #define NL_ARGMAX	9
153  #define NL_LANGMAX	14
154  #define NL_MSGMAX	32767
155  #define NL_NMAX		1
156  #define NL_SETMAX	255
157  #define NL_TEXTMAX	2048
158  
159  #define _XOPEN_IOV_MAX	16
160  #define IOV_MAX		1024
161  #define _XOPEN_NAME_MAX 255
162  #define _XOPEN_PATH_MAX 1024
163  
164  #endif /* __DARWIN_C_LEVEL > __DARWIN_C_ANSI */
165  
166  /* NZERO to be defined here. TBD. See also sys/param.h  */
167  #endif /* UNIFDEF_DRIVERKIT */
168  
169  #endif /* !_LIMITS_H_ */