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