1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
#ifndef CYGONCE_ISO_LIMITS_H
#define CYGONCE_ISO_LIMITS_H
/*========================================================================
//
// limits.h
//
// ISO standard limits
//
//========================================================================
// ####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later
// version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License
// along with eCos; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// As a special exception, if other files instantiate templates or use
// macros or inline functions from this file, or you compile this file
// and link it with other works to produce a work based on this file,
// this file does not by itself cause the resulting work to be covered by
// the GNU General Public License. However the source code for this file
// must still be made available in accordance with section (3) of the GNU
// General Public License v2.
//
// This exception does not invalidate any other reasons why a work based
// on this file might be covered by the GNU General Public License.
// -------------------------------------------
// ####ECOSGPLCOPYRIGHTEND####
//========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s): jlarmour
// Contributors:
// Date: 2000-04-14
// Purpose: This file provides the limits properties
// required by ISO C and POSIX 1003.1
// Description: The real contents of this file get set from the
// configuration (set by the implementation), as well as
// being partially provided by the compiler.
//
// Usage: #include <limits.h>
//
//####DESCRIPTIONEND####
//
//======================================================================
*/
/* CONFIGURATION */
#include <pkgconf/isoinfra.h> /* Configuration header */
/* DEFINES */
/*-----------------------------------------------------------------------------
* Minimum values from POSIX.1 tables 2-3, 2-7 and 2-7a.
* These are the standard-mandated minimum values.
* These values do not vary with the implementation - they may
* simply be defined
*/
/* Minimum number of operations in one list I/O call. */
#define _POSIX_AIO_LISTIO_MAX 2
/* Minimal number of outstanding asynchronous I/O operations. */
#define _POSIX_AIO_MAX 1
/* Maximum length of arguments to `execve', including environment. */
#define _POSIX_ARG_MAX 4096
/* Maximum simultaneous processes per real user ID. */
#define _POSIX_CHILD_MAX 6
/* Minimal number of timer expiration overruns. */
#define _POSIX_DELAYTIMER_MAX 32
/* Maximum link count of a file. */
#define _POSIX_LINK_MAX 8
/* Size of storage required for a login name */
#define _POSIX_LOGIN_NAME_MAX 9
/* Number of bytes in a terminal canonical input queue. */
#define _POSIX_MAX_CANON 255
/* Number of bytes for which space will be
available in a terminal input queue. */
#define _POSIX_MAX_INPUT 255
/* Maximum number of message queues open for a process. */
#define _POSIX_MQ_OPEN_MAX 8
/* Maximum number of supported message priorities. */
#define _POSIX_MQ_PRIO_MAX 32
/* Number of bytes in a filename. */
#define _POSIX_NAME_MAX 14
/* Number of simultaneous supplementary group IDs per process. */
#define _POSIX_NGROUPS_MAX 0
/* Number of files one process can have open at once. */
#define _POSIX_OPEN_MAX 16
/* Number of bytes in a pathname. */
#define _POSIX_PATH_MAX 255
/* Number of bytes than can be written atomically to a pipe. */
#define _POSIX_PIPE_BUF 512
/* Minimal number of realtime signals reserved for the application. */
#define _POSIX_RTSIG_MAX 8
/* Number of semaphores a process can have. */
#define _POSIX_SEM_NSEMS_MAX 256
/* Maximal value of a semaphore. */
#define _POSIX_SEM_VALUE_MAX 32767
/* Number of pending realtime signals. */
#define _POSIX_SIGQUEUE_MAX 32
/* Largest value of a `ssize_t'. */
#define _POSIX_SSIZE_MAX 32767
/* Number of streams a process can have open at once. */
#define _POSIX_STREAM_MAX 8
/* Controlling the iterations of destructors for thread-specific data. */
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
/* The number of data keys per process. */
#define _POSIX_THREAD_KEYS_MAX 128
/* The number of threads per process. */
#define _POSIX_THREAD_THREADS_MAX 64
/* Maximum number of characters in a tty name. */
#define _POSIX_TTY_NAME_MAX 9
/* Number of timer for a process. */
#define _POSIX_TIMER_MAX 32
/* Maximum length of a timezone name (element of `tzname'). */
#define _POSIX_TZNAME_MAX 3
/* Maximum clock resolution in nanoseconds. */
#define _POSIX_CLOCKRES_MIN 20000000
#ifdef CYGBLD_ISO_SSIZE_T_HEADER
# include CYGBLD_ISO_SSIZE_T_HEADER
#else
# ifndef __STRICT_ANSI__
# define SSIZE_MAX LONG_MAX
# endif
#endif
/* INCLUDES */
#ifdef CYGBLD_ISO_OPEN_MAX_HEADER
# include CYGBLD_ISO_OPEN_MAX_HEADER
#else
# ifndef __STRICT_ANSI__
# define OPEN_MAX _POSIX_OPEN_MAX
# endif
#endif
#ifdef CYGBLD_ISO_LINK_MAX_HEADER
# include CYGBLD_ISO_LINK_MAX_HEADER
#else
# ifndef __STRICT_ANSI__
# define LINK_MAX _POSIX_LINK_MAX
# endif
#endif
#ifdef CYGBLD_ISO_NAME_MAX_HEADER
# include CYGBLD_ISO_NAME_MAX_HEADER
#else
# ifndef __STRICT_ANSI__
# define NAME_MAX _POSIX_NAME_MAX
# endif
#endif
#ifdef CYGBLD_ISO_PATH_MAX_HEADER
# include CYGBLD_ISO_PATH_MAX_HEADER
#else
# ifndef __STRICT_ANSI__
# define PATH_MAX _POSIX_PATH_MAX
# endif
#endif
#if CYGINT_ISO_POSIX_LIMITS
# ifdef CYGBLD_ISO_POSIX_LIMITS_HEADER
# include CYGBLD_ISO_POSIX_LIMITS_HEADER
# endif
#endif
#endif /* CYGONCE_ISO_LIMITS_H multiple inclusion protection */
/* Yes it must be ended here! */
/* When using a crosscompiler targeting linux, the next limits.h file
in the include sequence may be the glibc header - which breaks our
world. So skip it by defining _LIBC_LIMITS_H_ */
#define _LIBC_LIMITS_H_
/* Secondly only include if we haven't already been included by it. */
#ifndef _GCC_LIMITS_H_
# include_next <limits.h>
#endif
/* EOF limits.h */
|