summaryrefslogtreecommitdiff
path: root/PACE/pace/config/config.h
blob: 25e27e5313b003ddc0fb3daeb39a7b0b6ea04825 (plain)
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
/* $Id$

 * ============================================================================
 *
 * = LIBRARY
 *    pace
 *
 * = FILENAME
 *    pace/config/config.h
 *
 * = AUTHOR
 *    Luther Baker
 *
 * ============================================================================ */

#ifndef PACE_CONFIG_CONFIG_H
#define PACE_CONFIG_CONFIG_H

#if !defined (PACE_HAS_POSIX_C_SOURCE)
# if defined (_POSIX_C_SOURCE)
#   define PACE_HAS_POSIX_C_SOURCE _POSIX_C_SOURCE
# endif /* _POSIX_C_SOURCE */
#endif /* ! PACE_HAS_POSIX_C_SOURCE */

#if !defined (PACE_HAS_EXTENSIONS)
# if defined (__EXTENSIONS__)
#   define PACE_HAS_EXTENSIONS __EXTENSIONS__
# endif /* __EXTENSIONS__ */
#endif /* ! PACE_HAS_EXTENSIONS */

#if !defined (PACE_HAS_REENTRANT)
# if defined (PACE_LINUX)
#   ifdef __USE_POSIX
#     define PACE_HAS_REENTRANT 1
#   else  /* ! __USE_POSIX */
#   endif /* ! __USE_POSIX */
# elif defined (PACE_LYNXOS)
/* LynxOS uses _POSIX_REENTRANT_FUNCTIONS, but not _REENTRANT */
# elif defined (PACE_SUNOS)
#   if defined (__EXTENSIONS__) || defined (_REENTRANT) || \
       (_POSIX_C_SOURCE - 0 >= 199506L)
#     define PACE_HAS_REENTRANT 1
#   else  /* ! __EXTENSIONS__ && ! _REENTRANT && _POSIX_C_SOURCE < 199506L */
#   endif /* ! __EXTENSIONS__ && ! _REENTRANT && _POSIX_C_SOURCE < 199506L */
# else  /* other POSIX */
#   define PACE_HAS_REENTRANT 1
# endif /* other POSIX */
#endif /* ! PACE_HAS_REENTRANT */


#if !defined (PACE_HAS_POSIX_PTHREAD_SEMANTICS)
# if defined (_POSIX_PTHREAD_SEMANTICS)
#   define PACE_HAS_POSIX_PTHREAD_SEMANTICS _POSIX_PTHREAD_SEMANTICS
# endif /* _POSIX_PTHREAD_SEMANTICS */
#endif /* ! PACE_HAS_POSIX_PTHREAD_SEMANTICS */


#if PACE_HAS_POSIX == PACE_LYNXOS
# define PACE_NONCONST_ARG_CAST(TYPE) (TYPE)
# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE) (TYPE)
# define PACE_AIO_SUSPEND_LIST_ARG_CAST (struct aiocb **)
#elif PACE_HAS_POSIX == DIGITAL_UNIX
# define PACE_NONCONST_ARG_CAST(TYPE) (TYPE)
# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE)
# define PACE_AIO_SUSPEND_LIST_ARG_CAST (const struct aiocb **)
#else  /* ! PACE_LYNXOS */
# define PACE_NONCONST_ARG_CAST(TYPE)
# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE)
# define PACE_AIO_SUSPEND_LIST_ARG_CAST
#endif /* ! PACE_LYNXOS */

/* Adding appropriate macros for the different POSIX units of
   functionality that PACE supports.
   These macros define which POSIX functions get included when
   PACE is built. The functions are grouped according to POSIX
   Units of Functionality per the POSIX document ?? pp. ??.
   The following macros correspond to the following POSIX
   Unit of Functionality:

   PACE_HAS_POSIX_SP_UOF       -> POSIX Single Process UoF
   PACE_HAS_POSIX_MP_UOF       -> POSIX Multiple Process UoF
   PACE_HAS_POSIX_SIG_UOF      -> POSIX Signals UoF
   PACE_HAS_POSIX_UG_UOF       -> POSIX User Groups UoF
   PACE_HAS_POSIX_FS_UOF       -> POSIX File System UoF
   PACE_HAS_POSIX_FA_UOF       -> POSIX File Attributes UoF
   PACE_HAS_POSIX_F_UOF        -> POSIX FIFO UoF
   PACE_HAS_POSIX_DI_UOF       -> POSIX Device I/O UoF
   PACE_HAS_POSIX_FM_UOF       -> POSIX File Descriptor Management UoF
   PACE_HAS_POSIX_P_UOF        -> POSIX Pipe UoF
   PACE_HAS_POSIX_DS_UOF       -> POSIX Device Specific UoF
   PACE_HAS_POSIX_SD_UOF       -> POSIX System Database UoF
   PACE_HAS_POSIX_CLS_UOF      -> POSIX C Language Support UoF
   PACE_HAS_POSIX_JC_UOF       -> POSIX Job Control UoF
   PACE_HAS_POSIX_UGR_UOF      -> POSIX User Groups (Reentrant) UoF
   PACE_HAS_POSIX_FL_UOF       -> POSIX File Locking UoF
   PACE_HAS_POSIX_CLSR_UOF     -> POSIX C Language Support (Reentrant) UoF
   PACE_HAS_POSIX_SDR_UOF      -> POSIX System Database (Reentrant) UoF
   PACE_HAS_POSIX_NONUOF_FUNCS -> Any POSIX function in PACE that is not in
                                  one of the above units of functionality.
 */
