1/*
2 * O/S-dependent (mis)feature macro definitions
3 *
4Copyright 1991, 1998 The Open Group
5
6Permission to use, copy, modify, distribute, and sell this software and its
7documentation for any purpose is hereby granted without fee, provided that
8the above copyright notice appear in all copies and that both that
9copyright notice and this permission notice appear in supporting
10documentation.
11
12The above copyright notice and this permission notice shall be included in
13all copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall not be
23used in advertising or otherwise to promote the sale, use or other dealings
24in this Software without prior written authorization from The Open Group.
25 */
26
27#ifndef _XOSDEFS_H_
28# define _XOSDEFS_H_
29
30/*
31 * X_NOT_POSIX means does not have POSIX header files. Lack of this
32 * symbol does NOT mean that the POSIX environment is the default.
33 * You may still have to define _POSIX_SOURCE to get it.
34 */
35
36
37# ifdef _SCO_DS
38# ifndef __SCO__
39# define __SCO__
40# endif
41# endif
42
43# ifdef __i386__
44# ifdef SYSV
45# if !defined(__SCO__) && \
46 !defined(__UNIXWARE__) && !defined(__sun)
47# if !defined(_POSIX_SOURCE)
48# define X_NOT_POSIX
49# endif
50# endif
51# endif
52# endif
53
54# ifdef __sun
55/* Imake configs define SVR4 on Solaris, but cc & gcc only define __SVR4
56 * This check allows non-Imake configured programs to build correctly.
57 */
58# if defined(__SVR4) && !defined(SVR4)
59# define SVR4 1
60# endif
61# ifdef SVR4
62/* define this to whatever it needs to be */
63# define X_POSIX_C_SOURCE 199300L
64# endif
65# endif
66
67# ifdef WIN32
68# ifndef _POSIX_
69# define X_NOT_POSIX
70# endif
71# endif
72
73
74# ifdef __APPLE__
75# define NULL_NOT_ZERO
76
77/* Defining any of these will sanitize the namespace to JUST want is defined by
78 * that particular standard. If that happens, we don't get some expected
79 * prototypes, typedefs, etc (like fd_mask). We can define _DARWIN_C_SOURCE to
80 * loosen our belts a tad.
81 */
82# if defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
83# ifndef _DARWIN_C_SOURCE
84# define _DARWIN_C_SOURCE
85# endif
86# endif
87
88# endif
89
90# ifdef __GNU__
91# ifndef PATH_MAX
92# define PATH_MAX 4096
93# endif
94# ifndef MAXPATHLEN
95# define MAXPATHLEN 4096
96# endif
97# endif
98
99# if defined(__SCO__) || defined(__UNIXWARE__)
100# ifndef PATH_MAX
101# define PATH_MAX 1024
102# endif
103# ifndef MAXPATHLEN
104# define MAXPATHLEN 1024
105# endif
106# endif
107
108# if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) \
109 || defined(__APPLE__) || defined(__DragonFly__)
110# ifndef CSRG_BASED
111# define CSRG_BASED
112# endif
113# endif
114
115#endif /* _XOSDEFS_H_ */
116
117