1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* 23*7c478bd9Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 24*7c478bd9Sstevel@tonic-gate * Use is subject to license terms. 25*7c478bd9Sstevel@tonic-gate */ 26*7c478bd9Sstevel@tonic-gate 27*7c478bd9Sstevel@tonic-gate /* Copyright (c) 1988 AT&T */ 28*7c478bd9Sstevel@tonic-gate /* All Rights Reserved */ 29*7c478bd9Sstevel@tonic-gate 30*7c478bd9Sstevel@tonic-gate 31*7c478bd9Sstevel@tonic-gate #ifndef _LIMITS_H 32*7c478bd9Sstevel@tonic-gate #define _LIMITS_H 33*7c478bd9Sstevel@tonic-gate 34*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.34 */ 35*7c478bd9Sstevel@tonic-gate 36*7c478bd9Sstevel@tonic-gate #include <sys/feature_tests.h> 37*7c478bd9Sstevel@tonic-gate #include <sys/isa_defs.h> 38*7c478bd9Sstevel@tonic-gate #include <iso/limits_iso.h> 39*7c478bd9Sstevel@tonic-gate 40*7c478bd9Sstevel@tonic-gate /* 41*7c478bd9Sstevel@tonic-gate * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C 42*7c478bd9Sstevel@tonic-gate * committee's working draft for the revision of the current ISO C standard, 43*7c478bd9Sstevel@tonic-gate * ISO/IEC 9899:1990 Programming language - C. These are not currently 44*7c478bd9Sstevel@tonic-gate * required by any standard but constitute a useful, general purpose set 45*7c478bd9Sstevel@tonic-gate * of type definitions and limits which is namespace clean with respect to 46*7c478bd9Sstevel@tonic-gate * all standards. 47*7c478bd9Sstevel@tonic-gate */ 48*7c478bd9Sstevel@tonic-gate #if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \ 49*7c478bd9Sstevel@tonic-gate defined(__XOPEN_OR_POSIX) 50*7c478bd9Sstevel@tonic-gate #include <sys/int_limits.h> 51*7c478bd9Sstevel@tonic-gate #endif 52*7c478bd9Sstevel@tonic-gate 53*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 54*7c478bd9Sstevel@tonic-gate extern "C" { 55*7c478bd9Sstevel@tonic-gate #endif 56*7c478bd9Sstevel@tonic-gate 57*7c478bd9Sstevel@tonic-gate #if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \ 58*7c478bd9Sstevel@tonic-gate defined(__XOPEN_OR_POSIX) 59*7c478bd9Sstevel@tonic-gate 60*7c478bd9Sstevel@tonic-gate #define SSIZE_MAX LONG_MAX /* max value of an "ssize_t" */ 61*7c478bd9Sstevel@tonic-gate 62*7c478bd9Sstevel@tonic-gate /* 63*7c478bd9Sstevel@tonic-gate * ARG_MAX is calculated as follows: 64*7c478bd9Sstevel@tonic-gate * NCARGS - space for other stuff on initial stack 65*7c478bd9Sstevel@tonic-gate * like aux vectors, saved registers, etc.. 66*7c478bd9Sstevel@tonic-gate */ 67*7c478bd9Sstevel@tonic-gate #define _ARG_MAX32 1048320 /* max length of args to exec 32-bit program */ 68*7c478bd9Sstevel@tonic-gate #define _ARG_MAX64 2096640 /* max length of args to exec 64-bit program */ 69*7c478bd9Sstevel@tonic-gate #ifdef _LP64 70*7c478bd9Sstevel@tonic-gate #define ARG_MAX _ARG_MAX64 /* max length of arguments to exec */ 71*7c478bd9Sstevel@tonic-gate #else /* _LP64 */ 72*7c478bd9Sstevel@tonic-gate #define ARG_MAX _ARG_MAX32 /* max length of arguments to exec */ 73*7c478bd9Sstevel@tonic-gate #endif /* _LP64 */ 74*7c478bd9Sstevel@tonic-gate 75*7c478bd9Sstevel@tonic-gate #ifndef MAX_CANON 76*7c478bd9Sstevel@tonic-gate #define MAX_CANON 256 /* max bytes in line for canonical processing */ 77*7c478bd9Sstevel@tonic-gate #endif 78*7c478bd9Sstevel@tonic-gate 79*7c478bd9Sstevel@tonic-gate #ifndef MAX_INPUT 80*7c478bd9Sstevel@tonic-gate #define MAX_INPUT 512 /* max size of a char input buffer */ 81*7c478bd9Sstevel@tonic-gate #endif 82*7c478bd9Sstevel@tonic-gate 83*7c478bd9Sstevel@tonic-gate #define NGROUPS_MAX 16 /* max number of groups for a user */ 84*7c478bd9Sstevel@tonic-gate 85*7c478bd9Sstevel@tonic-gate #ifndef PATH_MAX 86*7c478bd9Sstevel@tonic-gate #define PATH_MAX 1024 /* max # of characters in a path name */ 87*7c478bd9Sstevel@tonic-gate #endif 88*7c478bd9Sstevel@tonic-gate 89*7c478bd9Sstevel@tonic-gate #define SYMLINK_MAX 1024 /* max # of characters a symlink can contain */ 90*7c478bd9Sstevel@tonic-gate 91*7c478bd9Sstevel@tonic-gate #define PIPE_BUF 5120 /* max # bytes atomic in write to a pipe */ 92*7c478bd9Sstevel@tonic-gate 93*7c478bd9Sstevel@tonic-gate #ifndef TMP_MAX 94*7c478bd9Sstevel@tonic-gate #define TMP_MAX 17576 /* 26 * 26 * 26 */ 95*7c478bd9Sstevel@tonic-gate #endif 96*7c478bd9Sstevel@tonic-gate 97*7c478bd9Sstevel@tonic-gate /* 98*7c478bd9Sstevel@tonic-gate * POSIX conformant definitions - An implementation may define 99*7c478bd9Sstevel@tonic-gate * other symbols which reflect the actual implementation. Alternate 100*7c478bd9Sstevel@tonic-gate * definitions may not be as restrictive as the POSIX definitions. 101*7c478bd9Sstevel@tonic-gate */ 102*7c478bd9Sstevel@tonic-gate #define _POSIX_AIO_LISTIO_MAX 2 103*7c478bd9Sstevel@tonic-gate #define _POSIX_AIO_MAX 1 104*7c478bd9Sstevel@tonic-gate #define _POSIX_ARG_MAX 4096 105*7c478bd9Sstevel@tonic-gate #ifdef _XPG6 106*7c478bd9Sstevel@tonic-gate #define _POSIX_CHILD_MAX 25 107*7c478bd9Sstevel@tonic-gate #else 108*7c478bd9Sstevel@tonic-gate #define _POSIX_CHILD_MAX 6 /* POSIX.1-1990 default */ 109*7c478bd9Sstevel@tonic-gate #endif 110*7c478bd9Sstevel@tonic-gate #define _POSIX_CLOCKRES_MIN 20000000 111*7c478bd9Sstevel@tonic-gate #define _POSIX_DELAYTIMER_MAX 32 112*7c478bd9Sstevel@tonic-gate #define _POSIX_LINK_MAX 8 113*7c478bd9Sstevel@tonic-gate #define _POSIX_MAX_CANON 255 114*7c478bd9Sstevel@tonic-gate #define _POSIX_MAX_INPUT 255 115*7c478bd9Sstevel@tonic-gate #define _POSIX_MQ_OPEN_MAX 8 116*7c478bd9Sstevel@tonic-gate #define _POSIX_MQ_PRIO_MAX 32 117*7c478bd9Sstevel@tonic-gate #define _POSIX_NAME_MAX 14 118*7c478bd9Sstevel@tonic-gate #ifdef _XPG6 119*7c478bd9Sstevel@tonic-gate #define _POSIX_NGROUPS_MAX 8 120*7c478bd9Sstevel@tonic-gate #define _POSIX_OPEN_MAX 20 121*7c478bd9Sstevel@tonic-gate #define _POSIX_PATH_MAX 256 122*7c478bd9Sstevel@tonic-gate #else /* POSIX.1-1990 defaults */ 123*7c478bd9Sstevel@tonic-gate #define _POSIX_NGROUPS_MAX 0 124*7c478bd9Sstevel@tonic-gate #define _POSIX_OPEN_MAX 16 125*7c478bd9Sstevel@tonic-gate #define _POSIX_PATH_MAX 255 126*7c478bd9Sstevel@tonic-gate #endif 127*7c478bd9Sstevel@tonic-gate #define _POSIX_PIPE_BUF 512 128*7c478bd9Sstevel@tonic-gate #define _POSIX_RTSIG_MAX 8 129*7c478bd9Sstevel@tonic-gate #define _POSIX_SEM_NSEMS_MAX 256 130*7c478bd9Sstevel@tonic-gate #define _POSIX_SEM_VALUE_MAX 32767 131*7c478bd9Sstevel@tonic-gate #define _POSIX_SIGQUEUE_MAX 32 132*7c478bd9Sstevel@tonic-gate #define _POSIX_SSIZE_MAX 32767 133*7c478bd9Sstevel@tonic-gate #define _POSIX_STREAM_MAX 8 134*7c478bd9Sstevel@tonic-gate #define _POSIX_TIMER_MAX 32 135*7c478bd9Sstevel@tonic-gate #ifdef _XPG6 136*7c478bd9Sstevel@tonic-gate #define _POSIX_TZNAME_MAX 6 137*7c478bd9Sstevel@tonic-gate #else 138*7c478bd9Sstevel@tonic-gate #define _POSIX_TZNAME_MAX 3 /* POSIX.1-1990 default */ 139*7c478bd9Sstevel@tonic-gate #endif 140*7c478bd9Sstevel@tonic-gate /* POSIX.1c conformant */ 141*7c478bd9Sstevel@tonic-gate #define _POSIX_LOGIN_NAME_MAX 9 142*7c478bd9Sstevel@tonic-gate #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 143*7c478bd9Sstevel@tonic-gate #define _POSIX_THREAD_KEYS_MAX 128 144*7c478bd9Sstevel@tonic-gate #define _POSIX_THREAD_THREADS_MAX 64 145*7c478bd9Sstevel@tonic-gate #define _POSIX_TTY_NAME_MAX 9 146*7c478bd9Sstevel@tonic-gate /* UNIX 03 conformant */ 147*7c478bd9Sstevel@tonic-gate #define _POSIX_HOST_NAME_MAX 255 148*7c478bd9Sstevel@tonic-gate #define _POSIX_RE_DUP_MAX 255 149*7c478bd9Sstevel@tonic-gate #define _POSIX_SYMLINK_MAX 255 150*7c478bd9Sstevel@tonic-gate #define _POSIX_SYMLOOP_MAX 8 151*7c478bd9Sstevel@tonic-gate 152*7c478bd9Sstevel@tonic-gate /* 153*7c478bd9Sstevel@tonic-gate * POSIX.2 and XPG4-XSH4 conformant definitions 154*7c478bd9Sstevel@tonic-gate */ 155*7c478bd9Sstevel@tonic-gate 156*7c478bd9Sstevel@tonic-gate #define _POSIX2_BC_BASE_MAX 99 157*7c478bd9Sstevel@tonic-gate #define _POSIX2_BC_DIM_MAX 2048 158*7c478bd9Sstevel@tonic-gate #define _POSIX2_BC_SCALE_MAX 99 159*7c478bd9Sstevel@tonic-gate #define _POSIX2_BC_STRING_MAX 1000 160*7c478bd9Sstevel@tonic-gate #define _POSIX2_COLL_WEIGHTS_MAX 2 161*7c478bd9Sstevel@tonic-gate #define _POSIX2_EXPR_NEST_MAX 32 162*7c478bd9Sstevel@tonic-gate #define _POSIX2_LINE_MAX 2048 163*7c478bd9Sstevel@tonic-gate #define _POSIX2_RE_DUP_MAX 255 164*7c478bd9Sstevel@tonic-gate /* UNIX 03 conformant */ 165*7c478bd9Sstevel@tonic-gate #define _POSIX2_CHARCLASS_NAME_MAX 14 166*7c478bd9Sstevel@tonic-gate 167*7c478bd9Sstevel@tonic-gate #define BC_BASE_MAX _POSIX2_BC_BASE_MAX 168*7c478bd9Sstevel@tonic-gate #define BC_DIM_MAX _POSIX2_BC_DIM_MAX 169*7c478bd9Sstevel@tonic-gate #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX 170*7c478bd9Sstevel@tonic-gate #define BC_STRING_MAX _POSIX2_BC_STRING_MAX 171*7c478bd9Sstevel@tonic-gate #define COLL_WEIGHTS_MAX 10 172*7c478bd9Sstevel@tonic-gate #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX 173*7c478bd9Sstevel@tonic-gate #define LINE_MAX _POSIX2_LINE_MAX 174*7c478bd9Sstevel@tonic-gate #if !defined(_XPG6) 175*7c478bd9Sstevel@tonic-gate #define RE_DUP_MAX _POSIX2_RE_DUP_MAX 176*7c478bd9Sstevel@tonic-gate #else 177*7c478bd9Sstevel@tonic-gate #define RE_DUP_MAX _POSIX_RE_DUP_MAX 178*7c478bd9Sstevel@tonic-gate #endif /* !defined(_XPG6) */ 179*7c478bd9Sstevel@tonic-gate 180*7c478bd9Sstevel@tonic-gate #endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */ 181*7c478bd9Sstevel@tonic-gate 182*7c478bd9Sstevel@tonic-gate #if defined(__EXTENSIONS__) || \ 183*7c478bd9Sstevel@tonic-gate (!defined(_STRICT_STDC) && !defined(_POSIX_C_SOURCE)) || \ 184*7c478bd9Sstevel@tonic-gate defined(_XOPEN_SOURCE) 185*7c478bd9Sstevel@tonic-gate 186*7c478bd9Sstevel@tonic-gate /* 187*7c478bd9Sstevel@tonic-gate * For dual definitions for PASS_MAX and sysconf.c 188*7c478bd9Sstevel@tonic-gate */ 189*7c478bd9Sstevel@tonic-gate #define _PASS_MAX_XPG 8 /* old standards PASS_MAX */ 190*7c478bd9Sstevel@tonic-gate #define _PASS_MAX 256 /* modern Solaris PASS_MAX */ 191*7c478bd9Sstevel@tonic-gate 192*7c478bd9Sstevel@tonic-gate #if defined(_XPG3) && !defined(_XPG6) 193*7c478bd9Sstevel@tonic-gate #define PASS_MAX _PASS_MAX_XPG /* max # of characters in a password */ 194*7c478bd9Sstevel@tonic-gate #else /* XPG6 or just Solaris */ 195*7c478bd9Sstevel@tonic-gate #define PASS_MAX _PASS_MAX /* max # of characters in a password */ 196*7c478bd9Sstevel@tonic-gate #endif /* defined(_XPG3) && !defined(_XPG6) */ 197*7c478bd9Sstevel@tonic-gate 198*7c478bd9Sstevel@tonic-gate #define CHARCLASS_NAME_MAX _POSIX2_CHARCLASS_NAME_MAX 199*7c478bd9Sstevel@tonic-gate 200*7c478bd9Sstevel@tonic-gate #define NL_ARGMAX 9 /* max value of "digit" in calls to the */ 201*7c478bd9Sstevel@tonic-gate /* NLS printf() and scanf() */ 202*7c478bd9Sstevel@tonic-gate #define NL_LANGMAX 14 /* max # of bytes in a LANG name */ 203*7c478bd9Sstevel@tonic-gate #define NL_MSGMAX 32767 /* max message number */ 204*7c478bd9Sstevel@tonic-gate #define NL_NMAX 1 /* max # bytes in N-to-1 mapping characters */ 205*7c478bd9Sstevel@tonic-gate #define NL_SETMAX 255 /* max set number */ 206*7c478bd9Sstevel@tonic-gate #define NL_TEXTMAX 2048 /* max set number */ 207*7c478bd9Sstevel@tonic-gate #define NZERO 20 /* default process priority */ 208*7c478bd9Sstevel@tonic-gate 209*7c478bd9Sstevel@tonic-gate #define WORD_BIT 32 /* # of bits in a "word" or "int" */ 210*7c478bd9Sstevel@tonic-gate #if defined(_LP64) 211*7c478bd9Sstevel@tonic-gate #define LONG_BIT 64 /* # of bits in a "long" */ 212*7c478bd9Sstevel@tonic-gate #else /* _ILP32 */ 213*7c478bd9Sstevel@tonic-gate #define LONG_BIT 32 /* # of bits in a "long" */ 214*7c478bd9Sstevel@tonic-gate #endif 215*7c478bd9Sstevel@tonic-gate 216*7c478bd9Sstevel@tonic-gate /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */ 217*7c478bd9Sstevel@tonic-gate #ifndef _XPG6 218*7c478bd9Sstevel@tonic-gate #define DBL_DIG 15 /* digits of precision of a "double" */ 219*7c478bd9Sstevel@tonic-gate #define DBL_MAX 1.7976931348623157081452E+308 /* max decimal value */ 220*7c478bd9Sstevel@tonic-gate /* of a double */ 221*7c478bd9Sstevel@tonic-gate #define FLT_DIG 6 /* digits of precision of a "float" */ 222*7c478bd9Sstevel@tonic-gate #define FLT_MAX 3.4028234663852885981170E+38F /* max decimal value */ 223*7c478bd9Sstevel@tonic-gate /* of a "float" */ 224*7c478bd9Sstevel@tonic-gate #endif 225*7c478bd9Sstevel@tonic-gate 226*7c478bd9Sstevel@tonic-gate /* Marked as LEGACY in SUSv1 and removed in SUSv2 */ 227*7c478bd9Sstevel@tonic-gate #ifndef _XPG5 228*7c478bd9Sstevel@tonic-gate #define DBL_MIN 2.2250738585072013830903E-308 /* min decimal value */ 229*7c478bd9Sstevel@tonic-gate /* of a double */ 230*7c478bd9Sstevel@tonic-gate #define FLT_MIN 1.1754943508222875079688E-38F /* min decimal value */ 231*7c478bd9Sstevel@tonic-gate /* of a float */ 232*7c478bd9Sstevel@tonic-gate #endif 233*7c478bd9Sstevel@tonic-gate 234*7c478bd9Sstevel@tonic-gate #endif /* defined(__EXTENSIONS__) || (!defined(_STRICT_STDC) ... */ 235*7c478bd9Sstevel@tonic-gate 236*7c478bd9Sstevel@tonic-gate #define _XOPEN_IOV_MAX 16 /* max # iovec/process with readv()/writev() */ 237*7c478bd9Sstevel@tonic-gate #define _XOPEN_NAME_MAX 255 /* max # bytes in filename excluding null */ 238*7c478bd9Sstevel@tonic-gate #define _XOPEN_PATH_MAX 1024 /* max # bytes in a pathname */ 239*7c478bd9Sstevel@tonic-gate 240*7c478bd9Sstevel@tonic-gate #define IOV_MAX _XOPEN_IOV_MAX 241*7c478bd9Sstevel@tonic-gate 242*7c478bd9Sstevel@tonic-gate #if defined(__EXTENSIONS__) || \ 243*7c478bd9Sstevel@tonic-gate (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) 244*7c478bd9Sstevel@tonic-gate 245*7c478bd9Sstevel@tonic-gate #define FCHR_MAX 1048576 /* max size of a file in bytes */ 246*7c478bd9Sstevel@tonic-gate #define PID_MAX 999999 /* max value for a process ID */ 247*7c478bd9Sstevel@tonic-gate 248*7c478bd9Sstevel@tonic-gate /* 249*7c478bd9Sstevel@tonic-gate * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the 250*7c478bd9Sstevel@tonic-gate * related text states: 251*7c478bd9Sstevel@tonic-gate * 252*7c478bd9Sstevel@tonic-gate * A definition of one of the values from Table 2-5 shall be omitted from the 253*7c478bd9Sstevel@tonic-gate * <limits.h> on specific implementations where the corresponding value is 254*7c478bd9Sstevel@tonic-gate * equal to or greater than the stated minimum, but where the value can vary 255*7c478bd9Sstevel@tonic-gate * depending on the file to which it is applied. The actual value supported for 256*7c478bd9Sstevel@tonic-gate * a specific pathname shall be provided by the pathconf() (5.7.1) function. 257*7c478bd9Sstevel@tonic-gate * 258*7c478bd9Sstevel@tonic-gate * This is clear that any machine supporting multiple file system types 259*7c478bd9Sstevel@tonic-gate * and/or a network can not include this define, regardless of protection 260*7c478bd9Sstevel@tonic-gate * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags. 261*7c478bd9Sstevel@tonic-gate * 262*7c478bd9Sstevel@tonic-gate * #define NAME_MAX 14 263*7c478bd9Sstevel@tonic-gate */ 264*7c478bd9Sstevel@tonic-gate 265*7c478bd9Sstevel@tonic-gate #define CHILD_MAX 25 /* max # of processes per user id */ 266*7c478bd9Sstevel@tonic-gate #ifndef OPEN_MAX 267*7c478bd9Sstevel@tonic-gate #define OPEN_MAX 256 /* max # of files a process can have open */ 268*7c478bd9Sstevel@tonic-gate #endif 269*7c478bd9Sstevel@tonic-gate 270*7c478bd9Sstevel@tonic-gate #define PIPE_MAX 5120 /* max # bytes written to a pipe in a write */ 271*7c478bd9Sstevel@tonic-gate 272*7c478bd9Sstevel@tonic-gate #define STD_BLK 1024 /* # bytes in a physical I/O block */ 273*7c478bd9Sstevel@tonic-gate #define UID_MAX 2147483647 /* max value for a user or group ID */ 274*7c478bd9Sstevel@tonic-gate #define USI_MAX 4294967295 /* max decimal value of an "unsigned" */ 275*7c478bd9Sstevel@tonic-gate #define SYSPID_MAX 1 /* max pid of system processes */ 276*7c478bd9Sstevel@tonic-gate 277*7c478bd9Sstevel@tonic-gate #ifndef SYS_NMLN /* also defined in sys/utsname.h */ 278*7c478bd9Sstevel@tonic-gate #define SYS_NMLN 257 /* 4.0 size of utsname elements */ 279*7c478bd9Sstevel@tonic-gate #endif 280*7c478bd9Sstevel@tonic-gate 281*7c478bd9Sstevel@tonic-gate #ifndef CLK_TCK 282*7c478bd9Sstevel@tonic-gate 283*7c478bd9Sstevel@tonic-gate #if !defined(_CLOCK_T) || __cplusplus >= 199711L 284*7c478bd9Sstevel@tonic-gate #define _CLOCK_T 285*7c478bd9Sstevel@tonic-gate typedef long clock_t; 286*7c478bd9Sstevel@tonic-gate #endif /* !_CLOCK_T */ 287*7c478bd9Sstevel@tonic-gate 288*7c478bd9Sstevel@tonic-gate extern long _sysconf(int); /* System Private interface to sysconf() */ 289*7c478bd9Sstevel@tonic-gate #define CLK_TCK ((clock_t)_sysconf(3)) /* 3 is _SC_CLK_TCK */ 290*7c478bd9Sstevel@tonic-gate 291*7c478bd9Sstevel@tonic-gate #endif /* CLK_TCK */ 292*7c478bd9Sstevel@tonic-gate 293*7c478bd9Sstevel@tonic-gate #define LOGNAME_MAX 8 /* max # of characters in a login name */ 294*7c478bd9Sstevel@tonic-gate #define TTYNAME_MAX 128 /* max # of characters in a tty name */ 295*7c478bd9Sstevel@tonic-gate 296*7c478bd9Sstevel@tonic-gate #endif /* if defined(__EXTENSIONS__) || (!defined(_STRICT_STDC) ... */ 297*7c478bd9Sstevel@tonic-gate 298*7c478bd9Sstevel@tonic-gate /* 299*7c478bd9Sstevel@tonic-gate * POSIX.1c Note: 300*7c478bd9Sstevel@tonic-gate * PTHREAD_STACK_MIN is also defined in <pthread.h>. 301*7c478bd9Sstevel@tonic-gate */ 302*7c478bd9Sstevel@tonic-gate #if defined(__EXTENSIONS__) || (_POSIX_C_SOURCE >= 199506L) 303*7c478bd9Sstevel@tonic-gate #include <sys/unistd.h> 304*7c478bd9Sstevel@tonic-gate 305*7c478bd9Sstevel@tonic-gate #if !defined(_SIZE_T) || __cplusplus >= 199711L 306*7c478bd9Sstevel@tonic-gate #define _SIZE_T 307*7c478bd9Sstevel@tonic-gate #if defined(_LP64) || defined(_I32LPx) 308*7c478bd9Sstevel@tonic-gate typedef unsigned long size_t; /* size of something in bytes */ 309*7c478bd9Sstevel@tonic-gate #else 310*7c478bd9Sstevel@tonic-gate typedef unsigned int size_t; /* (historical version) */ 311*7c478bd9Sstevel@tonic-gate #endif 312*7c478bd9Sstevel@tonic-gate #endif /* _SIZE_T */ 313*7c478bd9Sstevel@tonic-gate 314*7c478bd9Sstevel@tonic-gate extern long _sysconf(int); /* System Private interface to sysconf() */ 315*7c478bd9Sstevel@tonic-gate 316*7c478bd9Sstevel@tonic-gate #define PTHREAD_STACK_MIN ((size_t)_sysconf(_SC_THREAD_STACK_MIN)) 317*7c478bd9Sstevel@tonic-gate /* Added for UNIX98 conformance */ 318*7c478bd9Sstevel@tonic-gate #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS 319*7c478bd9Sstevel@tonic-gate #define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX 320*7c478bd9Sstevel@tonic-gate #define PTHREAD_THREADS_MAX _POSIX_THREAD_THREADS_MAX 321*7c478bd9Sstevel@tonic-gate #endif /* defined(__EXTENSIONS__) || (_POSIX_C_SOURCE >= 199506L) */ 322*7c478bd9Sstevel@tonic-gate 323*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 324*7c478bd9Sstevel@tonic-gate } 325*7c478bd9Sstevel@tonic-gate #endif 326*7c478bd9Sstevel@tonic-gate 327*7c478bd9Sstevel@tonic-gate #endif /* _LIMITS_H */ 328