#if PACE_HAS_ALL_POSIX_FUNCS
# define PACE_HAS_POSIX_SP_UOF 1
# define PACE_HAS_POSIX_MP_UOF 1
# define PACE_HAS_POSIX_SIG_UOF 1
# define PACE_HAS_POSIX_UG_UOF 1
# define PACE_HAS_POSIX_FS_UOF 1
# define PACE_HAS_POSIX_FA_UOF 1
# define PACE_HAS_POSIX_F_UOF 1
# define PACE_HAS_POSIX_DI_UOF 1
# define PACE_HAS_POSIX_FM_UOF 1
# define PACE_HAS_POSIX_P_UOF 1
# define PACE_HAS_POSIX_DS_UOF 1
# define PACE_HAS_POSIX_SD_UOF 1
# define PACE_HAS_POSIX_CLS_UOF 1
# define PACE_HAS_POSIX_JC_UOF 1
# define PACE_HAS_POSIX_UGR_UOF 1
# define PACE_HAS_POSIX_FL_UOF 1
# define PACE_HAS_POSIX_CLSR_UOF 1
# define PACE_HAS_POSIX_SDR_UOF 1
# define PACE_HAS_POSIX_NONUOF_FUNCS 1
#else
# if !defined PACE_HAS_POSIX_SP_UOF
#   define PACE_HAS_POSIX_SP_UOF 0
# endif /* ! PACE_HAS_POSIX_SP_UOF */
# if !defined PACE_HAS_POSIX_MP_UOF
#   define PACE_HAS_POSIX_MP_UOF 0
# endif /* ! PACE_HAS_POSIX_MP_UOF */
# if !defined PACE_HAS_POSIX_SIG_UOF
#   define PACE_HAS_POSIX_SIG_UOF 0
# endif /* ! PACE_HAS_POSIX_SIG_UOF */
# if !defined PACE_HAS_POSIX_UG_UOF
#   define PACE_HAS_POSIX_UG_UOF 0
# endif /* ! PACE_HAS_POSIX_UG_UOF */
# if !defined PACE_HAS_POSIX_FS_UOF
#   define PACE_HAS_POSIX_FS_UOF 0
# endif /* ! PACE_HAS_POSIX_FS_UOF */
# if !defined PACE_HAS_POSIX_FA_UOF
#   define PACE_HAS_POSIX_FA_UOF 0
# endif /* ! PACE_HAS_POSIX_FA_UOF */
# if !defined PACE_HAS_POSIX_F_UOF
#   define PACE_HAS_POSIX_F_UOF 0
# endif /* ! PACE_HAS_POSIX_F_UOF */
# if !defined PACE_HAS_POSIX_DI_UOF
#   define PACE_HAS_POSIX_DI_UOF 0
# endif /* ! PACE_HAS_POSIX_DI_UOF */
# if !defined PACE_HAS_POSIX_FM_UOF
#   define PACE_HAS_POSIX_FM_UOF 0
# endif /* ! PACE_HAS_POSIX_FM_UOF */
# if !defined PACE_HAS_POSIX_P_UOF
#   define PACE_HAS_POSIX_P_UOF 0
# endif /* ! PACE_HAS_POSIX_P_UOF */
# if !defined PACE_HAS_POSIX_DS_UOF
#   define PACE_HAS_POSIX_DS_UOF 0
# endif /* ! PACE_HAS_POSIX_DS_UOF */
# if !defined PACE_HAS_POSIX_SD_UOF
#   define PACE_HAS_POSIX_SD_UOF 0
# endif /* ! PACE_HAS_POSIX_SD_UOF */
# if !defined PACE_HAS_POSIX_CLS_UOF
#   define PACE_HAS_POSIX_CLS_UOF 0
# endif /* ! PACE_HAS_POSIX_CLS_UOF */
# if !defined PACE_HAS_POSIX_JC_UOF
#   define PACE_HAS_POSIX_JC_UOF 0
# endif /* ! PACE_HAS_POSIX_JC_UOF */
# if !defined PACE_HAS_POSIX_UGR_UOF
#   define PACE_HAS_POSIX_UGR_UOF 0
# endif /* ! PACE_HAS_POSIX_UGR_UOF */
# if !defined PACE_HAS_POSIX_FL_UOF
#   define PACE_HAS_POSIX_FL_UOF 0
# endif /* ! PACE_HAS_POSIX_FL_UOF */
# if !defined PACE_HAS_POSIX_CLSR_UOF
#   define PACE_HAS_POSIX_CLSR_UOF 0
# endif /* ! PACE_HAS_POSIX_CLSR_UOF */
# if !defined PACE_HAS_POSIX_SDR_UOF
#   define PACE_HAS_POSIX_SDR_UOF 0
# endif /* ! PACE_HAS_POSIX_SDR_UOF */
# if !defined PACE_HAS_POSIX_NONUOF_FUNCS
#   define PACE_HAS_POSIX_NONUOF_FUNCS 0
# endif /* ! PACE_HAS_POSIX_NONUOF_FUNCS */
#endif /* PACE_HAS_ALL_POSIX_FUNCS */

#endif /* PACE_CONFIG_CONFIG_H */