source: SVN/cambria/redboot/packages/isoinfra/current/include/limits.h @ 1

Last change on this file since 1 was 1, checked in by Tim Harvey, 2 years ago

restored latest version of files from server backup

Signed-off-by: Tim Harvey <tharvey@…>

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