1*53ee8cc1Swenshuai.xi /* Copyright (C) 1996, 1997, 1999, 2001 Free Software Foundation, Inc. 2*53ee8cc1Swenshuai.xi This file is part of the GNU C Library. 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi The GNU C Library is free software; you can redistribute it and/or 5*53ee8cc1Swenshuai.xi modify it under the terms of the GNU Lesser General Public 6*53ee8cc1Swenshuai.xi License as published by the Free Software Foundation; either 7*53ee8cc1Swenshuai.xi version 2.1 of the License, or (at your option) any later version. 8*53ee8cc1Swenshuai.xi 9*53ee8cc1Swenshuai.xi The GNU C Library is distributed in the hope that it will be useful, 10*53ee8cc1Swenshuai.xi but WITHOUT ANY WARRANTY; without even the implied warranty of 11*53ee8cc1Swenshuai.xi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*53ee8cc1Swenshuai.xi Lesser General Public License for more details. 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xi You should have received a copy of the GNU Lesser General Public 15*53ee8cc1Swenshuai.xi License along with the GNU C Library; if not, write to the Free 16*53ee8cc1Swenshuai.xi Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17*53ee8cc1Swenshuai.xi 02111-1307 USA. */ 18*53ee8cc1Swenshuai.xi 19*53ee8cc1Swenshuai.xi /* 20*53ee8cc1Swenshuai.xi * Never include this file directly; use <limits.h> instead. 21*53ee8cc1Swenshuai.xi */ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi /* Additional definitions from X/Open Portability Guide, Issue 4, Version 2 24*53ee8cc1Swenshuai.xi System Interfaces and Headers, 4.16 <limits.h> 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xi Please note only the values which are not greater than the minimum 27*53ee8cc1Swenshuai.xi stated in the standard document are listed. The `sysconf' functions 28*53ee8cc1Swenshuai.xi should be used to obtain the actual value. */ 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xi #ifndef _XOPEN_LIM_H 31*53ee8cc1Swenshuai.xi #define _XOPEN_LIM_H 1 32*53ee8cc1Swenshuai.xi 33*53ee8cc1Swenshuai.xi #define __need_IOV_MAX 34*53ee8cc1Swenshuai.xi #include <bits/stdio_lim.h> 35*53ee8cc1Swenshuai.xi 36*53ee8cc1Swenshuai.xi /* We do not provide fixed values for 37*53ee8cc1Swenshuai.xi 38*53ee8cc1Swenshuai.xi ARG_MAX Maximum length of argument to the `exec' function 39*53ee8cc1Swenshuai.xi including environment data. 40*53ee8cc1Swenshuai.xi 41*53ee8cc1Swenshuai.xi ATEXIT_MAX Maximum number of functions that may be registered 42*53ee8cc1Swenshuai.xi with `atexit'. 43*53ee8cc1Swenshuai.xi 44*53ee8cc1Swenshuai.xi CHILD_MAX Maximum number of simultaneous processes per real 45*53ee8cc1Swenshuai.xi user ID. 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi OPEN_MAX Maximum number of files that one process can have open 48*53ee8cc1Swenshuai.xi at anyone time. 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xi PAGESIZE 51*53ee8cc1Swenshuai.xi PAGE_SIZE Size of bytes of a page. 52*53ee8cc1Swenshuai.xi 53*53ee8cc1Swenshuai.xi PASS_MAX Maximum number of significant bytes in a password. 54*53ee8cc1Swenshuai.xi 55*53ee8cc1Swenshuai.xi We only provide a fixed limit for 56*53ee8cc1Swenshuai.xi 57*53ee8cc1Swenshuai.xi IOV_MAX Maximum number of `iovec' structures that one process has 58*53ee8cc1Swenshuai.xi available for use with `readv' or writev'. 59*53ee8cc1Swenshuai.xi 60*53ee8cc1Swenshuai.xi if this is indeed fixed by the underlying system. 61*53ee8cc1Swenshuai.xi */ 62*53ee8cc1Swenshuai.xi 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi /* Maximum number of `iovec' structures that one process has available 65*53ee8cc1Swenshuai.xi for use with `readv' or writev'. */ 66*53ee8cc1Swenshuai.xi #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV 67*53ee8cc1Swenshuai.xi 68*53ee8cc1Swenshuai.xi 69*53ee8cc1Swenshuai.xi /* Maximum value of `digit' in calls to the `printf' and `scanf' 70*53ee8cc1Swenshuai.xi functions. We have no limit, so return a reasonable value. */ 71*53ee8cc1Swenshuai.xi #define NL_ARGMAX _POSIX_ARG_MAX 72*53ee8cc1Swenshuai.xi 73*53ee8cc1Swenshuai.xi /* Maximum number of bytes in a `LANG' name. We have no limit. */ 74*53ee8cc1Swenshuai.xi #define NL_LANGMAX _POSIX2_LINE_MAX 75*53ee8cc1Swenshuai.xi 76*53ee8cc1Swenshuai.xi /* Maximum message number. We have no limit. */ 77*53ee8cc1Swenshuai.xi #define NL_MSGMAX INT_MAX 78*53ee8cc1Swenshuai.xi 79*53ee8cc1Swenshuai.xi /* Maximum number of bytes in N-to-1 collation mapping. We have no 80*53ee8cc1Swenshuai.xi limit. */ 81*53ee8cc1Swenshuai.xi #define NL_NMAX INT_MAX 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.xi /* Maximum set number. We have no limit. */ 84*53ee8cc1Swenshuai.xi #define NL_SETMAX INT_MAX 85*53ee8cc1Swenshuai.xi 86*53ee8cc1Swenshuai.xi /* Maximum number of bytes in a message. We have no limit. */ 87*53ee8cc1Swenshuai.xi #define NL_TEXTMAX INT_MAX 88*53ee8cc1Swenshuai.xi 89*53ee8cc1Swenshuai.xi /* Default process priority. */ 90*53ee8cc1Swenshuai.xi #define NZERO 20 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.xi 93*53ee8cc1Swenshuai.xi /* Number of bits in a word of type `int'. */ 94*53ee8cc1Swenshuai.xi #ifdef INT_MAX 95*53ee8cc1Swenshuai.xi # if INT_MAX == 32767 96*53ee8cc1Swenshuai.xi # define WORD_BIT 16 97*53ee8cc1Swenshuai.xi # else 98*53ee8cc1Swenshuai.xi # if INT_MAX == 2147483647 99*53ee8cc1Swenshuai.xi # define WORD_BIT 32 100*53ee8cc1Swenshuai.xi # else 101*53ee8cc1Swenshuai.xi /* Safe assumption. */ 102*53ee8cc1Swenshuai.xi # define WORD_BIT 64 103*53ee8cc1Swenshuai.xi # endif 104*53ee8cc1Swenshuai.xi # endif 105*53ee8cc1Swenshuai.xi #elif defined __INT_MAX__ 106*53ee8cc1Swenshuai.xi # if __INT_MAX__ == 32767 107*53ee8cc1Swenshuai.xi # define WORD_BIT 16 108*53ee8cc1Swenshuai.xi # else 109*53ee8cc1Swenshuai.xi # if __INT_MAX__ == 2147483647 110*53ee8cc1Swenshuai.xi # define WORD_BIT 32 111*53ee8cc1Swenshuai.xi # else 112*53ee8cc1Swenshuai.xi /* Safe assumption. */ 113*53ee8cc1Swenshuai.xi # define WORD_BIT 64 114*53ee8cc1Swenshuai.xi # endif 115*53ee8cc1Swenshuai.xi # endif 116*53ee8cc1Swenshuai.xi #else 117*53ee8cc1Swenshuai.xi # define WORD_BIT 32 118*53ee8cc1Swenshuai.xi #endif 119*53ee8cc1Swenshuai.xi 120*53ee8cc1Swenshuai.xi /* Number of bits in a word of type `long int'. */ 121*53ee8cc1Swenshuai.xi #ifdef LONG_MAX 122*53ee8cc1Swenshuai.xi # if LONG_MAX == 2147483647 123*53ee8cc1Swenshuai.xi # define LONG_BIT 32 124*53ee8cc1Swenshuai.xi # else 125*53ee8cc1Swenshuai.xi /* Safe assumption. */ 126*53ee8cc1Swenshuai.xi # define LONG_BIT 64 127*53ee8cc1Swenshuai.xi # endif 128*53ee8cc1Swenshuai.xi #elif defined __LONG_MAX__ 129*53ee8cc1Swenshuai.xi # if __LONG_MAX__ == 2147483647 130*53ee8cc1Swenshuai.xi # define LONG_BIT 32 131*53ee8cc1Swenshuai.xi # else 132*53ee8cc1Swenshuai.xi /* Safe assumption. */ 133*53ee8cc1Swenshuai.xi # define LONG_BIT 64 134*53ee8cc1Swenshuai.xi # endif 135*53ee8cc1Swenshuai.xi #else 136*53ee8cc1Swenshuai.xi # include <bits/wordsize.h> 137*53ee8cc1Swenshuai.xi # if __WORDSIZE == 64 138*53ee8cc1Swenshuai.xi # define LONG_BIT 64 139*53ee8cc1Swenshuai.xi # else 140*53ee8cc1Swenshuai.xi # define LONG_BIT 32 141*53ee8cc1Swenshuai.xi # endif 142*53ee8cc1Swenshuai.xi #endif 143*53ee8cc1Swenshuai.xi 144*53ee8cc1Swenshuai.xi #endif /* bits/xopen_lim.h */ 145