* create-native-map.exe: Remove. Just grab a new copy whenever we need to
[mono.git] / support / map.c
1 /*
2  * This file was automatically generated by create-native-map from ../../mcs/class/lib/net_2_0/Mono.Posix.dll.
3  *
4  * DO NOT MODIFY.
5  */
6 #ifdef HAVE_CONFIG_H
7 #include <config.h>
8 #endif /* ndef HAVE_CONFIG_H */
9
10 #include <stdlib.h>
11 #include <string.h>
12
13 /*
14  * Implementation Macros
15  */
16 #ifndef _GNU_SOURCE
17 #define _GNU_SOURCE
18 #endif /* ndef _GNU_SOURCE */
19
20 #ifndef _XOPEN_SOURCE
21 #define _XOPEN_SOURCE
22 #endif /* ndef _XOPEN_SOURCE */
23
24
25 /*
26  * Implementation Includes
27  */
28 #include <sys/types.h>
29 #include <sys/stat.h>
30 #include <sys/time.h>
31 #ifdef HAVE_SYS_POLL_H
32 #include <sys/poll.h>
33 #endif /* ndef HAVE_SYS_POLL_H */
34 #ifdef HAVE_SYS_WAIT_H
35 #include <sys/wait.h>
36 #endif /* ndef HAVE_SYS_WAIT_H */
37 #ifdef HAVE_SYS_STATVFS_H
38 #include <sys/statvfs.h>
39 #endif /* ndef HAVE_SYS_STATVFS_H */
40 #ifdef HAVE_SYS_XATTR_H
41 #include <sys/xattr.h>
42 #endif /* ndef HAVE_SYS_XATTR_H */
43 #ifdef HAVE_SYS_MMAN_H
44 #include <sys/mman.h>
45 #endif /* ndef HAVE_SYS_MMAN_H */
46 #include <unistd.h>
47 #include <fcntl.h>
48 #include <signal.h>
49 #ifdef HAVE_POLL_H
50 #include <poll.h>
51 #endif /* ndef HAVE_POLL_H */
52 #ifdef HAVE_GRP_H
53 #include <grp.h>
54 #endif /* ndef HAVE_GRP_H */
55 #include <errno.h>
56 #ifdef HAVE_SYSLOG_H
57 #include <syslog.h>
58 #endif /* ndef HAVE_SYSLOG_H */
59 #include <dirent.h>
60 #include <utime.h>
61 #include "mph.h"
62
63 #include "map.h"
64
65 #include <errno.h>    /* errno, EOVERFLOW */
66 #include <glib.h>     /* g* types, g_assert_not_reached() */
67
68 #ifdef HAVE_INTTYPES_H
69 #include <inttypes.h>
70 #endif /* ndef HAVE_INTTYPES_H */
71
72 #if defined (G_MININT8)
73 #define CNM_MININT8 G_MININT8
74 #else
75 #define CNM_MININT8 (-128)
76 #endif
77
78 #if defined (G_MAXINT8)
79 #define CNM_MAXINT8 G_MAXINT8
80 #else
81 #define CNM_MAXINT8 (127)
82 #endif
83
84 #if defined (G_MAXUINT8)
85 #define CNM_MAXUINT8 G_MAXUINT8
86 #else
87 #define CNM_MAXUINT8 (255)
88 #endif
89
90 #if defined (G_MININT16)
91 #define CNM_MININT16 G_MININT16
92 #else
93 #define CNM_MININT16 (-32768)
94 #endif
95
96 #if defined (G_MAXINT16)
97 #define CNM_MAXINT16 G_MAXINT16
98 #else
99 #define CNM_MAXINT16 (32767)
100 #endif
101
102 #if defined (G_MAXUINT16)
103 #define CNM_MAXUINT16 G_MAXUINT16
104 #else
105 #define CNM_MAXUINT16 (65535)
106 #endif
107
108 #if defined (G_MININT32)
109 #define CNM_MININT32 G_MININT32
110 #else
111 #define CNM_MININT32 (-2147483648)
112 #endif
113
114 #if defined (G_MAXINT32)
115 #define CNM_MAXINT32 G_MAXINT32
116 #else
117 #define CNM_MAXINT32 (2147483647)
118 #endif
119
120 #if defined (G_MAXUINT32)
121 #define CNM_MAXUINT32 G_MAXUINT32
122 #else
123 #define CNM_MAXUINT32 (4294967295U)
124 #endif
125
126 #if defined (G_MININT64)
127 #define CNM_MININT64 G_MININT64
128 #else
129 #define CNM_MININT64 (-9223372036854775808LL)
130 #endif
131
132 #if defined (G_MAXINT64)
133 #define CNM_MAXINT64 G_MAXINT64
134 #else
135 #define CNM_MAXINT64 (9223372036854775807LL)
136 #endif
137
138 #if defined (G_MAXUINT64)
139 #define CNM_MAXUINT64 G_MAXUINT64
140 #else
141 #define CNM_MAXUINT64 (18446744073709551615ULL)
142 #endif
143
144
145 /* returns TRUE if @type is an unsigned type */
146 #define _cnm_integral_type_is_unsigned(type) \
147     (sizeof(type) == sizeof(gint8)           \
148       ? (((type)-1) > CNM_MAXINT8)             \
149       : sizeof(type) == sizeof(gint16)       \
150         ? (((type)-1) > CNM_MAXINT16)          \
151         : sizeof(type) == sizeof(gint32)     \
152           ? (((type)-1) > CNM_MAXINT32)        \
153           : sizeof(type) == sizeof(gint64)   \
154             ? (((type)-1) > CNM_MAXINT64)      \
155             : (g_assert_not_reached (), 0))
156
157 /* returns the minimum value of @type as a gint64 */
158 #define _cnm_integral_type_min(type)          \
159     (_cnm_integral_type_is_unsigned (type)    \
160       ? 0                                     \
161       : sizeof(type) == sizeof(gint8)         \
162         ? CNM_MININT8                           \
163         : sizeof(type) == sizeof(gint16)      \
164           ? CNM_MININT16                        \
165           : sizeof(type) == sizeof(gint32)    \
166             ? CNM_MININT32                      \
167             : sizeof(type) == sizeof(gint64)  \
168               ? CNM_MININT64                    \
169               : (g_assert_not_reached (), 0))
170
171 /* returns the maximum value of @type as a guint64 */
172 #define _cnm_integral_type_max(type)            \
173     (_cnm_integral_type_is_unsigned (type)      \
174       ? sizeof(type) == sizeof(gint8)           \
175         ? CNM_MAXUINT8                            \
176         : sizeof(type) == sizeof(gint16)        \
177           ? CNM_MAXUINT16                         \
178           : sizeof(type) == sizeof(gint32)      \
179             ? CNM_MAXUINT32                       \
180             : sizeof(type) == sizeof(gint64)    \
181               ? CNM_MAXUINT64                     \
182               : (g_assert_not_reached (), 0)    \
183       : sizeof(type) == sizeof(gint8)           \
184           ? CNM_MAXINT8                           \
185           : sizeof(type) == sizeof(gint16)      \
186             ? CNM_MAXINT16                        \
187             : sizeof(type) == sizeof(gint32)    \
188               ? CNM_MAXINT32                      \
189               : sizeof(type) == sizeof(gint64)  \
190                 ? CNM_MAXINT64                    \
191                 : (g_assert_not_reached (), 0))
192
193 #ifdef DEBUG
194 #define _cnm_dump_(to_t,from)                                            \
195   printf ("# %s -> %s: min=%llx; max=%llx; value=%llx; lt=%i; l0=%i; gt=%i; e=%i\n", \
196     #from, #to_t,                                                        \
197     (gint64) (_cnm_integral_type_min(to_t)),                             \
198     (gint64) (_cnm_integral_type_max (to_t)),                            \
199     (gint64) (from),                                                     \
200     (_cnm_integral_type_min (to_t) <= from),                             \
201     (from < 0),                                                          \
202     /* (_cnm_integral_type_max (to_t) >= from) */                        \
203     (from <= _cnm_integral_type_max (to_t)),                             \
204     ((_cnm_integral_type_min(to_t) >= from) &&                           \
205           ((from < 0) ? 1 : (from <= _cnm_integral_type_max(to_t))))     \
206   )
207 #else
208 #define _cnm_dump_(to_t, from) do {} while (0)
209 #endif
210
211 #define _cnm_return_val_if_overflow(to_t,from,val)  G_STMT_START {   \
212     if (!(_cnm_integral_type_min(to_t) <= from &&                    \
213           ((from < 0) || (from <= _cnm_integral_type_max(to_t))))) { \
214       _cnm_dump_(to_t, from);                                        \
215       errno = EOVERFLOW;                                             \
216       return (val);                                                  \
217     }                                                                \
218   } G_STMT_END
219
220 int Mono_Posix_FromAccessModes (int x, int *r)
221 {
222         *r = 0;
223         if ((x & Mono_Posix_AccessModes_F_OK) == Mono_Posix_AccessModes_F_OK)
224 #ifdef F_OK
225                 *r |= F_OK;
226 #else /* def F_OK */
227                 {errno = EINVAL; return -1;}
228 #endif /* ndef F_OK */
229         if ((x & Mono_Posix_AccessModes_R_OK) == Mono_Posix_AccessModes_R_OK)
230 #ifdef R_OK
231                 *r |= R_OK;
232 #else /* def R_OK */
233                 {errno = EINVAL; return -1;}
234 #endif /* ndef R_OK */
235         if ((x & Mono_Posix_AccessModes_W_OK) == Mono_Posix_AccessModes_W_OK)
236 #ifdef W_OK
237                 *r |= W_OK;
238 #else /* def W_OK */
239                 {errno = EINVAL; return -1;}
240 #endif /* ndef W_OK */
241         if ((x & Mono_Posix_AccessModes_X_OK) == Mono_Posix_AccessModes_X_OK)
242 #ifdef X_OK
243                 *r |= X_OK;
244 #else /* def X_OK */
245                 {errno = EINVAL; return -1;}
246 #endif /* ndef X_OK */
247         if (x == 0)
248                 return 0;
249         return 0;
250 }
251
252 int Mono_Posix_ToAccessModes (int x, int *r)
253 {
254         *r = 0;
255         if (x == 0)
256                 return 0;
257 #ifdef F_OK
258         if ((x & F_OK) == F_OK)
259                 *r |= Mono_Posix_AccessModes_F_OK;
260 #endif /* ndef F_OK */
261 #ifdef R_OK
262         if ((x & R_OK) == R_OK)
263                 *r |= Mono_Posix_AccessModes_R_OK;
264 #endif /* ndef R_OK */
265 #ifdef W_OK
266         if ((x & W_OK) == W_OK)
267                 *r |= Mono_Posix_AccessModes_W_OK;
268 #endif /* ndef W_OK */
269 #ifdef X_OK
270         if ((x & X_OK) == X_OK)
271                 *r |= Mono_Posix_AccessModes_X_OK;
272 #endif /* ndef X_OK */
273         return 0;
274 }
275
276 int Mono_Posix_FromConfstrName (int x, int *r)
277 {
278         *r = 0;
279         if (x == Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION)
280 #ifdef _CS_GNU_LIBC_VERSION
281                 {*r = _CS_GNU_LIBC_VERSION; return 0;}
282 #else /* def _CS_GNU_LIBC_VERSION */
283                 {errno = EINVAL; return -1;}
284 #endif /* ndef _CS_GNU_LIBC_VERSION */
285         if (x == Mono_Posix_ConfstrName__CS_GNU_LIBPTHREAD_VERSION)
286 #ifdef _CS_GNU_LIBPTHREAD_VERSION
287                 {*r = _CS_GNU_LIBPTHREAD_VERSION; return 0;}
288 #else /* def _CS_GNU_LIBPTHREAD_VERSION */
289                 {errno = EINVAL; return -1;}
290 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
291         if (x == Mono_Posix_ConfstrName__CS_LFS64_CFLAGS)
292 #ifdef _CS_LFS64_CFLAGS
293                 {*r = _CS_LFS64_CFLAGS; return 0;}
294 #else /* def _CS_LFS64_CFLAGS */
295                 {errno = EINVAL; return -1;}
296 #endif /* ndef _CS_LFS64_CFLAGS */
297         if (x == Mono_Posix_ConfstrName__CS_LFS64_LDFLAGS)
298 #ifdef _CS_LFS64_LDFLAGS
299                 {*r = _CS_LFS64_LDFLAGS; return 0;}
300 #else /* def _CS_LFS64_LDFLAGS */
301                 {errno = EINVAL; return -1;}
302 #endif /* ndef _CS_LFS64_LDFLAGS */
303         if (x == Mono_Posix_ConfstrName__CS_LFS64_LIBS)
304 #ifdef _CS_LFS64_LIBS
305                 {*r = _CS_LFS64_LIBS; return 0;}
306 #else /* def _CS_LFS64_LIBS */
307                 {errno = EINVAL; return -1;}
308 #endif /* ndef _CS_LFS64_LIBS */
309         if (x == Mono_Posix_ConfstrName__CS_LFS64_LINTFLAGS)
310 #ifdef _CS_LFS64_LINTFLAGS
311                 {*r = _CS_LFS64_LINTFLAGS; return 0;}
312 #else /* def _CS_LFS64_LINTFLAGS */
313                 {errno = EINVAL; return -1;}
314 #endif /* ndef _CS_LFS64_LINTFLAGS */
315         if (x == Mono_Posix_ConfstrName__CS_LFS_CFLAGS)
316 #ifdef _CS_LFS_CFLAGS
317                 {*r = _CS_LFS_CFLAGS; return 0;}
318 #else /* def _CS_LFS_CFLAGS */
319                 {errno = EINVAL; return -1;}
320 #endif /* ndef _CS_LFS_CFLAGS */
321         if (x == Mono_Posix_ConfstrName__CS_LFS_LDFLAGS)
322 #ifdef _CS_LFS_LDFLAGS
323                 {*r = _CS_LFS_LDFLAGS; return 0;}
324 #else /* def _CS_LFS_LDFLAGS */
325                 {errno = EINVAL; return -1;}
326 #endif /* ndef _CS_LFS_LDFLAGS */
327         if (x == Mono_Posix_ConfstrName__CS_LFS_LIBS)
328 #ifdef _CS_LFS_LIBS
329                 {*r = _CS_LFS_LIBS; return 0;}
330 #else /* def _CS_LFS_LIBS */
331                 {errno = EINVAL; return -1;}
332 #endif /* ndef _CS_LFS_LIBS */
333         if (x == Mono_Posix_ConfstrName__CS_LFS_LINTFLAGS)
334 #ifdef _CS_LFS_LINTFLAGS
335                 {*r = _CS_LFS_LINTFLAGS; return 0;}
336 #else /* def _CS_LFS_LINTFLAGS */
337                 {errno = EINVAL; return -1;}
338 #endif /* ndef _CS_LFS_LINTFLAGS */
339         if (x == Mono_Posix_ConfstrName__CS_PATH)
340 #ifdef _CS_PATH
341                 {*r = _CS_PATH; return 0;}
342 #else /* def _CS_PATH */
343                 {errno = EINVAL; return -1;}
344 #endif /* ndef _CS_PATH */
345         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_CFLAGS)
346 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
347                 {*r = _CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
348 #else /* def _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
349                 {errno = EINVAL; return -1;}
350 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
351         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
352 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
353                 {*r = _CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
354 #else /* def _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
355                 {errno = EINVAL; return -1;}
356 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
357         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LIBS)
358 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
359                 {*r = _CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
360 #else /* def _CS_POSIX_V6_ILP32_OFF32_LIBS */
361                 {errno = EINVAL; return -1;}
362 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
363         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
364 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
365                 {*r = _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
366 #else /* def _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
367                 {errno = EINVAL; return -1;}
368 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
369         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
370 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
371                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
372 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
373                 {errno = EINVAL; return -1;}
374 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
375         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
376 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
377                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
378 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
379                 {errno = EINVAL; return -1;}
380 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
381         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LIBS)
382 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
383                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
384 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
385                 {errno = EINVAL; return -1;}
386 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
387         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
388 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
389                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
390 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
391                 {errno = EINVAL; return -1;}
392 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
393         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_CFLAGS)
394 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
395                 {*r = _CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
396 #else /* def _CS_POSIX_V6_LP64_OFF64_CFLAGS */
397                 {errno = EINVAL; return -1;}
398 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
399         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LDFLAGS)
400 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
401                 {*r = _CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
402 #else /* def _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
403                 {errno = EINVAL; return -1;}
404 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
405         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LIBS)
406 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
407                 {*r = _CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
408 #else /* def _CS_POSIX_V6_LP64_OFF64_LIBS */
409                 {errno = EINVAL; return -1;}
410 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
411         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
412 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
413                 {*r = _CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
414 #else /* def _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
415                 {errno = EINVAL; return -1;}
416 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
417         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
418 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
419                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
420 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
421                 {errno = EINVAL; return -1;}
422 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
423         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
424 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
425                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
426 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
427                 {errno = EINVAL; return -1;}
428 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
429         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
430 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
431                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
432 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
433                 {errno = EINVAL; return -1;}
434 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
435         if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
436 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
437                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
438 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
439                 {errno = EINVAL; return -1;}
440 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
441         if (x == Mono_Posix_ConfstrName__CS_V6_WIDTH_RESTRICTED_ENVS)
442 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
443                 {*r = _CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
444 #else /* def _CS_V6_WIDTH_RESTRICTED_ENVS */
445                 {errno = EINVAL; return -1;}
446 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
447         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_CFLAGS)
448 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
449                 {*r = _CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
450 #else /* def _CS_XBS5_ILP32_OFF32_CFLAGS */
451                 {errno = EINVAL; return -1;}
452 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
453         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LDFLAGS)
454 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
455                 {*r = _CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
456 #else /* def _CS_XBS5_ILP32_OFF32_LDFLAGS */
457                 {errno = EINVAL; return -1;}
458 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
459         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LIBS)
460 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
461                 {*r = _CS_XBS5_ILP32_OFF32_LIBS; return 0;}
462 #else /* def _CS_XBS5_ILP32_OFF32_LIBS */
463                 {errno = EINVAL; return -1;}
464 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
465         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LINTFLAGS)
466 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
467                 {*r = _CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
468 #else /* def _CS_XBS5_ILP32_OFF32_LINTFLAGS */
469                 {errno = EINVAL; return -1;}
470 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
471         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_CFLAGS)
472 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
473                 {*r = _CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
474 #else /* def _CS_XBS5_ILP32_OFFBIG_CFLAGS */
475                 {errno = EINVAL; return -1;}
476 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
477         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LDFLAGS)
478 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
479                 {*r = _CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
480 #else /* def _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
481                 {errno = EINVAL; return -1;}
482 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
483         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LIBS)
484 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
485                 {*r = _CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
486 #else /* def _CS_XBS5_ILP32_OFFBIG_LIBS */
487                 {errno = EINVAL; return -1;}
488 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
489         if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
490 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
491                 {*r = _CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
492 #else /* def _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
493                 {errno = EINVAL; return -1;}
494 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
495         if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_CFLAGS)
496 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
497                 {*r = _CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
498 #else /* def _CS_XBS5_LP64_OFF64_CFLAGS */
499                 {errno = EINVAL; return -1;}
500 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
501         if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LDFLAGS)
502 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
503                 {*r = _CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
504 #else /* def _CS_XBS5_LP64_OFF64_LDFLAGS */
505                 {errno = EINVAL; return -1;}
506 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
507         if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LIBS)
508 #ifdef _CS_XBS5_LP64_OFF64_LIBS
509                 {*r = _CS_XBS5_LP64_OFF64_LIBS; return 0;}
510 #else /* def _CS_XBS5_LP64_OFF64_LIBS */
511                 {errno = EINVAL; return -1;}
512 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
513         if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LINTFLAGS)
514 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
515                 {*r = _CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
516 #else /* def _CS_XBS5_LP64_OFF64_LINTFLAGS */
517                 {errno = EINVAL; return -1;}
518 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
519         if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_CFLAGS)
520 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
521                 {*r = _CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
522 #else /* def _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
523                 {errno = EINVAL; return -1;}
524 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
525         if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
526 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
527                 {*r = _CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
528 #else /* def _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
529                 {errno = EINVAL; return -1;}
530 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
531         if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LIBS)
532 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
533                 {*r = _CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
534 #else /* def _CS_XBS5_LPBIG_OFFBIG_LIBS */
535                 {errno = EINVAL; return -1;}
536 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
537         if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
538 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
539                 {*r = _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
540 #else /* def _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
541                 {errno = EINVAL; return -1;}
542 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
543         if (x == 0)
544                 return 0;
545         errno = EINVAL; return -1;
546 }
547
548 int Mono_Posix_ToConfstrName (int x, int *r)
549 {
550         *r = 0;
551         if (x == 0)
552                 return 0;
553 #ifdef _CS_GNU_LIBC_VERSION
554         if (x == _CS_GNU_LIBC_VERSION)
555                 {*r = Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION; return 0;}
556 #endif /* ndef _CS_GNU_LIBC_VERSION */
557 #ifdef _CS_GNU_LIBPTHREAD_VERSION
558         if (x == _CS_GNU_LIBPTHREAD_VERSION)
559                 {*r = Mono_Posix_ConfstrName__CS_GNU_LIBPTHREAD_VERSION; return 0;}
560 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
561 #ifdef _CS_LFS64_CFLAGS
562         if (x == _CS_LFS64_CFLAGS)
563                 {*r = Mono_Posix_ConfstrName__CS_LFS64_CFLAGS; return 0;}
564 #endif /* ndef _CS_LFS64_CFLAGS */
565 #ifdef _CS_LFS64_LDFLAGS
566         if (x == _CS_LFS64_LDFLAGS)
567                 {*r = Mono_Posix_ConfstrName__CS_LFS64_LDFLAGS; return 0;}
568 #endif /* ndef _CS_LFS64_LDFLAGS */
569 #ifdef _CS_LFS64_LIBS
570         if (x == _CS_LFS64_LIBS)
571                 {*r = Mono_Posix_ConfstrName__CS_LFS64_LIBS; return 0;}
572 #endif /* ndef _CS_LFS64_LIBS */
573 #ifdef _CS_LFS64_LINTFLAGS
574         if (x == _CS_LFS64_LINTFLAGS)
575                 {*r = Mono_Posix_ConfstrName__CS_LFS64_LINTFLAGS; return 0;}
576 #endif /* ndef _CS_LFS64_LINTFLAGS */
577 #ifdef _CS_LFS_CFLAGS
578         if (x == _CS_LFS_CFLAGS)
579                 {*r = Mono_Posix_ConfstrName__CS_LFS_CFLAGS; return 0;}
580 #endif /* ndef _CS_LFS_CFLAGS */
581 #ifdef _CS_LFS_LDFLAGS
582         if (x == _CS_LFS_LDFLAGS)
583                 {*r = Mono_Posix_ConfstrName__CS_LFS_LDFLAGS; return 0;}
584 #endif /* ndef _CS_LFS_LDFLAGS */
585 #ifdef _CS_LFS_LIBS
586         if (x == _CS_LFS_LIBS)
587                 {*r = Mono_Posix_ConfstrName__CS_LFS_LIBS; return 0;}
588 #endif /* ndef _CS_LFS_LIBS */
589 #ifdef _CS_LFS_LINTFLAGS
590         if (x == _CS_LFS_LINTFLAGS)
591                 {*r = Mono_Posix_ConfstrName__CS_LFS_LINTFLAGS; return 0;}
592 #endif /* ndef _CS_LFS_LINTFLAGS */
593 #ifdef _CS_PATH
594         if (x == _CS_PATH)
595                 {*r = Mono_Posix_ConfstrName__CS_PATH; return 0;}
596 #endif /* ndef _CS_PATH */
597 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
598         if (x == _CS_POSIX_V6_ILP32_OFF32_CFLAGS)
599                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
600 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
601 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
602         if (x == _CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
603                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
604 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
605 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
606         if (x == _CS_POSIX_V6_ILP32_OFF32_LIBS)
607                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
608 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
609 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
610         if (x == _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
611                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
612 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
613 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
614         if (x == _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
615                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
616 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
617 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
618         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
619                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
620 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
621 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
622         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LIBS)
623                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
624 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
625 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
626         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
627                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
628 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
629 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
630         if (x == _CS_POSIX_V6_LP64_OFF64_CFLAGS)
631                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
632 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
633 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
634         if (x == _CS_POSIX_V6_LP64_OFF64_LDFLAGS)
635                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
636 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
637 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
638         if (x == _CS_POSIX_V6_LP64_OFF64_LIBS)
639                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
640 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
641 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
642         if (x == _CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
643                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
644 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
645 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
646         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
647                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
648 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
649 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
650         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
651                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
652 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
653 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
654         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
655                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
656 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
657 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
658         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
659                 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
660 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
661 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
662         if (x == _CS_V6_WIDTH_RESTRICTED_ENVS)
663                 {*r = Mono_Posix_ConfstrName__CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
664 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
665 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
666         if (x == _CS_XBS5_ILP32_OFF32_CFLAGS)
667                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
668 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
669 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
670         if (x == _CS_XBS5_ILP32_OFF32_LDFLAGS)
671                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
672 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
673 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
674         if (x == _CS_XBS5_ILP32_OFF32_LIBS)
675                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LIBS; return 0;}
676 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
677 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
678         if (x == _CS_XBS5_ILP32_OFF32_LINTFLAGS)
679                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
680 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
681 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
682         if (x == _CS_XBS5_ILP32_OFFBIG_CFLAGS)
683                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
684 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
685 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
686         if (x == _CS_XBS5_ILP32_OFFBIG_LDFLAGS)
687                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
688 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
689 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
690         if (x == _CS_XBS5_ILP32_OFFBIG_LIBS)
691                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
692 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
693 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
694         if (x == _CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
695                 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
696 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
697 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
698         if (x == _CS_XBS5_LP64_OFF64_CFLAGS)
699                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
700 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
701 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
702         if (x == _CS_XBS5_LP64_OFF64_LDFLAGS)
703                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
704 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
705 #ifdef _CS_XBS5_LP64_OFF64_LIBS
706         if (x == _CS_XBS5_LP64_OFF64_LIBS)
707                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LIBS; return 0;}
708 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
709 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
710         if (x == _CS_XBS5_LP64_OFF64_LINTFLAGS)
711                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
712 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
713 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
714         if (x == _CS_XBS5_LPBIG_OFFBIG_CFLAGS)
715                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
716 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
717 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
718         if (x == _CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
719                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
720 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
721 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
722         if (x == _CS_XBS5_LPBIG_OFFBIG_LIBS)
723                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
724 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
725 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
726         if (x == _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
727                 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
728 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
729         errno = EINVAL; return -1;
730 }
731
732 int Mono_Posix_FromDirectoryNotifyFlags (int x, int *r)
733 {
734         *r = 0;
735         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ACCESS) == Mono_Posix_DirectoryNotifyFlags_DN_ACCESS)
736 #ifdef DN_ACCESS
737                 *r |= DN_ACCESS;
738 #else /* def DN_ACCESS */
739                 {errno = EINVAL; return -1;}
740 #endif /* ndef DN_ACCESS */
741         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB) == Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB)
742 #ifdef DN_ATTRIB
743                 *r |= DN_ATTRIB;
744 #else /* def DN_ATTRIB */
745                 {errno = EINVAL; return -1;}
746 #endif /* ndef DN_ATTRIB */
747         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_CREATE) == Mono_Posix_DirectoryNotifyFlags_DN_CREATE)
748 #ifdef DN_CREATE
749                 *r |= DN_CREATE;
750 #else /* def DN_CREATE */
751                 {errno = EINVAL; return -1;}
752 #endif /* ndef DN_CREATE */
753         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_DELETE) == Mono_Posix_DirectoryNotifyFlags_DN_DELETE)
754 #ifdef DN_DELETE
755                 *r |= DN_DELETE;
756 #else /* def DN_DELETE */
757                 {errno = EINVAL; return -1;}
758 #endif /* ndef DN_DELETE */
759         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MODIFY) == Mono_Posix_DirectoryNotifyFlags_DN_MODIFY)
760 #ifdef DN_MODIFY
761                 *r |= DN_MODIFY;
762 #else /* def DN_MODIFY */
763                 {errno = EINVAL; return -1;}
764 #endif /* ndef DN_MODIFY */
765         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT) == Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT)
766 #ifdef DN_MULTISHOT
767                 *r |= DN_MULTISHOT;
768 #else /* def DN_MULTISHOT */
769                 {errno = EINVAL; return -1;}
770 #endif /* ndef DN_MULTISHOT */
771         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_RENAME) == Mono_Posix_DirectoryNotifyFlags_DN_RENAME)
772 #ifdef DN_RENAME
773                 *r |= DN_RENAME;
774 #else /* def DN_RENAME */
775                 {errno = EINVAL; return -1;}
776 #endif /* ndef DN_RENAME */
777         if (x == 0)
778                 return 0;
779         return 0;
780 }
781
782 int Mono_Posix_ToDirectoryNotifyFlags (int x, int *r)
783 {
784         *r = 0;
785         if (x == 0)
786                 return 0;
787 #ifdef DN_ACCESS
788         if ((x & DN_ACCESS) == DN_ACCESS)
789                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ACCESS;
790 #endif /* ndef DN_ACCESS */
791 #ifdef DN_ATTRIB
792         if ((x & DN_ATTRIB) == DN_ATTRIB)
793                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB;
794 #endif /* ndef DN_ATTRIB */
795 #ifdef DN_CREATE
796         if ((x & DN_CREATE) == DN_CREATE)
797                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_CREATE;
798 #endif /* ndef DN_CREATE */
799 #ifdef DN_DELETE
800         if ((x & DN_DELETE) == DN_DELETE)
801                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_DELETE;
802 #endif /* ndef DN_DELETE */
803 #ifdef DN_MODIFY
804         if ((x & DN_MODIFY) == DN_MODIFY)
805                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MODIFY;
806 #endif /* ndef DN_MODIFY */
807 #ifdef DN_MULTISHOT
808         if ((x & DN_MULTISHOT) == DN_MULTISHOT)
809                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT;
810 #endif /* ndef DN_MULTISHOT */
811 #ifdef DN_RENAME
812         if ((x & DN_RENAME) == DN_RENAME)
813                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_RENAME;
814 #endif /* ndef DN_RENAME */
815         return 0;
816 }
817
818 int Mono_Posix_FromErrno (int x, int *r)
819 {
820         *r = 0;
821         if (x == Mono_Posix_Errno_E2BIG)
822 #ifdef E2BIG
823                 {*r = E2BIG; return 0;}
824 #else /* def E2BIG */
825                 {errno = EINVAL; return -1;}
826 #endif /* ndef E2BIG */
827         if (x == Mono_Posix_Errno_EACCES)
828 #ifdef EACCES
829                 {*r = EACCES; return 0;}
830 #else /* def EACCES */
831                 {errno = EINVAL; return -1;}
832 #endif /* ndef EACCES */
833         if (x == Mono_Posix_Errno_EADDRINUSE)
834 #ifdef EADDRINUSE
835                 {*r = EADDRINUSE; return 0;}
836 #else /* def EADDRINUSE */
837                 {errno = EINVAL; return -1;}
838 #endif /* ndef EADDRINUSE */
839         if (x == Mono_Posix_Errno_EADDRNOTAVAIL)
840 #ifdef EADDRNOTAVAIL
841                 {*r = EADDRNOTAVAIL; return 0;}
842 #else /* def EADDRNOTAVAIL */
843                 {errno = EINVAL; return -1;}
844 #endif /* ndef EADDRNOTAVAIL */
845         if (x == Mono_Posix_Errno_EADV)
846 #ifdef EADV
847                 {*r = EADV; return 0;}
848 #else /* def EADV */
849                 {errno = EINVAL; return -1;}
850 #endif /* ndef EADV */
851         if (x == Mono_Posix_Errno_EAFNOSUPPORT)
852 #ifdef EAFNOSUPPORT
853                 {*r = EAFNOSUPPORT; return 0;}
854 #else /* def EAFNOSUPPORT */
855                 {errno = EINVAL; return -1;}
856 #endif /* ndef EAFNOSUPPORT */
857         if (x == Mono_Posix_Errno_EAGAIN)
858 #ifdef EAGAIN
859                 {*r = EAGAIN; return 0;}
860 #else /* def EAGAIN */
861                 {errno = EINVAL; return -1;}
862 #endif /* ndef EAGAIN */
863         if (x == Mono_Posix_Errno_EALREADY)
864 #ifdef EALREADY
865                 {*r = EALREADY; return 0;}
866 #else /* def EALREADY */
867                 {errno = EINVAL; return -1;}
868 #endif /* ndef EALREADY */
869         if (x == Mono_Posix_Errno_EBADE)
870 #ifdef EBADE
871                 {*r = EBADE; return 0;}
872 #else /* def EBADE */
873                 {errno = EINVAL; return -1;}
874 #endif /* ndef EBADE */
875         if (x == Mono_Posix_Errno_EBADF)
876 #ifdef EBADF
877                 {*r = EBADF; return 0;}
878 #else /* def EBADF */
879                 {errno = EINVAL; return -1;}
880 #endif /* ndef EBADF */
881         if (x == Mono_Posix_Errno_EBADFD)
882 #ifdef EBADFD
883                 {*r = EBADFD; return 0;}
884 #else /* def EBADFD */
885                 {errno = EINVAL; return -1;}
886 #endif /* ndef EBADFD */
887         if (x == Mono_Posix_Errno_EBADMSG)
888 #ifdef EBADMSG
889                 {*r = EBADMSG; return 0;}
890 #else /* def EBADMSG */
891                 {errno = EINVAL; return -1;}
892 #endif /* ndef EBADMSG */
893         if (x == Mono_Posix_Errno_EBADR)
894 #ifdef EBADR
895                 {*r = EBADR; return 0;}
896 #else /* def EBADR */
897                 {errno = EINVAL; return -1;}
898 #endif /* ndef EBADR */
899         if (x == Mono_Posix_Errno_EBADRQC)
900 #ifdef EBADRQC
901                 {*r = EBADRQC; return 0;}
902 #else /* def EBADRQC */
903                 {errno = EINVAL; return -1;}
904 #endif /* ndef EBADRQC */
905         if (x == Mono_Posix_Errno_EBADSLT)
906 #ifdef EBADSLT
907                 {*r = EBADSLT; return 0;}
908 #else /* def EBADSLT */
909                 {errno = EINVAL; return -1;}
910 #endif /* ndef EBADSLT */
911         if (x == Mono_Posix_Errno_EBFONT)
912 #ifdef EBFONT
913                 {*r = EBFONT; return 0;}
914 #else /* def EBFONT */
915                 {errno = EINVAL; return -1;}
916 #endif /* ndef EBFONT */
917         if (x == Mono_Posix_Errno_EBUSY)
918 #ifdef EBUSY
919                 {*r = EBUSY; return 0;}
920 #else /* def EBUSY */
921                 {errno = EINVAL; return -1;}
922 #endif /* ndef EBUSY */
923         if (x == Mono_Posix_Errno_ECHILD)
924 #ifdef ECHILD
925                 {*r = ECHILD; return 0;}
926 #else /* def ECHILD */
927                 {errno = EINVAL; return -1;}
928 #endif /* ndef ECHILD */
929         if (x == Mono_Posix_Errno_ECHRNG)
930 #ifdef ECHRNG
931                 {*r = ECHRNG; return 0;}
932 #else /* def ECHRNG */
933                 {errno = EINVAL; return -1;}
934 #endif /* ndef ECHRNG */
935         if (x == Mono_Posix_Errno_ECOMM)
936 #ifdef ECOMM
937                 {*r = ECOMM; return 0;}
938 #else /* def ECOMM */
939                 {errno = EINVAL; return -1;}
940 #endif /* ndef ECOMM */
941         if (x == Mono_Posix_Errno_ECONNABORTED)
942 #ifdef ECONNABORTED
943                 {*r = ECONNABORTED; return 0;}
944 #else /* def ECONNABORTED */
945                 {errno = EINVAL; return -1;}
946 #endif /* ndef ECONNABORTED */
947         if (x == Mono_Posix_Errno_ECONNREFUSED)
948 #ifdef ECONNREFUSED
949                 {*r = ECONNREFUSED; return 0;}
950 #else /* def ECONNREFUSED */
951                 {errno = EINVAL; return -1;}
952 #endif /* ndef ECONNREFUSED */
953         if (x == Mono_Posix_Errno_ECONNRESET)
954 #ifdef ECONNRESET
955                 {*r = ECONNRESET; return 0;}
956 #else /* def ECONNRESET */
957                 {errno = EINVAL; return -1;}
958 #endif /* ndef ECONNRESET */
959         if (x == Mono_Posix_Errno_EDEADLK)
960 #ifdef EDEADLK
961                 {*r = EDEADLK; return 0;}
962 #else /* def EDEADLK */
963                 {errno = EINVAL; return -1;}
964 #endif /* ndef EDEADLK */
965         if (x == Mono_Posix_Errno_EDEADLOCK)
966 #ifdef EDEADLOCK
967                 {*r = EDEADLOCK; return 0;}
968 #else /* def EDEADLOCK */
969                 {errno = EINVAL; return -1;}
970 #endif /* ndef EDEADLOCK */
971         if (x == Mono_Posix_Errno_EDESTADDRREQ)
972 #ifdef EDESTADDRREQ
973                 {*r = EDESTADDRREQ; return 0;}
974 #else /* def EDESTADDRREQ */
975                 {errno = EINVAL; return -1;}
976 #endif /* ndef EDESTADDRREQ */
977         if (x == Mono_Posix_Errno_EDOM)
978 #ifdef EDOM
979                 {*r = EDOM; return 0;}
980 #else /* def EDOM */
981                 {errno = EINVAL; return -1;}
982 #endif /* ndef EDOM */
983         if (x == Mono_Posix_Errno_EDOTDOT)
984 #ifdef EDOTDOT
985                 {*r = EDOTDOT; return 0;}
986 #else /* def EDOTDOT */
987                 {errno = EINVAL; return -1;}
988 #endif /* ndef EDOTDOT */
989         if (x == Mono_Posix_Errno_EDQUOT)
990 #ifdef EDQUOT
991                 {*r = EDQUOT; return 0;}
992 #else /* def EDQUOT */
993                 {errno = EINVAL; return -1;}
994 #endif /* ndef EDQUOT */
995         if (x == Mono_Posix_Errno_EEXIST)
996 #ifdef EEXIST
997                 {*r = EEXIST; return 0;}
998 #else /* def EEXIST */
999                 {errno = EINVAL; return -1;}
1000 #endif /* ndef EEXIST */
1001         if (x == Mono_Posix_Errno_EFAULT)
1002 #ifdef EFAULT
1003                 {*r = EFAULT; return 0;}
1004 #else /* def EFAULT */
1005                 {errno = EINVAL; return -1;}
1006 #endif /* ndef EFAULT */
1007         if (x == Mono_Posix_Errno_EFBIG)
1008 #ifdef EFBIG
1009                 {*r = EFBIG; return 0;}
1010 #else /* def EFBIG */
1011                 {errno = EINVAL; return -1;}
1012 #endif /* ndef EFBIG */
1013         if (x == Mono_Posix_Errno_EHOSTDOWN)
1014 #ifdef EHOSTDOWN
1015                 {*r = EHOSTDOWN; return 0;}
1016 #else /* def EHOSTDOWN */
1017                 {errno = EINVAL; return -1;}
1018 #endif /* ndef EHOSTDOWN */
1019         if (x == Mono_Posix_Errno_EHOSTUNREACH)
1020 #ifdef EHOSTUNREACH
1021                 {*r = EHOSTUNREACH; return 0;}
1022 #else /* def EHOSTUNREACH */
1023                 {errno = EINVAL; return -1;}
1024 #endif /* ndef EHOSTUNREACH */
1025         if (x == Mono_Posix_Errno_EIDRM)
1026 #ifdef EIDRM
1027                 {*r = EIDRM; return 0;}
1028 #else /* def EIDRM */
1029                 {errno = EINVAL; return -1;}
1030 #endif /* ndef EIDRM */
1031         if (x == Mono_Posix_Errno_EILSEQ)
1032 #ifdef EILSEQ
1033                 {*r = EILSEQ; return 0;}
1034 #else /* def EILSEQ */
1035                 {errno = EINVAL; return -1;}
1036 #endif /* ndef EILSEQ */
1037         if (x == Mono_Posix_Errno_EINPROGRESS)
1038 #ifdef EINPROGRESS
1039                 {*r = EINPROGRESS; return 0;}
1040 #else /* def EINPROGRESS */
1041                 {errno = EINVAL; return -1;}
1042 #endif /* ndef EINPROGRESS */
1043         if (x == Mono_Posix_Errno_EINTR)
1044 #ifdef EINTR
1045                 {*r = EINTR; return 0;}
1046 #else /* def EINTR */
1047                 {errno = EINVAL; return -1;}
1048 #endif /* ndef EINTR */
1049         if (x == Mono_Posix_Errno_EINVAL)
1050 #ifdef EINVAL
1051                 {*r = EINVAL; return 0;}
1052 #else /* def EINVAL */
1053                 {errno = EINVAL; return -1;}
1054 #endif /* ndef EINVAL */
1055         if (x == Mono_Posix_Errno_EIO)
1056 #ifdef EIO
1057                 {*r = EIO; return 0;}
1058 #else /* def EIO */
1059                 {errno = EINVAL; return -1;}
1060 #endif /* ndef EIO */
1061         if (x == Mono_Posix_Errno_EISCONN)
1062 #ifdef EISCONN
1063                 {*r = EISCONN; return 0;}
1064 #else /* def EISCONN */
1065                 {errno = EINVAL; return -1;}
1066 #endif /* ndef EISCONN */
1067         if (x == Mono_Posix_Errno_EISDIR)
1068 #ifdef EISDIR
1069                 {*r = EISDIR; return 0;}
1070 #else /* def EISDIR */
1071                 {errno = EINVAL; return -1;}
1072 #endif /* ndef EISDIR */
1073         if (x == Mono_Posix_Errno_EISNAM)
1074 #ifdef EISNAM
1075                 {*r = EISNAM; return 0;}
1076 #else /* def EISNAM */
1077                 {errno = EINVAL; return -1;}
1078 #endif /* ndef EISNAM */
1079         if (x == Mono_Posix_Errno_EL2HLT)
1080 #ifdef EL2HLT
1081                 {*r = EL2HLT; return 0;}
1082 #else /* def EL2HLT */
1083                 {errno = EINVAL; return -1;}
1084 #endif /* ndef EL2HLT */
1085         if (x == Mono_Posix_Errno_EL2NSYNC)
1086 #ifdef EL2NSYNC
1087                 {*r = EL2NSYNC; return 0;}
1088 #else /* def EL2NSYNC */
1089                 {errno = EINVAL; return -1;}
1090 #endif /* ndef EL2NSYNC */
1091         if (x == Mono_Posix_Errno_EL3HLT)
1092 #ifdef EL3HLT
1093                 {*r = EL3HLT; return 0;}
1094 #else /* def EL3HLT */
1095                 {errno = EINVAL; return -1;}
1096 #endif /* ndef EL3HLT */
1097         if (x == Mono_Posix_Errno_EL3RST)
1098 #ifdef EL3RST
1099                 {*r = EL3RST; return 0;}
1100 #else /* def EL3RST */
1101                 {errno = EINVAL; return -1;}
1102 #endif /* ndef EL3RST */
1103         if (x == Mono_Posix_Errno_ELIBACC)
1104 #ifdef ELIBACC
1105                 {*r = ELIBACC; return 0;}
1106 #else /* def ELIBACC */
1107                 {errno = EINVAL; return -1;}
1108 #endif /* ndef ELIBACC */
1109         if (x == Mono_Posix_Errno_ELIBBAD)
1110 #ifdef ELIBBAD
1111                 {*r = ELIBBAD; return 0;}
1112 #else /* def ELIBBAD */
1113                 {errno = EINVAL; return -1;}
1114 #endif /* ndef ELIBBAD */
1115         if (x == Mono_Posix_Errno_ELIBEXEC)
1116 #ifdef ELIBEXEC
1117                 {*r = ELIBEXEC; return 0;}
1118 #else /* def ELIBEXEC */
1119                 {errno = EINVAL; return -1;}
1120 #endif /* ndef ELIBEXEC */
1121         if (x == Mono_Posix_Errno_ELIBMAX)
1122 #ifdef ELIBMAX
1123                 {*r = ELIBMAX; return 0;}
1124 #else /* def ELIBMAX */
1125                 {errno = EINVAL; return -1;}
1126 #endif /* ndef ELIBMAX */
1127         if (x == Mono_Posix_Errno_ELIBSCN)
1128 #ifdef ELIBSCN
1129                 {*r = ELIBSCN; return 0;}
1130 #else /* def ELIBSCN */
1131                 {errno = EINVAL; return -1;}
1132 #endif /* ndef ELIBSCN */
1133         if (x == Mono_Posix_Errno_ELNRNG)
1134 #ifdef ELNRNG
1135                 {*r = ELNRNG; return 0;}
1136 #else /* def ELNRNG */
1137                 {errno = EINVAL; return -1;}
1138 #endif /* ndef ELNRNG */
1139         if (x == Mono_Posix_Errno_ELOOP)
1140 #ifdef ELOOP
1141                 {*r = ELOOP; return 0;}
1142 #else /* def ELOOP */
1143                 {errno = EINVAL; return -1;}
1144 #endif /* ndef ELOOP */
1145         if (x == Mono_Posix_Errno_EMEDIUMTYPE)
1146 #ifdef EMEDIUMTYPE
1147                 {*r = EMEDIUMTYPE; return 0;}
1148 #else /* def EMEDIUMTYPE */
1149                 {errno = EINVAL; return -1;}
1150 #endif /* ndef EMEDIUMTYPE */
1151         if (x == Mono_Posix_Errno_EMFILE)
1152 #ifdef EMFILE
1153                 {*r = EMFILE; return 0;}
1154 #else /* def EMFILE */
1155                 {errno = EINVAL; return -1;}
1156 #endif /* ndef EMFILE */
1157         if (x == Mono_Posix_Errno_EMLINK)
1158 #ifdef EMLINK
1159                 {*r = EMLINK; return 0;}
1160 #else /* def EMLINK */
1161                 {errno = EINVAL; return -1;}
1162 #endif /* ndef EMLINK */
1163         if (x == Mono_Posix_Errno_EMSGSIZE)
1164 #ifdef EMSGSIZE
1165                 {*r = EMSGSIZE; return 0;}
1166 #else /* def EMSGSIZE */
1167                 {errno = EINVAL; return -1;}
1168 #endif /* ndef EMSGSIZE */
1169         if (x == Mono_Posix_Errno_EMULTIHOP)
1170 #ifdef EMULTIHOP
1171                 {*r = EMULTIHOP; return 0;}
1172 #else /* def EMULTIHOP */
1173                 {errno = EINVAL; return -1;}
1174 #endif /* ndef EMULTIHOP */
1175         if (x == Mono_Posix_Errno_ENAMETOOLONG)
1176 #ifdef ENAMETOOLONG
1177                 {*r = ENAMETOOLONG; return 0;}
1178 #else /* def ENAMETOOLONG */
1179                 {errno = EINVAL; return -1;}
1180 #endif /* ndef ENAMETOOLONG */
1181         if (x == Mono_Posix_Errno_ENAVAIL)
1182 #ifdef ENAVAIL
1183                 {*r = ENAVAIL; return 0;}
1184 #else /* def ENAVAIL */
1185                 {errno = EINVAL; return -1;}
1186 #endif /* ndef ENAVAIL */
1187         if (x == Mono_Posix_Errno_ENETDOWN)
1188 #ifdef ENETDOWN
1189                 {*r = ENETDOWN; return 0;}
1190 #else /* def ENETDOWN */
1191                 {errno = EINVAL; return -1;}
1192 #endif /* ndef ENETDOWN */
1193         if (x == Mono_Posix_Errno_ENETRESET)
1194 #ifdef ENETRESET
1195                 {*r = ENETRESET; return 0;}
1196 #else /* def ENETRESET */
1197                 {errno = EINVAL; return -1;}
1198 #endif /* ndef ENETRESET */
1199         if (x == Mono_Posix_Errno_ENETUNREACH)
1200 #ifdef ENETUNREACH
1201                 {*r = ENETUNREACH; return 0;}
1202 #else /* def ENETUNREACH */
1203                 {errno = EINVAL; return -1;}
1204 #endif /* ndef ENETUNREACH */
1205         if (x == Mono_Posix_Errno_ENFILE)
1206 #ifdef ENFILE
1207                 {*r = ENFILE; return 0;}
1208 #else /* def ENFILE */
1209                 {errno = EINVAL; return -1;}
1210 #endif /* ndef ENFILE */
1211         if (x == Mono_Posix_Errno_ENOANO)
1212 #ifdef ENOANO
1213                 {*r = ENOANO; return 0;}
1214 #else /* def ENOANO */
1215                 {errno = EINVAL; return -1;}
1216 #endif /* ndef ENOANO */
1217         if (x == Mono_Posix_Errno_ENOBUFS)
1218 #ifdef ENOBUFS
1219                 {*r = ENOBUFS; return 0;}
1220 #else /* def ENOBUFS */
1221                 {errno = EINVAL; return -1;}
1222 #endif /* ndef ENOBUFS */
1223         if (x == Mono_Posix_Errno_ENOCSI)
1224 #ifdef ENOCSI
1225                 {*r = ENOCSI; return 0;}
1226 #else /* def ENOCSI */
1227                 {errno = EINVAL; return -1;}
1228 #endif /* ndef ENOCSI */
1229         if (x == Mono_Posix_Errno_ENODATA)
1230 #ifdef ENODATA
1231                 {*r = ENODATA; return 0;}
1232 #else /* def ENODATA */
1233                 {errno = EINVAL; return -1;}
1234 #endif /* ndef ENODATA */
1235         if (x == Mono_Posix_Errno_ENODEV)
1236 #ifdef ENODEV
1237                 {*r = ENODEV; return 0;}
1238 #else /* def ENODEV */
1239                 {errno = EINVAL; return -1;}
1240 #endif /* ndef ENODEV */
1241         if (x == Mono_Posix_Errno_ENOENT)
1242 #ifdef ENOENT
1243                 {*r = ENOENT; return 0;}
1244 #else /* def ENOENT */
1245                 {errno = EINVAL; return -1;}
1246 #endif /* ndef ENOENT */
1247         if (x == Mono_Posix_Errno_ENOEXEC)
1248 #ifdef ENOEXEC
1249                 {*r = ENOEXEC; return 0;}
1250 #else /* def ENOEXEC */
1251                 {errno = EINVAL; return -1;}
1252 #endif /* ndef ENOEXEC */
1253         if (x == Mono_Posix_Errno_ENOLCK)
1254 #ifdef ENOLCK
1255                 {*r = ENOLCK; return 0;}
1256 #else /* def ENOLCK */
1257                 {errno = EINVAL; return -1;}
1258 #endif /* ndef ENOLCK */
1259         if (x == Mono_Posix_Errno_ENOLINK)
1260 #ifdef ENOLINK
1261                 {*r = ENOLINK; return 0;}
1262 #else /* def ENOLINK */
1263                 {errno = EINVAL; return -1;}
1264 #endif /* ndef ENOLINK */
1265         if (x == Mono_Posix_Errno_ENOMEDIUM)
1266 #ifdef ENOMEDIUM
1267                 {*r = ENOMEDIUM; return 0;}
1268 #else /* def ENOMEDIUM */
1269                 {errno = EINVAL; return -1;}
1270 #endif /* ndef ENOMEDIUM */
1271         if (x == Mono_Posix_Errno_ENOMEM)
1272 #ifdef ENOMEM
1273                 {*r = ENOMEM; return 0;}
1274 #else /* def ENOMEM */
1275                 {errno = EINVAL; return -1;}
1276 #endif /* ndef ENOMEM */
1277         if (x == Mono_Posix_Errno_ENOMSG)
1278 #ifdef ENOMSG
1279                 {*r = ENOMSG; return 0;}
1280 #else /* def ENOMSG */
1281                 {errno = EINVAL; return -1;}
1282 #endif /* ndef ENOMSG */
1283         if (x == Mono_Posix_Errno_ENONET)
1284 #ifdef ENONET
1285                 {*r = ENONET; return 0;}
1286 #else /* def ENONET */
1287                 {errno = EINVAL; return -1;}
1288 #endif /* ndef ENONET */
1289         if (x == Mono_Posix_Errno_ENOPKG)
1290 #ifdef ENOPKG
1291                 {*r = ENOPKG; return 0;}
1292 #else /* def ENOPKG */
1293                 {errno = EINVAL; return -1;}
1294 #endif /* ndef ENOPKG */
1295         if (x == Mono_Posix_Errno_ENOPROTOOPT)
1296 #ifdef ENOPROTOOPT
1297                 {*r = ENOPROTOOPT; return 0;}
1298 #else /* def ENOPROTOOPT */
1299                 {errno = EINVAL; return -1;}
1300 #endif /* ndef ENOPROTOOPT */
1301         if (x == Mono_Posix_Errno_ENOSPC)
1302 #ifdef ENOSPC
1303                 {*r = ENOSPC; return 0;}
1304 #else /* def ENOSPC */
1305                 {errno = EINVAL; return -1;}
1306 #endif /* ndef ENOSPC */
1307         if (x == Mono_Posix_Errno_ENOSR)
1308 #ifdef ENOSR
1309                 {*r = ENOSR; return 0;}
1310 #else /* def ENOSR */
1311                 {errno = EINVAL; return -1;}
1312 #endif /* ndef ENOSR */
1313         if (x == Mono_Posix_Errno_ENOSTR)
1314 #ifdef ENOSTR
1315                 {*r = ENOSTR; return 0;}
1316 #else /* def ENOSTR */
1317                 {errno = EINVAL; return -1;}
1318 #endif /* ndef ENOSTR */
1319         if (x == Mono_Posix_Errno_ENOSYS)
1320 #ifdef ENOSYS
1321                 {*r = ENOSYS; return 0;}
1322 #else /* def ENOSYS */
1323                 {errno = EINVAL; return -1;}
1324 #endif /* ndef ENOSYS */
1325         if (x == Mono_Posix_Errno_ENOTBLK)
1326 #ifdef ENOTBLK
1327                 {*r = ENOTBLK; return 0;}
1328 #else /* def ENOTBLK */
1329                 {errno = EINVAL; return -1;}
1330 #endif /* ndef ENOTBLK */
1331         if (x == Mono_Posix_Errno_ENOTCONN)
1332 #ifdef ENOTCONN
1333                 {*r = ENOTCONN; return 0;}
1334 #else /* def ENOTCONN */
1335                 {errno = EINVAL; return -1;}
1336 #endif /* ndef ENOTCONN */
1337         if (x == Mono_Posix_Errno_ENOTDIR)
1338 #ifdef ENOTDIR
1339                 {*r = ENOTDIR; return 0;}
1340 #else /* def ENOTDIR */
1341                 {errno = EINVAL; return -1;}
1342 #endif /* ndef ENOTDIR */
1343         if (x == Mono_Posix_Errno_ENOTEMPTY)
1344 #ifdef ENOTEMPTY
1345                 {*r = ENOTEMPTY; return 0;}
1346 #else /* def ENOTEMPTY */
1347                 {errno = EINVAL; return -1;}
1348 #endif /* ndef ENOTEMPTY */
1349         if (x == Mono_Posix_Errno_ENOTNAM)
1350 #ifdef ENOTNAM
1351                 {*r = ENOTNAM; return 0;}
1352 #else /* def ENOTNAM */
1353                 {errno = EINVAL; return -1;}
1354 #endif /* ndef ENOTNAM */
1355         if (x == Mono_Posix_Errno_ENOTSOCK)
1356 #ifdef ENOTSOCK
1357                 {*r = ENOTSOCK; return 0;}
1358 #else /* def ENOTSOCK */
1359                 {errno = EINVAL; return -1;}
1360 #endif /* ndef ENOTSOCK */
1361         if (x == Mono_Posix_Errno_ENOTTY)
1362 #ifdef ENOTTY
1363                 {*r = ENOTTY; return 0;}
1364 #else /* def ENOTTY */
1365                 {errno = EINVAL; return -1;}
1366 #endif /* ndef ENOTTY */
1367         if (x == Mono_Posix_Errno_ENOTUNIQ)
1368 #ifdef ENOTUNIQ
1369                 {*r = ENOTUNIQ; return 0;}
1370 #else /* def ENOTUNIQ */
1371                 {errno = EINVAL; return -1;}
1372 #endif /* ndef ENOTUNIQ */
1373         if (x == Mono_Posix_Errno_ENXIO)
1374 #ifdef ENXIO
1375                 {*r = ENXIO; return 0;}
1376 #else /* def ENXIO */
1377                 {errno = EINVAL; return -1;}
1378 #endif /* ndef ENXIO */
1379         if (x == Mono_Posix_Errno_EOPNOTSUPP)
1380 #ifdef EOPNOTSUPP
1381                 {*r = EOPNOTSUPP; return 0;}
1382 #else /* def EOPNOTSUPP */
1383                 {errno = EINVAL; return -1;}
1384 #endif /* ndef EOPNOTSUPP */
1385         if (x == Mono_Posix_Errno_EOVERFLOW)
1386 #ifdef EOVERFLOW
1387                 {*r = EOVERFLOW; return 0;}
1388 #else /* def EOVERFLOW */
1389                 {errno = EINVAL; return -1;}
1390 #endif /* ndef EOVERFLOW */
1391         if (x == Mono_Posix_Errno_EPERM)
1392 #ifdef EPERM
1393                 {*r = EPERM; return 0;}
1394 #else /* def EPERM */
1395                 {errno = EINVAL; return -1;}
1396 #endif /* ndef EPERM */
1397         if (x == Mono_Posix_Errno_EPFNOSUPPORT)
1398 #ifdef EPFNOSUPPORT
1399                 {*r = EPFNOSUPPORT; return 0;}
1400 #else /* def EPFNOSUPPORT */
1401                 {errno = EINVAL; return -1;}
1402 #endif /* ndef EPFNOSUPPORT */
1403         if (x == Mono_Posix_Errno_EPIPE)
1404 #ifdef EPIPE
1405                 {*r = EPIPE; return 0;}
1406 #else /* def EPIPE */
1407                 {errno = EINVAL; return -1;}
1408 #endif /* ndef EPIPE */
1409         if (x == Mono_Posix_Errno_EPROTO)
1410 #ifdef EPROTO
1411                 {*r = EPROTO; return 0;}
1412 #else /* def EPROTO */
1413                 {errno = EINVAL; return -1;}
1414 #endif /* ndef EPROTO */
1415         if (x == Mono_Posix_Errno_EPROTONOSUPPORT)
1416 #ifdef EPROTONOSUPPORT
1417                 {*r = EPROTONOSUPPORT; return 0;}
1418 #else /* def EPROTONOSUPPORT */
1419                 {errno = EINVAL; return -1;}
1420 #endif /* ndef EPROTONOSUPPORT */
1421         if (x == Mono_Posix_Errno_EPROTOTYPE)
1422 #ifdef EPROTOTYPE
1423                 {*r = EPROTOTYPE; return 0;}
1424 #else /* def EPROTOTYPE */
1425                 {errno = EINVAL; return -1;}
1426 #endif /* ndef EPROTOTYPE */
1427         if (x == Mono_Posix_Errno_ERANGE)
1428 #ifdef ERANGE
1429                 {*r = ERANGE; return 0;}
1430 #else /* def ERANGE */
1431                 {errno = EINVAL; return -1;}
1432 #endif /* ndef ERANGE */
1433         if (x == Mono_Posix_Errno_EREMCHG)
1434 #ifdef EREMCHG
1435                 {*r = EREMCHG; return 0;}
1436 #else /* def EREMCHG */
1437                 {errno = EINVAL; return -1;}
1438 #endif /* ndef EREMCHG */
1439         if (x == Mono_Posix_Errno_EREMOTE)
1440 #ifdef EREMOTE
1441                 {*r = EREMOTE; return 0;}
1442 #else /* def EREMOTE */
1443                 {errno = EINVAL; return -1;}
1444 #endif /* ndef EREMOTE */
1445         if (x == Mono_Posix_Errno_EREMOTEIO)
1446 #ifdef EREMOTEIO
1447                 {*r = EREMOTEIO; return 0;}
1448 #else /* def EREMOTEIO */
1449                 {errno = EINVAL; return -1;}
1450 #endif /* ndef EREMOTEIO */
1451         if (x == Mono_Posix_Errno_ERESTART)
1452 #ifdef ERESTART
1453                 {*r = ERESTART; return 0;}
1454 #else /* def ERESTART */
1455                 {errno = EINVAL; return -1;}
1456 #endif /* ndef ERESTART */
1457         if (x == Mono_Posix_Errno_EROFS)
1458 #ifdef EROFS
1459                 {*r = EROFS; return 0;}
1460 #else /* def EROFS */
1461                 {errno = EINVAL; return -1;}
1462 #endif /* ndef EROFS */
1463         if (x == Mono_Posix_Errno_ESHUTDOWN)
1464 #ifdef ESHUTDOWN
1465                 {*r = ESHUTDOWN; return 0;}
1466 #else /* def ESHUTDOWN */
1467                 {errno = EINVAL; return -1;}
1468 #endif /* ndef ESHUTDOWN */
1469         if (x == Mono_Posix_Errno_ESOCKTNOSUPPORT)
1470 #ifdef ESOCKTNOSUPPORT
1471                 {*r = ESOCKTNOSUPPORT; return 0;}
1472 #else /* def ESOCKTNOSUPPORT */
1473                 {errno = EINVAL; return -1;}
1474 #endif /* ndef ESOCKTNOSUPPORT */
1475         if (x == Mono_Posix_Errno_ESPIPE)
1476 #ifdef ESPIPE
1477                 {*r = ESPIPE; return 0;}
1478 #else /* def ESPIPE */
1479                 {errno = EINVAL; return -1;}
1480 #endif /* ndef ESPIPE */
1481         if (x == Mono_Posix_Errno_ESRCH)
1482 #ifdef ESRCH
1483                 {*r = ESRCH; return 0;}
1484 #else /* def ESRCH */
1485                 {errno = EINVAL; return -1;}
1486 #endif /* ndef ESRCH */
1487         if (x == Mono_Posix_Errno_ESRMNT)
1488 #ifdef ESRMNT
1489                 {*r = ESRMNT; return 0;}
1490 #else /* def ESRMNT */
1491                 {errno = EINVAL; return -1;}
1492 #endif /* ndef ESRMNT */
1493         if (x == Mono_Posix_Errno_ESTALE)
1494 #ifdef ESTALE
1495                 {*r = ESTALE; return 0;}
1496 #else /* def ESTALE */
1497                 {errno = EINVAL; return -1;}
1498 #endif /* ndef ESTALE */
1499         if (x == Mono_Posix_Errno_ESTRPIPE)
1500 #ifdef ESTRPIPE
1501                 {*r = ESTRPIPE; return 0;}
1502 #else /* def ESTRPIPE */
1503                 {errno = EINVAL; return -1;}
1504 #endif /* ndef ESTRPIPE */
1505         if (x == Mono_Posix_Errno_ETIME)
1506 #ifdef ETIME
1507                 {*r = ETIME; return 0;}
1508 #else /* def ETIME */
1509                 {errno = EINVAL; return -1;}
1510 #endif /* ndef ETIME */
1511         if (x == Mono_Posix_Errno_ETIMEDOUT)
1512 #ifdef ETIMEDOUT
1513                 {*r = ETIMEDOUT; return 0;}
1514 #else /* def ETIMEDOUT */
1515                 {errno = EINVAL; return -1;}
1516 #endif /* ndef ETIMEDOUT */
1517         if (x == Mono_Posix_Errno_ETOOMANYREFS)
1518 #ifdef ETOOMANYREFS
1519                 {*r = ETOOMANYREFS; return 0;}
1520 #else /* def ETOOMANYREFS */
1521                 {errno = EINVAL; return -1;}
1522 #endif /* ndef ETOOMANYREFS */
1523         if (x == Mono_Posix_Errno_ETXTBSY)
1524 #ifdef ETXTBSY
1525                 {*r = ETXTBSY; return 0;}
1526 #else /* def ETXTBSY */
1527                 {errno = EINVAL; return -1;}
1528 #endif /* ndef ETXTBSY */
1529         if (x == Mono_Posix_Errno_EUCLEAN)
1530 #ifdef EUCLEAN
1531                 {*r = EUCLEAN; return 0;}
1532 #else /* def EUCLEAN */
1533                 {errno = EINVAL; return -1;}
1534 #endif /* ndef EUCLEAN */
1535         if (x == Mono_Posix_Errno_EUNATCH)
1536 #ifdef EUNATCH
1537                 {*r = EUNATCH; return 0;}
1538 #else /* def EUNATCH */
1539                 {errno = EINVAL; return -1;}
1540 #endif /* ndef EUNATCH */
1541         if (x == Mono_Posix_Errno_EUSERS)
1542 #ifdef EUSERS
1543                 {*r = EUSERS; return 0;}
1544 #else /* def EUSERS */
1545                 {errno = EINVAL; return -1;}
1546 #endif /* ndef EUSERS */
1547         if (x == Mono_Posix_Errno_EWOULDBLOCK)
1548 #ifdef EWOULDBLOCK
1549                 {*r = EWOULDBLOCK; return 0;}
1550 #else /* def EWOULDBLOCK */
1551                 {errno = EINVAL; return -1;}
1552 #endif /* ndef EWOULDBLOCK */
1553         if (x == Mono_Posix_Errno_EXDEV)
1554 #ifdef EXDEV
1555                 {*r = EXDEV; return 0;}
1556 #else /* def EXDEV */
1557                 {errno = EINVAL; return -1;}
1558 #endif /* ndef EXDEV */
1559         if (x == Mono_Posix_Errno_EXFULL)
1560 #ifdef EXFULL
1561                 {*r = EXFULL; return 0;}
1562 #else /* def EXFULL */
1563                 {errno = EINVAL; return -1;}
1564 #endif /* ndef EXFULL */
1565         if (x == 0)
1566                 return 0;
1567         errno = EINVAL; return -1;
1568 }
1569
1570 int Mono_Posix_ToErrno (int x, int *r)
1571 {
1572         *r = 0;
1573         if (x == 0)
1574                 return 0;
1575 #ifdef E2BIG
1576         if (x == E2BIG)
1577                 {*r = Mono_Posix_Errno_E2BIG; return 0;}
1578 #endif /* ndef E2BIG */
1579 #ifdef EACCES
1580         if (x == EACCES)
1581                 {*r = Mono_Posix_Errno_EACCES; return 0;}
1582 #endif /* ndef EACCES */
1583 #ifdef EADDRINUSE
1584         if (x == EADDRINUSE)
1585                 {*r = Mono_Posix_Errno_EADDRINUSE; return 0;}
1586 #endif /* ndef EADDRINUSE */
1587 #ifdef EADDRNOTAVAIL
1588         if (x == EADDRNOTAVAIL)
1589                 {*r = Mono_Posix_Errno_EADDRNOTAVAIL; return 0;}
1590 #endif /* ndef EADDRNOTAVAIL */
1591 #ifdef EADV
1592         if (x == EADV)
1593                 {*r = Mono_Posix_Errno_EADV; return 0;}
1594 #endif /* ndef EADV */
1595 #ifdef EAFNOSUPPORT
1596         if (x == EAFNOSUPPORT)
1597                 {*r = Mono_Posix_Errno_EAFNOSUPPORT; return 0;}
1598 #endif /* ndef EAFNOSUPPORT */
1599 #ifdef EAGAIN
1600         if (x == EAGAIN)
1601                 {*r = Mono_Posix_Errno_EAGAIN; return 0;}
1602 #endif /* ndef EAGAIN */
1603 #ifdef EALREADY
1604         if (x == EALREADY)
1605                 {*r = Mono_Posix_Errno_EALREADY; return 0;}
1606 #endif /* ndef EALREADY */
1607 #ifdef EBADE
1608         if (x == EBADE)
1609                 {*r = Mono_Posix_Errno_EBADE; return 0;}
1610 #endif /* ndef EBADE */
1611 #ifdef EBADF
1612         if (x == EBADF)
1613                 {*r = Mono_Posix_Errno_EBADF; return 0;}
1614 #endif /* ndef EBADF */
1615 #ifdef EBADFD
1616         if (x == EBADFD)
1617                 {*r = Mono_Posix_Errno_EBADFD; return 0;}
1618 #endif /* ndef EBADFD */
1619 #ifdef EBADMSG
1620         if (x == EBADMSG)
1621                 {*r = Mono_Posix_Errno_EBADMSG; return 0;}
1622 #endif /* ndef EBADMSG */
1623 #ifdef EBADR
1624         if (x == EBADR)
1625                 {*r = Mono_Posix_Errno_EBADR; return 0;}
1626 #endif /* ndef EBADR */
1627 #ifdef EBADRQC
1628         if (x == EBADRQC)
1629                 {*r = Mono_Posix_Errno_EBADRQC; return 0;}
1630 #endif /* ndef EBADRQC */
1631 #ifdef EBADSLT
1632         if (x == EBADSLT)
1633                 {*r = Mono_Posix_Errno_EBADSLT; return 0;}
1634 #endif /* ndef EBADSLT */
1635 #ifdef EBFONT
1636         if (x == EBFONT)
1637                 {*r = Mono_Posix_Errno_EBFONT; return 0;}
1638 #endif /* ndef EBFONT */
1639 #ifdef EBUSY
1640         if (x == EBUSY)
1641                 {*r = Mono_Posix_Errno_EBUSY; return 0;}
1642 #endif /* ndef EBUSY */
1643 #ifdef ECHILD
1644         if (x == ECHILD)
1645                 {*r = Mono_Posix_Errno_ECHILD; return 0;}
1646 #endif /* ndef ECHILD */
1647 #ifdef ECHRNG
1648         if (x == ECHRNG)
1649                 {*r = Mono_Posix_Errno_ECHRNG; return 0;}
1650 #endif /* ndef ECHRNG */
1651 #ifdef ECOMM
1652         if (x == ECOMM)
1653                 {*r = Mono_Posix_Errno_ECOMM; return 0;}
1654 #endif /* ndef ECOMM */
1655 #ifdef ECONNABORTED
1656         if (x == ECONNABORTED)
1657                 {*r = Mono_Posix_Errno_ECONNABORTED; return 0;}
1658 #endif /* ndef ECONNABORTED */
1659 #ifdef ECONNREFUSED
1660         if (x == ECONNREFUSED)
1661                 {*r = Mono_Posix_Errno_ECONNREFUSED; return 0;}
1662 #endif /* ndef ECONNREFUSED */
1663 #ifdef ECONNRESET
1664         if (x == ECONNRESET)
1665                 {*r = Mono_Posix_Errno_ECONNRESET; return 0;}
1666 #endif /* ndef ECONNRESET */
1667 #ifdef EDEADLK
1668         if (x == EDEADLK)
1669                 {*r = Mono_Posix_Errno_EDEADLK; return 0;}
1670 #endif /* ndef EDEADLK */
1671 #ifdef EDEADLOCK
1672         if (x == EDEADLOCK)
1673                 {*r = Mono_Posix_Errno_EDEADLOCK; return 0;}
1674 #endif /* ndef EDEADLOCK */
1675 #ifdef EDESTADDRREQ
1676         if (x == EDESTADDRREQ)
1677                 {*r = Mono_Posix_Errno_EDESTADDRREQ; return 0;}
1678 #endif /* ndef EDESTADDRREQ */
1679 #ifdef EDOM
1680         if (x == EDOM)
1681                 {*r = Mono_Posix_Errno_EDOM; return 0;}
1682 #endif /* ndef EDOM */
1683 #ifdef EDOTDOT
1684         if (x == EDOTDOT)
1685                 {*r = Mono_Posix_Errno_EDOTDOT; return 0;}
1686 #endif /* ndef EDOTDOT */
1687 #ifdef EDQUOT
1688         if (x == EDQUOT)
1689                 {*r = Mono_Posix_Errno_EDQUOT; return 0;}
1690 #endif /* ndef EDQUOT */
1691 #ifdef EEXIST
1692         if (x == EEXIST)
1693                 {*r = Mono_Posix_Errno_EEXIST; return 0;}
1694 #endif /* ndef EEXIST */
1695 #ifdef EFAULT
1696         if (x == EFAULT)
1697                 {*r = Mono_Posix_Errno_EFAULT; return 0;}
1698 #endif /* ndef EFAULT */
1699 #ifdef EFBIG
1700         if (x == EFBIG)
1701                 {*r = Mono_Posix_Errno_EFBIG; return 0;}
1702 #endif /* ndef EFBIG */
1703 #ifdef EHOSTDOWN
1704         if (x == EHOSTDOWN)
1705                 {*r = Mono_Posix_Errno_EHOSTDOWN; return 0;}
1706 #endif /* ndef EHOSTDOWN */
1707 #ifdef EHOSTUNREACH
1708         if (x == EHOSTUNREACH)
1709                 {*r = Mono_Posix_Errno_EHOSTUNREACH; return 0;}
1710 #endif /* ndef EHOSTUNREACH */
1711 #ifdef EIDRM
1712         if (x == EIDRM)
1713                 {*r = Mono_Posix_Errno_EIDRM; return 0;}
1714 #endif /* ndef EIDRM */
1715 #ifdef EILSEQ
1716         if (x == EILSEQ)
1717                 {*r = Mono_Posix_Errno_EILSEQ; return 0;}
1718 #endif /* ndef EILSEQ */
1719 #ifdef EINPROGRESS
1720         if (x == EINPROGRESS)
1721                 {*r = Mono_Posix_Errno_EINPROGRESS; return 0;}
1722 #endif /* ndef EINPROGRESS */
1723 #ifdef EINTR
1724         if (x == EINTR)
1725                 {*r = Mono_Posix_Errno_EINTR; return 0;}
1726 #endif /* ndef EINTR */
1727 #ifdef EINVAL
1728         if (x == EINVAL)
1729                 {*r = Mono_Posix_Errno_EINVAL; return 0;}
1730 #endif /* ndef EINVAL */
1731 #ifdef EIO
1732         if (x == EIO)
1733                 {*r = Mono_Posix_Errno_EIO; return 0;}
1734 #endif /* ndef EIO */
1735 #ifdef EISCONN
1736         if (x == EISCONN)
1737                 {*r = Mono_Posix_Errno_EISCONN; return 0;}
1738 #endif /* ndef EISCONN */
1739 #ifdef EISDIR
1740         if (x == EISDIR)
1741                 {*r = Mono_Posix_Errno_EISDIR; return 0;}
1742 #endif /* ndef EISDIR */
1743 #ifdef EISNAM
1744         if (x == EISNAM)
1745                 {*r = Mono_Posix_Errno_EISNAM; return 0;}
1746 #endif /* ndef EISNAM */
1747 #ifdef EL2HLT
1748         if (x == EL2HLT)
1749                 {*r = Mono_Posix_Errno_EL2HLT; return 0;}
1750 #endif /* ndef EL2HLT */
1751 #ifdef EL2NSYNC
1752         if (x == EL2NSYNC)
1753                 {*r = Mono_Posix_Errno_EL2NSYNC; return 0;}
1754 #endif /* ndef EL2NSYNC */
1755 #ifdef EL3HLT
1756         if (x == EL3HLT)
1757                 {*r = Mono_Posix_Errno_EL3HLT; return 0;}
1758 #endif /* ndef EL3HLT */
1759 #ifdef EL3RST
1760         if (x == EL3RST)
1761                 {*r = Mono_Posix_Errno_EL3RST; return 0;}
1762 #endif /* ndef EL3RST */
1763 #ifdef ELIBACC
1764         if (x == ELIBACC)
1765                 {*r = Mono_Posix_Errno_ELIBACC; return 0;}
1766 #endif /* ndef ELIBACC */
1767 #ifdef ELIBBAD
1768         if (x == ELIBBAD)
1769                 {*r = Mono_Posix_Errno_ELIBBAD; return 0;}
1770 #endif /* ndef ELIBBAD */
1771 #ifdef ELIBEXEC
1772         if (x == ELIBEXEC)
1773                 {*r = Mono_Posix_Errno_ELIBEXEC; return 0;}
1774 #endif /* ndef ELIBEXEC */
1775 #ifdef ELIBMAX
1776         if (x == ELIBMAX)
1777                 {*r = Mono_Posix_Errno_ELIBMAX; return 0;}
1778 #endif /* ndef ELIBMAX */
1779 #ifdef ELIBSCN
1780         if (x == ELIBSCN)
1781                 {*r = Mono_Posix_Errno_ELIBSCN; return 0;}
1782 #endif /* ndef ELIBSCN */
1783 #ifdef ELNRNG
1784         if (x == ELNRNG)
1785                 {*r = Mono_Posix_Errno_ELNRNG; return 0;}
1786 #endif /* ndef ELNRNG */
1787 #ifdef ELOOP
1788         if (x == ELOOP)
1789                 {*r = Mono_Posix_Errno_ELOOP; return 0;}
1790 #endif /* ndef ELOOP */
1791 #ifdef EMEDIUMTYPE
1792         if (x == EMEDIUMTYPE)
1793                 {*r = Mono_Posix_Errno_EMEDIUMTYPE; return 0;}
1794 #endif /* ndef EMEDIUMTYPE */
1795 #ifdef EMFILE
1796         if (x == EMFILE)
1797                 {*r = Mono_Posix_Errno_EMFILE; return 0;}
1798 #endif /* ndef EMFILE */
1799 #ifdef EMLINK
1800         if (x == EMLINK)
1801                 {*r = Mono_Posix_Errno_EMLINK; return 0;}
1802 #endif /* ndef EMLINK */
1803 #ifdef EMSGSIZE
1804         if (x == EMSGSIZE)
1805                 {*r = Mono_Posix_Errno_EMSGSIZE; return 0;}
1806 #endif /* ndef EMSGSIZE */
1807 #ifdef EMULTIHOP
1808         if (x == EMULTIHOP)
1809                 {*r = Mono_Posix_Errno_EMULTIHOP; return 0;}
1810 #endif /* ndef EMULTIHOP */
1811 #ifdef ENAMETOOLONG
1812         if (x == ENAMETOOLONG)
1813                 {*r = Mono_Posix_Errno_ENAMETOOLONG; return 0;}
1814 #endif /* ndef ENAMETOOLONG */
1815 #ifdef ENAVAIL
1816         if (x == ENAVAIL)
1817                 {*r = Mono_Posix_Errno_ENAVAIL; return 0;}
1818 #endif /* ndef ENAVAIL */
1819 #ifdef ENETDOWN
1820         if (x == ENETDOWN)
1821                 {*r = Mono_Posix_Errno_ENETDOWN; return 0;}
1822 #endif /* ndef ENETDOWN */
1823 #ifdef ENETRESET
1824         if (x == ENETRESET)
1825                 {*r = Mono_Posix_Errno_ENETRESET; return 0;}
1826 #endif /* ndef ENETRESET */
1827 #ifdef ENETUNREACH
1828         if (x == ENETUNREACH)
1829                 {*r = Mono_Posix_Errno_ENETUNREACH; return 0;}
1830 #endif /* ndef ENETUNREACH */
1831 #ifdef ENFILE
1832         if (x == ENFILE)
1833                 {*r = Mono_Posix_Errno_ENFILE; return 0;}
1834 #endif /* ndef ENFILE */
1835 #ifdef ENOANO
1836         if (x == ENOANO)
1837                 {*r = Mono_Posix_Errno_ENOANO; return 0;}
1838 #endif /* ndef ENOANO */
1839 #ifdef ENOBUFS
1840         if (x == ENOBUFS)
1841                 {*r = Mono_Posix_Errno_ENOBUFS; return 0;}
1842 #endif /* ndef ENOBUFS */
1843 #ifdef ENOCSI
1844         if (x == ENOCSI)
1845                 {*r = Mono_Posix_Errno_ENOCSI; return 0;}
1846 #endif /* ndef ENOCSI */
1847 #ifdef ENODATA
1848         if (x == ENODATA)
1849                 {*r = Mono_Posix_Errno_ENODATA; return 0;}
1850 #endif /* ndef ENODATA */
1851 #ifdef ENODEV
1852         if (x == ENODEV)
1853                 {*r = Mono_Posix_Errno_ENODEV; return 0;}
1854 #endif /* ndef ENODEV */
1855 #ifdef ENOENT
1856         if (x == ENOENT)
1857                 {*r = Mono_Posix_Errno_ENOENT; return 0;}
1858 #endif /* ndef ENOENT */
1859 #ifdef ENOEXEC
1860         if (x == ENOEXEC)
1861                 {*r = Mono_Posix_Errno_ENOEXEC; return 0;}
1862 #endif /* ndef ENOEXEC */
1863 #ifdef ENOLCK
1864         if (x == ENOLCK)
1865                 {*r = Mono_Posix_Errno_ENOLCK; return 0;}
1866 #endif /* ndef ENOLCK */
1867 #ifdef ENOLINK
1868         if (x == ENOLINK)
1869                 {*r = Mono_Posix_Errno_ENOLINK; return 0;}
1870 #endif /* ndef ENOLINK */
1871 #ifdef ENOMEDIUM
1872         if (x == ENOMEDIUM)
1873                 {*r = Mono_Posix_Errno_ENOMEDIUM; return 0;}
1874 #endif /* ndef ENOMEDIUM */
1875 #ifdef ENOMEM
1876         if (x == ENOMEM)
1877                 {*r = Mono_Posix_Errno_ENOMEM; return 0;}
1878 #endif /* ndef ENOMEM */
1879 #ifdef ENOMSG
1880         if (x == ENOMSG)
1881                 {*r = Mono_Posix_Errno_ENOMSG; return 0;}
1882 #endif /* ndef ENOMSG */
1883 #ifdef ENONET
1884         if (x == ENONET)
1885                 {*r = Mono_Posix_Errno_ENONET; return 0;}
1886 #endif /* ndef ENONET */
1887 #ifdef ENOPKG
1888         if (x == ENOPKG)
1889                 {*r = Mono_Posix_Errno_ENOPKG; return 0;}
1890 #endif /* ndef ENOPKG */
1891 #ifdef ENOPROTOOPT
1892         if (x == ENOPROTOOPT)
1893                 {*r = Mono_Posix_Errno_ENOPROTOOPT; return 0;}
1894 #endif /* ndef ENOPROTOOPT */
1895 #ifdef ENOSPC
1896         if (x == ENOSPC)
1897                 {*r = Mono_Posix_Errno_ENOSPC; return 0;}
1898 #endif /* ndef ENOSPC */
1899 #ifdef ENOSR
1900         if (x == ENOSR)
1901                 {*r = Mono_Posix_Errno_ENOSR; return 0;}
1902 #endif /* ndef ENOSR */
1903 #ifdef ENOSTR
1904         if (x == ENOSTR)
1905                 {*r = Mono_Posix_Errno_ENOSTR; return 0;}
1906 #endif /* ndef ENOSTR */
1907 #ifdef ENOSYS
1908         if (x == ENOSYS)
1909                 {*r = Mono_Posix_Errno_ENOSYS; return 0;}
1910 #endif /* ndef ENOSYS */
1911 #ifdef ENOTBLK
1912         if (x == ENOTBLK)
1913                 {*r = Mono_Posix_Errno_ENOTBLK; return 0;}
1914 #endif /* ndef ENOTBLK */
1915 #ifdef ENOTCONN
1916         if (x == ENOTCONN)
1917                 {*r = Mono_Posix_Errno_ENOTCONN; return 0;}
1918 #endif /* ndef ENOTCONN */
1919 #ifdef ENOTDIR
1920         if (x == ENOTDIR)
1921                 {*r = Mono_Posix_Errno_ENOTDIR; return 0;}
1922 #endif /* ndef ENOTDIR */
1923 #ifdef ENOTEMPTY
1924         if (x == ENOTEMPTY)
1925                 {*r = Mono_Posix_Errno_ENOTEMPTY; return 0;}
1926 #endif /* ndef ENOTEMPTY */
1927 #ifdef ENOTNAM
1928         if (x == ENOTNAM)
1929                 {*r = Mono_Posix_Errno_ENOTNAM; return 0;}
1930 #endif /* ndef ENOTNAM */
1931 #ifdef ENOTSOCK
1932         if (x == ENOTSOCK)
1933                 {*r = Mono_Posix_Errno_ENOTSOCK; return 0;}
1934 #endif /* ndef ENOTSOCK */
1935 #ifdef ENOTTY
1936         if (x == ENOTTY)
1937                 {*r = Mono_Posix_Errno_ENOTTY; return 0;}
1938 #endif /* ndef ENOTTY */
1939 #ifdef ENOTUNIQ
1940         if (x == ENOTUNIQ)
1941                 {*r = Mono_Posix_Errno_ENOTUNIQ; return 0;}
1942 #endif /* ndef ENOTUNIQ */
1943 #ifdef ENXIO
1944         if (x == ENXIO)
1945                 {*r = Mono_Posix_Errno_ENXIO; return 0;}
1946 #endif /* ndef ENXIO */
1947 #ifdef EOPNOTSUPP
1948         if (x == EOPNOTSUPP)
1949                 {*r = Mono_Posix_Errno_EOPNOTSUPP; return 0;}
1950 #endif /* ndef EOPNOTSUPP */
1951 #ifdef EOVERFLOW
1952         if (x == EOVERFLOW)
1953                 {*r = Mono_Posix_Errno_EOVERFLOW; return 0;}
1954 #endif /* ndef EOVERFLOW */
1955 #ifdef EPERM
1956         if (x == EPERM)
1957                 {*r = Mono_Posix_Errno_EPERM; return 0;}
1958 #endif /* ndef EPERM */
1959 #ifdef EPFNOSUPPORT
1960         if (x == EPFNOSUPPORT)
1961                 {*r = Mono_Posix_Errno_EPFNOSUPPORT; return 0;}
1962 #endif /* ndef EPFNOSUPPORT */
1963 #ifdef EPIPE
1964         if (x == EPIPE)
1965                 {*r = Mono_Posix_Errno_EPIPE; return 0;}
1966 #endif /* ndef EPIPE */
1967 #ifdef EPROTO
1968         if (x == EPROTO)
1969                 {*r = Mono_Posix_Errno_EPROTO; return 0;}
1970 #endif /* ndef EPROTO */
1971 #ifdef EPROTONOSUPPORT
1972         if (x == EPROTONOSUPPORT)
1973                 {*r = Mono_Posix_Errno_EPROTONOSUPPORT; return 0;}
1974 #endif /* ndef EPROTONOSUPPORT */
1975 #ifdef EPROTOTYPE
1976         if (x == EPROTOTYPE)
1977                 {*r = Mono_Posix_Errno_EPROTOTYPE; return 0;}
1978 #endif /* ndef EPROTOTYPE */
1979 #ifdef ERANGE
1980         if (x == ERANGE)
1981                 {*r = Mono_Posix_Errno_ERANGE; return 0;}
1982 #endif /* ndef ERANGE */
1983 #ifdef EREMCHG
1984         if (x == EREMCHG)
1985                 {*r = Mono_Posix_Errno_EREMCHG; return 0;}
1986 #endif /* ndef EREMCHG */
1987 #ifdef EREMOTE
1988         if (x == EREMOTE)
1989                 {*r = Mono_Posix_Errno_EREMOTE; return 0;}
1990 #endif /* ndef EREMOTE */
1991 #ifdef EREMOTEIO
1992         if (x == EREMOTEIO)
1993                 {*r = Mono_Posix_Errno_EREMOTEIO; return 0;}
1994 #endif /* ndef EREMOTEIO */
1995 #ifdef ERESTART
1996         if (x == ERESTART)
1997                 {*r = Mono_Posix_Errno_ERESTART; return 0;}
1998 #endif /* ndef ERESTART */
1999 #ifdef EROFS
2000         if (x == EROFS)
2001                 {*r = Mono_Posix_Errno_EROFS; return 0;}
2002 #endif /* ndef EROFS */
2003 #ifdef ESHUTDOWN
2004         if (x == ESHUTDOWN)
2005                 {*r = Mono_Posix_Errno_ESHUTDOWN; return 0;}
2006 #endif /* ndef ESHUTDOWN */
2007 #ifdef ESOCKTNOSUPPORT
2008         if (x == ESOCKTNOSUPPORT)
2009                 {*r = Mono_Posix_Errno_ESOCKTNOSUPPORT; return 0;}
2010 #endif /* ndef ESOCKTNOSUPPORT */
2011 #ifdef ESPIPE
2012         if (x == ESPIPE)
2013                 {*r = Mono_Posix_Errno_ESPIPE; return 0;}
2014 #endif /* ndef ESPIPE */
2015 #ifdef ESRCH
2016         if (x == ESRCH)
2017                 {*r = Mono_Posix_Errno_ESRCH; return 0;}
2018 #endif /* ndef ESRCH */
2019 #ifdef ESRMNT
2020         if (x == ESRMNT)
2021                 {*r = Mono_Posix_Errno_ESRMNT; return 0;}
2022 #endif /* ndef ESRMNT */
2023 #ifdef ESTALE
2024         if (x == ESTALE)
2025                 {*r = Mono_Posix_Errno_ESTALE; return 0;}
2026 #endif /* ndef ESTALE */
2027 #ifdef ESTRPIPE
2028         if (x == ESTRPIPE)
2029                 {*r = Mono_Posix_Errno_ESTRPIPE; return 0;}
2030 #endif /* ndef ESTRPIPE */
2031 #ifdef ETIME
2032         if (x == ETIME)
2033                 {*r = Mono_Posix_Errno_ETIME; return 0;}
2034 #endif /* ndef ETIME */
2035 #ifdef ETIMEDOUT
2036         if (x == ETIMEDOUT)
2037                 {*r = Mono_Posix_Errno_ETIMEDOUT; return 0;}
2038 #endif /* ndef ETIMEDOUT */
2039 #ifdef ETOOMANYREFS
2040         if (x == ETOOMANYREFS)
2041                 {*r = Mono_Posix_Errno_ETOOMANYREFS; return 0;}
2042 #endif /* ndef ETOOMANYREFS */
2043 #ifdef ETXTBSY
2044         if (x == ETXTBSY)
2045                 {*r = Mono_Posix_Errno_ETXTBSY; return 0;}
2046 #endif /* ndef ETXTBSY */
2047 #ifdef EUCLEAN
2048         if (x == EUCLEAN)
2049                 {*r = Mono_Posix_Errno_EUCLEAN; return 0;}
2050 #endif /* ndef EUCLEAN */
2051 #ifdef EUNATCH
2052         if (x == EUNATCH)
2053                 {*r = Mono_Posix_Errno_EUNATCH; return 0;}
2054 #endif /* ndef EUNATCH */
2055 #ifdef EUSERS
2056         if (x == EUSERS)
2057                 {*r = Mono_Posix_Errno_EUSERS; return 0;}
2058 #endif /* ndef EUSERS */
2059 #ifdef EWOULDBLOCK
2060         if (x == EWOULDBLOCK)
2061                 {*r = Mono_Posix_Errno_EWOULDBLOCK; return 0;}
2062 #endif /* ndef EWOULDBLOCK */
2063 #ifdef EXDEV
2064         if (x == EXDEV)
2065                 {*r = Mono_Posix_Errno_EXDEV; return 0;}
2066 #endif /* ndef EXDEV */
2067 #ifdef EXFULL
2068         if (x == EXFULL)
2069                 {*r = Mono_Posix_Errno_EXFULL; return 0;}
2070 #endif /* ndef EXFULL */
2071         errno = EINVAL; return -1;
2072 }
2073
2074 int Mono_Posix_FromFcntlCommand (int x, int *r)
2075 {
2076         *r = 0;
2077         if (x == Mono_Posix_FcntlCommand_F_DUPFD)
2078 #ifdef F_DUPFD
2079                 {*r = F_DUPFD; return 0;}
2080 #else /* def F_DUPFD */
2081                 {errno = EINVAL; return -1;}
2082 #endif /* ndef F_DUPFD */
2083         if (x == Mono_Posix_FcntlCommand_F_GETFD)
2084 #ifdef F_GETFD
2085                 {*r = F_GETFD; return 0;}
2086 #else /* def F_GETFD */
2087                 {errno = EINVAL; return -1;}
2088 #endif /* ndef F_GETFD */
2089         if (x == Mono_Posix_FcntlCommand_F_GETFL)
2090 #ifdef F_GETFL
2091                 {*r = F_GETFL; return 0;}
2092 #else /* def F_GETFL */
2093                 {errno = EINVAL; return -1;}
2094 #endif /* ndef F_GETFL */
2095         if (x == Mono_Posix_FcntlCommand_F_GETLEASE)
2096 #ifdef F_GETLEASE
2097                 {*r = F_GETLEASE; return 0;}
2098 #else /* def F_GETLEASE */
2099                 {errno = EINVAL; return -1;}
2100 #endif /* ndef F_GETLEASE */
2101         if (x == Mono_Posix_FcntlCommand_F_GETLK)
2102 #ifdef F_GETLK
2103                 {*r = F_GETLK; return 0;}
2104 #else /* def F_GETLK */
2105                 {errno = EINVAL; return -1;}
2106 #endif /* ndef F_GETLK */
2107         if (x == Mono_Posix_FcntlCommand_F_GETOWN)
2108 #ifdef F_GETOWN
2109                 {*r = F_GETOWN; return 0;}
2110 #else /* def F_GETOWN */
2111                 {errno = EINVAL; return -1;}
2112 #endif /* ndef F_GETOWN */
2113         if (x == Mono_Posix_FcntlCommand_F_GETSIG)
2114 #ifdef F_GETSIG
2115                 {*r = F_GETSIG; return 0;}
2116 #else /* def F_GETSIG */
2117                 {errno = EINVAL; return -1;}
2118 #endif /* ndef F_GETSIG */
2119         if (x == Mono_Posix_FcntlCommand_F_NOTIFY)
2120 #ifdef F_NOTIFY
2121                 {*r = F_NOTIFY; return 0;}
2122 #else /* def F_NOTIFY */
2123                 {errno = EINVAL; return -1;}
2124 #endif /* ndef F_NOTIFY */
2125         if (x == Mono_Posix_FcntlCommand_F_SETFD)
2126 #ifdef F_SETFD
2127                 {*r = F_SETFD; return 0;}
2128 #else /* def F_SETFD */
2129                 {errno = EINVAL; return -1;}
2130 #endif /* ndef F_SETFD */
2131         if (x == Mono_Posix_FcntlCommand_F_SETFL)
2132 #ifdef F_SETFL
2133                 {*r = F_SETFL; return 0;}
2134 #else /* def F_SETFL */
2135                 {errno = EINVAL; return -1;}
2136 #endif /* ndef F_SETFL */
2137         if (x == Mono_Posix_FcntlCommand_F_SETLEASE)
2138 #ifdef F_SETLEASE
2139                 {*r = F_SETLEASE; return 0;}
2140 #else /* def F_SETLEASE */
2141                 {errno = EINVAL; return -1;}
2142 #endif /* ndef F_SETLEASE */
2143         if (x == Mono_Posix_FcntlCommand_F_SETLK)
2144 #ifdef F_SETLK
2145                 {*r = F_SETLK; return 0;}
2146 #else /* def F_SETLK */
2147                 {errno = EINVAL; return -1;}
2148 #endif /* ndef F_SETLK */
2149         if (x == Mono_Posix_FcntlCommand_F_SETLKW)
2150 #ifdef F_SETLKW
2151                 {*r = F_SETLKW; return 0;}
2152 #else /* def F_SETLKW */
2153                 {errno = EINVAL; return -1;}
2154 #endif /* ndef F_SETLKW */
2155         if (x == Mono_Posix_FcntlCommand_F_SETOWN)
2156 #ifdef F_SETOWN
2157                 {*r = F_SETOWN; return 0;}
2158 #else /* def F_SETOWN */
2159                 {errno = EINVAL; return -1;}
2160 #endif /* ndef F_SETOWN */
2161         if (x == Mono_Posix_FcntlCommand_F_SETSIG)
2162 #ifdef F_SETSIG
2163                 {*r = F_SETSIG; return 0;}
2164 #else /* def F_SETSIG */
2165                 {errno = EINVAL; return -1;}
2166 #endif /* ndef F_SETSIG */
2167         if (x == 0)
2168                 return 0;
2169         errno = EINVAL; return -1;
2170 }
2171
2172 int Mono_Posix_ToFcntlCommand (int x, int *r)
2173 {
2174         *r = 0;
2175         if (x == 0)
2176                 return 0;
2177 #ifdef F_DUPFD
2178         if (x == F_DUPFD)
2179                 {*r = Mono_Posix_FcntlCommand_F_DUPFD; return 0;}
2180 #endif /* ndef F_DUPFD */
2181 #ifdef F_GETFD
2182         if (x == F_GETFD)
2183                 {*r = Mono_Posix_FcntlCommand_F_GETFD; return 0;}
2184 #endif /* ndef F_GETFD */
2185 #ifdef F_GETFL
2186         if (x == F_GETFL)
2187                 {*r = Mono_Posix_FcntlCommand_F_GETFL; return 0;}
2188 #endif /* ndef F_GETFL */
2189 #ifdef F_GETLEASE
2190         if (x == F_GETLEASE)
2191                 {*r = Mono_Posix_FcntlCommand_F_GETLEASE; return 0;}
2192 #endif /* ndef F_GETLEASE */
2193 #ifdef F_GETLK
2194         if (x == F_GETLK)
2195                 {*r = Mono_Posix_FcntlCommand_F_GETLK; return 0;}
2196 #endif /* ndef F_GETLK */
2197 #ifdef F_GETOWN
2198         if (x == F_GETOWN)
2199                 {*r = Mono_Posix_FcntlCommand_F_GETOWN; return 0;}
2200 #endif /* ndef F_GETOWN */
2201 #ifdef F_GETSIG
2202         if (x == F_GETSIG)
2203                 {*r = Mono_Posix_FcntlCommand_F_GETSIG; return 0;}
2204 #endif /* ndef F_GETSIG */
2205 #ifdef F_NOTIFY
2206         if (x == F_NOTIFY)
2207                 {*r = Mono_Posix_FcntlCommand_F_NOTIFY; return 0;}
2208 #endif /* ndef F_NOTIFY */
2209 #ifdef F_SETFD
2210         if (x == F_SETFD)
2211                 {*r = Mono_Posix_FcntlCommand_F_SETFD; return 0;}
2212 #endif /* ndef F_SETFD */
2213 #ifdef F_SETFL
2214         if (x == F_SETFL)
2215                 {*r = Mono_Posix_FcntlCommand_F_SETFL; return 0;}
2216 #endif /* ndef F_SETFL */
2217 #ifdef F_SETLEASE
2218         if (x == F_SETLEASE)
2219                 {*r = Mono_Posix_FcntlCommand_F_SETLEASE; return 0;}
2220 #endif /* ndef F_SETLEASE */
2221 #ifdef F_SETLK
2222         if (x == F_SETLK)
2223                 {*r = Mono_Posix_FcntlCommand_F_SETLK; return 0;}
2224 #endif /* ndef F_SETLK */
2225 #ifdef F_SETLKW
2226         if (x == F_SETLKW)
2227                 {*r = Mono_Posix_FcntlCommand_F_SETLKW; return 0;}
2228 #endif /* ndef F_SETLKW */
2229 #ifdef F_SETOWN
2230         if (x == F_SETOWN)
2231                 {*r = Mono_Posix_FcntlCommand_F_SETOWN; return 0;}
2232 #endif /* ndef F_SETOWN */
2233 #ifdef F_SETSIG
2234         if (x == F_SETSIG)
2235                 {*r = Mono_Posix_FcntlCommand_F_SETSIG; return 0;}
2236 #endif /* ndef F_SETSIG */
2237         errno = EINVAL; return -1;
2238 }
2239
2240 int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r)
2241 {
2242         *r = 0;
2243         if ((x & Mono_Posix_FilePermissions_ACCESSPERMS) == Mono_Posix_FilePermissions_ACCESSPERMS)
2244 #ifdef ACCESSPERMS
2245                 *r |= ACCESSPERMS;
2246 #else /* def ACCESSPERMS */
2247                 {errno = EINVAL; return -1;}
2248 #endif /* ndef ACCESSPERMS */
2249         if ((x & Mono_Posix_FilePermissions_ALLPERMS) == Mono_Posix_FilePermissions_ALLPERMS)
2250 #ifdef ALLPERMS
2251                 *r |= ALLPERMS;
2252 #else /* def ALLPERMS */
2253                 {errno = EINVAL; return -1;}
2254 #endif /* ndef ALLPERMS */
2255         if ((x & Mono_Posix_FilePermissions_DEFFILEMODE) == Mono_Posix_FilePermissions_DEFFILEMODE)
2256 #ifdef DEFFILEMODE
2257                 *r |= DEFFILEMODE;
2258 #else /* def DEFFILEMODE */
2259                 {errno = EINVAL; return -1;}
2260 #endif /* ndef DEFFILEMODE */
2261         if ((x & Mono_Posix_FilePermissions_S_IFBLK) == Mono_Posix_FilePermissions_S_IFBLK)
2262 #ifdef S_IFBLK
2263                 *r |= S_IFBLK;
2264 #else /* def S_IFBLK */
2265                 {errno = EINVAL; return -1;}
2266 #endif /* ndef S_IFBLK */
2267         if ((x & Mono_Posix_FilePermissions_S_IFCHR) == Mono_Posix_FilePermissions_S_IFCHR)
2268 #ifdef S_IFCHR
2269                 *r |= S_IFCHR;
2270 #else /* def S_IFCHR */
2271                 {errno = EINVAL; return -1;}
2272 #endif /* ndef S_IFCHR */
2273         if ((x & Mono_Posix_FilePermissions_S_IFDIR) == Mono_Posix_FilePermissions_S_IFDIR)
2274 #ifdef S_IFDIR
2275                 *r |= S_IFDIR;
2276 #else /* def S_IFDIR */
2277                 {errno = EINVAL; return -1;}
2278 #endif /* ndef S_IFDIR */
2279         if ((x & Mono_Posix_FilePermissions_S_IFIFO) == Mono_Posix_FilePermissions_S_IFIFO)
2280 #ifdef S_IFIFO
2281                 *r |= S_IFIFO;
2282 #else /* def S_IFIFO */
2283                 {errno = EINVAL; return -1;}
2284 #endif /* ndef S_IFIFO */
2285         if ((x & Mono_Posix_FilePermissions_S_IFLNK) == Mono_Posix_FilePermissions_S_IFLNK)
2286 #ifdef S_IFLNK
2287                 *r |= S_IFLNK;
2288 #else /* def S_IFLNK */
2289                 {errno = EINVAL; return -1;}
2290 #endif /* ndef S_IFLNK */
2291         if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFMT)
2292 #ifdef S_IFMT
2293                 *r |= S_IFMT;
2294 #else /* def S_IFMT */
2295                 {errno = EINVAL; return -1;}
2296 #endif /* ndef S_IFMT */
2297         if ((x & Mono_Posix_FilePermissions_S_IFREG) == Mono_Posix_FilePermissions_S_IFREG)
2298 #ifdef S_IFREG
2299                 *r |= S_IFREG;
2300 #else /* def S_IFREG */
2301                 {errno = EINVAL; return -1;}
2302 #endif /* ndef S_IFREG */
2303         if ((x & Mono_Posix_FilePermissions_S_IFSOCK) == Mono_Posix_FilePermissions_S_IFSOCK)
2304 #ifdef S_IFSOCK
2305                 *r |= S_IFSOCK;
2306 #else /* def S_IFSOCK */
2307                 {errno = EINVAL; return -1;}
2308 #endif /* ndef S_IFSOCK */
2309         if ((x & Mono_Posix_FilePermissions_S_IRGRP) == Mono_Posix_FilePermissions_S_IRGRP)
2310 #ifdef S_IRGRP
2311                 *r |= S_IRGRP;
2312 #else /* def S_IRGRP */
2313                 {errno = EINVAL; return -1;}
2314 #endif /* ndef S_IRGRP */
2315         if ((x & Mono_Posix_FilePermissions_S_IROTH) == Mono_Posix_FilePermissions_S_IROTH)
2316 #ifdef S_IROTH
2317                 *r |= S_IROTH;
2318 #else /* def S_IROTH */
2319                 {errno = EINVAL; return -1;}
2320 #endif /* ndef S_IROTH */
2321         if ((x & Mono_Posix_FilePermissions_S_IRUSR) == Mono_Posix_FilePermissions_S_IRUSR)
2322 #ifdef S_IRUSR
2323                 *r |= S_IRUSR;
2324 #else /* def S_IRUSR */
2325                 {errno = EINVAL; return -1;}
2326 #endif /* ndef S_IRUSR */
2327         if ((x & Mono_Posix_FilePermissions_S_IRWXG) == Mono_Posix_FilePermissions_S_IRWXG)
2328 #ifdef S_IRWXG
2329                 *r |= S_IRWXG;
2330 #else /* def S_IRWXG */
2331                 {errno = EINVAL; return -1;}
2332 #endif /* ndef S_IRWXG */
2333         if ((x & Mono_Posix_FilePermissions_S_IRWXO) == Mono_Posix_FilePermissions_S_IRWXO)
2334 #ifdef S_IRWXO
2335                 *r |= S_IRWXO;
2336 #else /* def S_IRWXO */
2337                 {errno = EINVAL; return -1;}
2338 #endif /* ndef S_IRWXO */
2339         if ((x & Mono_Posix_FilePermissions_S_IRWXU) == Mono_Posix_FilePermissions_S_IRWXU)
2340 #ifdef S_IRWXU
2341                 *r |= S_IRWXU;
2342 #else /* def S_IRWXU */
2343                 {errno = EINVAL; return -1;}
2344 #endif /* ndef S_IRWXU */
2345         if ((x & Mono_Posix_FilePermissions_S_ISGID) == Mono_Posix_FilePermissions_S_ISGID)
2346 #ifdef S_ISGID
2347                 *r |= S_ISGID;
2348 #else /* def S_ISGID */
2349                 {errno = EINVAL; return -1;}
2350 #endif /* ndef S_ISGID */
2351         if ((x & Mono_Posix_FilePermissions_S_ISUID) == Mono_Posix_FilePermissions_S_ISUID)
2352 #ifdef S_ISUID
2353                 *r |= S_ISUID;
2354 #else /* def S_ISUID */
2355                 {errno = EINVAL; return -1;}
2356 #endif /* ndef S_ISUID */
2357         if ((x & Mono_Posix_FilePermissions_S_ISVTX) == Mono_Posix_FilePermissions_S_ISVTX)
2358 #ifdef S_ISVTX
2359                 *r |= S_ISVTX;
2360 #else /* def S_ISVTX */
2361                 {errno = EINVAL; return -1;}
2362 #endif /* ndef S_ISVTX */
2363         if ((x & Mono_Posix_FilePermissions_S_IWGRP) == Mono_Posix_FilePermissions_S_IWGRP)
2364 #ifdef S_IWGRP
2365                 *r |= S_IWGRP;
2366 #else /* def S_IWGRP */
2367                 {errno = EINVAL; return -1;}
2368 #endif /* ndef S_IWGRP */
2369         if ((x & Mono_Posix_FilePermissions_S_IWOTH) == Mono_Posix_FilePermissions_S_IWOTH)
2370 #ifdef S_IWOTH
2371                 *r |= S_IWOTH;
2372 #else /* def S_IWOTH */
2373                 {errno = EINVAL; return -1;}
2374 #endif /* ndef S_IWOTH */
2375         if ((x & Mono_Posix_FilePermissions_S_IWUSR) == Mono_Posix_FilePermissions_S_IWUSR)
2376 #ifdef S_IWUSR
2377                 *r |= S_IWUSR;
2378 #else /* def S_IWUSR */
2379                 {errno = EINVAL; return -1;}
2380 #endif /* ndef S_IWUSR */
2381         if ((x & Mono_Posix_FilePermissions_S_IXGRP) == Mono_Posix_FilePermissions_S_IXGRP)
2382 #ifdef S_IXGRP
2383                 *r |= S_IXGRP;
2384 #else /* def S_IXGRP */
2385                 {errno = EINVAL; return -1;}
2386 #endif /* ndef S_IXGRP */
2387         if ((x & Mono_Posix_FilePermissions_S_IXOTH) == Mono_Posix_FilePermissions_S_IXOTH)
2388 #ifdef S_IXOTH
2389                 *r |= S_IXOTH;
2390 #else /* def S_IXOTH */
2391                 {errno = EINVAL; return -1;}
2392 #endif /* ndef S_IXOTH */
2393         if ((x & Mono_Posix_FilePermissions_S_IXUSR) == Mono_Posix_FilePermissions_S_IXUSR)
2394 #ifdef S_IXUSR
2395                 *r |= S_IXUSR;
2396 #else /* def S_IXUSR */
2397                 {errno = EINVAL; return -1;}
2398 #endif /* ndef S_IXUSR */
2399         if (x == 0)
2400                 return 0;
2401         return 0;
2402 }
2403
2404 int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r)
2405 {
2406         *r = 0;
2407         if (x == 0)
2408                 return 0;
2409 #ifdef ACCESSPERMS
2410         if ((x & ACCESSPERMS) == ACCESSPERMS)
2411                 *r |= Mono_Posix_FilePermissions_ACCESSPERMS;
2412 #endif /* ndef ACCESSPERMS */
2413 #ifdef ALLPERMS
2414         if ((x & ALLPERMS) == ALLPERMS)
2415                 *r |= Mono_Posix_FilePermissions_ALLPERMS;
2416 #endif /* ndef ALLPERMS */
2417 #ifdef DEFFILEMODE
2418         if ((x & DEFFILEMODE) == DEFFILEMODE)
2419                 *r |= Mono_Posix_FilePermissions_DEFFILEMODE;
2420 #endif /* ndef DEFFILEMODE */
2421 #ifdef S_IFBLK
2422         if ((x & S_IFBLK) == S_IFBLK)
2423                 *r |= Mono_Posix_FilePermissions_S_IFBLK;
2424 #endif /* ndef S_IFBLK */
2425 #ifdef S_IFCHR
2426         if ((x & S_IFCHR) == S_IFCHR)
2427                 *r |= Mono_Posix_FilePermissions_S_IFCHR;
2428 #endif /* ndef S_IFCHR */
2429 #ifdef S_IFDIR
2430         if ((x & S_IFDIR) == S_IFDIR)
2431                 *r |= Mono_Posix_FilePermissions_S_IFDIR;
2432 #endif /* ndef S_IFDIR */
2433 #ifdef S_IFIFO
2434         if ((x & S_IFIFO) == S_IFIFO)
2435                 *r |= Mono_Posix_FilePermissions_S_IFIFO;
2436 #endif /* ndef S_IFIFO */
2437 #ifdef S_IFLNK
2438         if ((x & S_IFLNK) == S_IFLNK)
2439                 *r |= Mono_Posix_FilePermissions_S_IFLNK;
2440 #endif /* ndef S_IFLNK */
2441 #ifdef S_IFMT
2442         if ((x & S_IFMT) == S_IFMT)
2443                 *r |= Mono_Posix_FilePermissions_S_IFMT;
2444 #endif /* ndef S_IFMT */
2445 #ifdef S_IFREG
2446         if ((x & S_IFREG) == S_IFREG)
2447                 *r |= Mono_Posix_FilePermissions_S_IFREG;
2448 #endif /* ndef S_IFREG */
2449 #ifdef S_IFSOCK
2450         if ((x & S_IFSOCK) == S_IFSOCK)
2451                 *r |= Mono_Posix_FilePermissions_S_IFSOCK;
2452 #endif /* ndef S_IFSOCK */
2453 #ifdef S_IRGRP
2454         if ((x & S_IRGRP) == S_IRGRP)
2455                 *r |= Mono_Posix_FilePermissions_S_IRGRP;
2456 #endif /* ndef S_IRGRP */
2457 #ifdef S_IROTH
2458         if ((x & S_IROTH) == S_IROTH)
2459                 *r |= Mono_Posix_FilePermissions_S_IROTH;
2460 #endif /* ndef S_IROTH */
2461 #ifdef S_IRUSR
2462         if ((x & S_IRUSR) == S_IRUSR)
2463                 *r |= Mono_Posix_FilePermissions_S_IRUSR;
2464 #endif /* ndef S_IRUSR */
2465 #ifdef S_IRWXG
2466         if ((x & S_IRWXG) == S_IRWXG)
2467                 *r |= Mono_Posix_FilePermissions_S_IRWXG;
2468 #endif /* ndef S_IRWXG */
2469 #ifdef S_IRWXO
2470         if ((x & S_IRWXO) == S_IRWXO)
2471                 *r |= Mono_Posix_FilePermissions_S_IRWXO;
2472 #endif /* ndef S_IRWXO */
2473 #ifdef S_IRWXU
2474         if ((x & S_IRWXU) == S_IRWXU)
2475                 *r |= Mono_Posix_FilePermissions_S_IRWXU;
2476 #endif /* ndef S_IRWXU */
2477 #ifdef S_ISGID
2478         if ((x & S_ISGID) == S_ISGID)
2479                 *r |= Mono_Posix_FilePermissions_S_ISGID;
2480 #endif /* ndef S_ISGID */
2481 #ifdef S_ISUID
2482         if ((x & S_ISUID) == S_ISUID)
2483                 *r |= Mono_Posix_FilePermissions_S_ISUID;
2484 #endif /* ndef S_ISUID */
2485 #ifdef S_ISVTX
2486         if ((x & S_ISVTX) == S_ISVTX)
2487                 *r |= Mono_Posix_FilePermissions_S_ISVTX;
2488 #endif /* ndef S_ISVTX */
2489 #ifdef S_IWGRP
2490         if ((x & S_IWGRP) == S_IWGRP)
2491                 *r |= Mono_Posix_FilePermissions_S_IWGRP;
2492 #endif /* ndef S_IWGRP */
2493 #ifdef S_IWOTH
2494         if ((x & S_IWOTH) == S_IWOTH)
2495                 *r |= Mono_Posix_FilePermissions_S_IWOTH;
2496 #endif /* ndef S_IWOTH */
2497 #ifdef S_IWUSR
2498         if ((x & S_IWUSR) == S_IWUSR)
2499                 *r |= Mono_Posix_FilePermissions_S_IWUSR;
2500 #endif /* ndef S_IWUSR */
2501 #ifdef S_IXGRP
2502         if ((x & S_IXGRP) == S_IXGRP)
2503                 *r |= Mono_Posix_FilePermissions_S_IXGRP;
2504 #endif /* ndef S_IXGRP */
2505 #ifdef S_IXOTH
2506         if ((x & S_IXOTH) == S_IXOTH)
2507                 *r |= Mono_Posix_FilePermissions_S_IXOTH;
2508 #endif /* ndef S_IXOTH */
2509 #ifdef S_IXUSR
2510         if ((x & S_IXUSR) == S_IXUSR)
2511                 *r |= Mono_Posix_FilePermissions_S_IXUSR;
2512 #endif /* ndef S_IXUSR */
2513         return 0;
2514 }
2515
2516 int Mono_Posix_FromLockType (short x, short *r)
2517 {
2518         *r = 0;
2519         if (x == Mono_Posix_LockType_F_RDLCK)
2520 #ifdef F_RDLCK
2521                 {*r = F_RDLCK; return 0;}
2522 #else /* def F_RDLCK */
2523                 {errno = EINVAL; return -1;}
2524 #endif /* ndef F_RDLCK */
2525         if (x == Mono_Posix_LockType_F_UNLCK)
2526 #ifdef F_UNLCK
2527                 {*r = F_UNLCK; return 0;}
2528 #else /* def F_UNLCK */
2529                 {errno = EINVAL; return -1;}
2530 #endif /* ndef F_UNLCK */
2531         if (x == Mono_Posix_LockType_F_WRLCK)
2532 #ifdef F_WRLCK
2533                 {*r = F_WRLCK; return 0;}
2534 #else /* def F_WRLCK */
2535                 {errno = EINVAL; return -1;}
2536 #endif /* ndef F_WRLCK */
2537         if (x == 0)
2538                 return 0;
2539         errno = EINVAL; return -1;
2540 }
2541
2542 int Mono_Posix_ToLockType (short x, short *r)
2543 {
2544         *r = 0;
2545         if (x == 0)
2546                 return 0;
2547 #ifdef F_RDLCK
2548         if (x == F_RDLCK)
2549                 {*r = Mono_Posix_LockType_F_RDLCK; return 0;}
2550 #endif /* ndef F_RDLCK */
2551 #ifdef F_UNLCK
2552         if (x == F_UNLCK)
2553                 {*r = Mono_Posix_LockType_F_UNLCK; return 0;}
2554 #endif /* ndef F_UNLCK */
2555 #ifdef F_WRLCK
2556         if (x == F_WRLCK)
2557                 {*r = Mono_Posix_LockType_F_WRLCK; return 0;}
2558 #endif /* ndef F_WRLCK */
2559         errno = EINVAL; return -1;
2560 }
2561
2562 int Mono_Posix_FromLockfCommand (int x, int *r)
2563 {
2564         *r = 0;
2565         if (x == Mono_Posix_LockfCommand_F_LOCK)
2566 #ifdef F_LOCK
2567                 {*r = F_LOCK; return 0;}
2568 #else /* def F_LOCK */
2569                 {errno = EINVAL; return -1;}
2570 #endif /* ndef F_LOCK */
2571         if (x == Mono_Posix_LockfCommand_F_TEST)
2572 #ifdef F_TEST
2573                 {*r = F_TEST; return 0;}
2574 #else /* def F_TEST */
2575                 {errno = EINVAL; return -1;}
2576 #endif /* ndef F_TEST */
2577         if (x == Mono_Posix_LockfCommand_F_TLOCK)
2578 #ifdef F_TLOCK
2579                 {*r = F_TLOCK; return 0;}
2580 #else /* def F_TLOCK */
2581                 {errno = EINVAL; return -1;}
2582 #endif /* ndef F_TLOCK */
2583         if (x == Mono_Posix_LockfCommand_F_ULOCK)
2584 #ifdef F_ULOCK
2585                 {*r = F_ULOCK; return 0;}
2586 #else /* def F_ULOCK */
2587                 {errno = EINVAL; return -1;}
2588 #endif /* ndef F_ULOCK */
2589         if (x == 0)
2590                 return 0;
2591         errno = EINVAL; return -1;
2592 }
2593
2594 int Mono_Posix_ToLockfCommand (int x, int *r)
2595 {
2596         *r = 0;
2597         if (x == 0)
2598                 return 0;
2599 #ifdef F_LOCK
2600         if (x == F_LOCK)
2601                 {*r = Mono_Posix_LockfCommand_F_LOCK; return 0;}
2602 #endif /* ndef F_LOCK */
2603 #ifdef F_TEST
2604         if (x == F_TEST)
2605                 {*r = Mono_Posix_LockfCommand_F_TEST; return 0;}
2606 #endif /* ndef F_TEST */
2607 #ifdef F_TLOCK
2608         if (x == F_TLOCK)
2609                 {*r = Mono_Posix_LockfCommand_F_TLOCK; return 0;}
2610 #endif /* ndef F_TLOCK */
2611 #ifdef F_ULOCK
2612         if (x == F_ULOCK)
2613                 {*r = Mono_Posix_LockfCommand_F_ULOCK; return 0;}
2614 #endif /* ndef F_ULOCK */
2615         errno = EINVAL; return -1;
2616 }
2617
2618 int Mono_Posix_FromMlockallFlags (int x, int *r)
2619 {
2620         *r = 0;
2621         if ((x & Mono_Posix_MlockallFlags_MCL_CURRENT) == Mono_Posix_MlockallFlags_MCL_CURRENT)
2622 #ifdef MCL_CURRENT
2623                 *r |= MCL_CURRENT;
2624 #else /* def MCL_CURRENT */
2625                 {errno = EINVAL; return -1;}
2626 #endif /* ndef MCL_CURRENT */
2627         if ((x & Mono_Posix_MlockallFlags_MCL_FUTURE) == Mono_Posix_MlockallFlags_MCL_FUTURE)
2628 #ifdef MCL_FUTURE
2629                 *r |= MCL_FUTURE;
2630 #else /* def MCL_FUTURE */
2631                 {errno = EINVAL; return -1;}
2632 #endif /* ndef MCL_FUTURE */
2633         if (x == 0)
2634                 return 0;
2635         return 0;
2636 }
2637
2638 int Mono_Posix_ToMlockallFlags (int x, int *r)
2639 {
2640         *r = 0;
2641         if (x == 0)
2642                 return 0;
2643 #ifdef MCL_CURRENT
2644         if ((x & MCL_CURRENT) == MCL_CURRENT)
2645                 *r |= Mono_Posix_MlockallFlags_MCL_CURRENT;
2646 #endif /* ndef MCL_CURRENT */
2647 #ifdef MCL_FUTURE
2648         if ((x & MCL_FUTURE) == MCL_FUTURE)
2649                 *r |= Mono_Posix_MlockallFlags_MCL_FUTURE;
2650 #endif /* ndef MCL_FUTURE */
2651         return 0;
2652 }
2653
2654 int Mono_Posix_FromMmapFlags (int x, int *r)
2655 {
2656         *r = 0;
2657         if ((x & Mono_Posix_MmapFlags_MAP_ANON) == Mono_Posix_MmapFlags_MAP_ANON)
2658 #ifdef MAP_ANON
2659                 *r |= MAP_ANON;
2660 #else /* def MAP_ANON */
2661                 {errno = EINVAL; return -1;}
2662 #endif /* ndef MAP_ANON */
2663         if ((x & Mono_Posix_MmapFlags_MAP_ANONYMOUS) == Mono_Posix_MmapFlags_MAP_ANONYMOUS)
2664 #ifdef MAP_ANONYMOUS
2665                 *r |= MAP_ANONYMOUS;
2666 #else /* def MAP_ANONYMOUS */
2667                 {errno = EINVAL; return -1;}
2668 #endif /* ndef MAP_ANONYMOUS */
2669         if ((x & Mono_Posix_MmapFlags_MAP_DENYWRITE) == Mono_Posix_MmapFlags_MAP_DENYWRITE)
2670 #ifdef MAP_DENYWRITE
2671                 *r |= MAP_DENYWRITE;
2672 #else /* def MAP_DENYWRITE */
2673                 {errno = EINVAL; return -1;}
2674 #endif /* ndef MAP_DENYWRITE */
2675         if ((x & Mono_Posix_MmapFlags_MAP_EXECUTABLE) == Mono_Posix_MmapFlags_MAP_EXECUTABLE)
2676 #ifdef MAP_EXECUTABLE
2677                 *r |= MAP_EXECUTABLE;
2678 #else /* def MAP_EXECUTABLE */
2679                 {errno = EINVAL; return -1;}
2680 #endif /* ndef MAP_EXECUTABLE */
2681         if ((x & Mono_Posix_MmapFlags_MAP_FILE) == Mono_Posix_MmapFlags_MAP_FILE)
2682 #ifdef MAP_FILE
2683                 *r |= MAP_FILE;
2684 #else /* def MAP_FILE */
2685                 {errno = EINVAL; return -1;}
2686 #endif /* ndef MAP_FILE */
2687         if ((x & Mono_Posix_MmapFlags_MAP_FIXED) == Mono_Posix_MmapFlags_MAP_FIXED)
2688 #ifdef MAP_FIXED
2689                 *r |= MAP_FIXED;
2690 #else /* def MAP_FIXED */
2691                 {errno = EINVAL; return -1;}
2692 #endif /* ndef MAP_FIXED */
2693         if ((x & Mono_Posix_MmapFlags_MAP_GROWSDOWN) == Mono_Posix_MmapFlags_MAP_GROWSDOWN)
2694 #ifdef MAP_GROWSDOWN
2695                 *r |= MAP_GROWSDOWN;
2696 #else /* def MAP_GROWSDOWN */
2697                 {errno = EINVAL; return -1;}
2698 #endif /* ndef MAP_GROWSDOWN */
2699         if ((x & Mono_Posix_MmapFlags_MAP_LOCKED) == Mono_Posix_MmapFlags_MAP_LOCKED)
2700 #ifdef MAP_LOCKED
2701                 *r |= MAP_LOCKED;
2702 #else /* def MAP_LOCKED */
2703                 {errno = EINVAL; return -1;}
2704 #endif /* ndef MAP_LOCKED */
2705         if ((x & Mono_Posix_MmapFlags_MAP_NONBLOCK) == Mono_Posix_MmapFlags_MAP_NONBLOCK)
2706 #ifdef MAP_NONBLOCK
2707                 *r |= MAP_NONBLOCK;
2708 #else /* def MAP_NONBLOCK */
2709                 {errno = EINVAL; return -1;}
2710 #endif /* ndef MAP_NONBLOCK */
2711         if ((x & Mono_Posix_MmapFlags_MAP_NORESERVE) == Mono_Posix_MmapFlags_MAP_NORESERVE)
2712 #ifdef MAP_NORESERVE
2713                 *r |= MAP_NORESERVE;
2714 #else /* def MAP_NORESERVE */
2715                 {errno = EINVAL; return -1;}
2716 #endif /* ndef MAP_NORESERVE */
2717         if ((x & Mono_Posix_MmapFlags_MAP_POPULATE) == Mono_Posix_MmapFlags_MAP_POPULATE)
2718 #ifdef MAP_POPULATE
2719                 *r |= MAP_POPULATE;
2720 #else /* def MAP_POPULATE */
2721                 {errno = EINVAL; return -1;}
2722 #endif /* ndef MAP_POPULATE */
2723         if ((x & Mono_Posix_MmapFlags_MAP_PRIVATE) == Mono_Posix_MmapFlags_MAP_PRIVATE)
2724 #ifdef MAP_PRIVATE
2725                 *r |= MAP_PRIVATE;
2726 #else /* def MAP_PRIVATE */
2727                 {errno = EINVAL; return -1;}
2728 #endif /* ndef MAP_PRIVATE */
2729         if ((x & Mono_Posix_MmapFlags_MAP_SHARED) == Mono_Posix_MmapFlags_MAP_SHARED)
2730 #ifdef MAP_SHARED
2731                 *r |= MAP_SHARED;
2732 #else /* def MAP_SHARED */
2733                 {errno = EINVAL; return -1;}
2734 #endif /* ndef MAP_SHARED */
2735         if ((x & Mono_Posix_MmapFlags_MAP_TYPE) == Mono_Posix_MmapFlags_MAP_TYPE)
2736 #ifdef MAP_TYPE
2737                 *r |= MAP_TYPE;
2738 #else /* def MAP_TYPE */
2739                 {errno = EINVAL; return -1;}
2740 #endif /* ndef MAP_TYPE */
2741         if (x == 0)
2742                 return 0;
2743         return 0;
2744 }
2745
2746 int Mono_Posix_ToMmapFlags (int x, int *r)
2747 {
2748         *r = 0;
2749         if (x == 0)
2750                 return 0;
2751 #ifdef MAP_ANON
2752         if ((x & MAP_ANON) == MAP_ANON)
2753                 *r |= Mono_Posix_MmapFlags_MAP_ANON;
2754 #endif /* ndef MAP_ANON */
2755 #ifdef MAP_ANONYMOUS
2756         if ((x & MAP_ANONYMOUS) == MAP_ANONYMOUS)
2757                 *r |= Mono_Posix_MmapFlags_MAP_ANONYMOUS;
2758 #endif /* ndef MAP_ANONYMOUS */
2759 #ifdef MAP_DENYWRITE
2760         if ((x & MAP_DENYWRITE) == MAP_DENYWRITE)
2761                 *r |= Mono_Posix_MmapFlags_MAP_DENYWRITE;
2762 #endif /* ndef MAP_DENYWRITE */
2763 #ifdef MAP_EXECUTABLE
2764         if ((x & MAP_EXECUTABLE) == MAP_EXECUTABLE)
2765                 *r |= Mono_Posix_MmapFlags_MAP_EXECUTABLE;
2766 #endif /* ndef MAP_EXECUTABLE */
2767 #ifdef MAP_FILE
2768         if ((x & MAP_FILE) == MAP_FILE)
2769                 *r |= Mono_Posix_MmapFlags_MAP_FILE;
2770 #endif /* ndef MAP_FILE */
2771 #ifdef MAP_FIXED
2772         if ((x & MAP_FIXED) == MAP_FIXED)
2773                 *r |= Mono_Posix_MmapFlags_MAP_FIXED;
2774 #endif /* ndef MAP_FIXED */
2775 #ifdef MAP_GROWSDOWN
2776         if ((x & MAP_GROWSDOWN) == MAP_GROWSDOWN)
2777                 *r |= Mono_Posix_MmapFlags_MAP_GROWSDOWN;
2778 #endif /* ndef MAP_GROWSDOWN */
2779 #ifdef MAP_LOCKED
2780         if ((x & MAP_LOCKED) == MAP_LOCKED)
2781                 *r |= Mono_Posix_MmapFlags_MAP_LOCKED;
2782 #endif /* ndef MAP_LOCKED */
2783 #ifdef MAP_NONBLOCK
2784         if ((x & MAP_NONBLOCK) == MAP_NONBLOCK)
2785                 *r |= Mono_Posix_MmapFlags_MAP_NONBLOCK;
2786 #endif /* ndef MAP_NONBLOCK */
2787 #ifdef MAP_NORESERVE
2788         if ((x & MAP_NORESERVE) == MAP_NORESERVE)
2789                 *r |= Mono_Posix_MmapFlags_MAP_NORESERVE;
2790 #endif /* ndef MAP_NORESERVE */
2791 #ifdef MAP_POPULATE
2792         if ((x & MAP_POPULATE) == MAP_POPULATE)
2793                 *r |= Mono_Posix_MmapFlags_MAP_POPULATE;
2794 #endif /* ndef MAP_POPULATE */
2795 #ifdef MAP_PRIVATE
2796         if ((x & MAP_PRIVATE) == MAP_PRIVATE)
2797                 *r |= Mono_Posix_MmapFlags_MAP_PRIVATE;
2798 #endif /* ndef MAP_PRIVATE */
2799 #ifdef MAP_SHARED
2800         if ((x & MAP_SHARED) == MAP_SHARED)
2801                 *r |= Mono_Posix_MmapFlags_MAP_SHARED;
2802 #endif /* ndef MAP_SHARED */
2803 #ifdef MAP_TYPE
2804         if ((x & MAP_TYPE) == MAP_TYPE)
2805                 *r |= Mono_Posix_MmapFlags_MAP_TYPE;
2806 #endif /* ndef MAP_TYPE */
2807         return 0;
2808 }
2809
2810 int Mono_Posix_FromMmapProts (int x, int *r)
2811 {
2812         *r = 0;
2813         if ((x & Mono_Posix_MmapProts_PROT_EXEC) == Mono_Posix_MmapProts_PROT_EXEC)
2814 #ifdef PROT_EXEC
2815                 *r |= PROT_EXEC;
2816 #else /* def PROT_EXEC */
2817                 {errno = EINVAL; return -1;}
2818 #endif /* ndef PROT_EXEC */
2819         if ((x & Mono_Posix_MmapProts_PROT_GROWSDOWN) == Mono_Posix_MmapProts_PROT_GROWSDOWN)
2820 #ifdef PROT_GROWSDOWN
2821                 *r |= PROT_GROWSDOWN;
2822 #else /* def PROT_GROWSDOWN */
2823                 {errno = EINVAL; return -1;}
2824 #endif /* ndef PROT_GROWSDOWN */
2825         if ((x & Mono_Posix_MmapProts_PROT_GROWSUP) == Mono_Posix_MmapProts_PROT_GROWSUP)
2826 #ifdef PROT_GROWSUP
2827                 *r |= PROT_GROWSUP;
2828 #else /* def PROT_GROWSUP */
2829                 {errno = EINVAL; return -1;}
2830 #endif /* ndef PROT_GROWSUP */
2831         if ((x & Mono_Posix_MmapProts_PROT_NONE) == Mono_Posix_MmapProts_PROT_NONE)
2832 #ifdef PROT_NONE
2833                 *r |= PROT_NONE;
2834 #else /* def PROT_NONE */
2835                 {errno = EINVAL; return -1;}
2836 #endif /* ndef PROT_NONE */
2837         if ((x & Mono_Posix_MmapProts_PROT_READ) == Mono_Posix_MmapProts_PROT_READ)
2838 #ifdef PROT_READ
2839                 *r |= PROT_READ;
2840 #else /* def PROT_READ */
2841                 {errno = EINVAL; return -1;}
2842 #endif /* ndef PROT_READ */
2843         if ((x & Mono_Posix_MmapProts_PROT_WRITE) == Mono_Posix_MmapProts_PROT_WRITE)
2844 #ifdef PROT_WRITE
2845                 *r |= PROT_WRITE;
2846 #else /* def PROT_WRITE */
2847                 {errno = EINVAL; return -1;}
2848 #endif /* ndef PROT_WRITE */
2849         if (x == 0)
2850                 return 0;
2851         return 0;
2852 }
2853
2854 int Mono_Posix_ToMmapProts (int x, int *r)
2855 {
2856         *r = 0;
2857         if (x == 0)
2858                 return 0;
2859 #ifdef PROT_EXEC
2860         if ((x & PROT_EXEC) == PROT_EXEC)
2861                 *r |= Mono_Posix_MmapProts_PROT_EXEC;
2862 #endif /* ndef PROT_EXEC */
2863 #ifdef PROT_GROWSDOWN
2864         if ((x & PROT_GROWSDOWN) == PROT_GROWSDOWN)
2865                 *r |= Mono_Posix_MmapProts_PROT_GROWSDOWN;
2866 #endif /* ndef PROT_GROWSDOWN */
2867 #ifdef PROT_GROWSUP
2868         if ((x & PROT_GROWSUP) == PROT_GROWSUP)
2869                 *r |= Mono_Posix_MmapProts_PROT_GROWSUP;
2870 #endif /* ndef PROT_GROWSUP */
2871 #ifdef PROT_NONE
2872         if ((x & PROT_NONE) == PROT_NONE)
2873                 *r |= Mono_Posix_MmapProts_PROT_NONE;
2874 #endif /* ndef PROT_NONE */
2875 #ifdef PROT_READ
2876         if ((x & PROT_READ) == PROT_READ)
2877                 *r |= Mono_Posix_MmapProts_PROT_READ;
2878 #endif /* ndef PROT_READ */
2879 #ifdef PROT_WRITE
2880         if ((x & PROT_WRITE) == PROT_WRITE)
2881                 *r |= Mono_Posix_MmapProts_PROT_WRITE;
2882 #endif /* ndef PROT_WRITE */
2883         return 0;
2884 }
2885
2886 int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
2887 {
2888         *r = 0;
2889         if ((x & Mono_Posix_MountFlags_ST_APPEND) == Mono_Posix_MountFlags_ST_APPEND)
2890 #ifdef ST_APPEND
2891                 *r |= ST_APPEND;
2892 #else /* def ST_APPEND */
2893                 {errno = EINVAL; return -1;}
2894 #endif /* ndef ST_APPEND */
2895         if ((x & Mono_Posix_MountFlags_ST_IMMUTABLE) == Mono_Posix_MountFlags_ST_IMMUTABLE)
2896 #ifdef ST_IMMUTABLE
2897                 *r |= ST_IMMUTABLE;
2898 #else /* def ST_IMMUTABLE */
2899                 {errno = EINVAL; return -1;}
2900 #endif /* ndef ST_IMMUTABLE */
2901         if ((x & Mono_Posix_MountFlags_ST_MANDLOCK) == Mono_Posix_MountFlags_ST_MANDLOCK)
2902 #ifdef ST_MANDLOCK
2903                 *r |= ST_MANDLOCK;
2904 #else /* def ST_MANDLOCK */
2905                 {errno = EINVAL; return -1;}
2906 #endif /* ndef ST_MANDLOCK */
2907         if ((x & Mono_Posix_MountFlags_ST_NOATIME) == Mono_Posix_MountFlags_ST_NOATIME)
2908 #ifdef ST_NOATIME
2909                 *r |= ST_NOATIME;
2910 #else /* def ST_NOATIME */
2911                 {errno = EINVAL; return -1;}
2912 #endif /* ndef ST_NOATIME */
2913         if ((x & Mono_Posix_MountFlags_ST_NODEV) == Mono_Posix_MountFlags_ST_NODEV)
2914 #ifdef ST_NODEV
2915                 *r |= ST_NODEV;
2916 #else /* def ST_NODEV */
2917                 {errno = EINVAL; return -1;}
2918 #endif /* ndef ST_NODEV */
2919         if ((x & Mono_Posix_MountFlags_ST_NODIRATIME) == Mono_Posix_MountFlags_ST_NODIRATIME)
2920 #ifdef ST_NODIRATIME
2921                 *r |= ST_NODIRATIME;
2922 #else /* def ST_NODIRATIME */
2923                 {errno = EINVAL; return -1;}
2924 #endif /* ndef ST_NODIRATIME */
2925         if ((x & Mono_Posix_MountFlags_ST_NOSUID) == Mono_Posix_MountFlags_ST_NOSUID)
2926 #ifdef ST_NOSUID
2927                 *r |= ST_NOSUID;
2928 #else /* def ST_NOSUID */
2929                 {errno = EINVAL; return -1;}
2930 #endif /* ndef ST_NOSUID */
2931         if ((x & Mono_Posix_MountFlags_ST_RDONLY) == Mono_Posix_MountFlags_ST_RDONLY)
2932 #ifdef ST_RDONLY
2933                 *r |= ST_RDONLY;
2934 #else /* def ST_RDONLY */
2935                 {errno = EINVAL; return -1;}
2936 #endif /* ndef ST_RDONLY */
2937         if ((x & Mono_Posix_MountFlags_ST_SYNCHRONOUS) == Mono_Posix_MountFlags_ST_SYNCHRONOUS)
2938 #ifdef ST_SYNCHRONOUS
2939                 *r |= ST_SYNCHRONOUS;
2940 #else /* def ST_SYNCHRONOUS */
2941                 {errno = EINVAL; return -1;}
2942 #endif /* ndef ST_SYNCHRONOUS */
2943         if ((x & Mono_Posix_MountFlags_ST_WRITE) == Mono_Posix_MountFlags_ST_WRITE)
2944 #ifdef ST_WRITE
2945                 *r |= ST_WRITE;
2946 #else /* def ST_WRITE */
2947                 {errno = EINVAL; return -1;}
2948 #endif /* ndef ST_WRITE */
2949         if (x == 0)
2950                 return 0;
2951         return 0;
2952 }
2953
2954 int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
2955 {
2956         *r = 0;
2957         if (x == 0)
2958                 return 0;
2959 #ifdef ST_APPEND
2960         if ((x & ST_APPEND) == ST_APPEND)
2961                 *r |= Mono_Posix_MountFlags_ST_APPEND;
2962 #endif /* ndef ST_APPEND */
2963 #ifdef ST_IMMUTABLE
2964         if ((x & ST_IMMUTABLE) == ST_IMMUTABLE)
2965                 *r |= Mono_Posix_MountFlags_ST_IMMUTABLE;
2966 #endif /* ndef ST_IMMUTABLE */
2967 #ifdef ST_MANDLOCK
2968         if ((x & ST_MANDLOCK) == ST_MANDLOCK)
2969                 *r |= Mono_Posix_MountFlags_ST_MANDLOCK;
2970 #endif /* ndef ST_MANDLOCK */
2971 #ifdef ST_NOATIME
2972         if ((x & ST_NOATIME) == ST_NOATIME)
2973                 *r |= Mono_Posix_MountFlags_ST_NOATIME;
2974 #endif /* ndef ST_NOATIME */
2975 #ifdef ST_NODEV
2976         if ((x & ST_NODEV) == ST_NODEV)
2977                 *r |= Mono_Posix_MountFlags_ST_NODEV;
2978 #endif /* ndef ST_NODEV */
2979 #ifdef ST_NODIRATIME
2980         if ((x & ST_NODIRATIME) == ST_NODIRATIME)
2981                 *r |= Mono_Posix_MountFlags_ST_NODIRATIME;
2982 #endif /* ndef ST_NODIRATIME */
2983 #ifdef ST_NOSUID
2984         if ((x & ST_NOSUID) == ST_NOSUID)
2985                 *r |= Mono_Posix_MountFlags_ST_NOSUID;
2986 #endif /* ndef ST_NOSUID */
2987 #ifdef ST_RDONLY
2988         if ((x & ST_RDONLY) == ST_RDONLY)
2989                 *r |= Mono_Posix_MountFlags_ST_RDONLY;
2990 #endif /* ndef ST_RDONLY */
2991 #ifdef ST_SYNCHRONOUS
2992         if ((x & ST_SYNCHRONOUS) == ST_SYNCHRONOUS)
2993                 *r |= Mono_Posix_MountFlags_ST_SYNCHRONOUS;
2994 #endif /* ndef ST_SYNCHRONOUS */
2995 #ifdef ST_WRITE
2996         if ((x & ST_WRITE) == ST_WRITE)
2997                 *r |= Mono_Posix_MountFlags_ST_WRITE;
2998 #endif /* ndef ST_WRITE */
2999         return 0;
3000 }
3001
3002 int Mono_Posix_FromMremapFlags (guint64 x, guint64 *r)
3003 {
3004         *r = 0;
3005         if ((x & Mono_Posix_MremapFlags_MREMAP_MAYMOVE) == Mono_Posix_MremapFlags_MREMAP_MAYMOVE)
3006 #ifdef MREMAP_MAYMOVE
3007                 *r |= MREMAP_MAYMOVE;
3008 #else /* def MREMAP_MAYMOVE */
3009                 {errno = EINVAL; return -1;}
3010 #endif /* ndef MREMAP_MAYMOVE */
3011         if (x == 0)
3012                 return 0;
3013         return 0;
3014 }
3015
3016 int Mono_Posix_ToMremapFlags (guint64 x, guint64 *r)
3017 {
3018         *r = 0;
3019         if (x == 0)
3020                 return 0;
3021 #ifdef MREMAP_MAYMOVE
3022         if ((x & MREMAP_MAYMOVE) == MREMAP_MAYMOVE)
3023                 *r |= Mono_Posix_MremapFlags_MREMAP_MAYMOVE;
3024 #endif /* ndef MREMAP_MAYMOVE */
3025         return 0;
3026 }
3027
3028 int Mono_Posix_FromMsyncFlags (int x, int *r)
3029 {
3030         *r = 0;
3031         if ((x & Mono_Posix_MsyncFlags_MS_ASYNC) == Mono_Posix_MsyncFlags_MS_ASYNC)
3032 #ifdef MS_ASYNC
3033                 *r |= MS_ASYNC;
3034 #else /* def MS_ASYNC */
3035                 {errno = EINVAL; return -1;}
3036 #endif /* ndef MS_ASYNC */
3037         if ((x & Mono_Posix_MsyncFlags_MS_INVALIDATE) == Mono_Posix_MsyncFlags_MS_INVALIDATE)
3038 #ifdef MS_INVALIDATE
3039                 *r |= MS_INVALIDATE;
3040 #else /* def MS_INVALIDATE */
3041                 {errno = EINVAL; return -1;}
3042 #endif /* ndef MS_INVALIDATE */
3043         if ((x & Mono_Posix_MsyncFlags_MS_SYNC) == Mono_Posix_MsyncFlags_MS_SYNC)
3044 #ifdef MS_SYNC
3045                 *r |= MS_SYNC;
3046 #else /* def MS_SYNC */
3047                 {errno = EINVAL; return -1;}
3048 #endif /* ndef MS_SYNC */
3049         if (x == 0)
3050                 return 0;
3051         return 0;
3052 }
3053
3054 int Mono_Posix_ToMsyncFlags (int x, int *r)
3055 {
3056         *r = 0;
3057         if (x == 0)
3058                 return 0;
3059 #ifdef MS_ASYNC
3060         if ((x & MS_ASYNC) == MS_ASYNC)
3061                 *r |= Mono_Posix_MsyncFlags_MS_ASYNC;
3062 #endif /* ndef MS_ASYNC */
3063 #ifdef MS_INVALIDATE
3064         if ((x & MS_INVALIDATE) == MS_INVALIDATE)
3065                 *r |= Mono_Posix_MsyncFlags_MS_INVALIDATE;
3066 #endif /* ndef MS_INVALIDATE */
3067 #ifdef MS_SYNC
3068         if ((x & MS_SYNC) == MS_SYNC)
3069                 *r |= Mono_Posix_MsyncFlags_MS_SYNC;
3070 #endif /* ndef MS_SYNC */
3071         return 0;
3072 }
3073
3074 int Mono_Posix_FromOpenFlags (int x, int *r)
3075 {
3076         *r = 0;
3077         if ((x & Mono_Posix_OpenFlags_O_APPEND) == Mono_Posix_OpenFlags_O_APPEND)
3078 #ifdef O_APPEND
3079                 *r |= O_APPEND;
3080 #else /* def O_APPEND */
3081                 {errno = EINVAL; return -1;}
3082 #endif /* ndef O_APPEND */
3083         if ((x & Mono_Posix_OpenFlags_O_ASYNC) == Mono_Posix_OpenFlags_O_ASYNC)
3084 #ifdef O_ASYNC
3085                 *r |= O_ASYNC;
3086 #else /* def O_ASYNC */
3087                 {errno = EINVAL; return -1;}
3088 #endif /* ndef O_ASYNC */
3089         if ((x & Mono_Posix_OpenFlags_O_CREAT) == Mono_Posix_OpenFlags_O_CREAT)
3090 #ifdef O_CREAT
3091                 *r |= O_CREAT;
3092 #else /* def O_CREAT */
3093                 {errno = EINVAL; return -1;}
3094 #endif /* ndef O_CREAT */
3095         if ((x & Mono_Posix_OpenFlags_O_DIRECT) == Mono_Posix_OpenFlags_O_DIRECT)
3096 #ifdef O_DIRECT
3097                 *r |= O_DIRECT;
3098 #else /* def O_DIRECT */
3099                 {errno = EINVAL; return -1;}
3100 #endif /* ndef O_DIRECT */
3101         if ((x & Mono_Posix_OpenFlags_O_DIRECTORY) == Mono_Posix_OpenFlags_O_DIRECTORY)
3102 #ifdef O_DIRECTORY
3103                 *r |= O_DIRECTORY;
3104 #else /* def O_DIRECTORY */
3105                 {errno = EINVAL; return -1;}
3106 #endif /* ndef O_DIRECTORY */
3107         if ((x & Mono_Posix_OpenFlags_O_EXCL) == Mono_Posix_OpenFlags_O_EXCL)
3108 #ifdef O_EXCL
3109                 *r |= O_EXCL;
3110 #else /* def O_EXCL */
3111                 {errno = EINVAL; return -1;}
3112 #endif /* ndef O_EXCL */
3113         if ((x & Mono_Posix_OpenFlags_O_LARGEFILE) == Mono_Posix_OpenFlags_O_LARGEFILE)
3114 #ifdef O_LARGEFILE
3115                 *r |= O_LARGEFILE;
3116 #else /* def O_LARGEFILE */
3117                 {errno = EINVAL; return -1;}
3118 #endif /* ndef O_LARGEFILE */
3119         if ((x & Mono_Posix_OpenFlags_O_NOCTTY) == Mono_Posix_OpenFlags_O_NOCTTY)
3120 #ifdef O_NOCTTY
3121                 *r |= O_NOCTTY;
3122 #else /* def O_NOCTTY */
3123                 {errno = EINVAL; return -1;}
3124 #endif /* ndef O_NOCTTY */
3125         if ((x & Mono_Posix_OpenFlags_O_NOFOLLOW) == Mono_Posix_OpenFlags_O_NOFOLLOW)
3126 #ifdef O_NOFOLLOW
3127                 *r |= O_NOFOLLOW;
3128 #else /* def O_NOFOLLOW */
3129                 {errno = EINVAL; return -1;}
3130 #endif /* ndef O_NOFOLLOW */
3131         if ((x & Mono_Posix_OpenFlags_O_NONBLOCK) == Mono_Posix_OpenFlags_O_NONBLOCK)
3132 #ifdef O_NONBLOCK
3133                 *r |= O_NONBLOCK;
3134 #else /* def O_NONBLOCK */
3135                 {errno = EINVAL; return -1;}
3136 #endif /* ndef O_NONBLOCK */
3137         if ((x & Mono_Posix_OpenFlags_O_RDONLY) == Mono_Posix_OpenFlags_O_RDONLY)
3138 #ifdef O_RDONLY
3139                 *r |= O_RDONLY;
3140 #else /* def O_RDONLY */
3141                 {errno = EINVAL; return -1;}
3142 #endif /* ndef O_RDONLY */
3143         if ((x & Mono_Posix_OpenFlags_O_RDWR) == Mono_Posix_OpenFlags_O_RDWR)
3144 #ifdef O_RDWR
3145                 *r |= O_RDWR;
3146 #else /* def O_RDWR */
3147                 {errno = EINVAL; return -1;}
3148 #endif /* ndef O_RDWR */
3149         if ((x & Mono_Posix_OpenFlags_O_SYNC) == Mono_Posix_OpenFlags_O_SYNC)
3150 #ifdef O_SYNC
3151                 *r |= O_SYNC;
3152 #else /* def O_SYNC */
3153                 {errno = EINVAL; return -1;}
3154 #endif /* ndef O_SYNC */
3155         if ((x & Mono_Posix_OpenFlags_O_TRUNC) == Mono_Posix_OpenFlags_O_TRUNC)
3156 #ifdef O_TRUNC
3157                 *r |= O_TRUNC;
3158 #else /* def O_TRUNC */
3159                 {errno = EINVAL; return -1;}
3160 #endif /* ndef O_TRUNC */
3161         if ((x & Mono_Posix_OpenFlags_O_WRONLY) == Mono_Posix_OpenFlags_O_WRONLY)
3162 #ifdef O_WRONLY
3163                 *r |= O_WRONLY;
3164 #else /* def O_WRONLY */
3165                 {errno = EINVAL; return -1;}
3166 #endif /* ndef O_WRONLY */
3167         if (x == 0)
3168                 return 0;
3169         return 0;
3170 }
3171
3172 int Mono_Posix_ToOpenFlags (int x, int *r)
3173 {
3174         *r = 0;
3175         if (x == 0)
3176                 return 0;
3177 #ifdef O_APPEND
3178         if ((x & O_APPEND) == O_APPEND)
3179                 *r |= Mono_Posix_OpenFlags_O_APPEND;
3180 #endif /* ndef O_APPEND */
3181 #ifdef O_ASYNC
3182         if ((x & O_ASYNC) == O_ASYNC)
3183                 *r |= Mono_Posix_OpenFlags_O_ASYNC;
3184 #endif /* ndef O_ASYNC */
3185 #ifdef O_CREAT
3186         if ((x & O_CREAT) == O_CREAT)
3187                 *r |= Mono_Posix_OpenFlags_O_CREAT;
3188 #endif /* ndef O_CREAT */
3189 #ifdef O_DIRECT
3190         if ((x & O_DIRECT) == O_DIRECT)
3191                 *r |= Mono_Posix_OpenFlags_O_DIRECT;
3192 #endif /* ndef O_DIRECT */
3193 #ifdef O_DIRECTORY
3194         if ((x & O_DIRECTORY) == O_DIRECTORY)
3195                 *r |= Mono_Posix_OpenFlags_O_DIRECTORY;
3196 #endif /* ndef O_DIRECTORY */
3197 #ifdef O_EXCL
3198         if ((x & O_EXCL) == O_EXCL)
3199                 *r |= Mono_Posix_OpenFlags_O_EXCL;
3200 #endif /* ndef O_EXCL */
3201 #ifdef O_LARGEFILE
3202         if ((x & O_LARGEFILE) == O_LARGEFILE)
3203                 *r |= Mono_Posix_OpenFlags_O_LARGEFILE;
3204 #endif /* ndef O_LARGEFILE */
3205 #ifdef O_NOCTTY
3206         if ((x & O_NOCTTY) == O_NOCTTY)
3207                 *r |= Mono_Posix_OpenFlags_O_NOCTTY;
3208 #endif /* ndef O_NOCTTY */
3209 #ifdef O_NOFOLLOW
3210         if ((x & O_NOFOLLOW) == O_NOFOLLOW)
3211                 *r |= Mono_Posix_OpenFlags_O_NOFOLLOW;
3212 #endif /* ndef O_NOFOLLOW */
3213 #ifdef O_NONBLOCK
3214         if ((x & O_NONBLOCK) == O_NONBLOCK)
3215                 *r |= Mono_Posix_OpenFlags_O_NONBLOCK;
3216 #endif /* ndef O_NONBLOCK */
3217 #ifdef O_RDONLY
3218         if ((x & O_RDONLY) == O_RDONLY)
3219                 *r |= Mono_Posix_OpenFlags_O_RDONLY;
3220 #endif /* ndef O_RDONLY */
3221 #ifdef O_RDWR
3222         if ((x & O_RDWR) == O_RDWR)
3223                 *r |= Mono_Posix_OpenFlags_O_RDWR;
3224 #endif /* ndef O_RDWR */
3225 #ifdef O_SYNC
3226         if ((x & O_SYNC) == O_SYNC)
3227                 *r |= Mono_Posix_OpenFlags_O_SYNC;
3228 #endif /* ndef O_SYNC */
3229 #ifdef O_TRUNC
3230         if ((x & O_TRUNC) == O_TRUNC)
3231                 *r |= Mono_Posix_OpenFlags_O_TRUNC;
3232 #endif /* ndef O_TRUNC */
3233 #ifdef O_WRONLY
3234         if ((x & O_WRONLY) == O_WRONLY)
3235                 *r |= Mono_Posix_OpenFlags_O_WRONLY;
3236 #endif /* ndef O_WRONLY */
3237         return 0;
3238 }
3239
3240 int Mono_Posix_FromPathconfName (int x, int *r)
3241 {
3242         *r = 0;
3243         if (x == Mono_Posix_PathconfName__PC_2_SYMLINKS)
3244 #ifdef _PC_2_SYMLINKS
3245                 {*r = _PC_2_SYMLINKS; return 0;}
3246 #else /* def _PC_2_SYMLINKS */
3247                 {errno = EINVAL; return -1;}
3248 #endif /* ndef _PC_2_SYMLINKS */
3249         if (x == Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN)
3250 #ifdef _PC_ALLOC_SIZE_MIN
3251                 {*r = _PC_ALLOC_SIZE_MIN; return 0;}
3252 #else /* def _PC_ALLOC_SIZE_MIN */
3253                 {errno = EINVAL; return -1;}
3254 #endif /* ndef _PC_ALLOC_SIZE_MIN */
3255         if (x == Mono_Posix_PathconfName__PC_ASYNC_IO)
3256 #ifdef _PC_ASYNC_IO
3257                 {*r = _PC_ASYNC_IO; return 0;}
3258 #else /* def _PC_ASYNC_IO */
3259                 {errno = EINVAL; return -1;}
3260 #endif /* ndef _PC_ASYNC_IO */
3261         if (x == Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED)
3262 #ifdef _PC_CHOWN_RESTRICTED
3263                 {*r = _PC_CHOWN_RESTRICTED; return 0;}
3264 #else /* def _PC_CHOWN_RESTRICTED */
3265                 {errno = EINVAL; return -1;}
3266 #endif /* ndef _PC_CHOWN_RESTRICTED */
3267         if (x == Mono_Posix_PathconfName__PC_FILESIZEBITS)
3268 #ifdef _PC_FILESIZEBITS
3269                 {*r = _PC_FILESIZEBITS; return 0;}
3270 #else /* def _PC_FILESIZEBITS */
3271                 {errno = EINVAL; return -1;}
3272 #endif /* ndef _PC_FILESIZEBITS */
3273         if (x == Mono_Posix_PathconfName__PC_LINK_MAX)
3274 #ifdef _PC_LINK_MAX
3275                 {*r = _PC_LINK_MAX; return 0;}
3276 #else /* def _PC_LINK_MAX */
3277                 {errno = EINVAL; return -1;}
3278 #endif /* ndef _PC_LINK_MAX */
3279         if (x == Mono_Posix_PathconfName__PC_MAX_CANON)
3280 #ifdef _PC_MAX_CANON
3281                 {*r = _PC_MAX_CANON; return 0;}
3282 #else /* def _PC_MAX_CANON */
3283                 {errno = EINVAL; return -1;}
3284 #endif /* ndef _PC_MAX_CANON */
3285         if (x == Mono_Posix_PathconfName__PC_MAX_INPUT)
3286 #ifdef _PC_MAX_INPUT
3287                 {*r = _PC_MAX_INPUT; return 0;}
3288 #else /* def _PC_MAX_INPUT */
3289                 {errno = EINVAL; return -1;}
3290 #endif /* ndef _PC_MAX_INPUT */
3291         if (x == Mono_Posix_PathconfName__PC_NAME_MAX)
3292 #ifdef _PC_NAME_MAX
3293                 {*r = _PC_NAME_MAX; return 0;}
3294 #else /* def _PC_NAME_MAX */
3295                 {errno = EINVAL; return -1;}
3296 #endif /* ndef _PC_NAME_MAX */
3297         if (x == Mono_Posix_PathconfName__PC_NO_TRUNC)
3298 #ifdef _PC_NO_TRUNC
3299                 {*r = _PC_NO_TRUNC; return 0;}
3300 #else /* def _PC_NO_TRUNC */
3301                 {errno = EINVAL; return -1;}
3302 #endif /* ndef _PC_NO_TRUNC */
3303         if (x == Mono_Posix_PathconfName__PC_PATH_MAX)
3304 #ifdef _PC_PATH_MAX
3305                 {*r = _PC_PATH_MAX; return 0;}
3306 #else /* def _PC_PATH_MAX */
3307                 {errno = EINVAL; return -1;}
3308 #endif /* ndef _PC_PATH_MAX */
3309         if (x == Mono_Posix_PathconfName__PC_PIPE_BUF)
3310 #ifdef _PC_PIPE_BUF
3311                 {*r = _PC_PIPE_BUF; return 0;}
3312 #else /* def _PC_PIPE_BUF */
3313                 {errno = EINVAL; return -1;}
3314 #endif /* ndef _PC_PIPE_BUF */
3315         if (x == Mono_Posix_PathconfName__PC_PRIO_IO)
3316 #ifdef _PC_PRIO_IO
3317                 {*r = _PC_PRIO_IO; return 0;}
3318 #else /* def _PC_PRIO_IO */
3319                 {errno = EINVAL; return -1;}
3320 #endif /* ndef _PC_PRIO_IO */
3321         if (x == Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE)
3322 #ifdef _PC_REC_INCR_XFER_SIZE
3323                 {*r = _PC_REC_INCR_XFER_SIZE; return 0;}
3324 #else /* def _PC_REC_INCR_XFER_SIZE */
3325                 {errno = EINVAL; return -1;}
3326 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
3327         if (x == Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE)
3328 #ifdef _PC_REC_MAX_XFER_SIZE
3329                 {*r = _PC_REC_MAX_XFER_SIZE; return 0;}
3330 #else /* def _PC_REC_MAX_XFER_SIZE */
3331                 {errno = EINVAL; return -1;}
3332 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
3333         if (x == Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE)
3334 #ifdef _PC_REC_MIN_XFER_SIZE
3335                 {*r = _PC_REC_MIN_XFER_SIZE; return 0;}
3336 #else /* def _PC_REC_MIN_XFER_SIZE */
3337                 {errno = EINVAL; return -1;}
3338 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
3339         if (x == Mono_Posix_PathconfName__PC_REC_XFER_ALIGN)
3340 #ifdef _PC_REC_XFER_ALIGN
3341                 {*r = _PC_REC_XFER_ALIGN; return 0;}
3342 #else /* def _PC_REC_XFER_ALIGN */
3343                 {errno = EINVAL; return -1;}
3344 #endif /* ndef _PC_REC_XFER_ALIGN */
3345         if (x == Mono_Posix_PathconfName__PC_SOCK_MAXBUF)
3346 #ifdef _PC_SOCK_MAXBUF
3347                 {*r = _PC_SOCK_MAXBUF; return 0;}
3348 #else /* def _PC_SOCK_MAXBUF */
3349                 {errno = EINVAL; return -1;}
3350 #endif /* ndef _PC_SOCK_MAXBUF */
3351         if (x == Mono_Posix_PathconfName__PC_SYMLINK_MAX)
3352 #ifdef _PC_SYMLINK_MAX
3353                 {*r = _PC_SYMLINK_MAX; return 0;}
3354 #else /* def _PC_SYMLINK_MAX */
3355                 {errno = EINVAL; return -1;}
3356 #endif /* ndef _PC_SYMLINK_MAX */
3357         if (x == Mono_Posix_PathconfName__PC_SYNC_IO)
3358 #ifdef _PC_SYNC_IO
3359                 {*r = _PC_SYNC_IO; return 0;}
3360 #else /* def _PC_SYNC_IO */
3361                 {errno = EINVAL; return -1;}
3362 #endif /* ndef _PC_SYNC_IO */
3363         if (x == Mono_Posix_PathconfName__PC_VDISABLE)
3364 #ifdef _PC_VDISABLE
3365                 {*r = _PC_VDISABLE; return 0;}
3366 #else /* def _PC_VDISABLE */
3367                 {errno = EINVAL; return -1;}
3368 #endif /* ndef _PC_VDISABLE */
3369         if (x == 0)
3370                 return 0;
3371         errno = EINVAL; return -1;
3372 }
3373
3374 int Mono_Posix_ToPathconfName (int x, int *r)
3375 {
3376         *r = 0;
3377         if (x == 0)
3378                 return 0;
3379 #ifdef _PC_2_SYMLINKS
3380         if (x == _PC_2_SYMLINKS)
3381                 {*r = Mono_Posix_PathconfName__PC_2_SYMLINKS; return 0;}
3382 #endif /* ndef _PC_2_SYMLINKS */
3383 #ifdef _PC_ALLOC_SIZE_MIN
3384         if (x == _PC_ALLOC_SIZE_MIN)
3385                 {*r = Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN; return 0;}
3386 #endif /* ndef _PC_ALLOC_SIZE_MIN */
3387 #ifdef _PC_ASYNC_IO
3388         if (x == _PC_ASYNC_IO)
3389                 {*r = Mono_Posix_PathconfName__PC_ASYNC_IO; return 0;}
3390 #endif /* ndef _PC_ASYNC_IO */
3391 #ifdef _PC_CHOWN_RESTRICTED
3392         if (x == _PC_CHOWN_RESTRICTED)
3393                 {*r = Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED; return 0;}
3394 #endif /* ndef _PC_CHOWN_RESTRICTED */
3395 #ifdef _PC_FILESIZEBITS
3396         if (x == _PC_FILESIZEBITS)
3397                 {*r = Mono_Posix_PathconfName__PC_FILESIZEBITS; return 0;}
3398 #endif /* ndef _PC_FILESIZEBITS */
3399 #ifdef _PC_LINK_MAX
3400         if (x == _PC_LINK_MAX)
3401                 {*r = Mono_Posix_PathconfName__PC_LINK_MAX; return 0;}
3402 #endif /* ndef _PC_LINK_MAX */
3403 #ifdef _PC_MAX_CANON
3404         if (x == _PC_MAX_CANON)
3405                 {*r = Mono_Posix_PathconfName__PC_MAX_CANON; return 0;}
3406 #endif /* ndef _PC_MAX_CANON */
3407 #ifdef _PC_MAX_INPUT
3408         if (x == _PC_MAX_INPUT)
3409                 {*r = Mono_Posix_PathconfName__PC_MAX_INPUT; return 0;}
3410 #endif /* ndef _PC_MAX_INPUT */
3411 #ifdef _PC_NAME_MAX
3412         if (x == _PC_NAME_MAX)
3413                 {*r = Mono_Posix_PathconfName__PC_NAME_MAX; return 0;}
3414 #endif /* ndef _PC_NAME_MAX */
3415 #ifdef _PC_NO_TRUNC
3416         if (x == _PC_NO_TRUNC)
3417                 {*r = Mono_Posix_PathconfName__PC_NO_TRUNC; return 0;}
3418 #endif /* ndef _PC_NO_TRUNC */
3419 #ifdef _PC_PATH_MAX
3420         if (x == _PC_PATH_MAX)
3421                 {*r = Mono_Posix_PathconfName__PC_PATH_MAX; return 0;}
3422 #endif /* ndef _PC_PATH_MAX */
3423 #ifdef _PC_PIPE_BUF
3424         if (x == _PC_PIPE_BUF)
3425                 {*r = Mono_Posix_PathconfName__PC_PIPE_BUF; return 0;}
3426 #endif /* ndef _PC_PIPE_BUF */
3427 #ifdef _PC_PRIO_IO
3428         if (x == _PC_PRIO_IO)
3429                 {*r = Mono_Posix_PathconfName__PC_PRIO_IO; return 0;}
3430 #endif /* ndef _PC_PRIO_IO */
3431 #ifdef _PC_REC_INCR_XFER_SIZE
3432         if (x == _PC_REC_INCR_XFER_SIZE)
3433                 {*r = Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE; return 0;}
3434 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
3435 #ifdef _PC_REC_MAX_XFER_SIZE
3436         if (x == _PC_REC_MAX_XFER_SIZE)
3437                 {*r = Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE; return 0;}
3438 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
3439 #ifdef _PC_REC_MIN_XFER_SIZE
3440         if (x == _PC_REC_MIN_XFER_SIZE)
3441                 {*r = Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE; return 0;}
3442 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
3443 #ifdef _PC_REC_XFER_ALIGN
3444         if (x == _PC_REC_XFER_ALIGN)
3445                 {*r = Mono_Posix_PathconfName__PC_REC_XFER_ALIGN; return 0;}
3446 #endif /* ndef _PC_REC_XFER_ALIGN */
3447 #ifdef _PC_SOCK_MAXBUF
3448         if (x == _PC_SOCK_MAXBUF)
3449                 {*r = Mono_Posix_PathconfName__PC_SOCK_MAXBUF; return 0;}
3450 #endif /* ndef _PC_SOCK_MAXBUF */
3451 #ifdef _PC_SYMLINK_MAX
3452         if (x == _PC_SYMLINK_MAX)
3453                 {*r = Mono_Posix_PathconfName__PC_SYMLINK_MAX; return 0;}
3454 #endif /* ndef _PC_SYMLINK_MAX */
3455 #ifdef _PC_SYNC_IO
3456         if (x == _PC_SYNC_IO)
3457                 {*r = Mono_Posix_PathconfName__PC_SYNC_IO; return 0;}
3458 #endif /* ndef _PC_SYNC_IO */
3459 #ifdef _PC_VDISABLE
3460         if (x == _PC_VDISABLE)
3461                 {*r = Mono_Posix_PathconfName__PC_VDISABLE; return 0;}
3462 #endif /* ndef _PC_VDISABLE */
3463         errno = EINVAL; return -1;
3464 }
3465
3466 int Mono_Posix_FromPollEvents (short x, short *r)
3467 {
3468         *r = 0;
3469         if ((x & Mono_Posix_PollEvents_POLLERR) == Mono_Posix_PollEvents_POLLERR)
3470 #ifdef POLLERR
3471                 *r |= POLLERR;
3472 #else /* def POLLERR */
3473                 {errno = EINVAL; return -1;}
3474 #endif /* ndef POLLERR */
3475         if ((x & Mono_Posix_PollEvents_POLLHUP) == Mono_Posix_PollEvents_POLLHUP)
3476 #ifdef POLLHUP
3477                 *r |= POLLHUP;
3478 #else /* def POLLHUP */
3479                 {errno = EINVAL; return -1;}
3480 #endif /* ndef POLLHUP */
3481         if ((x & Mono_Posix_PollEvents_POLLIN) == Mono_Posix_PollEvents_POLLIN)
3482 #ifdef POLLIN
3483                 *r |= POLLIN;
3484 #else /* def POLLIN */
3485                 {errno = EINVAL; return -1;}
3486 #endif /* ndef POLLIN */
3487         if ((x & Mono_Posix_PollEvents_POLLNVAL) == Mono_Posix_PollEvents_POLLNVAL)
3488 #ifdef POLLNVAL
3489                 *r |= POLLNVAL;
3490 #else /* def POLLNVAL */
3491                 {errno = EINVAL; return -1;}
3492 #endif /* ndef POLLNVAL */
3493         if ((x & Mono_Posix_PollEvents_POLLOUT) == Mono_Posix_PollEvents_POLLOUT)
3494 #ifdef POLLOUT
3495                 *r |= POLLOUT;
3496 #else /* def POLLOUT */
3497                 {errno = EINVAL; return -1;}
3498 #endif /* ndef POLLOUT */
3499         if ((x & Mono_Posix_PollEvents_POLLPRI) == Mono_Posix_PollEvents_POLLPRI)
3500 #ifdef POLLPRI
3501                 *r |= POLLPRI;
3502 #else /* def POLLPRI */
3503                 {errno = EINVAL; return -1;}
3504 #endif /* ndef POLLPRI */
3505         if ((x & Mono_Posix_PollEvents_POLLRDBAND) == Mono_Posix_PollEvents_POLLRDBAND)
3506 #ifdef POLLRDBAND
3507                 *r |= POLLRDBAND;
3508 #else /* def POLLRDBAND */
3509                 {errno = EINVAL; return -1;}
3510 #endif /* ndef POLLRDBAND */
3511         if ((x & Mono_Posix_PollEvents_POLLRDNORM) == Mono_Posix_PollEvents_POLLRDNORM)
3512 #ifdef POLLRDNORM
3513                 *r |= POLLRDNORM;
3514 #else /* def POLLRDNORM */
3515                 {errno = EINVAL; return -1;}
3516 #endif /* ndef POLLRDNORM */
3517         if ((x & Mono_Posix_PollEvents_POLLWRBAND) == Mono_Posix_PollEvents_POLLWRBAND)
3518 #ifdef POLLWRBAND
3519                 *r |= POLLWRBAND;
3520 #else /* def POLLWRBAND */
3521                 {errno = EINVAL; return -1;}
3522 #endif /* ndef POLLWRBAND */
3523         if ((x & Mono_Posix_PollEvents_POLLWRNORM) == Mono_Posix_PollEvents_POLLWRNORM)
3524 #ifdef POLLWRNORM
3525                 *r |= POLLWRNORM;
3526 #else /* def POLLWRNORM */
3527                 {errno = EINVAL; return -1;}
3528 #endif /* ndef POLLWRNORM */
3529         if (x == 0)
3530                 return 0;
3531         return 0;
3532 }
3533
3534 int Mono_Posix_ToPollEvents (short x, short *r)
3535 {
3536         *r = 0;
3537         if (x == 0)
3538                 return 0;
3539 #ifdef POLLERR
3540         if ((x & POLLERR) == POLLERR)
3541                 *r |= Mono_Posix_PollEvents_POLLERR;
3542 #endif /* ndef POLLERR */
3543 #ifdef POLLHUP
3544         if ((x & POLLHUP) == POLLHUP)
3545                 *r |= Mono_Posix_PollEvents_POLLHUP;
3546 #endif /* ndef POLLHUP */
3547 #ifdef POLLIN
3548         if ((x & POLLIN) == POLLIN)
3549                 *r |= Mono_Posix_PollEvents_POLLIN;
3550 #endif /* ndef POLLIN */
3551 #ifdef POLLNVAL
3552         if ((x & POLLNVAL) == POLLNVAL)
3553                 *r |= Mono_Posix_PollEvents_POLLNVAL;
3554 #endif /* ndef POLLNVAL */
3555 #ifdef POLLOUT
3556         if ((x & POLLOUT) == POLLOUT)
3557                 *r |= Mono_Posix_PollEvents_POLLOUT;
3558 #endif /* ndef POLLOUT */
3559 #ifdef POLLPRI
3560         if ((x & POLLPRI) == POLLPRI)
3561                 *r |= Mono_Posix_PollEvents_POLLPRI;
3562 #endif /* ndef POLLPRI */
3563 #ifdef POLLRDBAND
3564         if ((x & POLLRDBAND) == POLLRDBAND)
3565                 *r |= Mono_Posix_PollEvents_POLLRDBAND;
3566 #endif /* ndef POLLRDBAND */
3567 #ifdef POLLRDNORM
3568         if ((x & POLLRDNORM) == POLLRDNORM)
3569                 *r |= Mono_Posix_PollEvents_POLLRDNORM;
3570 #endif /* ndef POLLRDNORM */
3571 #ifdef POLLWRBAND
3572         if ((x & POLLWRBAND) == POLLWRBAND)
3573                 *r |= Mono_Posix_PollEvents_POLLWRBAND;
3574 #endif /* ndef POLLWRBAND */
3575 #ifdef POLLWRNORM
3576         if ((x & POLLWRNORM) == POLLWRNORM)
3577                 *r |= Mono_Posix_PollEvents_POLLWRNORM;
3578 #endif /* ndef POLLWRNORM */
3579         return 0;
3580 }
3581
3582 int
3583 Mono_Posix_FromPollfd (struct Mono_Posix_Pollfd *from, struct pollfd *to)
3584 {
3585         _cnm_return_val_if_overflow (int, from->fd, -1);
3586
3587         memset (to, 0, sizeof(*to));
3588
3589         to->fd      = from->fd;
3590         if (Mono_Posix_FromPollEvents (from->events, &to->events) != 0) {
3591                 return -1;
3592         }
3593         if (Mono_Posix_FromPollEvents (from->revents, &to->revents) != 0) {
3594                 return -1;
3595         }
3596
3597         return 0;
3598 }
3599
3600
3601 int
3602 Mono_Posix_ToPollfd (struct pollfd *from, struct Mono_Posix_Pollfd *to)
3603 {
3604         _cnm_return_val_if_overflow (int, from->fd, -1);
3605
3606         memset (to, 0, sizeof(*to));
3607
3608         to->fd      = from->fd;
3609         if (Mono_Posix_ToPollEvents (from->events, &to->events) != 0) {
3610                 return -1;
3611         }
3612         if (Mono_Posix_ToPollEvents (from->revents, &to->revents) != 0) {
3613                 return -1;
3614         }
3615
3616         return 0;
3617 }
3618
3619
3620 int Mono_Posix_FromPosixFadviseAdvice (int x, int *r)
3621 {
3622         *r = 0;
3623         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED)
3624 #ifdef POSIX_FADV_DONTNEED
3625                 {*r = POSIX_FADV_DONTNEED; return 0;}
3626 #else /* def POSIX_FADV_DONTNEED */
3627                 {errno = EINVAL; return -1;}
3628 #endif /* ndef POSIX_FADV_DONTNEED */
3629         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE)
3630 #ifdef POSIX_FADV_NOREUSE
3631                 {*r = POSIX_FADV_NOREUSE; return 0;}
3632 #else /* def POSIX_FADV_NOREUSE */
3633                 {errno = EINVAL; return -1;}
3634 #endif /* ndef POSIX_FADV_NOREUSE */
3635         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL)
3636 #ifdef POSIX_FADV_NORMAL
3637                 {*r = POSIX_FADV_NORMAL; return 0;}
3638 #else /* def POSIX_FADV_NORMAL */
3639                 {errno = EINVAL; return -1;}
3640 #endif /* ndef POSIX_FADV_NORMAL */
3641         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM)
3642 #ifdef POSIX_FADV_RANDOM
3643                 {*r = POSIX_FADV_RANDOM; return 0;}
3644 #else /* def POSIX_FADV_RANDOM */
3645                 {errno = EINVAL; return -1;}
3646 #endif /* ndef POSIX_FADV_RANDOM */
3647         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL)
3648 #ifdef POSIX_FADV_SEQUENTIAL
3649                 {*r = POSIX_FADV_SEQUENTIAL; return 0;}
3650 #else /* def POSIX_FADV_SEQUENTIAL */
3651                 {errno = EINVAL; return -1;}
3652 #endif /* ndef POSIX_FADV_SEQUENTIAL */
3653         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED)
3654 #ifdef POSIX_FADV_WILLNEED
3655                 {*r = POSIX_FADV_WILLNEED; return 0;}
3656 #else /* def POSIX_FADV_WILLNEED */
3657                 {errno = EINVAL; return -1;}
3658 #endif /* ndef POSIX_FADV_WILLNEED */
3659         if (x == 0)
3660                 return 0;
3661         errno = EINVAL; return -1;
3662 }
3663
3664 int Mono_Posix_ToPosixFadviseAdvice (int x, int *r)
3665 {
3666         *r = 0;
3667         if (x == 0)
3668                 return 0;
3669 #ifdef POSIX_FADV_DONTNEED
3670         if (x == POSIX_FADV_DONTNEED)
3671                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED; return 0;}
3672 #endif /* ndef POSIX_FADV_DONTNEED */
3673 #ifdef POSIX_FADV_NOREUSE
3674         if (x == POSIX_FADV_NOREUSE)
3675                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE; return 0;}
3676 #endif /* ndef POSIX_FADV_NOREUSE */
3677 #ifdef POSIX_FADV_NORMAL
3678         if (x == POSIX_FADV_NORMAL)
3679                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL; return 0;}
3680 #endif /* ndef POSIX_FADV_NORMAL */
3681 #ifdef POSIX_FADV_RANDOM
3682         if (x == POSIX_FADV_RANDOM)
3683                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM; return 0;}
3684 #endif /* ndef POSIX_FADV_RANDOM */
3685 #ifdef POSIX_FADV_SEQUENTIAL
3686         if (x == POSIX_FADV_SEQUENTIAL)
3687                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL; return 0;}
3688 #endif /* ndef POSIX_FADV_SEQUENTIAL */
3689 #ifdef POSIX_FADV_WILLNEED
3690         if (x == POSIX_FADV_WILLNEED)
3691                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED; return 0;}
3692 #endif /* ndef POSIX_FADV_WILLNEED */
3693         errno = EINVAL; return -1;
3694 }
3695
3696 int Mono_Posix_FromPosixMadviseAdvice (int x, int *r)
3697 {
3698         *r = 0;
3699         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED)
3700 #ifdef POSIX_MADV_DONTNEED
3701                 {*r = POSIX_MADV_DONTNEED; return 0;}
3702 #else /* def POSIX_MADV_DONTNEED */
3703                 {errno = EINVAL; return -1;}
3704 #endif /* ndef POSIX_MADV_DONTNEED */
3705         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL)
3706 #ifdef POSIX_MADV_NORMAL
3707                 {*r = POSIX_MADV_NORMAL; return 0;}
3708 #else /* def POSIX_MADV_NORMAL */
3709                 {errno = EINVAL; return -1;}
3710 #endif /* ndef POSIX_MADV_NORMAL */
3711         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM)
3712 #ifdef POSIX_MADV_RANDOM
3713                 {*r = POSIX_MADV_RANDOM; return 0;}
3714 #else /* def POSIX_MADV_RANDOM */
3715                 {errno = EINVAL; return -1;}
3716 #endif /* ndef POSIX_MADV_RANDOM */
3717         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL)
3718 #ifdef POSIX_MADV_SEQUENTIAL
3719                 {*r = POSIX_MADV_SEQUENTIAL; return 0;}
3720 #else /* def POSIX_MADV_SEQUENTIAL */
3721                 {errno = EINVAL; return -1;}
3722 #endif /* ndef POSIX_MADV_SEQUENTIAL */
3723         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED)
3724 #ifdef POSIX_MADV_WILLNEED
3725                 {*r = POSIX_MADV_WILLNEED; return 0;}
3726 #else /* def POSIX_MADV_WILLNEED */
3727                 {errno = EINVAL; return -1;}
3728 #endif /* ndef POSIX_MADV_WILLNEED */
3729         if (x == 0)
3730                 return 0;
3731         errno = EINVAL; return -1;
3732 }
3733
3734 int Mono_Posix_ToPosixMadviseAdvice (int x, int *r)
3735 {
3736         *r = 0;
3737         if (x == 0)
3738                 return 0;
3739 #ifdef POSIX_MADV_DONTNEED
3740         if (x == POSIX_MADV_DONTNEED)
3741                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED; return 0;}
3742 #endif /* ndef POSIX_MADV_DONTNEED */
3743 #ifdef POSIX_MADV_NORMAL
3744         if (x == POSIX_MADV_NORMAL)
3745                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL; return 0;}
3746 #endif /* ndef POSIX_MADV_NORMAL */
3747 #ifdef POSIX_MADV_RANDOM
3748         if (x == POSIX_MADV_RANDOM)
3749                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM; return 0;}
3750 #endif /* ndef POSIX_MADV_RANDOM */
3751 #ifdef POSIX_MADV_SEQUENTIAL
3752         if (x == POSIX_MADV_SEQUENTIAL)
3753                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL; return 0;}
3754 #endif /* ndef POSIX_MADV_SEQUENTIAL */
3755 #ifdef POSIX_MADV_WILLNEED
3756         if (x == POSIX_MADV_WILLNEED)
3757                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED; return 0;}
3758 #endif /* ndef POSIX_MADV_WILLNEED */
3759         errno = EINVAL; return -1;
3760 }
3761
3762 int Mono_Posix_FromSeekFlags (short x, short *r)
3763 {
3764         *r = 0;
3765         if (x == Mono_Posix_SeekFlags_L_INCR)
3766 #ifdef L_INCR
3767                 {*r = L_INCR; return 0;}
3768 #else /* def L_INCR */
3769                 {errno = EINVAL; return -1;}
3770 #endif /* ndef L_INCR */
3771         if (x == Mono_Posix_SeekFlags_L_SET)
3772 #ifdef L_SET
3773                 {*r = L_SET; return 0;}
3774 #else /* def L_SET */
3775                 {errno = EINVAL; return -1;}
3776 #endif /* ndef L_SET */
3777         if (x == Mono_Posix_SeekFlags_L_XTND)
3778 #ifdef L_XTND
3779                 {*r = L_XTND; return 0;}
3780 #else /* def L_XTND */
3781                 {errno = EINVAL; return -1;}
3782 #endif /* ndef L_XTND */
3783         if (x == Mono_Posix_SeekFlags_SEEK_CUR)
3784 #ifdef SEEK_CUR
3785                 {*r = SEEK_CUR; return 0;}
3786 #else /* def SEEK_CUR */
3787                 {errno = EINVAL; return -1;}
3788 #endif /* ndef SEEK_CUR */
3789         if (x == Mono_Posix_SeekFlags_SEEK_END)
3790 #ifdef SEEK_END
3791                 {*r = SEEK_END; return 0;}
3792 #else /* def SEEK_END */
3793                 {errno = EINVAL; return -1;}
3794 #endif /* ndef SEEK_END */
3795         if (x == Mono_Posix_SeekFlags_SEEK_SET)
3796 #ifdef SEEK_SET
3797                 {*r = SEEK_SET; return 0;}
3798 #else /* def SEEK_SET */
3799                 {errno = EINVAL; return -1;}
3800 #endif /* ndef SEEK_SET */
3801         if (x == 0)
3802                 return 0;
3803         errno = EINVAL; return -1;
3804 }
3805
3806 int Mono_Posix_ToSeekFlags (short x, short *r)
3807 {
3808         *r = 0;
3809         if (x == 0)
3810                 return 0;
3811 #ifdef L_INCR
3812         if (x == L_INCR)
3813                 {*r = Mono_Posix_SeekFlags_L_INCR; return 0;}
3814 #endif /* ndef L_INCR */
3815 #ifdef L_SET
3816         if (x == L_SET)
3817                 {*r = Mono_Posix_SeekFlags_L_SET; return 0;}
3818 #endif /* ndef L_SET */
3819 #ifdef L_XTND
3820         if (x == L_XTND)
3821                 {*r = Mono_Posix_SeekFlags_L_XTND; return 0;}
3822 #endif /* ndef L_XTND */
3823 #ifdef SEEK_CUR
3824         if (x == SEEK_CUR)
3825                 {*r = Mono_Posix_SeekFlags_SEEK_CUR; return 0;}
3826 #endif /* ndef SEEK_CUR */
3827 #ifdef SEEK_END
3828         if (x == SEEK_END)
3829                 {*r = Mono_Posix_SeekFlags_SEEK_END; return 0;}
3830 #endif /* ndef SEEK_END */
3831 #ifdef SEEK_SET
3832         if (x == SEEK_SET)
3833                 {*r = Mono_Posix_SeekFlags_SEEK_SET; return 0;}
3834 #endif /* ndef SEEK_SET */
3835         errno = EINVAL; return -1;
3836 }
3837
3838 int Mono_Posix_FromSignum (int x, int *r)
3839 {
3840         *r = 0;
3841         if (x == Mono_Posix_Signum_SIGABRT)
3842 #ifdef SIGABRT
3843                 {*r = SIGABRT; return 0;}
3844 #else /* def SIGABRT */
3845                 {errno = EINVAL; return -1;}
3846 #endif /* ndef SIGABRT */
3847         if (x == Mono_Posix_Signum_SIGALRM)
3848 #ifdef SIGALRM
3849                 {*r = SIGALRM; return 0;}
3850 #else /* def SIGALRM */
3851                 {errno = EINVAL; return -1;}
3852 #endif /* ndef SIGALRM */
3853         if (x == Mono_Posix_Signum_SIGBUS)
3854 #ifdef SIGBUS
3855                 {*r = SIGBUS; return 0;}
3856 #else /* def SIGBUS */
3857                 {errno = EINVAL; return -1;}
3858 #endif /* ndef SIGBUS */
3859         if (x == Mono_Posix_Signum_SIGCHLD)
3860 #ifdef SIGCHLD
3861                 {*r = SIGCHLD; return 0;}
3862 #else /* def SIGCHLD */
3863                 {errno = EINVAL; return -1;}
3864 #endif /* ndef SIGCHLD */
3865         if (x == Mono_Posix_Signum_SIGCLD)
3866 #ifdef SIGCLD
3867                 {*r = SIGCLD; return 0;}
3868 #else /* def SIGCLD */
3869                 {errno = EINVAL; return -1;}
3870 #endif /* ndef SIGCLD */
3871         if (x == Mono_Posix_Signum_SIGCONT)
3872 #ifdef SIGCONT
3873                 {*r = SIGCONT; return 0;}
3874 #else /* def SIGCONT */
3875                 {errno = EINVAL; return -1;}
3876 #endif /* ndef SIGCONT */
3877         if (x == Mono_Posix_Signum_SIGFPE)
3878 #ifdef SIGFPE
3879                 {*r = SIGFPE; return 0;}
3880 #else /* def SIGFPE */
3881                 {errno = EINVAL; return -1;}
3882 #endif /* ndef SIGFPE */
3883         if (x == Mono_Posix_Signum_SIGHUP)
3884 #ifdef SIGHUP
3885                 {*r = SIGHUP; return 0;}
3886 #else /* def SIGHUP */
3887                 {errno = EINVAL; return -1;}
3888 #endif /* ndef SIGHUP */
3889         if (x == Mono_Posix_Signum_SIGILL)
3890 #ifdef SIGILL
3891                 {*r = SIGILL; return 0;}
3892 #else /* def SIGILL */
3893                 {errno = EINVAL; return -1;}
3894 #endif /* ndef SIGILL */
3895         if (x == Mono_Posix_Signum_SIGINT)
3896 #ifdef SIGINT
3897                 {*r = SIGINT; return 0;}
3898 #else /* def SIGINT */
3899                 {errno = EINVAL; return -1;}
3900 #endif /* ndef SIGINT */
3901         if (x == Mono_Posix_Signum_SIGIO)
3902 #ifdef SIGIO
3903                 {*r = SIGIO; return 0;}
3904 #else /* def SIGIO */
3905                 {errno = EINVAL; return -1;}
3906 #endif /* ndef SIGIO */
3907         if (x == Mono_Posix_Signum_SIGIOT)
3908 #ifdef SIGIOT
3909                 {*r = SIGIOT; return 0;}
3910 #else /* def SIGIOT */
3911                 {errno = EINVAL; return -1;}
3912 #endif /* ndef SIGIOT */
3913         if (x == Mono_Posix_Signum_SIGKILL)
3914 #ifdef SIGKILL
3915                 {*r = SIGKILL; return 0;}
3916 #else /* def SIGKILL */
3917                 {errno = EINVAL; return -1;}
3918 #endif /* ndef SIGKILL */
3919         if (x == Mono_Posix_Signum_SIGPIPE)
3920 #ifdef SIGPIPE
3921                 {*r = SIGPIPE; return 0;}
3922 #else /* def SIGPIPE */
3923                 {errno = EINVAL; return -1;}
3924 #endif /* ndef SIGPIPE */
3925         if (x == Mono_Posix_Signum_SIGPOLL)
3926 #ifdef SIGPOLL
3927                 {*r = SIGPOLL; return 0;}
3928 #else /* def SIGPOLL */
3929                 {errno = EINVAL; return -1;}
3930 #endif /* ndef SIGPOLL */
3931         if (x == Mono_Posix_Signum_SIGPROF)
3932 #ifdef SIGPROF
3933                 {*r = SIGPROF; return 0;}
3934 #else /* def SIGPROF */
3935                 {errno = EINVAL; return -1;}
3936 #endif /* ndef SIGPROF */
3937         if (x == Mono_Posix_Signum_SIGPWR)
3938 #ifdef SIGPWR
3939                 {*r = SIGPWR; return 0;}
3940 #else /* def SIGPWR */
3941                 {errno = EINVAL; return -1;}
3942 #endif /* ndef SIGPWR */
3943         if (x == Mono_Posix_Signum_SIGQUIT)
3944 #ifdef SIGQUIT
3945                 {*r = SIGQUIT; return 0;}
3946 #else /* def SIGQUIT */
3947                 {errno = EINVAL; return -1;}
3948 #endif /* ndef SIGQUIT */
3949         if (x == Mono_Posix_Signum_SIGSEGV)
3950 #ifdef SIGSEGV
3951                 {*r = SIGSEGV; return 0;}
3952 #else /* def SIGSEGV */
3953                 {errno = EINVAL; return -1;}
3954 #endif /* ndef SIGSEGV */
3955         if (x == Mono_Posix_Signum_SIGSTKFLT)
3956 #ifdef SIGSTKFLT
3957                 {*r = SIGSTKFLT; return 0;}
3958 #else /* def SIGSTKFLT */
3959                 {errno = EINVAL; return -1;}
3960 #endif /* ndef SIGSTKFLT */
3961         if (x == Mono_Posix_Signum_SIGSTOP)
3962 #ifdef SIGSTOP
3963                 {*r = SIGSTOP; return 0;}
3964 #else /* def SIGSTOP */
3965                 {errno = EINVAL; return -1;}
3966 #endif /* ndef SIGSTOP */
3967         if (x == Mono_Posix_Signum_SIGSYS)
3968 #ifdef SIGSYS
3969                 {*r = SIGSYS; return 0;}
3970 #else /* def SIGSYS */
3971                 {errno = EINVAL; return -1;}
3972 #endif /* ndef SIGSYS */
3973         if (x == Mono_Posix_Signum_SIGTERM)
3974 #ifdef SIGTERM
3975                 {*r = SIGTERM; return 0;}
3976 #else /* def SIGTERM */
3977                 {errno = EINVAL; return -1;}
3978 #endif /* ndef SIGTERM */
3979         if (x == Mono_Posix_Signum_SIGTRAP)
3980 #ifdef SIGTRAP
3981                 {*r = SIGTRAP; return 0;}
3982 #else /* def SIGTRAP */
3983                 {errno = EINVAL; return -1;}
3984 #endif /* ndef SIGTRAP */
3985         if (x == Mono_Posix_Signum_SIGTSTP)
3986 #ifdef SIGTSTP
3987                 {*r = SIGTSTP; return 0;}
3988 #else /* def SIGTSTP */
3989                 {errno = EINVAL; return -1;}
3990 #endif /* ndef SIGTSTP */
3991         if (x == Mono_Posix_Signum_SIGTTIN)
3992 #ifdef SIGTTIN
3993                 {*r = SIGTTIN; return 0;}
3994 #else /* def SIGTTIN */
3995                 {errno = EINVAL; return -1;}
3996 #endif /* ndef SIGTTIN */
3997         if (x == Mono_Posix_Signum_SIGTTOU)
3998 #ifdef SIGTTOU
3999                 {*r = SIGTTOU; return 0;}
4000 #else /* def SIGTTOU */
4001                 {errno = EINVAL; return -1;}
4002 #endif /* ndef SIGTTOU */
4003         if (x == Mono_Posix_Signum_SIGUNUSED)
4004 #ifdef SIGUNUSED
4005                 {*r = SIGUNUSED; return 0;}
4006 #else /* def SIGUNUSED */
4007                 {errno = EINVAL; return -1;}
4008 #endif /* ndef SIGUNUSED */
4009         if (x == Mono_Posix_Signum_SIGURG)
4010 #ifdef SIGURG
4011                 {*r = SIGURG; return 0;}
4012 #else /* def SIGURG */
4013                 {errno = EINVAL; return -1;}
4014 #endif /* ndef SIGURG */
4015         if (x == Mono_Posix_Signum_SIGUSR1)
4016 #ifdef SIGUSR1
4017                 {*r = SIGUSR1; return 0;}
4018 #else /* def SIGUSR1 */
4019                 {errno = EINVAL; return -1;}
4020 #endif /* ndef SIGUSR1 */
4021         if (x == Mono_Posix_Signum_SIGUSR2)
4022 #ifdef SIGUSR2
4023                 {*r = SIGUSR2; return 0;}
4024 #else /* def SIGUSR2 */
4025                 {errno = EINVAL; return -1;}
4026 #endif /* ndef SIGUSR2 */
4027         if (x == Mono_Posix_Signum_SIGVTALRM)
4028 #ifdef SIGVTALRM
4029                 {*r = SIGVTALRM; return 0;}
4030 #else /* def SIGVTALRM */
4031                 {errno = EINVAL; return -1;}
4032 #endif /* ndef SIGVTALRM */
4033         if (x == Mono_Posix_Signum_SIGWINCH)
4034 #ifdef SIGWINCH
4035                 {*r = SIGWINCH; return 0;}
4036 #else /* def SIGWINCH */
4037                 {errno = EINVAL; return -1;}
4038 #endif /* ndef SIGWINCH */
4039         if (x == Mono_Posix_Signum_SIGXCPU)
4040 #ifdef SIGXCPU
4041                 {*r = SIGXCPU; return 0;}
4042 #else /* def SIGXCPU */
4043                 {errno = EINVAL; return -1;}
4044 #endif /* ndef SIGXCPU */
4045         if (x == Mono_Posix_Signum_SIGXFSZ)
4046 #ifdef SIGXFSZ
4047                 {*r = SIGXFSZ; return 0;}
4048 #else /* def SIGXFSZ */
4049                 {errno = EINVAL; return -1;}
4050 #endif /* ndef SIGXFSZ */
4051         if (x == 0)
4052                 return 0;
4053         errno = EINVAL; return -1;
4054 }
4055
4056 int Mono_Posix_ToSignum (int x, int *r)
4057 {
4058         *r = 0;
4059         if (x == 0)
4060                 return 0;
4061 #ifdef SIGABRT
4062         if (x == SIGABRT)
4063                 {*r = Mono_Posix_Signum_SIGABRT; return 0;}
4064 #endif /* ndef SIGABRT */
4065 #ifdef SIGALRM
4066         if (x == SIGALRM)
4067                 {*r = Mono_Posix_Signum_SIGALRM; return 0;}
4068 #endif /* ndef SIGALRM */
4069 #ifdef SIGBUS
4070         if (x == SIGBUS)
4071                 {*r = Mono_Posix_Signum_SIGBUS; return 0;}
4072 #endif /* ndef SIGBUS */
4073 #ifdef SIGCHLD
4074         if (x == SIGCHLD)
4075                 {*r = Mono_Posix_Signum_SIGCHLD; return 0;}
4076 #endif /* ndef SIGCHLD */
4077 #ifdef SIGCLD
4078         if (x == SIGCLD)
4079                 {*r = Mono_Posix_Signum_SIGCLD; return 0;}
4080 #endif /* ndef SIGCLD */
4081 #ifdef SIGCONT
4082         if (x == SIGCONT)
4083                 {*r = Mono_Posix_Signum_SIGCONT; return 0;}
4084 #endif /* ndef SIGCONT */
4085 #ifdef SIGFPE
4086         if (x == SIGFPE)
4087                 {*r = Mono_Posix_Signum_SIGFPE; return 0;}
4088 #endif /* ndef SIGFPE */
4089 #ifdef SIGHUP
4090         if (x == SIGHUP)
4091                 {*r = Mono_Posix_Signum_SIGHUP; return 0;}
4092 #endif /* ndef SIGHUP */
4093 #ifdef SIGILL
4094         if (x == SIGILL)
4095                 {*r = Mono_Posix_Signum_SIGILL; return 0;}
4096 #endif /* ndef SIGILL */
4097 #ifdef SIGINT
4098         if (x == SIGINT)
4099                 {*r = Mono_Posix_Signum_SIGINT; return 0;}
4100 #endif /* ndef SIGINT */
4101 #ifdef SIGIO
4102         if (x == SIGIO)
4103                 {*r = Mono_Posix_Signum_SIGIO; return 0;}
4104 #endif /* ndef SIGIO */
4105 #ifdef SIGIOT
4106         if (x == SIGIOT)
4107                 {*r = Mono_Posix_Signum_SIGIOT; return 0;}
4108 #endif /* ndef SIGIOT */
4109 #ifdef SIGKILL
4110         if (x == SIGKILL)
4111                 {*r = Mono_Posix_Signum_SIGKILL; return 0;}
4112 #endif /* ndef SIGKILL */
4113 #ifdef SIGPIPE
4114         if (x == SIGPIPE)
4115                 {*r = Mono_Posix_Signum_SIGPIPE; return 0;}
4116 #endif /* ndef SIGPIPE */
4117 #ifdef SIGPOLL
4118         if (x == SIGPOLL)
4119                 {*r = Mono_Posix_Signum_SIGPOLL; return 0;}
4120 #endif /* ndef SIGPOLL */
4121 #ifdef SIGPROF
4122         if (x == SIGPROF)
4123                 {*r = Mono_Posix_Signum_SIGPROF; return 0;}
4124 #endif /* ndef SIGPROF */
4125 #ifdef SIGPWR
4126         if (x == SIGPWR)
4127                 {*r = Mono_Posix_Signum_SIGPWR; return 0;}
4128 #endif /* ndef SIGPWR */
4129 #ifdef SIGQUIT
4130         if (x == SIGQUIT)
4131                 {*r = Mono_Posix_Signum_SIGQUIT; return 0;}
4132 #endif /* ndef SIGQUIT */
4133 #ifdef SIGSEGV
4134         if (x == SIGSEGV)
4135                 {*r = Mono_Posix_Signum_SIGSEGV; return 0;}
4136 #endif /* ndef SIGSEGV */
4137 #ifdef SIGSTKFLT
4138         if (x == SIGSTKFLT)
4139                 {*r = Mono_Posix_Signum_SIGSTKFLT; return 0;}
4140 #endif /* ndef SIGSTKFLT */
4141 #ifdef SIGSTOP
4142         if (x == SIGSTOP)
4143                 {*r = Mono_Posix_Signum_SIGSTOP; return 0;}
4144 #endif /* ndef SIGSTOP */
4145 #ifdef SIGSYS
4146         if (x == SIGSYS)
4147                 {*r = Mono_Posix_Signum_SIGSYS; return 0;}
4148 #endif /* ndef SIGSYS */
4149 #ifdef SIGTERM
4150         if (x == SIGTERM)
4151                 {*r = Mono_Posix_Signum_SIGTERM; return 0;}
4152 #endif /* ndef SIGTERM */
4153 #ifdef SIGTRAP
4154         if (x == SIGTRAP)
4155                 {*r = Mono_Posix_Signum_SIGTRAP; return 0;}
4156 #endif /* ndef SIGTRAP */
4157 #ifdef SIGTSTP
4158         if (x == SIGTSTP)
4159                 {*r = Mono_Posix_Signum_SIGTSTP; return 0;}
4160 #endif /* ndef SIGTSTP */
4161 #ifdef SIGTTIN
4162         if (x == SIGTTIN)
4163                 {*r = Mono_Posix_Signum_SIGTTIN; return 0;}
4164 #endif /* ndef SIGTTIN */
4165 #ifdef SIGTTOU
4166         if (x == SIGTTOU)
4167                 {*r = Mono_Posix_Signum_SIGTTOU; return 0;}
4168 #endif /* ndef SIGTTOU */
4169 #ifdef SIGUNUSED
4170         if (x == SIGUNUSED)
4171                 {*r = Mono_Posix_Signum_SIGUNUSED; return 0;}
4172 #endif /* ndef SIGUNUSED */
4173 #ifdef SIGURG
4174         if (x == SIGURG)
4175                 {*r = Mono_Posix_Signum_SIGURG; return 0;}
4176 #endif /* ndef SIGURG */
4177 #ifdef SIGUSR1
4178         if (x == SIGUSR1)
4179                 {*r = Mono_Posix_Signum_SIGUSR1; return 0;}
4180 #endif /* ndef SIGUSR1 */
4181 #ifdef SIGUSR2
4182         if (x == SIGUSR2)
4183                 {*r = Mono_Posix_Signum_SIGUSR2; return 0;}
4184 #endif /* ndef SIGUSR2 */
4185 #ifdef SIGVTALRM
4186         if (x == SIGVTALRM)
4187                 {*r = Mono_Posix_Signum_SIGVTALRM; return 0;}
4188 #endif /* ndef SIGVTALRM */
4189 #ifdef SIGWINCH
4190         if (x == SIGWINCH)
4191                 {*r = Mono_Posix_Signum_SIGWINCH; return 0;}
4192 #endif /* ndef SIGWINCH */
4193 #ifdef SIGXCPU
4194         if (x == SIGXCPU)
4195                 {*r = Mono_Posix_Signum_SIGXCPU; return 0;}
4196 #endif /* ndef SIGXCPU */
4197 #ifdef SIGXFSZ
4198         if (x == SIGXFSZ)
4199                 {*r = Mono_Posix_Signum_SIGXFSZ; return 0;}
4200 #endif /* ndef SIGXFSZ */
4201         errno = EINVAL; return -1;
4202 }
4203
4204 int
4205 Mono_Posix_FromStat (struct Mono_Posix_Stat *from, struct stat *to)
4206 {
4207         _cnm_return_val_if_overflow (dev_t, from->st_dev, -1);
4208         _cnm_return_val_if_overflow (ino_t, from->st_ino, -1);
4209         _cnm_return_val_if_overflow (nlink_t, from->st_nlink, -1);
4210         _cnm_return_val_if_overflow (uid_t, from->st_uid, -1);
4211         _cnm_return_val_if_overflow (gid_t, from->st_gid, -1);
4212         _cnm_return_val_if_overflow (dev_t, from->st_rdev, -1);
4213         _cnm_return_val_if_overflow (off_t, from->st_size, -1);
4214         _cnm_return_val_if_overflow (blksize_t, from->st_blksize, -1);
4215         _cnm_return_val_if_overflow (blkcnt_t, from->st_blocks, -1);
4216         _cnm_return_val_if_overflow (time_t, from->st_atime_, -1);
4217         _cnm_return_val_if_overflow (time_t, from->st_mtime_, -1);
4218         _cnm_return_val_if_overflow (time_t, from->st_ctime_, -1);
4219
4220         memset (to, 0, sizeof(*to));
4221
4222         to->st_dev     = from->st_dev;
4223         to->st_ino     = from->st_ino;
4224         if (Mono_Posix_FromFilePermissions (from->st_mode, &to->st_mode) != 0) {
4225                 return -1;
4226         }
4227         to->st_nlink   = from->st_nlink;
4228         to->st_uid     = from->st_uid;
4229         to->st_gid     = from->st_gid;
4230         to->st_rdev    = from->st_rdev;
4231         to->st_size    = from->st_size;
4232         to->st_blksize = from->st_blksize;
4233         to->st_blocks  = from->st_blocks;
4234         to->st_atime   = from->st_atime_;
4235         to->st_mtime   = from->st_mtime_;
4236         to->st_ctime   = from->st_ctime_;
4237
4238         return 0;
4239 }
4240
4241
4242 int
4243 Mono_Posix_ToStat (struct stat *from, struct Mono_Posix_Stat *to)
4244 {
4245         _cnm_return_val_if_overflow (guint64, from->st_dev, -1);
4246         _cnm_return_val_if_overflow (guint64, from->st_ino, -1);
4247         _cnm_return_val_if_overflow (guint64, from->st_nlink, -1);
4248         _cnm_return_val_if_overflow (unsigned int, from->st_uid, -1);
4249         _cnm_return_val_if_overflow (unsigned int, from->st_gid, -1);
4250         _cnm_return_val_if_overflow (guint64, from->st_rdev, -1);
4251         _cnm_return_val_if_overflow (gint64, from->st_size, -1);
4252         _cnm_return_val_if_overflow (gint64, from->st_blksize, -1);
4253         _cnm_return_val_if_overflow (gint64, from->st_blocks, -1);
4254         _cnm_return_val_if_overflow (gint64, from->st_atime, -1);
4255         _cnm_return_val_if_overflow (gint64, from->st_mtime, -1);
4256         _cnm_return_val_if_overflow (gint64, from->st_ctime, -1);
4257
4258         memset (to, 0, sizeof(*to));
4259
4260         to->st_dev     = from->st_dev;
4261         to->st_ino     = from->st_ino;
4262         if (Mono_Posix_ToFilePermissions (from->st_mode, &to->st_mode) != 0) {
4263                 return -1;
4264         }
4265         to->st_nlink   = from->st_nlink;
4266         to->st_uid     = from->st_uid;
4267         to->st_gid     = from->st_gid;
4268         to->st_rdev    = from->st_rdev;
4269         to->st_size    = from->st_size;
4270         to->st_blksize = from->st_blksize;
4271         to->st_blocks  = from->st_blocks;
4272         to->st_atime_  = from->st_atime;
4273         to->st_mtime_  = from->st_mtime;
4274         to->st_ctime_  = from->st_ctime;
4275
4276         return 0;
4277 }
4278
4279
4280 int Mono_Posix_FromSysconfName (int x, int *r)
4281 {
4282         *r = 0;
4283         if (x == Mono_Posix_SysconfName__SC_2_CHAR_TERM)
4284 #ifdef _SC_2_CHAR_TERM
4285                 {*r = _SC_2_CHAR_TERM; return 0;}
4286 #else /* def _SC_2_CHAR_TERM */
4287                 {errno = EINVAL; return -1;}
4288 #endif /* ndef _SC_2_CHAR_TERM */
4289         if (x == Mono_Posix_SysconfName__SC_2_C_BIND)
4290 #ifdef _SC_2_C_BIND
4291                 {*r = _SC_2_C_BIND; return 0;}
4292 #else /* def _SC_2_C_BIND */
4293                 {errno = EINVAL; return -1;}
4294 #endif /* ndef _SC_2_C_BIND */
4295         if (x == Mono_Posix_SysconfName__SC_2_C_DEV)
4296 #ifdef _SC_2_C_DEV
4297                 {*r = _SC_2_C_DEV; return 0;}
4298 #else /* def _SC_2_C_DEV */
4299                 {errno = EINVAL; return -1;}
4300 #endif /* ndef _SC_2_C_DEV */
4301         if (x == Mono_Posix_SysconfName__SC_2_C_VERSION)
4302 #ifdef _SC_2_C_VERSION
4303                 {*r = _SC_2_C_VERSION; return 0;}
4304 #else /* def _SC_2_C_VERSION */
4305                 {errno = EINVAL; return -1;}
4306 #endif /* ndef _SC_2_C_VERSION */
4307         if (x == Mono_Posix_SysconfName__SC_2_FORT_DEV)
4308 #ifdef _SC_2_FORT_DEV
4309                 {*r = _SC_2_FORT_DEV; return 0;}
4310 #else /* def _SC_2_FORT_DEV */
4311                 {errno = EINVAL; return -1;}
4312 #endif /* ndef _SC_2_FORT_DEV */
4313         if (x == Mono_Posix_SysconfName__SC_2_FORT_RUN)
4314 #ifdef _SC_2_FORT_RUN
4315                 {*r = _SC_2_FORT_RUN; return 0;}
4316 #else /* def _SC_2_FORT_RUN */
4317                 {errno = EINVAL; return -1;}
4318 #endif /* ndef _SC_2_FORT_RUN */
4319         if (x == Mono_Posix_SysconfName__SC_2_LOCALEDEF)
4320 #ifdef _SC_2_LOCALEDEF
4321                 {*r = _SC_2_LOCALEDEF; return 0;}
4322 #else /* def _SC_2_LOCALEDEF */
4323                 {errno = EINVAL; return -1;}
4324 #endif /* ndef _SC_2_LOCALEDEF */
4325         if (x == Mono_Posix_SysconfName__SC_2_PBS)
4326 #ifdef _SC_2_PBS
4327                 {*r = _SC_2_PBS; return 0;}
4328 #else /* def _SC_2_PBS */
4329                 {errno = EINVAL; return -1;}
4330 #endif /* ndef _SC_2_PBS */
4331         if (x == Mono_Posix_SysconfName__SC_2_PBS_ACCOUNTING)
4332 #ifdef _SC_2_PBS_ACCOUNTING
4333                 {*r = _SC_2_PBS_ACCOUNTING; return 0;}
4334 #else /* def _SC_2_PBS_ACCOUNTING */
4335                 {errno = EINVAL; return -1;}
4336 #endif /* ndef _SC_2_PBS_ACCOUNTING */
4337         if (x == Mono_Posix_SysconfName__SC_2_PBS_CHECKPOINT)
4338 #ifdef _SC_2_PBS_CHECKPOINT
4339                 {*r = _SC_2_PBS_CHECKPOINT; return 0;}
4340 #else /* def _SC_2_PBS_CHECKPOINT */
4341                 {errno = EINVAL; return -1;}
4342 #endif /* ndef _SC_2_PBS_CHECKPOINT */
4343         if (x == Mono_Posix_SysconfName__SC_2_PBS_LOCATE)
4344 #ifdef _SC_2_PBS_LOCATE
4345                 {*r = _SC_2_PBS_LOCATE; return 0;}
4346 #else /* def _SC_2_PBS_LOCATE */
4347                 {errno = EINVAL; return -1;}
4348 #endif /* ndef _SC_2_PBS_LOCATE */
4349         if (x == Mono_Posix_SysconfName__SC_2_PBS_MESSAGE)
4350 #ifdef _SC_2_PBS_MESSAGE
4351                 {*r = _SC_2_PBS_MESSAGE; return 0;}
4352 #else /* def _SC_2_PBS_MESSAGE */
4353                 {errno = EINVAL; return -1;}
4354 #endif /* ndef _SC_2_PBS_MESSAGE */
4355         if (x == Mono_Posix_SysconfName__SC_2_PBS_TRACK)
4356 #ifdef _SC_2_PBS_TRACK
4357                 {*r = _SC_2_PBS_TRACK; return 0;}
4358 #else /* def _SC_2_PBS_TRACK */
4359                 {errno = EINVAL; return -1;}
4360 #endif /* ndef _SC_2_PBS_TRACK */
4361         if (x == Mono_Posix_SysconfName__SC_2_SW_DEV)
4362 #ifdef _SC_2_SW_DEV
4363                 {*r = _SC_2_SW_DEV; return 0;}
4364 #else /* def _SC_2_SW_DEV */
4365                 {errno = EINVAL; return -1;}
4366 #endif /* ndef _SC_2_SW_DEV */
4367         if (x == Mono_Posix_SysconfName__SC_2_UPE)
4368 #ifdef _SC_2_UPE
4369                 {*r = _SC_2_UPE; return 0;}
4370 #else /* def _SC_2_UPE */
4371                 {errno = EINVAL; return -1;}
4372 #endif /* ndef _SC_2_UPE */
4373         if (x == Mono_Posix_SysconfName__SC_2_VERSION)
4374 #ifdef _SC_2_VERSION
4375                 {*r = _SC_2_VERSION; return 0;}
4376 #else /* def _SC_2_VERSION */
4377                 {errno = EINVAL; return -1;}
4378 #endif /* ndef _SC_2_VERSION */
4379         if (x == Mono_Posix_SysconfName__SC_ADVISORY_INFO)
4380 #ifdef _SC_ADVISORY_INFO
4381                 {*r = _SC_ADVISORY_INFO; return 0;}
4382 #else /* def _SC_ADVISORY_INFO */
4383                 {errno = EINVAL; return -1;}
4384 #endif /* ndef _SC_ADVISORY_INFO */
4385         if (x == Mono_Posix_SysconfName__SC_AIO_LISTIO_MAX)
4386 #ifdef _SC_AIO_LISTIO_MAX
4387                 {*r = _SC_AIO_LISTIO_MAX; return 0;}
4388 #else /* def _SC_AIO_LISTIO_MAX */
4389                 {errno = EINVAL; return -1;}
4390 #endif /* ndef _SC_AIO_LISTIO_MAX */
4391         if (x == Mono_Posix_SysconfName__SC_AIO_MAX)
4392 #ifdef _SC_AIO_MAX
4393                 {*r = _SC_AIO_MAX; return 0;}
4394 #else /* def _SC_AIO_MAX */
4395                 {errno = EINVAL; return -1;}
4396 #endif /* ndef _SC_AIO_MAX */
4397         if (x == Mono_Posix_SysconfName__SC_AIO_PRIO_DELTA_MAX)
4398 #ifdef _SC_AIO_PRIO_DELTA_MAX
4399                 {*r = _SC_AIO_PRIO_DELTA_MAX; return 0;}
4400 #else /* def _SC_AIO_PRIO_DELTA_MAX */
4401                 {errno = EINVAL; return -1;}
4402 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
4403         if (x == Mono_Posix_SysconfName__SC_ARG_MAX)
4404 #ifdef _SC_ARG_MAX
4405                 {*r = _SC_ARG_MAX; return 0;}
4406 #else /* def _SC_ARG_MAX */
4407                 {errno = EINVAL; return -1;}
4408 #endif /* ndef _SC_ARG_MAX */
4409         if (x == Mono_Posix_SysconfName__SC_ASYNCHRONOUS_IO)
4410 #ifdef _SC_ASYNCHRONOUS_IO
4411                 {*r = _SC_ASYNCHRONOUS_IO; return 0;}
4412 #else /* def _SC_ASYNCHRONOUS_IO */
4413                 {errno = EINVAL; return -1;}
4414 #endif /* ndef _SC_ASYNCHRONOUS_IO */
4415         if (x == Mono_Posix_SysconfName__SC_ATEXIT_MAX)
4416 #ifdef _SC_ATEXIT_MAX
4417                 {*r = _SC_ATEXIT_MAX; return 0;}
4418 #else /* def _SC_ATEXIT_MAX */
4419                 {errno = EINVAL; return -1;}
4420 #endif /* ndef _SC_ATEXIT_MAX */
4421         if (x == Mono_Posix_SysconfName__SC_AVPHYS_PAGES)
4422 #ifdef _SC_AVPHYS_PAGES
4423                 {*r = _SC_AVPHYS_PAGES; return 0;}
4424 #else /* def _SC_AVPHYS_PAGES */
4425                 {errno = EINVAL; return -1;}
4426 #endif /* ndef _SC_AVPHYS_PAGES */
4427         if (x == Mono_Posix_SysconfName__SC_BARRIERS)
4428 #ifdef _SC_BARRIERS
4429                 {*r = _SC_BARRIERS; return 0;}
4430 #else /* def _SC_BARRIERS */
4431                 {errno = EINVAL; return -1;}
4432 #endif /* ndef _SC_BARRIERS */
4433         if (x == Mono_Posix_SysconfName__SC_BASE)
4434 #ifdef _SC_BASE
4435                 {*r = _SC_BASE; return 0;}
4436 #else /* def _SC_BASE */
4437                 {errno = EINVAL; return -1;}
4438 #endif /* ndef _SC_BASE */
4439         if (x == Mono_Posix_SysconfName__SC_BC_BASE_MAX)
4440 #ifdef _SC_BC_BASE_MAX
4441                 {*r = _SC_BC_BASE_MAX; return 0;}
4442 #else /* def _SC_BC_BASE_MAX */
4443                 {errno = EINVAL; return -1;}
4444 #endif /* ndef _SC_BC_BASE_MAX */
4445         if (x == Mono_Posix_SysconfName__SC_BC_DIM_MAX)
4446 #ifdef _SC_BC_DIM_MAX
4447                 {*r = _SC_BC_DIM_MAX; return 0;}
4448 #else /* def _SC_BC_DIM_MAX */
4449                 {errno = EINVAL; return -1;}
4450 #endif /* ndef _SC_BC_DIM_MAX */
4451         if (x == Mono_Posix_SysconfName__SC_BC_SCALE_MAX)
4452 #ifdef _SC_BC_SCALE_MAX
4453                 {*r = _SC_BC_SCALE_MAX; return 0;}
4454 #else /* def _SC_BC_SCALE_MAX */
4455                 {errno = EINVAL; return -1;}
4456 #endif /* ndef _SC_BC_SCALE_MAX */
4457         if (x == Mono_Posix_SysconfName__SC_BC_STRING_MAX)
4458 #ifdef _SC_BC_STRING_MAX
4459                 {*r = _SC_BC_STRING_MAX; return 0;}
4460 #else /* def _SC_BC_STRING_MAX */
4461                 {errno = EINVAL; return -1;}
4462 #endif /* ndef _SC_BC_STRING_MAX */
4463         if (x == Mono_Posix_SysconfName__SC_CHARCLASS_NAME_MAX)
4464 #ifdef _SC_CHARCLASS_NAME_MAX
4465                 {*r = _SC_CHARCLASS_NAME_MAX; return 0;}
4466 #else /* def _SC_CHARCLASS_NAME_MAX */
4467                 {errno = EINVAL; return -1;}
4468 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
4469         if (x == Mono_Posix_SysconfName__SC_CHAR_BIT)
4470 #ifdef _SC_CHAR_BIT
4471                 {*r = _SC_CHAR_BIT; return 0;}
4472 #else /* def _SC_CHAR_BIT */
4473                 {errno = EINVAL; return -1;}
4474 #endif /* ndef _SC_CHAR_BIT */
4475         if (x == Mono_Posix_SysconfName__SC_CHAR_MAX)
4476 #ifdef _SC_CHAR_MAX
4477                 {*r = _SC_CHAR_MAX; return 0;}
4478 #else /* def _SC_CHAR_MAX */
4479                 {errno = EINVAL; return -1;}
4480 #endif /* ndef _SC_CHAR_MAX */
4481         if (x == Mono_Posix_SysconfName__SC_CHAR_MIN)
4482 #ifdef _SC_CHAR_MIN
4483                 {*r = _SC_CHAR_MIN; return 0;}
4484 #else /* def _SC_CHAR_MIN */
4485                 {errno = EINVAL; return -1;}
4486 #endif /* ndef _SC_CHAR_MIN */
4487         if (x == Mono_Posix_SysconfName__SC_CHILD_MAX)
4488 #ifdef _SC_CHILD_MAX
4489                 {*r = _SC_CHILD_MAX; return 0;}
4490 #else /* def _SC_CHILD_MAX */
4491                 {errno = EINVAL; return -1;}
4492 #endif /* ndef _SC_CHILD_MAX */
4493         if (x == Mono_Posix_SysconfName__SC_CLK_TCK)
4494 #ifdef _SC_CLK_TCK
4495                 {*r = _SC_CLK_TCK; return 0;}
4496 #else /* def _SC_CLK_TCK */
4497                 {errno = EINVAL; return -1;}
4498 #endif /* ndef _SC_CLK_TCK */
4499         if (x == Mono_Posix_SysconfName__SC_CLOCK_SELECTION)
4500 #ifdef _SC_CLOCK_SELECTION
4501                 {*r = _SC_CLOCK_SELECTION; return 0;}
4502 #else /* def _SC_CLOCK_SELECTION */
4503                 {errno = EINVAL; return -1;}
4504 #endif /* ndef _SC_CLOCK_SELECTION */
4505         if (x == Mono_Posix_SysconfName__SC_COLL_WEIGHTS_MAX)
4506 #ifdef _SC_COLL_WEIGHTS_MAX
4507                 {*r = _SC_COLL_WEIGHTS_MAX; return 0;}
4508 #else /* def _SC_COLL_WEIGHTS_MAX */
4509                 {errno = EINVAL; return -1;}
4510 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
4511         if (x == Mono_Posix_SysconfName__SC_CPUTIME)
4512 #ifdef _SC_CPUTIME
4513                 {*r = _SC_CPUTIME; return 0;}
4514 #else /* def _SC_CPUTIME */
4515                 {errno = EINVAL; return -1;}
4516 #endif /* ndef _SC_CPUTIME */
4517         if (x == Mono_Posix_SysconfName__SC_C_LANG_SUPPORT)
4518 #ifdef _SC_C_LANG_SUPPORT
4519                 {*r = _SC_C_LANG_SUPPORT; return 0;}
4520 #else /* def _SC_C_LANG_SUPPORT */
4521                 {errno = EINVAL; return -1;}
4522 #endif /* ndef _SC_C_LANG_SUPPORT */
4523         if (x == Mono_Posix_SysconfName__SC_C_LANG_SUPPORT_R)
4524 #ifdef _SC_C_LANG_SUPPORT_R
4525                 {*r = _SC_C_LANG_SUPPORT_R; return 0;}
4526 #else /* def _SC_C_LANG_SUPPORT_R */
4527                 {errno = EINVAL; return -1;}
4528 #endif /* ndef _SC_C_LANG_SUPPORT_R */
4529         if (x == Mono_Posix_SysconfName__SC_DELAYTIMER_MAX)
4530 #ifdef _SC_DELAYTIMER_MAX
4531                 {*r = _SC_DELAYTIMER_MAX; return 0;}
4532 #else /* def _SC_DELAYTIMER_MAX */
4533                 {errno = EINVAL; return -1;}
4534 #endif /* ndef _SC_DELAYTIMER_MAX */
4535         if (x == Mono_Posix_SysconfName__SC_DEVICE_IO)
4536 #ifdef _SC_DEVICE_IO
4537                 {*r = _SC_DEVICE_IO; return 0;}
4538 #else /* def _SC_DEVICE_IO */
4539                 {errno = EINVAL; return -1;}
4540 #endif /* ndef _SC_DEVICE_IO */
4541         if (x == Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC)
4542 #ifdef _SC_DEVICE_SPECIFIC
4543                 {*r = _SC_DEVICE_SPECIFIC; return 0;}
4544 #else /* def _SC_DEVICE_SPECIFIC */
4545                 {errno = EINVAL; return -1;}
4546 #endif /* ndef _SC_DEVICE_SPECIFIC */
4547         if (x == Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC_R)
4548 #ifdef _SC_DEVICE_SPECIFIC_R
4549                 {*r = _SC_DEVICE_SPECIFIC_R; return 0;}
4550 #else /* def _SC_DEVICE_SPECIFIC_R */
4551                 {errno = EINVAL; return -1;}
4552 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
4553         if (x == Mono_Posix_SysconfName__SC_EQUIV_CLASS_MAX)
4554 #ifdef _SC_EQUIV_CLASS_MAX
4555                 {*r = _SC_EQUIV_CLASS_MAX; return 0;}
4556 #else /* def _SC_EQUIV_CLASS_MAX */
4557                 {errno = EINVAL; return -1;}
4558 #endif /* ndef _SC_EQUIV_CLASS_MAX */
4559         if (x == Mono_Posix_SysconfName__SC_EXPR_NEST_MAX)
4560 #ifdef _SC_EXPR_NEST_MAX
4561                 {*r = _SC_EXPR_NEST_MAX; return 0;}
4562 #else /* def _SC_EXPR_NEST_MAX */
4563                 {errno = EINVAL; return -1;}
4564 #endif /* ndef _SC_EXPR_NEST_MAX */
4565         if (x == Mono_Posix_SysconfName__SC_FD_MGMT)
4566 #ifdef _SC_FD_MGMT
4567                 {*r = _SC_FD_MGMT; return 0;}
4568 #else /* def _SC_FD_MGMT */
4569                 {errno = EINVAL; return -1;}
4570 #endif /* ndef _SC_FD_MGMT */
4571         if (x == Mono_Posix_SysconfName__SC_FIFO)
4572 #ifdef _SC_FIFO
4573                 {*r = _SC_FIFO; return 0;}
4574 #else /* def _SC_FIFO */
4575                 {errno = EINVAL; return -1;}
4576 #endif /* ndef _SC_FIFO */
4577         if (x == Mono_Posix_SysconfName__SC_FILE_ATTRIBUTES)
4578 #ifdef _SC_FILE_ATTRIBUTES
4579                 {*r = _SC_FILE_ATTRIBUTES; return 0;}
4580 #else /* def _SC_FILE_ATTRIBUTES */
4581                 {errno = EINVAL; return -1;}
4582 #endif /* ndef _SC_FILE_ATTRIBUTES */
4583         if (x == Mono_Posix_SysconfName__SC_FILE_LOCKING)
4584 #ifdef _SC_FILE_LOCKING
4585                 {*r = _SC_FILE_LOCKING; return 0;}
4586 #else /* def _SC_FILE_LOCKING */
4587                 {errno = EINVAL; return -1;}
4588 #endif /* ndef _SC_FILE_LOCKING */
4589         if (x == Mono_Posix_SysconfName__SC_FILE_SYSTEM)
4590 #ifdef _SC_FILE_SYSTEM
4591                 {*r = _SC_FILE_SYSTEM; return 0;}
4592 #else /* def _SC_FILE_SYSTEM */
4593                 {errno = EINVAL; return -1;}
4594 #endif /* ndef _SC_FILE_SYSTEM */
4595         if (x == Mono_Posix_SysconfName__SC_FSYNC)
4596 #ifdef _SC_FSYNC
4597                 {*r = _SC_FSYNC; return 0;}
4598 #else /* def _SC_FSYNC */
4599                 {errno = EINVAL; return -1;}
4600 #endif /* ndef _SC_FSYNC */
4601         if (x == Mono_Posix_SysconfName__SC_GETGR_R_SIZE_MAX)
4602 #ifdef _SC_GETGR_R_SIZE_MAX
4603                 {*r = _SC_GETGR_R_SIZE_MAX; return 0;}
4604 #else /* def _SC_GETGR_R_SIZE_MAX */
4605                 {errno = EINVAL; return -1;}
4606 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
4607         if (x == Mono_Posix_SysconfName__SC_GETPW_R_SIZE_MAX)
4608 #ifdef _SC_GETPW_R_SIZE_MAX
4609                 {*r = _SC_GETPW_R_SIZE_MAX; return 0;}
4610 #else /* def _SC_GETPW_R_SIZE_MAX */
4611                 {errno = EINVAL; return -1;}
4612 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
4613         if (x == Mono_Posix_SysconfName__SC_HOST_NAME_MAX)
4614 #ifdef _SC_HOST_NAME_MAX
4615                 {*r = _SC_HOST_NAME_MAX; return 0;}
4616 #else /* def _SC_HOST_NAME_MAX */
4617                 {errno = EINVAL; return -1;}
4618 #endif /* ndef _SC_HOST_NAME_MAX */
4619         if (x == Mono_Posix_SysconfName__SC_INT_MAX)
4620 #ifdef _SC_INT_MAX
4621                 {*r = _SC_INT_MAX; return 0;}
4622 #else /* def _SC_INT_MAX */
4623                 {errno = EINVAL; return -1;}
4624 #endif /* ndef _SC_INT_MAX */
4625         if (x == Mono_Posix_SysconfName__SC_INT_MIN)
4626 #ifdef _SC_INT_MIN
4627                 {*r = _SC_INT_MIN; return 0;}
4628 #else /* def _SC_INT_MIN */
4629                 {errno = EINVAL; return -1;}
4630 #endif /* ndef _SC_INT_MIN */
4631         if (x == Mono_Posix_SysconfName__SC_IOV_MAX)
4632 #ifdef _SC_IOV_MAX
4633                 {*r = _SC_IOV_MAX; return 0;}
4634 #else /* def _SC_IOV_MAX */
4635                 {errno = EINVAL; return -1;}
4636 #endif /* ndef _SC_IOV_MAX */
4637         if (x == Mono_Posix_SysconfName__SC_JOB_CONTROL)
4638 #ifdef _SC_JOB_CONTROL
4639                 {*r = _SC_JOB_CONTROL; return 0;}
4640 #else /* def _SC_JOB_CONTROL */
4641                 {errno = EINVAL; return -1;}
4642 #endif /* ndef _SC_JOB_CONTROL */
4643         if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_ASSOC)
4644 #ifdef _SC_LEVEL1_DCACHE_ASSOC
4645                 {*r = _SC_LEVEL1_DCACHE_ASSOC; return 0;}
4646 #else /* def _SC_LEVEL1_DCACHE_ASSOC */
4647                 {errno = EINVAL; return -1;}
4648 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
4649         if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_LINESIZE)
4650 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
4651                 {*r = _SC_LEVEL1_DCACHE_LINESIZE; return 0;}
4652 #else /* def _SC_LEVEL1_DCACHE_LINESIZE */
4653                 {errno = EINVAL; return -1;}
4654 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
4655         if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_SIZE)
4656 #ifdef _SC_LEVEL1_DCACHE_SIZE
4657                 {*r = _SC_LEVEL1_DCACHE_SIZE; return 0;}
4658 #else /* def _SC_LEVEL1_DCACHE_SIZE */
4659                 {errno = EINVAL; return -1;}
4660 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
4661         if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_ASSOC)
4662 #ifdef _SC_LEVEL1_ICACHE_ASSOC
4663                 {*r = _SC_LEVEL1_ICACHE_ASSOC; return 0;}
4664 #else /* def _SC_LEVEL1_ICACHE_ASSOC */
4665                 {errno = EINVAL; return -1;}
4666 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
4667         if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_LINESIZE)
4668 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
4669                 {*r = _SC_LEVEL1_ICACHE_LINESIZE; return 0;}
4670 #else /* def _SC_LEVEL1_ICACHE_LINESIZE */
4671                 {errno = EINVAL; return -1;}
4672 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
4673         if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_SIZE)
4674 #ifdef _SC_LEVEL1_ICACHE_SIZE
4675                 {*r = _SC_LEVEL1_ICACHE_SIZE; return 0;}
4676 #else /* def _SC_LEVEL1_ICACHE_SIZE */
4677                 {errno = EINVAL; return -1;}
4678 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
4679         if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_ASSOC)
4680 #ifdef _SC_LEVEL2_CACHE_ASSOC
4681                 {*r = _SC_LEVEL2_CACHE_ASSOC; return 0;}
4682 #else /* def _SC_LEVEL2_CACHE_ASSOC */
4683                 {errno = EINVAL; return -1;}
4684 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
4685         if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_LINESIZE)
4686 #ifdef _SC_LEVEL2_CACHE_LINESIZE
4687                 {*r = _SC_LEVEL2_CACHE_LINESIZE; return 0;}
4688 #else /* def _SC_LEVEL2_CACHE_LINESIZE */
4689                 {errno = EINVAL; return -1;}
4690 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
4691         if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_SIZE)
4692 #ifdef _SC_LEVEL2_CACHE_SIZE
4693                 {*r = _SC_LEVEL2_CACHE_SIZE; return 0;}
4694 #else /* def _SC_LEVEL2_CACHE_SIZE */
4695                 {errno = EINVAL; return -1;}
4696 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
4697         if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_ASSOC)
4698 #ifdef _SC_LEVEL3_CACHE_ASSOC
4699                 {*r = _SC_LEVEL3_CACHE_ASSOC; return 0;}
4700 #else /* def _SC_LEVEL3_CACHE_ASSOC */
4701                 {errno = EINVAL; return -1;}
4702 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
4703         if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_LINESIZE)
4704 #ifdef _SC_LEVEL3_CACHE_LINESIZE
4705                 {*r = _SC_LEVEL3_CACHE_LINESIZE; return 0;}
4706 #else /* def _SC_LEVEL3_CACHE_LINESIZE */
4707                 {errno = EINVAL; return -1;}
4708 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
4709         if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_SIZE)
4710 #ifdef _SC_LEVEL3_CACHE_SIZE
4711                 {*r = _SC_LEVEL3_CACHE_SIZE; return 0;}
4712 #else /* def _SC_LEVEL3_CACHE_SIZE */
4713                 {errno = EINVAL; return -1;}
4714 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
4715         if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_ASSOC)
4716 #ifdef _SC_LEVEL4_CACHE_ASSOC
4717                 {*r = _SC_LEVEL4_CACHE_ASSOC; return 0;}
4718 #else /* def _SC_LEVEL4_CACHE_ASSOC */
4719                 {errno = EINVAL; return -1;}
4720 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
4721         if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_LINESIZE)
4722 #ifdef _SC_LEVEL4_CACHE_LINESIZE
4723                 {*r = _SC_LEVEL4_CACHE_LINESIZE; return 0;}
4724 #else /* def _SC_LEVEL4_CACHE_LINESIZE */
4725                 {errno = EINVAL; return -1;}
4726 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
4727         if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_SIZE)
4728 #ifdef _SC_LEVEL4_CACHE_SIZE
4729                 {*r = _SC_LEVEL4_CACHE_SIZE; return 0;}
4730 #else /* def _SC_LEVEL4_CACHE_SIZE */
4731                 {errno = EINVAL; return -1;}
4732 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
4733         if (x == Mono_Posix_SysconfName__SC_LINE_MAX)
4734 #ifdef _SC_LINE_MAX
4735                 {*r = _SC_LINE_MAX; return 0;}
4736 #else /* def _SC_LINE_MAX */
4737                 {errno = EINVAL; return -1;}
4738 #endif /* ndef _SC_LINE_MAX */
4739         if (x == Mono_Posix_SysconfName__SC_LOGIN_NAME_MAX)
4740 #ifdef _SC_LOGIN_NAME_MAX
4741                 {*r = _SC_LOGIN_NAME_MAX; return 0;}
4742 #else /* def _SC_LOGIN_NAME_MAX */
4743                 {errno = EINVAL; return -1;}
4744 #endif /* ndef _SC_LOGIN_NAME_MAX */
4745         if (x == Mono_Posix_SysconfName__SC_LONG_BIT)
4746 #ifdef _SC_LONG_BIT
4747                 {*r = _SC_LONG_BIT; return 0;}
4748 #else /* def _SC_LONG_BIT */
4749                 {errno = EINVAL; return -1;}
4750 #endif /* ndef _SC_LONG_BIT */
4751         if (x == Mono_Posix_SysconfName__SC_MAPPED_FILES)
4752 #ifdef _SC_MAPPED_FILES
4753                 {*r = _SC_MAPPED_FILES; return 0;}
4754 #else /* def _SC_MAPPED_FILES */
4755                 {errno = EINVAL; return -1;}
4756 #endif /* ndef _SC_MAPPED_FILES */
4757         if (x == Mono_Posix_SysconfName__SC_MB_LEN_MAX)
4758 #ifdef _SC_MB_LEN_MAX
4759                 {*r = _SC_MB_LEN_MAX; return 0;}
4760 #else /* def _SC_MB_LEN_MAX */
4761                 {errno = EINVAL; return -1;}
4762 #endif /* ndef _SC_MB_LEN_MAX */
4763         if (x == Mono_Posix_SysconfName__SC_MEMLOCK)
4764 #ifdef _SC_MEMLOCK
4765                 {*r = _SC_MEMLOCK; return 0;}
4766 #else /* def _SC_MEMLOCK */
4767                 {errno = EINVAL; return -1;}
4768 #endif /* ndef _SC_MEMLOCK */
4769         if (x == Mono_Posix_SysconfName__SC_MEMLOCK_RANGE)
4770 #ifdef _SC_MEMLOCK_RANGE
4771                 {*r = _SC_MEMLOCK_RANGE; return 0;}
4772 #else /* def _SC_MEMLOCK_RANGE */
4773                 {errno = EINVAL; return -1;}
4774 #endif /* ndef _SC_MEMLOCK_RANGE */
4775         if (x == Mono_Posix_SysconfName__SC_MEMORY_PROTECTION)
4776 #ifdef _SC_MEMORY_PROTECTION
4777                 {*r = _SC_MEMORY_PROTECTION; return 0;}
4778 #else /* def _SC_MEMORY_PROTECTION */
4779                 {errno = EINVAL; return -1;}
4780 #endif /* ndef _SC_MEMORY_PROTECTION */
4781         if (x == Mono_Posix_SysconfName__SC_MESSAGE_PASSING)
4782 #ifdef _SC_MESSAGE_PASSING
4783                 {*r = _SC_MESSAGE_PASSING; return 0;}
4784 #else /* def _SC_MESSAGE_PASSING */
4785                 {errno = EINVAL; return -1;}
4786 #endif /* ndef _SC_MESSAGE_PASSING */
4787         if (x == Mono_Posix_SysconfName__SC_MONOTONIC_CLOCK)
4788 #ifdef _SC_MONOTONIC_CLOCK
4789                 {*r = _SC_MONOTONIC_CLOCK; return 0;}
4790 #else /* def _SC_MONOTONIC_CLOCK */
4791                 {errno = EINVAL; return -1;}
4792 #endif /* ndef _SC_MONOTONIC_CLOCK */
4793         if (x == Mono_Posix_SysconfName__SC_MQ_OPEN_MAX)
4794 #ifdef _SC_MQ_OPEN_MAX
4795                 {*r = _SC_MQ_OPEN_MAX; return 0;}
4796 #else /* def _SC_MQ_OPEN_MAX */
4797                 {errno = EINVAL; return -1;}
4798 #endif /* ndef _SC_MQ_OPEN_MAX */
4799         if (x == Mono_Posix_SysconfName__SC_MQ_PRIO_MAX)
4800 #ifdef _SC_MQ_PRIO_MAX
4801                 {*r = _SC_MQ_PRIO_MAX; return 0;}
4802 #else /* def _SC_MQ_PRIO_MAX */
4803                 {errno = EINVAL; return -1;}
4804 #endif /* ndef _SC_MQ_PRIO_MAX */
4805         if (x == Mono_Posix_SysconfName__SC_MULTI_PROCESS)
4806 #ifdef _SC_MULTI_PROCESS
4807                 {*r = _SC_MULTI_PROCESS; return 0;}
4808 #else /* def _SC_MULTI_PROCESS */
4809                 {errno = EINVAL; return -1;}
4810 #endif /* ndef _SC_MULTI_PROCESS */
4811         if (x == Mono_Posix_SysconfName__SC_NETWORKING)
4812 #ifdef _SC_NETWORKING
4813                 {*r = _SC_NETWORKING; return 0;}
4814 #else /* def _SC_NETWORKING */
4815                 {errno = EINVAL; return -1;}
4816 #endif /* ndef _SC_NETWORKING */
4817         if (x == Mono_Posix_SysconfName__SC_NGROUPS_MAX)
4818 #ifdef _SC_NGROUPS_MAX
4819                 {*r = _SC_NGROUPS_MAX; return 0;}
4820 #else /* def _SC_NGROUPS_MAX */
4821                 {errno = EINVAL; return -1;}
4822 #endif /* ndef _SC_NGROUPS_MAX */
4823         if (x == Mono_Posix_SysconfName__SC_NL_ARGMAX)
4824 #ifdef _SC_NL_ARGMAX
4825                 {*r = _SC_NL_ARGMAX; return 0;}
4826 #else /* def _SC_NL_ARGMAX */
4827                 {errno = EINVAL; return -1;}
4828 #endif /* ndef _SC_NL_ARGMAX */
4829         if (x == Mono_Posix_SysconfName__SC_NL_LANGMAX)
4830 #ifdef _SC_NL_LANGMAX
4831                 {*r = _SC_NL_LANGMAX; return 0;}
4832 #else /* def _SC_NL_LANGMAX */
4833                 {errno = EINVAL; return -1;}
4834 #endif /* ndef _SC_NL_LANGMAX */
4835         if (x == Mono_Posix_SysconfName__SC_NL_MSGMAX)
4836 #ifdef _SC_NL_MSGMAX
4837                 {*r = _SC_NL_MSGMAX; return 0;}
4838 #else /* def _SC_NL_MSGMAX */
4839                 {errno = EINVAL; return -1;}
4840 #endif /* ndef _SC_NL_MSGMAX */
4841         if (x == Mono_Posix_SysconfName__SC_NL_NMAX)
4842 #ifdef _SC_NL_NMAX
4843                 {*r = _SC_NL_NMAX; return 0;}
4844 #else /* def _SC_NL_NMAX */
4845                 {errno = EINVAL; return -1;}
4846 #endif /* ndef _SC_NL_NMAX */
4847         if (x == Mono_Posix_SysconfName__SC_NL_SETMAX)
4848 #ifdef _SC_NL_SETMAX
4849                 {*r = _SC_NL_SETMAX; return 0;}
4850 #else /* def _SC_NL_SETMAX */
4851                 {errno = EINVAL; return -1;}
4852 #endif /* ndef _SC_NL_SETMAX */
4853         if (x == Mono_Posix_SysconfName__SC_NL_TEXTMAX)
4854 #ifdef _SC_NL_TEXTMAX
4855                 {*r = _SC_NL_TEXTMAX; return 0;}
4856 #else /* def _SC_NL_TEXTMAX */
4857                 {errno = EINVAL; return -1;}
4858 #endif /* ndef _SC_NL_TEXTMAX */
4859         if (x == Mono_Posix_SysconfName__SC_NPROCESSORS_CONF)
4860 #ifdef _SC_NPROCESSORS_CONF
4861                 {*r = _SC_NPROCESSORS_CONF; return 0;}
4862 #else /* def _SC_NPROCESSORS_CONF */
4863                 {errno = EINVAL; return -1;}
4864 #endif /* ndef _SC_NPROCESSORS_CONF */
4865         if (x == Mono_Posix_SysconfName__SC_NPROCESSORS_ONLN)
4866 #ifdef _SC_NPROCESSORS_ONLN
4867                 {*r = _SC_NPROCESSORS_ONLN; return 0;}
4868 #else /* def _SC_NPROCESSORS_ONLN */
4869                 {errno = EINVAL; return -1;}
4870 #endif /* ndef _SC_NPROCESSORS_ONLN */
4871         if (x == Mono_Posix_SysconfName__SC_NZERO)
4872 #ifdef _SC_NZERO
4873                 {*r = _SC_NZERO; return 0;}
4874 #else /* def _SC_NZERO */
4875                 {errno = EINVAL; return -1;}
4876 #endif /* ndef _SC_NZERO */
4877         if (x == Mono_Posix_SysconfName__SC_OPEN_MAX)
4878 #ifdef _SC_OPEN_MAX
4879                 {*r = _SC_OPEN_MAX; return 0;}
4880 #else /* def _SC_OPEN_MAX */
4881                 {errno = EINVAL; return -1;}
4882 #endif /* ndef _SC_OPEN_MAX */
4883         if (x == Mono_Posix_SysconfName__SC_PAGESIZE)
4884 #ifdef _SC_PAGESIZE
4885                 {*r = _SC_PAGESIZE; return 0;}
4886 #else /* def _SC_PAGESIZE */
4887                 {errno = EINVAL; return -1;}
4888 #endif /* ndef _SC_PAGESIZE */
4889         if (x == Mono_Posix_SysconfName__SC_PASS_MAX)
4890 #ifdef _SC_PASS_MAX
4891                 {*r = _SC_PASS_MAX; return 0;}
4892 #else /* def _SC_PASS_MAX */
4893                 {errno = EINVAL; return -1;}
4894 #endif /* ndef _SC_PASS_MAX */
4895         if (x == Mono_Posix_SysconfName__SC_PHYS_PAGES)
4896 #ifdef _SC_PHYS_PAGES
4897                 {*r = _SC_PHYS_PAGES; return 0;}
4898 #else /* def _SC_PHYS_PAGES */
4899                 {errno = EINVAL; return -1;}
4900 #endif /* ndef _SC_PHYS_PAGES */
4901         if (x == Mono_Posix_SysconfName__SC_PII)
4902 #ifdef _SC_PII
4903                 {*r = _SC_PII; return 0;}
4904 #else /* def _SC_PII */
4905                 {errno = EINVAL; return -1;}
4906 #endif /* ndef _SC_PII */
4907         if (x == Mono_Posix_SysconfName__SC_PII_INTERNET)
4908 #ifdef _SC_PII_INTERNET
4909                 {*r = _SC_PII_INTERNET; return 0;}
4910 #else /* def _SC_PII_INTERNET */
4911                 {errno = EINVAL; return -1;}
4912 #endif /* ndef _SC_PII_INTERNET */
4913         if (x == Mono_Posix_SysconfName__SC_PII_INTERNET_DGRAM)
4914 #ifdef _SC_PII_INTERNET_DGRAM
4915                 {*r = _SC_PII_INTERNET_DGRAM; return 0;}
4916 #else /* def _SC_PII_INTERNET_DGRAM */
4917                 {errno = EINVAL; return -1;}
4918 #endif /* ndef _SC_PII_INTERNET_DGRAM */
4919         if (x == Mono_Posix_SysconfName__SC_PII_INTERNET_STREAM)
4920 #ifdef _SC_PII_INTERNET_STREAM
4921                 {*r = _SC_PII_INTERNET_STREAM; return 0;}
4922 #else /* def _SC_PII_INTERNET_STREAM */
4923                 {errno = EINVAL; return -1;}
4924 #endif /* ndef _SC_PII_INTERNET_STREAM */
4925         if (x == Mono_Posix_SysconfName__SC_PII_OSI)
4926 #ifdef _SC_PII_OSI
4927                 {*r = _SC_PII_OSI; return 0;}
4928 #else /* def _SC_PII_OSI */
4929                 {errno = EINVAL; return -1;}
4930 #endif /* ndef _SC_PII_OSI */
4931         if (x == Mono_Posix_SysconfName__SC_PII_OSI_CLTS)
4932 #ifdef _SC_PII_OSI_CLTS
4933                 {*r = _SC_PII_OSI_CLTS; return 0;}
4934 #else /* def _SC_PII_OSI_CLTS */
4935                 {errno = EINVAL; return -1;}
4936 #endif /* ndef _SC_PII_OSI_CLTS */
4937         if (x == Mono_Posix_SysconfName__SC_PII_OSI_COTS)
4938 #ifdef _SC_PII_OSI_COTS
4939                 {*r = _SC_PII_OSI_COTS; return 0;}
4940 #else /* def _SC_PII_OSI_COTS */
4941                 {errno = EINVAL; return -1;}
4942 #endif /* ndef _SC_PII_OSI_COTS */
4943         if (x == Mono_Posix_SysconfName__SC_PII_OSI_M)
4944 #ifdef _SC_PII_OSI_M
4945                 {*r = _SC_PII_OSI_M; return 0;}
4946 #else /* def _SC_PII_OSI_M */
4947                 {errno = EINVAL; return -1;}
4948 #endif /* ndef _SC_PII_OSI_M */
4949         if (x == Mono_Posix_SysconfName__SC_PII_SOCKET)
4950 #ifdef _SC_PII_SOCKET
4951                 {*r = _SC_PII_SOCKET; return 0;}
4952 #else /* def _SC_PII_SOCKET */
4953                 {errno = EINVAL; return -1;}
4954 #endif /* ndef _SC_PII_SOCKET */
4955         if (x == Mono_Posix_SysconfName__SC_PII_XTI)
4956 #ifdef _SC_PII_XTI
4957                 {*r = _SC_PII_XTI; return 0;}
4958 #else /* def _SC_PII_XTI */
4959                 {errno = EINVAL; return -1;}
4960 #endif /* ndef _SC_PII_XTI */
4961         if (x == Mono_Posix_SysconfName__SC_PIPE)
4962 #ifdef _SC_PIPE
4963                 {*r = _SC_PIPE; return 0;}
4964 #else /* def _SC_PIPE */
4965                 {errno = EINVAL; return -1;}
4966 #endif /* ndef _SC_PIPE */
4967         if (x == Mono_Posix_SysconfName__SC_POLL)
4968 #ifdef _SC_POLL
4969                 {*r = _SC_POLL; return 0;}
4970 #else /* def _SC_POLL */
4971                 {errno = EINVAL; return -1;}
4972 #endif /* ndef _SC_POLL */
4973         if (x == Mono_Posix_SysconfName__SC_PRIORITIZED_IO)
4974 #ifdef _SC_PRIORITIZED_IO
4975                 {*r = _SC_PRIORITIZED_IO; return 0;}
4976 #else /* def _SC_PRIORITIZED_IO */
4977                 {errno = EINVAL; return -1;}
4978 #endif /* ndef _SC_PRIORITIZED_IO */
4979         if (x == Mono_Posix_SysconfName__SC_PRIORITY_SCHEDULING)
4980 #ifdef _SC_PRIORITY_SCHEDULING
4981                 {*r = _SC_PRIORITY_SCHEDULING; return 0;}
4982 #else /* def _SC_PRIORITY_SCHEDULING */
4983                 {errno = EINVAL; return -1;}
4984 #endif /* ndef _SC_PRIORITY_SCHEDULING */
4985         if (x == Mono_Posix_SysconfName__SC_READER_WRITER_LOCKS)
4986 #ifdef _SC_READER_WRITER_LOCKS
4987                 {*r = _SC_READER_WRITER_LOCKS; return 0;}
4988 #else /* def _SC_READER_WRITER_LOCKS */
4989                 {errno = EINVAL; return -1;}
4990 #endif /* ndef _SC_READER_WRITER_LOCKS */
4991         if (x == Mono_Posix_SysconfName__SC_REALTIME_SIGNALS)
4992 #ifdef _SC_REALTIME_SIGNALS
4993                 {*r = _SC_REALTIME_SIGNALS; return 0;}
4994 #else /* def _SC_REALTIME_SIGNALS */
4995                 {errno = EINVAL; return -1;}
4996 #endif /* ndef _SC_REALTIME_SIGNALS */
4997         if (x == Mono_Posix_SysconfName__SC_REGEXP)
4998 #ifdef _SC_REGEXP
4999                 {*r = _SC_REGEXP; return 0;}
5000 #else /* def _SC_REGEXP */
5001                 {errno = EINVAL; return -1;}
5002 #endif /* ndef _SC_REGEXP */
5003         if (x == Mono_Posix_SysconfName__SC_REGEX_VERSION)
5004 #ifdef _SC_REGEX_VERSION
5005                 {*r = _SC_REGEX_VERSION; return 0;}
5006 #else /* def _SC_REGEX_VERSION */
5007                 {errno = EINVAL; return -1;}
5008 #endif /* ndef _SC_REGEX_VERSION */
5009         if (x == Mono_Posix_SysconfName__SC_RE_DUP_MAX)
5010 #ifdef _SC_RE_DUP_MAX
5011                 {*r = _SC_RE_DUP_MAX; return 0;}
5012 #else /* def _SC_RE_DUP_MAX */
5013                 {errno = EINVAL; return -1;}
5014 #endif /* ndef _SC_RE_DUP_MAX */
5015         if (x == Mono_Posix_SysconfName__SC_RTSIG_MAX)
5016 #ifdef _SC_RTSIG_MAX
5017                 {*r = _SC_RTSIG_MAX; return 0;}
5018 #else /* def _SC_RTSIG_MAX */
5019                 {errno = EINVAL; return -1;}
5020 #endif /* ndef _SC_RTSIG_MAX */
5021         if (x == Mono_Posix_SysconfName__SC_SAVED_IDS)
5022 #ifdef _SC_SAVED_IDS
5023                 {*r = _SC_SAVED_IDS; return 0;}
5024 #else /* def _SC_SAVED_IDS */
5025                 {errno = EINVAL; return -1;}
5026 #endif /* ndef _SC_SAVED_IDS */
5027         if (x == Mono_Posix_SysconfName__SC_SCHAR_MAX)
5028 #ifdef _SC_SCHAR_MAX
5029                 {*r = _SC_SCHAR_MAX; return 0;}
5030 #else /* def _SC_SCHAR_MAX */
5031                 {errno = EINVAL; return -1;}
5032 #endif /* ndef _SC_SCHAR_MAX */
5033         if (x == Mono_Posix_SysconfName__SC_SCHAR_MIN)
5034 #ifdef _SC_SCHAR_MIN
5035                 {*r = _SC_SCHAR_MIN; return 0;}
5036 #else /* def _SC_SCHAR_MIN */
5037                 {errno = EINVAL; return -1;}
5038 #endif /* ndef _SC_SCHAR_MIN */
5039         if (x == Mono_Posix_SysconfName__SC_SELECT)
5040 #ifdef _SC_SELECT
5041                 {*r = _SC_SELECT; return 0;}
5042 #else /* def _SC_SELECT */
5043                 {errno = EINVAL; return -1;}
5044 #endif /* ndef _SC_SELECT */
5045         if (x == Mono_Posix_SysconfName__SC_SEMAPHORES)
5046 #ifdef _SC_SEMAPHORES
5047                 {*r = _SC_SEMAPHORES; return 0;}
5048 #else /* def _SC_SEMAPHORES */
5049                 {errno = EINVAL; return -1;}
5050 #endif /* ndef _SC_SEMAPHORES */
5051         if (x == Mono_Posix_SysconfName__SC_SEM_NSEMS_MAX)
5052 #ifdef _SC_SEM_NSEMS_MAX
5053                 {*r = _SC_SEM_NSEMS_MAX; return 0;}
5054 #else /* def _SC_SEM_NSEMS_MAX */
5055                 {errno = EINVAL; return -1;}
5056 #endif /* ndef _SC_SEM_NSEMS_MAX */
5057         if (x == Mono_Posix_SysconfName__SC_SEM_VALUE_MAX)
5058 #ifdef _SC_SEM_VALUE_MAX
5059                 {*r = _SC_SEM_VALUE_MAX; return 0;}
5060 #else /* def _SC_SEM_VALUE_MAX */
5061                 {errno = EINVAL; return -1;}
5062 #endif /* ndef _SC_SEM_VALUE_MAX */
5063         if (x == Mono_Posix_SysconfName__SC_SHARED_MEMORY_OBJECTS)
5064 #ifdef _SC_SHARED_MEMORY_OBJECTS
5065                 {*r = _SC_SHARED_MEMORY_OBJECTS; return 0;}
5066 #else /* def _SC_SHARED_MEMORY_OBJECTS */
5067                 {errno = EINVAL; return -1;}
5068 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
5069         if (x == Mono_Posix_SysconfName__SC_SHELL)
5070 #ifdef _SC_SHELL
5071                 {*r = _SC_SHELL; return 0;}
5072 #else /* def _SC_SHELL */
5073                 {errno = EINVAL; return -1;}
5074 #endif /* ndef _SC_SHELL */
5075         if (x == Mono_Posix_SysconfName__SC_SHRT_MAX)
5076 #ifdef _SC_SHRT_MAX
5077                 {*r = _SC_SHRT_MAX; return 0;}
5078 #else /* def _SC_SHRT_MAX */
5079                 {errno = EINVAL; return -1;}
5080 #endif /* ndef _SC_SHRT_MAX */
5081         if (x == Mono_Posix_SysconfName__SC_SHRT_MIN)
5082 #ifdef _SC_SHRT_MIN
5083                 {*r = _SC_SHRT_MIN; return 0;}
5084 #else /* def _SC_SHRT_MIN */
5085                 {errno = EINVAL; return -1;}
5086 #endif /* ndef _SC_SHRT_MIN */
5087         if (x == Mono_Posix_SysconfName__SC_SIGNALS)
5088 #ifdef _SC_SIGNALS
5089                 {*r = _SC_SIGNALS; return 0;}
5090 #else /* def _SC_SIGNALS */
5091                 {errno = EINVAL; return -1;}
5092 #endif /* ndef _SC_SIGNALS */
5093         if (x == Mono_Posix_SysconfName__SC_SIGQUEUE_MAX)
5094 #ifdef _SC_SIGQUEUE_MAX
5095                 {*r = _SC_SIGQUEUE_MAX; return 0;}
5096 #else /* def _SC_SIGQUEUE_MAX */
5097                 {errno = EINVAL; return -1;}
5098 #endif /* ndef _SC_SIGQUEUE_MAX */
5099         if (x == Mono_Posix_SysconfName__SC_SINGLE_PROCESS)
5100 #ifdef _SC_SINGLE_PROCESS
5101                 {*r = _SC_SINGLE_PROCESS; return 0;}
5102 #else /* def _SC_SINGLE_PROCESS */
5103                 {errno = EINVAL; return -1;}
5104 #endif /* ndef _SC_SINGLE_PROCESS */
5105         if (x == Mono_Posix_SysconfName__SC_SPAWN)
5106 #ifdef _SC_SPAWN
5107                 {*r = _SC_SPAWN; return 0;}
5108 #else /* def _SC_SPAWN */
5109                 {errno = EINVAL; return -1;}
5110 #endif /* ndef _SC_SPAWN */
5111         if (x == Mono_Posix_SysconfName__SC_SPIN_LOCKS)
5112 #ifdef _SC_SPIN_LOCKS
5113                 {*r = _SC_SPIN_LOCKS; return 0;}
5114 #else /* def _SC_SPIN_LOCKS */
5115                 {errno = EINVAL; return -1;}
5116 #endif /* ndef _SC_SPIN_LOCKS */
5117         if (x == Mono_Posix_SysconfName__SC_SPORADIC_SERVER)
5118 #ifdef _SC_SPORADIC_SERVER
5119                 {*r = _SC_SPORADIC_SERVER; return 0;}
5120 #else /* def _SC_SPORADIC_SERVER */
5121                 {errno = EINVAL; return -1;}
5122 #endif /* ndef _SC_SPORADIC_SERVER */
5123         if (x == Mono_Posix_SysconfName__SC_SSIZE_MAX)
5124 #ifdef _SC_SSIZE_MAX
5125                 {*r = _SC_SSIZE_MAX; return 0;}
5126 #else /* def _SC_SSIZE_MAX */
5127                 {errno = EINVAL; return -1;}
5128 #endif /* ndef _SC_SSIZE_MAX */
5129         if (x == Mono_Posix_SysconfName__SC_STREAMS)
5130 #ifdef _SC_STREAMS
5131                 {*r = _SC_STREAMS; return 0;}
5132 #else /* def _SC_STREAMS */
5133                 {errno = EINVAL; return -1;}
5134 #endif /* ndef _SC_STREAMS */
5135         if (x == Mono_Posix_SysconfName__SC_STREAM_MAX)
5136 #ifdef _SC_STREAM_MAX
5137                 {*r = _SC_STREAM_MAX; return 0;}
5138 #else /* def _SC_STREAM_MAX */
5139                 {errno = EINVAL; return -1;}
5140 #endif /* ndef _SC_STREAM_MAX */
5141         if (x == Mono_Posix_SysconfName__SC_SYMLOOP_MAX)
5142 #ifdef _SC_SYMLOOP_MAX
5143                 {*r = _SC_SYMLOOP_MAX; return 0;}
5144 #else /* def _SC_SYMLOOP_MAX */
5145                 {errno = EINVAL; return -1;}
5146 #endif /* ndef _SC_SYMLOOP_MAX */
5147         if (x == Mono_Posix_SysconfName__SC_SYNCHRONIZED_IO)
5148 #ifdef _SC_SYNCHRONIZED_IO
5149                 {*r = _SC_SYNCHRONIZED_IO; return 0;}
5150 #else /* def _SC_SYNCHRONIZED_IO */
5151                 {errno = EINVAL; return -1;}
5152 #endif /* ndef _SC_SYNCHRONIZED_IO */
5153         if (x == Mono_Posix_SysconfName__SC_SYSTEM_DATABASE)
5154 #ifdef _SC_SYSTEM_DATABASE
5155                 {*r = _SC_SYSTEM_DATABASE; return 0;}
5156 #else /* def _SC_SYSTEM_DATABASE */
5157                 {errno = EINVAL; return -1;}
5158 #endif /* ndef _SC_SYSTEM_DATABASE */
5159         if (x == Mono_Posix_SysconfName__SC_SYSTEM_DATABASE_R)
5160 #ifdef _SC_SYSTEM_DATABASE_R
5161                 {*r = _SC_SYSTEM_DATABASE_R; return 0;}
5162 #else /* def _SC_SYSTEM_DATABASE_R */
5163                 {errno = EINVAL; return -1;}
5164 #endif /* ndef _SC_SYSTEM_DATABASE_R */
5165         if (x == Mono_Posix_SysconfName__SC_THREADS)
5166 #ifdef _SC_THREADS
5167                 {*r = _SC_THREADS; return 0;}
5168 #else /* def _SC_THREADS */
5169                 {errno = EINVAL; return -1;}
5170 #endif /* ndef _SC_THREADS */
5171         if (x == Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKADDR)
5172 #ifdef _SC_THREAD_ATTR_STACKADDR
5173                 {*r = _SC_THREAD_ATTR_STACKADDR; return 0;}
5174 #else /* def _SC_THREAD_ATTR_STACKADDR */
5175                 {errno = EINVAL; return -1;}
5176 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
5177         if (x == Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKSIZE)
5178 #ifdef _SC_THREAD_ATTR_STACKSIZE
5179                 {*r = _SC_THREAD_ATTR_STACKSIZE; return 0;}
5180 #else /* def _SC_THREAD_ATTR_STACKSIZE */
5181                 {errno = EINVAL; return -1;}
5182 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
5183         if (x == Mono_Posix_SysconfName__SC_THREAD_CPUTIME)
5184 #ifdef _SC_THREAD_CPUTIME
5185                 {*r = _SC_THREAD_CPUTIME; return 0;}
5186 #else /* def _SC_THREAD_CPUTIME */
5187                 {errno = EINVAL; return -1;}
5188 #endif /* ndef _SC_THREAD_CPUTIME */
5189         if (x == Mono_Posix_SysconfName__SC_THREAD_DESTRUCTOR_ITERATIONS)
5190 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
5191                 {*r = _SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
5192 #else /* def _SC_THREAD_DESTRUCTOR_ITERATIONS */
5193                 {errno = EINVAL; return -1;}
5194 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
5195         if (x == Mono_Posix_SysconfName__SC_THREAD_KEYS_MAX)
5196 #ifdef _SC_THREAD_KEYS_MAX
5197                 {*r = _SC_THREAD_KEYS_MAX; return 0;}
5198 #else /* def _SC_THREAD_KEYS_MAX */
5199                 {errno = EINVAL; return -1;}
5200 #endif /* ndef _SC_THREAD_KEYS_MAX */
5201         if (x == Mono_Posix_SysconfName__SC_THREAD_PRIORITY_SCHEDULING)
5202 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
5203                 {*r = _SC_THREAD_PRIORITY_SCHEDULING; return 0;}
5204 #else /* def _SC_THREAD_PRIORITY_SCHEDULING */
5205                 {errno = EINVAL; return -1;}
5206 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
5207         if (x == Mono_Posix_SysconfName__SC_THREAD_PRIO_INHERIT)
5208 #ifdef _SC_THREAD_PRIO_INHERIT
5209                 {*r = _SC_THREAD_PRIO_INHERIT; return 0;}
5210 #else /* def _SC_THREAD_PRIO_INHERIT */
5211                 {errno = EINVAL; return -1;}
5212 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
5213         if (x == Mono_Posix_SysconfName__SC_THREAD_PRIO_PROTECT)
5214 #ifdef _SC_THREAD_PRIO_PROTECT
5215                 {*r = _SC_THREAD_PRIO_PROTECT; return 0;}
5216 #else /* def _SC_THREAD_PRIO_PROTECT */
5217                 {errno = EINVAL; return -1;}
5218 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
5219         if (x == Mono_Posix_SysconfName__SC_THREAD_PROCESS_SHARED)
5220 #ifdef _SC_THREAD_PROCESS_SHARED
5221                 {*r = _SC_THREAD_PROCESS_SHARED; return 0;}
5222 #else /* def _SC_THREAD_PROCESS_SHARED */
5223                 {errno = EINVAL; return -1;}
5224 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
5225         if (x == Mono_Posix_SysconfName__SC_THREAD_SAFE_FUNCTIONS)
5226 #ifdef _SC_THREAD_SAFE_FUNCTIONS
5227                 {*r = _SC_THREAD_SAFE_FUNCTIONS; return 0;}
5228 #else /* def _SC_THREAD_SAFE_FUNCTIONS */
5229                 {errno = EINVAL; return -1;}
5230 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
5231         if (x == Mono_Posix_SysconfName__SC_THREAD_SPORADIC_SERVER)
5232 #ifdef _SC_THREAD_SPORADIC_SERVER
5233                 {*r = _SC_THREAD_SPORADIC_SERVER; return 0;}
5234 #else /* def _SC_THREAD_SPORADIC_SERVER */
5235                 {errno = EINVAL; return -1;}
5236 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
5237         if (x == Mono_Posix_SysconfName__SC_THREAD_STACK_MIN)
5238 #ifdef _SC_THREAD_STACK_MIN
5239                 {*r = _SC_THREAD_STACK_MIN; return 0;}
5240 #else /* def _SC_THREAD_STACK_MIN */
5241                 {errno = EINVAL; return -1;}
5242 #endif /* ndef _SC_THREAD_STACK_MIN */
5243         if (x == Mono_Posix_SysconfName__SC_THREAD_THREADS_MAX)
5244 #ifdef _SC_THREAD_THREADS_MAX
5245                 {*r = _SC_THREAD_THREADS_MAX; return 0;}
5246 #else /* def _SC_THREAD_THREADS_MAX */
5247                 {errno = EINVAL; return -1;}
5248 #endif /* ndef _SC_THREAD_THREADS_MAX */
5249         if (x == Mono_Posix_SysconfName__SC_TIMEOUTS)
5250 #ifdef _SC_TIMEOUTS
5251                 {*r = _SC_TIMEOUTS; return 0;}
5252 #else /* def _SC_TIMEOUTS */
5253                 {errno = EINVAL; return -1;}
5254 #endif /* ndef _SC_TIMEOUTS */
5255         if (x == Mono_Posix_SysconfName__SC_TIMERS)
5256 #ifdef _SC_TIMERS
5257                 {*r = _SC_TIMERS; return 0;}
5258 #else /* def _SC_TIMERS */
5259                 {errno = EINVAL; return -1;}
5260 #endif /* ndef _SC_TIMERS */
5261         if (x == Mono_Posix_SysconfName__SC_TIMER_MAX)
5262 #ifdef _SC_TIMER_MAX
5263                 {*r = _SC_TIMER_MAX; return 0;}
5264 #else /* def _SC_TIMER_MAX */
5265                 {errno = EINVAL; return -1;}
5266 #endif /* ndef _SC_TIMER_MAX */
5267         if (x == Mono_Posix_SysconfName__SC_TRACE)
5268 #ifdef _SC_TRACE
5269                 {*r = _SC_TRACE; return 0;}
5270 #else /* def _SC_TRACE */
5271                 {errno = EINVAL; return -1;}
5272 #endif /* ndef _SC_TRACE */
5273         if (x == Mono_Posix_SysconfName__SC_TRACE_EVENT_FILTER)
5274 #ifdef _SC_TRACE_EVENT_FILTER
5275                 {*r = _SC_TRACE_EVENT_FILTER; return 0;}
5276 #else /* def _SC_TRACE_EVENT_FILTER */
5277                 {errno = EINVAL; return -1;}
5278 #endif /* ndef _SC_TRACE_EVENT_FILTER */
5279         if (x == Mono_Posix_SysconfName__SC_TRACE_INHERIT)
5280 #ifdef _SC_TRACE_INHERIT
5281                 {*r = _SC_TRACE_INHERIT; return 0;}
5282 #else /* def _SC_TRACE_INHERIT */
5283                 {errno = EINVAL; return -1;}
5284 #endif /* ndef _SC_TRACE_INHERIT */
5285         if (x == Mono_Posix_SysconfName__SC_TRACE_LOG)
5286 #ifdef _SC_TRACE_LOG
5287                 {*r = _SC_TRACE_LOG; return 0;}
5288 #else /* def _SC_TRACE_LOG */
5289                 {errno = EINVAL; return -1;}
5290 #endif /* ndef _SC_TRACE_LOG */
5291         if (x == Mono_Posix_SysconfName__SC_TTY_NAME_MAX)
5292 #ifdef _SC_TTY_NAME_MAX
5293                 {*r = _SC_TTY_NAME_MAX; return 0;}
5294 #else /* def _SC_TTY_NAME_MAX */
5295                 {errno = EINVAL; return -1;}
5296 #endif /* ndef _SC_TTY_NAME_MAX */
5297         if (x == Mono_Posix_SysconfName__SC_TYPED_MEMORY_OBJECTS)
5298 #ifdef _SC_TYPED_MEMORY_OBJECTS
5299                 {*r = _SC_TYPED_MEMORY_OBJECTS; return 0;}
5300 #else /* def _SC_TYPED_MEMORY_OBJECTS */
5301                 {errno = EINVAL; return -1;}
5302 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
5303         if (x == Mono_Posix_SysconfName__SC_TZNAME_MAX)
5304 #ifdef _SC_TZNAME_MAX
5305                 {*r = _SC_TZNAME_MAX; return 0;}
5306 #else /* def _SC_TZNAME_MAX */
5307                 {errno = EINVAL; return -1;}
5308 #endif /* ndef _SC_TZNAME_MAX */
5309         if (x == Mono_Posix_SysconfName__SC_T_IOV_MAX)
5310 #ifdef _SC_T_IOV_MAX
5311                 {*r = _SC_T_IOV_MAX; return 0;}
5312 #else /* def _SC_T_IOV_MAX */
5313                 {errno = EINVAL; return -1;}
5314 #endif /* ndef _SC_T_IOV_MAX */
5315         if (x == Mono_Posix_SysconfName__SC_UCHAR_MAX)
5316 #ifdef _SC_UCHAR_MAX
5317                 {*r = _SC_UCHAR_MAX; return 0;}
5318 #else /* def _SC_UCHAR_MAX */
5319                 {errno = EINVAL; return -1;}
5320 #endif /* ndef _SC_UCHAR_MAX */
5321         if (x == Mono_Posix_SysconfName__SC_UINT_MAX)
5322 #ifdef _SC_UINT_MAX
5323                 {*r = _SC_UINT_MAX; return 0;}
5324 #else /* def _SC_UINT_MAX */
5325                 {errno = EINVAL; return -1;}
5326 #endif /* ndef _SC_UINT_MAX */
5327         if (x == Mono_Posix_SysconfName__SC_UIO_MAXIOV)
5328 #ifdef _SC_UIO_MAXIOV
5329                 {*r = _SC_UIO_MAXIOV; return 0;}
5330 #else /* def _SC_UIO_MAXIOV */
5331                 {errno = EINVAL; return -1;}
5332 #endif /* ndef _SC_UIO_MAXIOV */
5333         if (x == Mono_Posix_SysconfName__SC_ULONG_MAX)
5334 #ifdef _SC_ULONG_MAX
5335                 {*r = _SC_ULONG_MAX; return 0;}
5336 #else /* def _SC_ULONG_MAX */
5337                 {errno = EINVAL; return -1;}
5338 #endif /* ndef _SC_ULONG_MAX */
5339         if (x == Mono_Posix_SysconfName__SC_USER_GROUPS)
5340 #ifdef _SC_USER_GROUPS
5341                 {*r = _SC_USER_GROUPS; return 0;}
5342 #else /* def _SC_USER_GROUPS */
5343                 {errno = EINVAL; return -1;}
5344 #endif /* ndef _SC_USER_GROUPS */
5345         if (x == Mono_Posix_SysconfName__SC_USER_GROUPS_R)
5346 #ifdef _SC_USER_GROUPS_R
5347                 {*r = _SC_USER_GROUPS_R; return 0;}
5348 #else /* def _SC_USER_GROUPS_R */
5349                 {errno = EINVAL; return -1;}
5350 #endif /* ndef _SC_USER_GROUPS_R */
5351         if (x == Mono_Posix_SysconfName__SC_USHRT_MAX)
5352 #ifdef _SC_USHRT_MAX
5353                 {*r = _SC_USHRT_MAX; return 0;}
5354 #else /* def _SC_USHRT_MAX */
5355                 {errno = EINVAL; return -1;}
5356 #endif /* ndef _SC_USHRT_MAX */
5357         if (x == Mono_Posix_SysconfName__SC_V6_ILP32_OFF32)
5358 #ifdef _SC_V6_ILP32_OFF32
5359                 {*r = _SC_V6_ILP32_OFF32; return 0;}
5360 #else /* def _SC_V6_ILP32_OFF32 */
5361                 {errno = EINVAL; return -1;}
5362 #endif /* ndef _SC_V6_ILP32_OFF32 */
5363         if (x == Mono_Posix_SysconfName__SC_V6_ILP32_OFFBIG)
5364 #ifdef _SC_V6_ILP32_OFFBIG
5365                 {*r = _SC_V6_ILP32_OFFBIG; return 0;}
5366 #else /* def _SC_V6_ILP32_OFFBIG */
5367                 {errno = EINVAL; return -1;}
5368 #endif /* ndef _SC_V6_ILP32_OFFBIG */
5369         if (x == Mono_Posix_SysconfName__SC_V6_LP64_OFF64)
5370 #ifdef _SC_V6_LP64_OFF64
5371                 {*r = _SC_V6_LP64_OFF64; return 0;}
5372 #else /* def _SC_V6_LP64_OFF64 */
5373                 {errno = EINVAL; return -1;}
5374 #endif /* ndef _SC_V6_LP64_OFF64 */
5375         if (x == Mono_Posix_SysconfName__SC_V6_LPBIG_OFFBIG)
5376 #ifdef _SC_V6_LPBIG_OFFBIG
5377                 {*r = _SC_V6_LPBIG_OFFBIG; return 0;}
5378 #else /* def _SC_V6_LPBIG_OFFBIG */
5379                 {errno = EINVAL; return -1;}
5380 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
5381         if (x == Mono_Posix_SysconfName__SC_VERSION)
5382 #ifdef _SC_VERSION
5383                 {*r = _SC_VERSION; return 0;}
5384 #else /* def _SC_VERSION */
5385                 {errno = EINVAL; return -1;}
5386 #endif /* ndef _SC_VERSION */
5387         if (x == Mono_Posix_SysconfName__SC_WORD_BIT)
5388 #ifdef _SC_WORD_BIT
5389                 {*r = _SC_WORD_BIT; return 0;}
5390 #else /* def _SC_WORD_BIT */
5391                 {errno = EINVAL; return -1;}
5392 #endif /* ndef _SC_WORD_BIT */
5393         if (x == Mono_Posix_SysconfName__SC_XBS5_ILP32_OFF32)
5394 #ifdef _SC_XBS5_ILP32_OFF32
5395                 {*r = _SC_XBS5_ILP32_OFF32; return 0;}
5396 #else /* def _SC_XBS5_ILP32_OFF32 */
5397                 {errno = EINVAL; return -1;}
5398 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
5399         if (x == Mono_Posix_SysconfName__SC_XBS5_ILP32_OFFBIG)
5400 #ifdef _SC_XBS5_ILP32_OFFBIG
5401                 {*r = _SC_XBS5_ILP32_OFFBIG; return 0;}
5402 #else /* def _SC_XBS5_ILP32_OFFBIG */
5403                 {errno = EINVAL; return -1;}
5404 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
5405         if (x == Mono_Posix_SysconfName__SC_XBS5_LP64_OFF64)
5406 #ifdef _SC_XBS5_LP64_OFF64
5407                 {*r = _SC_XBS5_LP64_OFF64; return 0;}
5408 #else /* def _SC_XBS5_LP64_OFF64 */
5409                 {errno = EINVAL; return -1;}
5410 #endif /* ndef _SC_XBS5_LP64_OFF64 */
5411         if (x == Mono_Posix_SysconfName__SC_XBS5_LPBIG_OFFBIG)
5412 #ifdef _SC_XBS5_LPBIG_OFFBIG
5413                 {*r = _SC_XBS5_LPBIG_OFFBIG; return 0;}
5414 #else /* def _SC_XBS5_LPBIG_OFFBIG */
5415                 {errno = EINVAL; return -1;}
5416 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
5417         if (x == Mono_Posix_SysconfName__SC_XOPEN_CRYPT)
5418 #ifdef _SC_XOPEN_CRYPT
5419                 {*r = _SC_XOPEN_CRYPT; return 0;}
5420 #else /* def _SC_XOPEN_CRYPT */
5421                 {errno = EINVAL; return -1;}
5422 #endif /* ndef _SC_XOPEN_CRYPT */
5423         if (x == Mono_Posix_SysconfName__SC_XOPEN_ENH_I18N)
5424 #ifdef _SC_XOPEN_ENH_I18N
5425                 {*r = _SC_XOPEN_ENH_I18N; return 0;}
5426 #else /* def _SC_XOPEN_ENH_I18N */
5427                 {errno = EINVAL; return -1;}
5428 #endif /* ndef _SC_XOPEN_ENH_I18N */
5429         if (x == Mono_Posix_SysconfName__SC_XOPEN_LEGACY)
5430 #ifdef _SC_XOPEN_LEGACY
5431                 {*r = _SC_XOPEN_LEGACY; return 0;}
5432 #else /* def _SC_XOPEN_LEGACY */
5433                 {errno = EINVAL; return -1;}
5434 #endif /* ndef _SC_XOPEN_LEGACY */
5435         if (x == Mono_Posix_SysconfName__SC_XOPEN_REALTIME)
5436 #ifdef _SC_XOPEN_REALTIME
5437                 {*r = _SC_XOPEN_REALTIME; return 0;}
5438 #else /* def _SC_XOPEN_REALTIME */
5439                 {errno = EINVAL; return -1;}
5440 #endif /* ndef _SC_XOPEN_REALTIME */
5441         if (x == Mono_Posix_SysconfName__SC_XOPEN_REALTIME_THREADS)
5442 #ifdef _SC_XOPEN_REALTIME_THREADS
5443                 {*r = _SC_XOPEN_REALTIME_THREADS; return 0;}
5444 #else /* def _SC_XOPEN_REALTIME_THREADS */
5445                 {errno = EINVAL; return -1;}
5446 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
5447         if (x == Mono_Posix_SysconfName__SC_XOPEN_SHM)
5448 #ifdef _SC_XOPEN_SHM
5449                 {*r = _SC_XOPEN_SHM; return 0;}
5450 #else /* def _SC_XOPEN_SHM */
5451                 {errno = EINVAL; return -1;}
5452 #endif /* ndef _SC_XOPEN_SHM */
5453         if (x == Mono_Posix_SysconfName__SC_XOPEN_UNIX)
5454 #ifdef _SC_XOPEN_UNIX
5455                 {*r = _SC_XOPEN_UNIX; return 0;}
5456 #else /* def _SC_XOPEN_UNIX */
5457                 {errno = EINVAL; return -1;}
5458 #endif /* ndef _SC_XOPEN_UNIX */
5459         if (x == Mono_Posix_SysconfName__SC_XOPEN_VERSION)
5460 #ifdef _SC_XOPEN_VERSION
5461                 {*r = _SC_XOPEN_VERSION; return 0;}
5462 #else /* def _SC_XOPEN_VERSION */
5463                 {errno = EINVAL; return -1;}
5464 #endif /* ndef _SC_XOPEN_VERSION */
5465         if (x == Mono_Posix_SysconfName__SC_XOPEN_XCU_VERSION)
5466 #ifdef _SC_XOPEN_XCU_VERSION
5467                 {*r = _SC_XOPEN_XCU_VERSION; return 0;}
5468 #else /* def _SC_XOPEN_XCU_VERSION */
5469                 {errno = EINVAL; return -1;}
5470 #endif /* ndef _SC_XOPEN_XCU_VERSION */
5471         if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG2)
5472 #ifdef _SC_XOPEN_XPG2
5473                 {*r = _SC_XOPEN_XPG2; return 0;}
5474 #else /* def _SC_XOPEN_XPG2 */
5475                 {errno = EINVAL; return -1;}
5476 #endif /* ndef _SC_XOPEN_XPG2 */
5477         if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG3)
5478 #ifdef _SC_XOPEN_XPG3
5479                 {*r = _SC_XOPEN_XPG3; return 0;}
5480 #else /* def _SC_XOPEN_XPG3 */
5481                 {errno = EINVAL; return -1;}
5482 #endif /* ndef _SC_XOPEN_XPG3 */
5483         if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG4)
5484 #ifdef _SC_XOPEN_XPG4
5485                 {*r = _SC_XOPEN_XPG4; return 0;}
5486 #else /* def _SC_XOPEN_XPG4 */
5487                 {errno = EINVAL; return -1;}
5488 #endif /* ndef _SC_XOPEN_XPG4 */
5489         if (x == 0)
5490                 return 0;
5491         errno = EINVAL; return -1;
5492 }
5493
5494 int Mono_Posix_ToSysconfName (int x, int *r)
5495 {
5496         *r = 0;
5497         if (x == 0)
5498                 return 0;
5499 #ifdef _SC_2_CHAR_TERM
5500         if (x == _SC_2_CHAR_TERM)
5501                 {*r = Mono_Posix_SysconfName__SC_2_CHAR_TERM; return 0;}
5502 #endif /* ndef _SC_2_CHAR_TERM */
5503 #ifdef _SC_2_C_BIND
5504         if (x == _SC_2_C_BIND)
5505                 {*r = Mono_Posix_SysconfName__SC_2_C_BIND; return 0;}
5506 #endif /* ndef _SC_2_C_BIND */
5507 #ifdef _SC_2_C_DEV
5508         if (x == _SC_2_C_DEV)
5509                 {*r = Mono_Posix_SysconfName__SC_2_C_DEV; return 0;}
5510 #endif /* ndef _SC_2_C_DEV */
5511 #ifdef _SC_2_C_VERSION
5512         if (x == _SC_2_C_VERSION)
5513                 {*r = Mono_Posix_SysconfName__SC_2_C_VERSION; return 0;}
5514 #endif /* ndef _SC_2_C_VERSION */
5515 #ifdef _SC_2_FORT_DEV
5516         if (x == _SC_2_FORT_DEV)
5517                 {*r = Mono_Posix_SysconfName__SC_2_FORT_DEV; return 0;}
5518 #endif /* ndef _SC_2_FORT_DEV */
5519 #ifdef _SC_2_FORT_RUN
5520         if (x == _SC_2_FORT_RUN)
5521                 {*r = Mono_Posix_SysconfName__SC_2_FORT_RUN; return 0;}
5522 #endif /* ndef _SC_2_FORT_RUN */
5523 #ifdef _SC_2_LOCALEDEF
5524         if (x == _SC_2_LOCALEDEF)
5525                 {*r = Mono_Posix_SysconfName__SC_2_LOCALEDEF; return 0;}
5526 #endif /* ndef _SC_2_LOCALEDEF */
5527 #ifdef _SC_2_PBS
5528         if (x == _SC_2_PBS)
5529                 {*r = Mono_Posix_SysconfName__SC_2_PBS; return 0;}
5530 #endif /* ndef _SC_2_PBS */
5531 #ifdef _SC_2_PBS_ACCOUNTING
5532         if (x == _SC_2_PBS_ACCOUNTING)
5533                 {*r = Mono_Posix_SysconfName__SC_2_PBS_ACCOUNTING; return 0;}
5534 #endif /* ndef _SC_2_PBS_ACCOUNTING */
5535 #ifdef _SC_2_PBS_CHECKPOINT
5536         if (x == _SC_2_PBS_CHECKPOINT)
5537                 {*r = Mono_Posix_SysconfName__SC_2_PBS_CHECKPOINT; return 0;}
5538 #endif /* ndef _SC_2_PBS_CHECKPOINT */
5539 #ifdef _SC_2_PBS_LOCATE
5540         if (x == _SC_2_PBS_LOCATE)
5541                 {*r = Mono_Posix_SysconfName__SC_2_PBS_LOCATE; return 0;}
5542 #endif /* ndef _SC_2_PBS_LOCATE */
5543 #ifdef _SC_2_PBS_MESSAGE
5544         if (x == _SC_2_PBS_MESSAGE)
5545                 {*r = Mono_Posix_SysconfName__SC_2_PBS_MESSAGE; return 0;}
5546 #endif /* ndef _SC_2_PBS_MESSAGE */
5547 #ifdef _SC_2_PBS_TRACK
5548         if (x == _SC_2_PBS_TRACK)
5549                 {*r = Mono_Posix_SysconfName__SC_2_PBS_TRACK; return 0;}
5550 #endif /* ndef _SC_2_PBS_TRACK */
5551 #ifdef _SC_2_SW_DEV
5552         if (x == _SC_2_SW_DEV)
5553                 {*r = Mono_Posix_SysconfName__SC_2_SW_DEV; return 0;}
5554 #endif /* ndef _SC_2_SW_DEV */
5555 #ifdef _SC_2_UPE
5556         if (x == _SC_2_UPE)
5557                 {*r = Mono_Posix_SysconfName__SC_2_UPE; return 0;}
5558 #endif /* ndef _SC_2_UPE */
5559 #ifdef _SC_2_VERSION
5560         if (x == _SC_2_VERSION)
5561                 {*r = Mono_Posix_SysconfName__SC_2_VERSION; return 0;}
5562 #endif /* ndef _SC_2_VERSION */
5563 #ifdef _SC_ADVISORY_INFO
5564         if (x == _SC_ADVISORY_INFO)
5565                 {*r = Mono_Posix_SysconfName__SC_ADVISORY_INFO; return 0;}
5566 #endif /* ndef _SC_ADVISORY_INFO */
5567 #ifdef _SC_AIO_LISTIO_MAX
5568         if (x == _SC_AIO_LISTIO_MAX)
5569                 {*r = Mono_Posix_SysconfName__SC_AIO_LISTIO_MAX; return 0;}
5570 #endif /* ndef _SC_AIO_LISTIO_MAX */
5571 #ifdef _SC_AIO_MAX
5572         if (x == _SC_AIO_MAX)
5573                 {*r = Mono_Posix_SysconfName__SC_AIO_MAX; return 0;}
5574 #endif /* ndef _SC_AIO_MAX */
5575 #ifdef _SC_AIO_PRIO_DELTA_MAX
5576         if (x == _SC_AIO_PRIO_DELTA_MAX)
5577                 {*r = Mono_Posix_SysconfName__SC_AIO_PRIO_DELTA_MAX; return 0;}
5578 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
5579 #ifdef _SC_ARG_MAX
5580         if (x == _SC_ARG_MAX)
5581                 {*r = Mono_Posix_SysconfName__SC_ARG_MAX; return 0;}
5582 #endif /* ndef _SC_ARG_MAX */
5583 #ifdef _SC_ASYNCHRONOUS_IO
5584         if (x == _SC_ASYNCHRONOUS_IO)
5585                 {*r = Mono_Posix_SysconfName__SC_ASYNCHRONOUS_IO; return 0;}
5586 #endif /* ndef _SC_ASYNCHRONOUS_IO */
5587 #ifdef _SC_ATEXIT_MAX
5588         if (x == _SC_ATEXIT_MAX)
5589                 {*r = Mono_Posix_SysconfName__SC_ATEXIT_MAX; return 0;}
5590 #endif /* ndef _SC_ATEXIT_MAX */
5591 #ifdef _SC_AVPHYS_PAGES
5592         if (x == _SC_AVPHYS_PAGES)
5593                 {*r = Mono_Posix_SysconfName__SC_AVPHYS_PAGES; return 0;}
5594 #endif /* ndef _SC_AVPHYS_PAGES */
5595 #ifdef _SC_BARRIERS
5596         if (x == _SC_BARRIERS)
5597                 {*r = Mono_Posix_SysconfName__SC_BARRIERS; return 0;}
5598 #endif /* ndef _SC_BARRIERS */
5599 #ifdef _SC_BASE
5600         if (x == _SC_BASE)
5601                 {*r = Mono_Posix_SysconfName__SC_BASE; return 0;}
5602 #endif /* ndef _SC_BASE */
5603 #ifdef _SC_BC_BASE_MAX
5604         if (x == _SC_BC_BASE_MAX)
5605                 {*r = Mono_Posix_SysconfName__SC_BC_BASE_MAX; return 0;}
5606 #endif /* ndef _SC_BC_BASE_MAX */
5607 #ifdef _SC_BC_DIM_MAX
5608         if (x == _SC_BC_DIM_MAX)
5609                 {*r = Mono_Posix_SysconfName__SC_BC_DIM_MAX; return 0;}
5610 #endif /* ndef _SC_BC_DIM_MAX */
5611 #ifdef _SC_BC_SCALE_MAX
5612         if (x == _SC_BC_SCALE_MAX)
5613                 {*r = Mono_Posix_SysconfName__SC_BC_SCALE_MAX; return 0;}
5614 #endif /* ndef _SC_BC_SCALE_MAX */
5615 #ifdef _SC_BC_STRING_MAX
5616         if (x == _SC_BC_STRING_MAX)
5617                 {*r = Mono_Posix_SysconfName__SC_BC_STRING_MAX; return 0;}
5618 #endif /* ndef _SC_BC_STRING_MAX */
5619 #ifdef _SC_CHARCLASS_NAME_MAX
5620         if (x == _SC_CHARCLASS_NAME_MAX)
5621                 {*r = Mono_Posix_SysconfName__SC_CHARCLASS_NAME_MAX; return 0;}
5622 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
5623 #ifdef _SC_CHAR_BIT
5624         if (x == _SC_CHAR_BIT)
5625                 {*r = Mono_Posix_SysconfName__SC_CHAR_BIT; return 0;}
5626 #endif /* ndef _SC_CHAR_BIT */
5627 #ifdef _SC_CHAR_MAX
5628         if (x == _SC_CHAR_MAX)
5629                 {*r = Mono_Posix_SysconfName__SC_CHAR_MAX; return 0;}
5630 #endif /* ndef _SC_CHAR_MAX */
5631 #ifdef _SC_CHAR_MIN
5632         if (x == _SC_CHAR_MIN)
5633                 {*r = Mono_Posix_SysconfName__SC_CHAR_MIN; return 0;}
5634 #endif /* ndef _SC_CHAR_MIN */
5635 #ifdef _SC_CHILD_MAX
5636         if (x == _SC_CHILD_MAX)
5637                 {*r = Mono_Posix_SysconfName__SC_CHILD_MAX; return 0;}
5638 #endif /* ndef _SC_CHILD_MAX */
5639 #ifdef _SC_CLK_TCK
5640         if (x == _SC_CLK_TCK)
5641                 {*r = Mono_Posix_SysconfName__SC_CLK_TCK; return 0;}
5642 #endif /* ndef _SC_CLK_TCK */
5643 #ifdef _SC_CLOCK_SELECTION
5644         if (x == _SC_CLOCK_SELECTION)
5645                 {*r = Mono_Posix_SysconfName__SC_CLOCK_SELECTION; return 0;}
5646 #endif /* ndef _SC_CLOCK_SELECTION */
5647 #ifdef _SC_COLL_WEIGHTS_MAX
5648         if (x == _SC_COLL_WEIGHTS_MAX)
5649                 {*r = Mono_Posix_SysconfName__SC_COLL_WEIGHTS_MAX; return 0;}
5650 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
5651 #ifdef _SC_CPUTIME
5652         if (x == _SC_CPUTIME)
5653                 {*r = Mono_Posix_SysconfName__SC_CPUTIME; return 0;}
5654 #endif /* ndef _SC_CPUTIME */
5655 #ifdef _SC_C_LANG_SUPPORT
5656         if (x == _SC_C_LANG_SUPPORT)
5657                 {*r = Mono_Posix_SysconfName__SC_C_LANG_SUPPORT; return 0;}
5658 #endif /* ndef _SC_C_LANG_SUPPORT */
5659 #ifdef _SC_C_LANG_SUPPORT_R
5660         if (x == _SC_C_LANG_SUPPORT_R)
5661                 {*r = Mono_Posix_SysconfName__SC_C_LANG_SUPPORT_R; return 0;}
5662 #endif /* ndef _SC_C_LANG_SUPPORT_R */
5663 #ifdef _SC_DELAYTIMER_MAX
5664         if (x == _SC_DELAYTIMER_MAX)
5665                 {*r = Mono_Posix_SysconfName__SC_DELAYTIMER_MAX; return 0;}
5666 #endif /* ndef _SC_DELAYTIMER_MAX */
5667 #ifdef _SC_DEVICE_IO
5668         if (x == _SC_DEVICE_IO)
5669                 {*r = Mono_Posix_SysconfName__SC_DEVICE_IO; return 0;}
5670 #endif /* ndef _SC_DEVICE_IO */
5671 #ifdef _SC_DEVICE_SPECIFIC
5672         if (x == _SC_DEVICE_SPECIFIC)
5673                 {*r = Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC; return 0;}
5674 #endif /* ndef _SC_DEVICE_SPECIFIC */
5675 #ifdef _SC_DEVICE_SPECIFIC_R
5676         if (x == _SC_DEVICE_SPECIFIC_R)
5677                 {*r = Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC_R; return 0;}
5678 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
5679 #ifdef _SC_EQUIV_CLASS_MAX
5680         if (x == _SC_EQUIV_CLASS_MAX)
5681                 {*r = Mono_Posix_SysconfName__SC_EQUIV_CLASS_MAX; return 0;}
5682 #endif /* ndef _SC_EQUIV_CLASS_MAX */
5683 #ifdef _SC_EXPR_NEST_MAX
5684         if (x == _SC_EXPR_NEST_MAX)
5685                 {*r = Mono_Posix_SysconfName__SC_EXPR_NEST_MAX; return 0;}
5686 #endif /* ndef _SC_EXPR_NEST_MAX */
5687 #ifdef _SC_FD_MGMT
5688         if (x == _SC_FD_MGMT)
5689                 {*r = Mono_Posix_SysconfName__SC_FD_MGMT; return 0;}
5690 #endif /* ndef _SC_FD_MGMT */
5691 #ifdef _SC_FIFO
5692         if (x == _SC_FIFO)
5693                 {*r = Mono_Posix_SysconfName__SC_FIFO; return 0;}
5694 #endif /* ndef _SC_FIFO */
5695 #ifdef _SC_FILE_ATTRIBUTES
5696         if (x == _SC_FILE_ATTRIBUTES)
5697                 {*r = Mono_Posix_SysconfName__SC_FILE_ATTRIBUTES; return 0;}
5698 #endif /* ndef _SC_FILE_ATTRIBUTES */
5699 #ifdef _SC_FILE_LOCKING
5700         if (x == _SC_FILE_LOCKING)
5701                 {*r = Mono_Posix_SysconfName__SC_FILE_LOCKING; return 0;}
5702 #endif /* ndef _SC_FILE_LOCKING */
5703 #ifdef _SC_FILE_SYSTEM
5704         if (x == _SC_FILE_SYSTEM)
5705                 {*r = Mono_Posix_SysconfName__SC_FILE_SYSTEM; return 0;}
5706 #endif /* ndef _SC_FILE_SYSTEM */
5707 #ifdef _SC_FSYNC
5708         if (x == _SC_FSYNC)
5709                 {*r = Mono_Posix_SysconfName__SC_FSYNC; return 0;}
5710 #endif /* ndef _SC_FSYNC */
5711 #ifdef _SC_GETGR_R_SIZE_MAX
5712         if (x == _SC_GETGR_R_SIZE_MAX)
5713                 {*r = Mono_Posix_SysconfName__SC_GETGR_R_SIZE_MAX; return 0;}
5714 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
5715 #ifdef _SC_GETPW_R_SIZE_MAX
5716         if (x == _SC_GETPW_R_SIZE_MAX)
5717                 {*r = Mono_Posix_SysconfName__SC_GETPW_R_SIZE_MAX; return 0;}
5718 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
5719 #ifdef _SC_HOST_NAME_MAX
5720         if (x == _SC_HOST_NAME_MAX)
5721                 {*r = Mono_Posix_SysconfName__SC_HOST_NAME_MAX; return 0;}
5722 #endif /* ndef _SC_HOST_NAME_MAX */
5723 #ifdef _SC_INT_MAX
5724         if (x == _SC_INT_MAX)
5725                 {*r = Mono_Posix_SysconfName__SC_INT_MAX; return 0;}
5726 #endif /* ndef _SC_INT_MAX */
5727 #ifdef _SC_INT_MIN
5728         if (x == _SC_INT_MIN)
5729                 {*r = Mono_Posix_SysconfName__SC_INT_MIN; return 0;}
5730 #endif /* ndef _SC_INT_MIN */
5731 #ifdef _SC_IOV_MAX
5732         if (x == _SC_IOV_MAX)
5733                 {*r = Mono_Posix_SysconfName__SC_IOV_MAX; return 0;}
5734 #endif /* ndef _SC_IOV_MAX */
5735 #ifdef _SC_JOB_CONTROL
5736         if (x == _SC_JOB_CONTROL)
5737                 {*r = Mono_Posix_SysconfName__SC_JOB_CONTROL; return 0;}
5738 #endif /* ndef _SC_JOB_CONTROL */
5739 #ifdef _SC_LEVEL1_DCACHE_ASSOC
5740         if (x == _SC_LEVEL1_DCACHE_ASSOC)
5741                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_ASSOC; return 0;}
5742 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
5743 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
5744         if (x == _SC_LEVEL1_DCACHE_LINESIZE)
5745                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_LINESIZE; return 0;}
5746 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
5747 #ifdef _SC_LEVEL1_DCACHE_SIZE
5748         if (x == _SC_LEVEL1_DCACHE_SIZE)
5749                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_SIZE; return 0;}
5750 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
5751 #ifdef _SC_LEVEL1_ICACHE_ASSOC
5752         if (x == _SC_LEVEL1_ICACHE_ASSOC)
5753                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_ASSOC; return 0;}
5754 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
5755 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
5756         if (x == _SC_LEVEL1_ICACHE_LINESIZE)
5757                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_LINESIZE; return 0;}
5758 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
5759 #ifdef _SC_LEVEL1_ICACHE_SIZE
5760         if (x == _SC_LEVEL1_ICACHE_SIZE)
5761                 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_SIZE; return 0;}
5762 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
5763 #ifdef _SC_LEVEL2_CACHE_ASSOC
5764         if (x == _SC_LEVEL2_CACHE_ASSOC)
5765                 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_ASSOC; return 0;}
5766 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
5767 #ifdef _SC_LEVEL2_CACHE_LINESIZE
5768         if (x == _SC_LEVEL2_CACHE_LINESIZE)
5769                 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_LINESIZE; return 0;}
5770 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
5771 #ifdef _SC_LEVEL2_CACHE_SIZE
5772         if (x == _SC_LEVEL2_CACHE_SIZE)
5773                 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_SIZE; return 0;}
5774 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
5775 #ifdef _SC_LEVEL3_CACHE_ASSOC
5776         if (x == _SC_LEVEL3_CACHE_ASSOC)
5777                 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_ASSOC; return 0;}
5778 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
5779 #ifdef _SC_LEVEL3_CACHE_LINESIZE
5780         if (x == _SC_LEVEL3_CACHE_LINESIZE)
5781                 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_LINESIZE; return 0;}
5782 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
5783 #ifdef _SC_LEVEL3_CACHE_SIZE
5784         if (x == _SC_LEVEL3_CACHE_SIZE)
5785                 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_SIZE; return 0;}
5786 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
5787 #ifdef _SC_LEVEL4_CACHE_ASSOC
5788         if (x == _SC_LEVEL4_CACHE_ASSOC)
5789                 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_ASSOC; return 0;}
5790 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
5791 #ifdef _SC_LEVEL4_CACHE_LINESIZE
5792         if (x == _SC_LEVEL4_CACHE_LINESIZE)
5793                 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_LINESIZE; return 0;}
5794 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
5795 #ifdef _SC_LEVEL4_CACHE_SIZE
5796         if (x == _SC_LEVEL4_CACHE_SIZE)
5797                 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_SIZE; return 0;}
5798 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
5799 #ifdef _SC_LINE_MAX
5800         if (x == _SC_LINE_MAX)
5801                 {*r = Mono_Posix_SysconfName__SC_LINE_MAX; return 0;}
5802 #endif /* ndef _SC_LINE_MAX */
5803 #ifdef _SC_LOGIN_NAME_MAX
5804         if (x == _SC_LOGIN_NAME_MAX)
5805                 {*r = Mono_Posix_SysconfName__SC_LOGIN_NAME_MAX; return 0;}
5806 #endif /* ndef _SC_LOGIN_NAME_MAX */
5807 #ifdef _SC_LONG_BIT
5808         if (x == _SC_LONG_BIT)
5809                 {*r = Mono_Posix_SysconfName__SC_LONG_BIT; return 0;}
5810 #endif /* ndef _SC_LONG_BIT */
5811 #ifdef _SC_MAPPED_FILES
5812         if (x == _SC_MAPPED_FILES)
5813                 {*r = Mono_Posix_SysconfName__SC_MAPPED_FILES; return 0;}
5814 #endif /* ndef _SC_MAPPED_FILES */
5815 #ifdef _SC_MB_LEN_MAX
5816         if (x == _SC_MB_LEN_MAX)
5817                 {*r = Mono_Posix_SysconfName__SC_MB_LEN_MAX; return 0;}
5818 #endif /* ndef _SC_MB_LEN_MAX */
5819 #ifdef _SC_MEMLOCK
5820         if (x == _SC_MEMLOCK)
5821                 {*r = Mono_Posix_SysconfName__SC_MEMLOCK; return 0;}
5822 #endif /* ndef _SC_MEMLOCK */
5823 #ifdef _SC_MEMLOCK_RANGE
5824         if (x == _SC_MEMLOCK_RANGE)
5825                 {*r = Mono_Posix_SysconfName__SC_MEMLOCK_RANGE; return 0;}
5826 #endif /* ndef _SC_MEMLOCK_RANGE */
5827 #ifdef _SC_MEMORY_PROTECTION
5828         if (x == _SC_MEMORY_PROTECTION)
5829                 {*r = Mono_Posix_SysconfName__SC_MEMORY_PROTECTION; return 0;}
5830 #endif /* ndef _SC_MEMORY_PROTECTION */
5831 #ifdef _SC_MESSAGE_PASSING
5832         if (x == _SC_MESSAGE_PASSING)
5833                 {*r = Mono_Posix_SysconfName__SC_MESSAGE_PASSING; return 0;}
5834 #endif /* ndef _SC_MESSAGE_PASSING */
5835 #ifdef _SC_MONOTONIC_CLOCK
5836         if (x == _SC_MONOTONIC_CLOCK)
5837                 {*r = Mono_Posix_SysconfName__SC_MONOTONIC_CLOCK; return 0;}
5838 #endif /* ndef _SC_MONOTONIC_CLOCK */
5839 #ifdef _SC_MQ_OPEN_MAX
5840         if (x == _SC_MQ_OPEN_MAX)
5841                 {*r = Mono_Posix_SysconfName__SC_MQ_OPEN_MAX; return 0;}
5842 #endif /* ndef _SC_MQ_OPEN_MAX */
5843 #ifdef _SC_MQ_PRIO_MAX
5844         if (x == _SC_MQ_PRIO_MAX)
5845                 {*r = Mono_Posix_SysconfName__SC_MQ_PRIO_MAX; return 0;}
5846 #endif /* ndef _SC_MQ_PRIO_MAX */
5847 #ifdef _SC_MULTI_PROCESS
5848         if (x == _SC_MULTI_PROCESS)
5849                 {*r = Mono_Posix_SysconfName__SC_MULTI_PROCESS; return 0;}
5850 #endif /* ndef _SC_MULTI_PROCESS */
5851 #ifdef _SC_NETWORKING
5852         if (x == _SC_NETWORKING)
5853                 {*r = Mono_Posix_SysconfName__SC_NETWORKING; return 0;}
5854 #endif /* ndef _SC_NETWORKING */
5855 #ifdef _SC_NGROUPS_MAX
5856         if (x == _SC_NGROUPS_MAX)
5857                 {*r = Mono_Posix_SysconfName__SC_NGROUPS_MAX; return 0;}
5858 #endif /* ndef _SC_NGROUPS_MAX */
5859 #ifdef _SC_NL_ARGMAX
5860         if (x == _SC_NL_ARGMAX)
5861                 {*r = Mono_Posix_SysconfName__SC_NL_ARGMAX; return 0;}
5862 #endif /* ndef _SC_NL_ARGMAX */
5863 #ifdef _SC_NL_LANGMAX
5864         if (x == _SC_NL_LANGMAX)
5865                 {*r = Mono_Posix_SysconfName__SC_NL_LANGMAX; return 0;}
5866 #endif /* ndef _SC_NL_LANGMAX */
5867 #ifdef _SC_NL_MSGMAX
5868         if (x == _SC_NL_MSGMAX)
5869                 {*r = Mono_Posix_SysconfName__SC_NL_MSGMAX; return 0;}
5870 #endif /* ndef _SC_NL_MSGMAX */
5871 #ifdef _SC_NL_NMAX
5872         if (x == _SC_NL_NMAX)
5873                 {*r = Mono_Posix_SysconfName__SC_NL_NMAX; return 0;}
5874 #endif /* ndef _SC_NL_NMAX */
5875 #ifdef _SC_NL_SETMAX
5876         if (x == _SC_NL_SETMAX)
5877                 {*r = Mono_Posix_SysconfName__SC_NL_SETMAX; return 0;}
5878 #endif /* ndef _SC_NL_SETMAX */
5879 #ifdef _SC_NL_TEXTMAX
5880         if (x == _SC_NL_TEXTMAX)
5881                 {*r = Mono_Posix_SysconfName__SC_NL_TEXTMAX; return 0;}
5882 #endif /* ndef _SC_NL_TEXTMAX */
5883 #ifdef _SC_NPROCESSORS_CONF
5884         if (x == _SC_NPROCESSORS_CONF)
5885                 {*r = Mono_Posix_SysconfName__SC_NPROCESSORS_CONF; return 0;}
5886 #endif /* ndef _SC_NPROCESSORS_CONF */
5887 #ifdef _SC_NPROCESSORS_ONLN
5888         if (x == _SC_NPROCESSORS_ONLN)
5889                 {*r = Mono_Posix_SysconfName__SC_NPROCESSORS_ONLN; return 0;}
5890 #endif /* ndef _SC_NPROCESSORS_ONLN */
5891 #ifdef _SC_NZERO
5892         if (x == _SC_NZERO)
5893                 {*r = Mono_Posix_SysconfName__SC_NZERO; return 0;}
5894 #endif /* ndef _SC_NZERO */
5895 #ifdef _SC_OPEN_MAX
5896         if (x == _SC_OPEN_MAX)
5897                 {*r = Mono_Posix_SysconfName__SC_OPEN_MAX; return 0;}
5898 #endif /* ndef _SC_OPEN_MAX */
5899 #ifdef _SC_PAGESIZE
5900         if (x == _SC_PAGESIZE)
5901                 {*r = Mono_Posix_SysconfName__SC_PAGESIZE; return 0;}
5902 #endif /* ndef _SC_PAGESIZE */
5903 #ifdef _SC_PASS_MAX
5904         if (x == _SC_PASS_MAX)
5905                 {*r = Mono_Posix_SysconfName__SC_PASS_MAX; return 0;}
5906 #endif /* ndef _SC_PASS_MAX */
5907 #ifdef _SC_PHYS_PAGES
5908         if (x == _SC_PHYS_PAGES)
5909                 {*r = Mono_Posix_SysconfName__SC_PHYS_PAGES; return 0;}
5910 #endif /* ndef _SC_PHYS_PAGES */
5911 #ifdef _SC_PII
5912         if (x == _SC_PII)
5913                 {*r = Mono_Posix_SysconfName__SC_PII; return 0;}
5914 #endif /* ndef _SC_PII */
5915 #ifdef _SC_PII_INTERNET
5916         if (x == _SC_PII_INTERNET)
5917                 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET; return 0;}
5918 #endif /* ndef _SC_PII_INTERNET */
5919 #ifdef _SC_PII_INTERNET_DGRAM
5920         if (x == _SC_PII_INTERNET_DGRAM)
5921                 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET_DGRAM; return 0;}
5922 #endif /* ndef _SC_PII_INTERNET_DGRAM */
5923 #ifdef _SC_PII_INTERNET_STREAM
5924         if (x == _SC_PII_INTERNET_STREAM)
5925                 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET_STREAM; return 0;}
5926 #endif /* ndef _SC_PII_INTERNET_STREAM */
5927 #ifdef _SC_PII_OSI
5928         if (x == _SC_PII_OSI)
5929                 {*r = Mono_Posix_SysconfName__SC_PII_OSI; return 0;}
5930 #endif /* ndef _SC_PII_OSI */
5931 #ifdef _SC_PII_OSI_CLTS
5932         if (x == _SC_PII_OSI_CLTS)
5933                 {*r = Mono_Posix_SysconfName__SC_PII_OSI_CLTS; return 0;}
5934 #endif /* ndef _SC_PII_OSI_CLTS */
5935 #ifdef _SC_PII_OSI_COTS
5936         if (x == _SC_PII_OSI_COTS)
5937                 {*r = Mono_Posix_SysconfName__SC_PII_OSI_COTS; return 0;}
5938 #endif /* ndef _SC_PII_OSI_COTS */
5939 #ifdef _SC_PII_OSI_M
5940         if (x == _SC_PII_OSI_M)
5941                 {*r = Mono_Posix_SysconfName__SC_PII_OSI_M; return 0;}
5942 #endif /* ndef _SC_PII_OSI_M */
5943 #ifdef _SC_PII_SOCKET
5944         if (x == _SC_PII_SOCKET)
5945                 {*r = Mono_Posix_SysconfName__SC_PII_SOCKET; return 0;}
5946 #endif /* ndef _SC_PII_SOCKET */
5947 #ifdef _SC_PII_XTI
5948         if (x == _SC_PII_XTI)
5949                 {*r = Mono_Posix_SysconfName__SC_PII_XTI; return 0;}
5950 #endif /* ndef _SC_PII_XTI */
5951 #ifdef _SC_PIPE
5952         if (x == _SC_PIPE)
5953                 {*r = Mono_Posix_SysconfName__SC_PIPE; return 0;}
5954 #endif /* ndef _SC_PIPE */
5955 #ifdef _SC_POLL
5956         if (x == _SC_POLL)
5957                 {*r = Mono_Posix_SysconfName__SC_POLL; return 0;}
5958 #endif /* ndef _SC_POLL */
5959 #ifdef _SC_PRIORITIZED_IO
5960         if (x == _SC_PRIORITIZED_IO)
5961                 {*r = Mono_Posix_SysconfName__SC_PRIORITIZED_IO; return 0;}
5962 #endif /* ndef _SC_PRIORITIZED_IO */
5963 #ifdef _SC_PRIORITY_SCHEDULING
5964         if (x == _SC_PRIORITY_SCHEDULING)
5965                 {*r = Mono_Posix_SysconfName__SC_PRIORITY_SCHEDULING; return 0;}
5966 #endif /* ndef _SC_PRIORITY_SCHEDULING */
5967 #ifdef _SC_READER_WRITER_LOCKS
5968         if (x == _SC_READER_WRITER_LOCKS)
5969                 {*r = Mono_Posix_SysconfName__SC_READER_WRITER_LOCKS; return 0;}
5970 #endif /* ndef _SC_READER_WRITER_LOCKS */
5971 #ifdef _SC_REALTIME_SIGNALS
5972         if (x == _SC_REALTIME_SIGNALS)
5973                 {*r = Mono_Posix_SysconfName__SC_REALTIME_SIGNALS; return 0;}
5974 #endif /* ndef _SC_REALTIME_SIGNALS */
5975 #ifdef _SC_REGEXP
5976         if (x == _SC_REGEXP)
5977                 {*r = Mono_Posix_SysconfName__SC_REGEXP; return 0;}
5978 #endif /* ndef _SC_REGEXP */
5979 #ifdef _SC_REGEX_VERSION
5980         if (x == _SC_REGEX_VERSION)
5981                 {*r = Mono_Posix_SysconfName__SC_REGEX_VERSION; return 0;}
5982 #endif /* ndef _SC_REGEX_VERSION */
5983 #ifdef _SC_RE_DUP_MAX
5984         if (x == _SC_RE_DUP_MAX)
5985                 {*r = Mono_Posix_SysconfName__SC_RE_DUP_MAX; return 0;}
5986 #endif /* ndef _SC_RE_DUP_MAX */
5987 #ifdef _SC_RTSIG_MAX
5988         if (x == _SC_RTSIG_MAX)
5989                 {*r = Mono_Posix_SysconfName__SC_RTSIG_MAX; return 0;}
5990 #endif /* ndef _SC_RTSIG_MAX */
5991 #ifdef _SC_SAVED_IDS
5992         if (x == _SC_SAVED_IDS)
5993                 {*r = Mono_Posix_SysconfName__SC_SAVED_IDS; return 0;}
5994 #endif /* ndef _SC_SAVED_IDS */
5995 #ifdef _SC_SCHAR_MAX
5996         if (x == _SC_SCHAR_MAX)
5997                 {*r = Mono_Posix_SysconfName__SC_SCHAR_MAX; return 0;}
5998 #endif /* ndef _SC_SCHAR_MAX */
5999 #ifdef _SC_SCHAR_MIN
6000         if (x == _SC_SCHAR_MIN)
6001                 {*r = Mono_Posix_SysconfName__SC_SCHAR_MIN; return 0;}
6002 #endif /* ndef _SC_SCHAR_MIN */
6003 #ifdef _SC_SELECT
6004         if (x == _SC_SELECT)
6005                 {*r = Mono_Posix_SysconfName__SC_SELECT; return 0;}
6006 #endif /* ndef _SC_SELECT */
6007 #ifdef _SC_SEMAPHORES
6008         if (x == _SC_SEMAPHORES)
6009                 {*r = Mono_Posix_SysconfName__SC_SEMAPHORES; return 0;}
6010 #endif /* ndef _SC_SEMAPHORES */
6011 #ifdef _SC_SEM_NSEMS_MAX
6012         if (x == _SC_SEM_NSEMS_MAX)
6013                 {*r = Mono_Posix_SysconfName__SC_SEM_NSEMS_MAX; return 0;}
6014 #endif /* ndef _SC_SEM_NSEMS_MAX */
6015 #ifdef _SC_SEM_VALUE_MAX
6016         if (x == _SC_SEM_VALUE_MAX)
6017                 {*r = Mono_Posix_SysconfName__SC_SEM_VALUE_MAX; return 0;}
6018 #endif /* ndef _SC_SEM_VALUE_MAX */
6019 #ifdef _SC_SHARED_MEMORY_OBJECTS
6020         if (x == _SC_SHARED_MEMORY_OBJECTS)
6021                 {*r = Mono_Posix_SysconfName__SC_SHARED_MEMORY_OBJECTS; return 0;}
6022 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
6023 #ifdef _SC_SHELL
6024         if (x == _SC_SHELL)
6025                 {*r = Mono_Posix_SysconfName__SC_SHELL; return 0;}
6026 #endif /* ndef _SC_SHELL */
6027 #ifdef _SC_SHRT_MAX
6028         if (x == _SC_SHRT_MAX)
6029                 {*r = Mono_Posix_SysconfName__SC_SHRT_MAX; return 0;}
6030 #endif /* ndef _SC_SHRT_MAX */
6031 #ifdef _SC_SHRT_MIN
6032         if (x == _SC_SHRT_MIN)
6033                 {*r = Mono_Posix_SysconfName__SC_SHRT_MIN; return 0;}
6034 #endif /* ndef _SC_SHRT_MIN */
6035 #ifdef _SC_SIGNALS
6036         if (x == _SC_SIGNALS)
6037                 {*r = Mono_Posix_SysconfName__SC_SIGNALS; return 0;}
6038 #endif /* ndef _SC_SIGNALS */
6039 #ifdef _SC_SIGQUEUE_MAX
6040         if (x == _SC_SIGQUEUE_MAX)
6041                 {*r = Mono_Posix_SysconfName__SC_SIGQUEUE_MAX; return 0;}
6042 #endif /* ndef _SC_SIGQUEUE_MAX */
6043 #ifdef _SC_SINGLE_PROCESS
6044         if (x == _SC_SINGLE_PROCESS)
6045                 {*r = Mono_Posix_SysconfName__SC_SINGLE_PROCESS; return 0;}
6046 #endif /* ndef _SC_SINGLE_PROCESS */
6047 #ifdef _SC_SPAWN
6048         if (x == _SC_SPAWN)
6049                 {*r = Mono_Posix_SysconfName__SC_SPAWN; return 0;}
6050 #endif /* ndef _SC_SPAWN */
6051 #ifdef _SC_SPIN_LOCKS
6052         if (x == _SC_SPIN_LOCKS)
6053                 {*r = Mono_Posix_SysconfName__SC_SPIN_LOCKS; return 0;}
6054 #endif /* ndef _SC_SPIN_LOCKS */
6055 #ifdef _SC_SPORADIC_SERVER
6056         if (x == _SC_SPORADIC_SERVER)
6057                 {*r = Mono_Posix_SysconfName__SC_SPORADIC_SERVER; return 0;}
6058 #endif /* ndef _SC_SPORADIC_SERVER */
6059 #ifdef _SC_SSIZE_MAX
6060         if (x == _SC_SSIZE_MAX)
6061                 {*r = Mono_Posix_SysconfName__SC_SSIZE_MAX; return 0;}
6062 #endif /* ndef _SC_SSIZE_MAX */
6063 #ifdef _SC_STREAMS
6064         if (x == _SC_STREAMS)
6065                 {*r = Mono_Posix_SysconfName__SC_STREAMS; return 0;}
6066 #endif /* ndef _SC_STREAMS */
6067 #ifdef _SC_STREAM_MAX
6068         if (x == _SC_STREAM_MAX)
6069                 {*r = Mono_Posix_SysconfName__SC_STREAM_MAX; return 0;}
6070 #endif /* ndef _SC_STREAM_MAX */
6071 #ifdef _SC_SYMLOOP_MAX
6072         if (x == _SC_SYMLOOP_MAX)
6073                 {*r = Mono_Posix_SysconfName__SC_SYMLOOP_MAX; return 0;}
6074 #endif /* ndef _SC_SYMLOOP_MAX */
6075 #ifdef _SC_SYNCHRONIZED_IO
6076         if (x == _SC_SYNCHRONIZED_IO)
6077                 {*r = Mono_Posix_SysconfName__SC_SYNCHRONIZED_IO; return 0;}
6078 #endif /* ndef _SC_SYNCHRONIZED_IO */
6079 #ifdef _SC_SYSTEM_DATABASE
6080         if (x == _SC_SYSTEM_DATABASE)
6081                 {*r = Mono_Posix_SysconfName__SC_SYSTEM_DATABASE; return 0;}
6082 #endif /* ndef _SC_SYSTEM_DATABASE */
6083 #ifdef _SC_SYSTEM_DATABASE_R
6084         if (x == _SC_SYSTEM_DATABASE_R)
6085                 {*r = Mono_Posix_SysconfName__SC_SYSTEM_DATABASE_R; return 0;}
6086 #endif /* ndef _SC_SYSTEM_DATABASE_R */
6087 #ifdef _SC_THREADS
6088         if (x == _SC_THREADS)
6089                 {*r = Mono_Posix_SysconfName__SC_THREADS; return 0;}
6090 #endif /* ndef _SC_THREADS */
6091 #ifdef _SC_THREAD_ATTR_STACKADDR
6092         if (x == _SC_THREAD_ATTR_STACKADDR)
6093                 {*r = Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKADDR; return 0;}
6094 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
6095 #ifdef _SC_THREAD_ATTR_STACKSIZE
6096         if (x == _SC_THREAD_ATTR_STACKSIZE)
6097                 {*r = Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKSIZE; return 0;}
6098 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
6099 #ifdef _SC_THREAD_CPUTIME
6100         if (x == _SC_THREAD_CPUTIME)
6101                 {*r = Mono_Posix_SysconfName__SC_THREAD_CPUTIME; return 0;}
6102 #endif /* ndef _SC_THREAD_CPUTIME */
6103 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
6104         if (x == _SC_THREAD_DESTRUCTOR_ITERATIONS)
6105                 {*r = Mono_Posix_SysconfName__SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
6106 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
6107 #ifdef _SC_THREAD_KEYS_MAX
6108         if (x == _SC_THREAD_KEYS_MAX)
6109                 {*r = Mono_Posix_SysconfName__SC_THREAD_KEYS_MAX; return 0;}
6110 #endif /* ndef _SC_THREAD_KEYS_MAX */
6111 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
6112         if (x == _SC_THREAD_PRIORITY_SCHEDULING)
6113                 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIORITY_SCHEDULING; return 0;}
6114 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
6115 #ifdef _SC_THREAD_PRIO_INHERIT
6116         if (x == _SC_THREAD_PRIO_INHERIT)
6117                 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIO_INHERIT; return 0;}
6118 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
6119 #ifdef _SC_THREAD_PRIO_PROTECT
6120         if (x == _SC_THREAD_PRIO_PROTECT)
6121                 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIO_PROTECT; return 0;}
6122 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
6123 #ifdef _SC_THREAD_PROCESS_SHARED
6124         if (x == _SC_THREAD_PROCESS_SHARED)
6125                 {*r = Mono_Posix_SysconfName__SC_THREAD_PROCESS_SHARED; return 0;}
6126 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
6127 #ifdef _SC_THREAD_SAFE_FUNCTIONS
6128         if (x == _SC_THREAD_SAFE_FUNCTIONS)
6129                 {*r = Mono_Posix_SysconfName__SC_THREAD_SAFE_FUNCTIONS; return 0;}
6130 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
6131 #ifdef _SC_THREAD_SPORADIC_SERVER
6132         if (x == _SC_THREAD_SPORADIC_SERVER)
6133                 {*r = Mono_Posix_SysconfName__SC_THREAD_SPORADIC_SERVER; return 0;}
6134 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
6135 #ifdef _SC_THREAD_STACK_MIN
6136         if (x == _SC_THREAD_STACK_MIN)
6137                 {*r = Mono_Posix_SysconfName__SC_THREAD_STACK_MIN; return 0;}
6138 #endif /* ndef _SC_THREAD_STACK_MIN */
6139 #ifdef _SC_THREAD_THREADS_MAX
6140         if (x == _SC_THREAD_THREADS_MAX)
6141                 {*r = Mono_Posix_SysconfName__SC_THREAD_THREADS_MAX; return 0;}
6142 #endif /* ndef _SC_THREAD_THREADS_MAX */
6143 #ifdef _SC_TIMEOUTS
6144         if (x == _SC_TIMEOUTS)
6145                 {*r = Mono_Posix_SysconfName__SC_TIMEOUTS; return 0;}
6146 #endif /* ndef _SC_TIMEOUTS */
6147 #ifdef _SC_TIMERS
6148         if (x == _SC_TIMERS)
6149                 {*r = Mono_Posix_SysconfName__SC_TIMERS; return 0;}
6150 #endif /* ndef _SC_TIMERS */
6151 #ifdef _SC_TIMER_MAX
6152         if (x == _SC_TIMER_MAX)
6153                 {*r = Mono_Posix_SysconfName__SC_TIMER_MAX; return 0;}
6154 #endif /* ndef _SC_TIMER_MAX */
6155 #ifdef _SC_TRACE
6156         if (x == _SC_TRACE)
6157                 {*r = Mono_Posix_SysconfName__SC_TRACE; return 0;}
6158 #endif /* ndef _SC_TRACE */
6159 #ifdef _SC_TRACE_EVENT_FILTER
6160         if (x == _SC_TRACE_EVENT_FILTER)
6161                 {*r = Mono_Posix_SysconfName__SC_TRACE_EVENT_FILTER; return 0;}
6162 #endif /* ndef _SC_TRACE_EVENT_FILTER */
6163 #ifdef _SC_TRACE_INHERIT
6164         if (x == _SC_TRACE_INHERIT)
6165                 {*r = Mono_Posix_SysconfName__SC_TRACE_INHERIT; return 0;}
6166 #endif /* ndef _SC_TRACE_INHERIT */
6167 #ifdef _SC_TRACE_LOG
6168         if (x == _SC_TRACE_LOG)
6169                 {*r = Mono_Posix_SysconfName__SC_TRACE_LOG; return 0;}
6170 #endif /* ndef _SC_TRACE_LOG */
6171 #ifdef _SC_TTY_NAME_MAX
6172         if (x == _SC_TTY_NAME_MAX)
6173                 {*r = Mono_Posix_SysconfName__SC_TTY_NAME_MAX; return 0;}
6174 #endif /* ndef _SC_TTY_NAME_MAX */
6175 #ifdef _SC_TYPED_MEMORY_OBJECTS
6176         if (x == _SC_TYPED_MEMORY_OBJECTS)
6177                 {*r = Mono_Posix_SysconfName__SC_TYPED_MEMORY_OBJECTS; return 0;}
6178 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
6179 #ifdef _SC_TZNAME_MAX
6180         if (x == _SC_TZNAME_MAX)
6181                 {*r = Mono_Posix_SysconfName__SC_TZNAME_MAX; return 0;}
6182 #endif /* ndef _SC_TZNAME_MAX */
6183 #ifdef _SC_T_IOV_MAX
6184         if (x == _SC_T_IOV_MAX)
6185                 {*r = Mono_Posix_SysconfName__SC_T_IOV_MAX; return 0;}
6186 #endif /* ndef _SC_T_IOV_MAX */
6187 #ifdef _SC_UCHAR_MAX
6188         if (x == _SC_UCHAR_MAX)
6189                 {*r = Mono_Posix_SysconfName__SC_UCHAR_MAX; return 0;}
6190 #endif /* ndef _SC_UCHAR_MAX */
6191 #ifdef _SC_UINT_MAX
6192         if (x == _SC_UINT_MAX)
6193                 {*r = Mono_Posix_SysconfName__SC_UINT_MAX; return 0;}
6194 #endif /* ndef _SC_UINT_MAX */
6195 #ifdef _SC_UIO_MAXIOV
6196         if (x == _SC_UIO_MAXIOV)
6197                 {*r = Mono_Posix_SysconfName__SC_UIO_MAXIOV; return 0;}
6198 #endif /* ndef _SC_UIO_MAXIOV */
6199 #ifdef _SC_ULONG_MAX
6200         if (x == _SC_ULONG_MAX)
6201                 {*r = Mono_Posix_SysconfName__SC_ULONG_MAX; return 0;}
6202 #endif /* ndef _SC_ULONG_MAX */
6203 #ifdef _SC_USER_GROUPS
6204         if (x == _SC_USER_GROUPS)
6205                 {*r = Mono_Posix_SysconfName__SC_USER_GROUPS; return 0;}
6206 #endif /* ndef _SC_USER_GROUPS */
6207 #ifdef _SC_USER_GROUPS_R
6208         if (x == _SC_USER_GROUPS_R)
6209                 {*r = Mono_Posix_SysconfName__SC_USER_GROUPS_R; return 0;}
6210 #endif /* ndef _SC_USER_GROUPS_R */
6211 #ifdef _SC_USHRT_MAX
6212         if (x == _SC_USHRT_MAX)
6213                 {*r = Mono_Posix_SysconfName__SC_USHRT_MAX; return 0;}
6214 #endif /* ndef _SC_USHRT_MAX */
6215 #ifdef _SC_V6_ILP32_OFF32
6216         if (x == _SC_V6_ILP32_OFF32)
6217                 {*r = Mono_Posix_SysconfName__SC_V6_ILP32_OFF32; return 0;}
6218 #endif /* ndef _SC_V6_ILP32_OFF32 */
6219 #ifdef _SC_V6_ILP32_OFFBIG
6220         if (x == _SC_V6_ILP32_OFFBIG)
6221                 {*r = Mono_Posix_SysconfName__SC_V6_ILP32_OFFBIG; return 0;}
6222 #endif /* ndef _SC_V6_ILP32_OFFBIG */
6223 #ifdef _SC_V6_LP64_OFF64
6224         if (x == _SC_V6_LP64_OFF64)
6225                 {*r = Mono_Posix_SysconfName__SC_V6_LP64_OFF64; return 0;}
6226 #endif /* ndef _SC_V6_LP64_OFF64 */
6227 #ifdef _SC_V6_LPBIG_OFFBIG
6228         if (x == _SC_V6_LPBIG_OFFBIG)
6229                 {*r = Mono_Posix_SysconfName__SC_V6_LPBIG_OFFBIG; return 0;}
6230 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
6231 #ifdef _SC_VERSION
6232         if (x == _SC_VERSION)
6233                 {*r = Mono_Posix_SysconfName__SC_VERSION; return 0;}
6234 #endif /* ndef _SC_VERSION */
6235 #ifdef _SC_WORD_BIT
6236         if (x == _SC_WORD_BIT)
6237                 {*r = Mono_Posix_SysconfName__SC_WORD_BIT; return 0;}
6238 #endif /* ndef _SC_WORD_BIT */
6239 #ifdef _SC_XBS5_ILP32_OFF32
6240         if (x == _SC_XBS5_ILP32_OFF32)
6241                 {*r = Mono_Posix_SysconfName__SC_XBS5_ILP32_OFF32; return 0;}
6242 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
6243 #ifdef _SC_XBS5_ILP32_OFFBIG
6244         if (x == _SC_XBS5_ILP32_OFFBIG)
6245                 {*r = Mono_Posix_SysconfName__SC_XBS5_ILP32_OFFBIG; return 0;}
6246 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
6247 #ifdef _SC_XBS5_LP64_OFF64
6248         if (x == _SC_XBS5_LP64_OFF64)
6249                 {*r = Mono_Posix_SysconfName__SC_XBS5_LP64_OFF64; return 0;}
6250 #endif /* ndef _SC_XBS5_LP64_OFF64 */
6251 #ifdef _SC_XBS5_LPBIG_OFFBIG
6252         if (x == _SC_XBS5_LPBIG_OFFBIG)
6253                 {*r = Mono_Posix_SysconfName__SC_XBS5_LPBIG_OFFBIG; return 0;}
6254 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
6255 #ifdef _SC_XOPEN_CRYPT
6256         if (x == _SC_XOPEN_CRYPT)
6257                 {*r = Mono_Posix_SysconfName__SC_XOPEN_CRYPT; return 0;}
6258 #endif /* ndef _SC_XOPEN_CRYPT */
6259 #ifdef _SC_XOPEN_ENH_I18N
6260         if (x == _SC_XOPEN_ENH_I18N)
6261                 {*r = Mono_Posix_SysconfName__SC_XOPEN_ENH_I18N; return 0;}
6262 #endif /* ndef _SC_XOPEN_ENH_I18N */
6263 #ifdef _SC_XOPEN_LEGACY
6264         if (x == _SC_XOPEN_LEGACY)
6265                 {*r = Mono_Posix_SysconfName__SC_XOPEN_LEGACY; return 0;}
6266 #endif /* ndef _SC_XOPEN_LEGACY */
6267 #ifdef _SC_XOPEN_REALTIME
6268         if (x == _SC_XOPEN_REALTIME)
6269                 {*r = Mono_Posix_SysconfName__SC_XOPEN_REALTIME; return 0;}
6270 #endif /* ndef _SC_XOPEN_REALTIME */
6271 #ifdef _SC_XOPEN_REALTIME_THREADS
6272         if (x == _SC_XOPEN_REALTIME_THREADS)
6273                 {*r = Mono_Posix_SysconfName__SC_XOPEN_REALTIME_THREADS; return 0;}
6274 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
6275 #ifdef _SC_XOPEN_SHM
6276         if (x == _SC_XOPEN_SHM)
6277                 {*r = Mono_Posix_SysconfName__SC_XOPEN_SHM; return 0;}
6278 #endif /* ndef _SC_XOPEN_SHM */
6279 #ifdef _SC_XOPEN_UNIX
6280         if (x == _SC_XOPEN_UNIX)
6281                 {*r = Mono_Posix_SysconfName__SC_XOPEN_UNIX; return 0;}
6282 #endif /* ndef _SC_XOPEN_UNIX */
6283 #ifdef _SC_XOPEN_VERSION
6284         if (x == _SC_XOPEN_VERSION)
6285                 {*r = Mono_Posix_SysconfName__SC_XOPEN_VERSION; return 0;}
6286 #endif /* ndef _SC_XOPEN_VERSION */
6287 #ifdef _SC_XOPEN_XCU_VERSION
6288         if (x == _SC_XOPEN_XCU_VERSION)
6289                 {*r = Mono_Posix_SysconfName__SC_XOPEN_XCU_VERSION; return 0;}
6290 #endif /* ndef _SC_XOPEN_XCU_VERSION */
6291 #ifdef _SC_XOPEN_XPG2
6292         if (x == _SC_XOPEN_XPG2)
6293                 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG2; return 0;}
6294 #endif /* ndef _SC_XOPEN_XPG2 */
6295 #ifdef _SC_XOPEN_XPG3
6296         if (x == _SC_XOPEN_XPG3)
6297                 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG3; return 0;}
6298 #endif /* ndef _SC_XOPEN_XPG3 */
6299 #ifdef _SC_XOPEN_XPG4
6300         if (x == _SC_XOPEN_XPG4)
6301                 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG4; return 0;}
6302 #endif /* ndef _SC_XOPEN_XPG4 */
6303         errno = EINVAL; return -1;
6304 }
6305
6306 int Mono_Posix_FromSyslogFacility (int x, int *r)
6307 {
6308         *r = 0;
6309         if (x == Mono_Posix_SyslogFacility_LOG_AUTH)
6310 #ifdef LOG_AUTH
6311                 {*r = LOG_AUTH; return 0;}
6312 #else /* def LOG_AUTH */
6313                 {errno = EINVAL; return -1;}
6314 #endif /* ndef LOG_AUTH */
6315         if (x == Mono_Posix_SyslogFacility_LOG_AUTHPRIV)
6316 #ifdef LOG_AUTHPRIV
6317                 {*r = LOG_AUTHPRIV; return 0;}
6318 #else /* def LOG_AUTHPRIV */
6319                 {errno = EINVAL; return -1;}
6320 #endif /* ndef LOG_AUTHPRIV */
6321         if (x == Mono_Posix_SyslogFacility_LOG_CRON)
6322 #ifdef LOG_CRON
6323                 {*r = LOG_CRON; return 0;}
6324 #else /* def LOG_CRON */
6325                 {errno = EINVAL; return -1;}
6326 #endif /* ndef LOG_CRON */
6327         if (x == Mono_Posix_SyslogFacility_LOG_DAEMON)
6328 #ifdef LOG_DAEMON
6329                 {*r = LOG_DAEMON; return 0;}
6330 #else /* def LOG_DAEMON */
6331                 {errno = EINVAL; return -1;}
6332 #endif /* ndef LOG_DAEMON */
6333         if (x == Mono_Posix_SyslogFacility_LOG_FTP)
6334 #ifdef LOG_FTP
6335                 {*r = LOG_FTP; return 0;}
6336 #else /* def LOG_FTP */
6337                 {errno = EINVAL; return -1;}
6338 #endif /* ndef LOG_FTP */
6339         if (x == Mono_Posix_SyslogFacility_LOG_KERN)
6340 #ifdef LOG_KERN
6341                 {*r = LOG_KERN; return 0;}
6342 #else /* def LOG_KERN */
6343                 {errno = EINVAL; return -1;}
6344 #endif /* ndef LOG_KERN */
6345         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL0)
6346 #ifdef LOG_LOCAL0
6347                 {*r = LOG_LOCAL0; return 0;}
6348 #else /* def LOG_LOCAL0 */
6349                 {errno = EINVAL; return -1;}
6350 #endif /* ndef LOG_LOCAL0 */
6351         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL1)
6352 #ifdef LOG_LOCAL1
6353                 {*r = LOG_LOCAL1; return 0;}
6354 #else /* def LOG_LOCAL1 */
6355                 {errno = EINVAL; return -1;}
6356 #endif /* ndef LOG_LOCAL1 */
6357         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL2)
6358 #ifdef LOG_LOCAL2
6359                 {*r = LOG_LOCAL2; return 0;}
6360 #else /* def LOG_LOCAL2 */
6361                 {errno = EINVAL; return -1;}
6362 #endif /* ndef LOG_LOCAL2 */
6363         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL3)
6364 #ifdef LOG_LOCAL3
6365                 {*r = LOG_LOCAL3; return 0;}
6366 #else /* def LOG_LOCAL3 */
6367                 {errno = EINVAL; return -1;}
6368 #endif /* ndef LOG_LOCAL3 */
6369         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL4)
6370 #ifdef LOG_LOCAL4
6371                 {*r = LOG_LOCAL4; return 0;}
6372 #else /* def LOG_LOCAL4 */
6373                 {errno = EINVAL; return -1;}
6374 #endif /* ndef LOG_LOCAL4 */
6375         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL5)
6376 #ifdef LOG_LOCAL5
6377                 {*r = LOG_LOCAL5; return 0;}
6378 #else /* def LOG_LOCAL5 */
6379                 {errno = EINVAL; return -1;}
6380 #endif /* ndef LOG_LOCAL5 */
6381         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL6)
6382 #ifdef LOG_LOCAL6
6383                 {*r = LOG_LOCAL6; return 0;}
6384 #else /* def LOG_LOCAL6 */
6385                 {errno = EINVAL; return -1;}
6386 #endif /* ndef LOG_LOCAL6 */
6387         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL7)
6388 #ifdef LOG_LOCAL7
6389                 {*r = LOG_LOCAL7; return 0;}
6390 #else /* def LOG_LOCAL7 */
6391                 {errno = EINVAL; return -1;}
6392 #endif /* ndef LOG_LOCAL7 */
6393         if (x == Mono_Posix_SyslogFacility_LOG_LPR)
6394 #ifdef LOG_LPR
6395                 {*r = LOG_LPR; return 0;}
6396 #else /* def LOG_LPR */
6397                 {errno = EINVAL; return -1;}
6398 #endif /* ndef LOG_LPR */
6399         if (x == Mono_Posix_SyslogFacility_LOG_MAIL)
6400 #ifdef LOG_MAIL
6401                 {*r = LOG_MAIL; return 0;}
6402 #else /* def LOG_MAIL */
6403                 {errno = EINVAL; return -1;}
6404 #endif /* ndef LOG_MAIL */
6405         if (x == Mono_Posix_SyslogFacility_LOG_NEWS)
6406 #ifdef LOG_NEWS
6407                 {*r = LOG_NEWS; return 0;}
6408 #else /* def LOG_NEWS */
6409                 {errno = EINVAL; return -1;}
6410 #endif /* ndef LOG_NEWS */
6411         if (x == Mono_Posix_SyslogFacility_LOG_SYSLOG)
6412 #ifdef LOG_SYSLOG
6413                 {*r = LOG_SYSLOG; return 0;}
6414 #else /* def LOG_SYSLOG */
6415                 {errno = EINVAL; return -1;}
6416 #endif /* ndef LOG_SYSLOG */
6417         if (x == Mono_Posix_SyslogFacility_LOG_USER)
6418 #ifdef LOG_USER
6419                 {*r = LOG_USER; return 0;}
6420 #else /* def LOG_USER */
6421                 {errno = EINVAL; return -1;}
6422 #endif /* ndef LOG_USER */
6423         if (x == Mono_Posix_SyslogFacility_LOG_UUCP)
6424 #ifdef LOG_UUCP
6425                 {*r = LOG_UUCP; return 0;}
6426 #else /* def LOG_UUCP */
6427                 {errno = EINVAL; return -1;}
6428 #endif /* ndef LOG_UUCP */
6429         if (x == 0)
6430                 return 0;
6431         errno = EINVAL; return -1;
6432 }
6433
6434 int Mono_Posix_ToSyslogFacility (int x, int *r)
6435 {
6436         *r = 0;
6437         if (x == 0)
6438                 return 0;
6439 #ifdef LOG_AUTH
6440         if (x == LOG_AUTH)
6441                 {*r = Mono_Posix_SyslogFacility_LOG_AUTH; return 0;}
6442 #endif /* ndef LOG_AUTH */
6443 #ifdef LOG_AUTHPRIV
6444         if (x == LOG_AUTHPRIV)
6445                 {*r = Mono_Posix_SyslogFacility_LOG_AUTHPRIV; return 0;}
6446 #endif /* ndef LOG_AUTHPRIV */
6447 #ifdef LOG_CRON
6448         if (x == LOG_CRON)
6449                 {*r = Mono_Posix_SyslogFacility_LOG_CRON; return 0;}
6450 #endif /* ndef LOG_CRON */
6451 #ifdef LOG_DAEMON
6452         if (x == LOG_DAEMON)
6453                 {*r = Mono_Posix_SyslogFacility_LOG_DAEMON; return 0;}
6454 #endif /* ndef LOG_DAEMON */
6455 #ifdef LOG_FTP
6456         if (x == LOG_FTP)
6457                 {*r = Mono_Posix_SyslogFacility_LOG_FTP; return 0;}
6458 #endif /* ndef LOG_FTP */
6459 #ifdef LOG_KERN
6460         if (x == LOG_KERN)
6461                 {*r = Mono_Posix_SyslogFacility_LOG_KERN; return 0;}
6462 #endif /* ndef LOG_KERN */
6463 #ifdef LOG_LOCAL0
6464         if (x == LOG_LOCAL0)
6465                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL0; return 0;}
6466 #endif /* ndef LOG_LOCAL0 */
6467 #ifdef LOG_LOCAL1
6468         if (x == LOG_LOCAL1)
6469                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL1; return 0;}
6470 #endif /* ndef LOG_LOCAL1 */
6471 #ifdef LOG_LOCAL2
6472         if (x == LOG_LOCAL2)
6473                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL2; return 0;}
6474 #endif /* ndef LOG_LOCAL2 */
6475 #ifdef LOG_LOCAL3
6476         if (x == LOG_LOCAL3)
6477                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL3; return 0;}
6478 #endif /* ndef LOG_LOCAL3 */
6479 #ifdef LOG_LOCAL4
6480         if (x == LOG_LOCAL4)
6481                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL4; return 0;}
6482 #endif /* ndef LOG_LOCAL4 */
6483 #ifdef LOG_LOCAL5
6484         if (x == LOG_LOCAL5)
6485                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL5; return 0;}
6486 #endif /* ndef LOG_LOCAL5 */
6487 #ifdef LOG_LOCAL6
6488         if (x == LOG_LOCAL6)
6489                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL6; return 0;}
6490 #endif /* ndef LOG_LOCAL6 */
6491 #ifdef LOG_LOCAL7
6492         if (x == LOG_LOCAL7)
6493                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL7; return 0;}
6494 #endif /* ndef LOG_LOCAL7 */
6495 #ifdef LOG_LPR
6496         if (x == LOG_LPR)
6497                 {*r = Mono_Posix_SyslogFacility_LOG_LPR; return 0;}
6498 #endif /* ndef LOG_LPR */
6499 #ifdef LOG_MAIL
6500         if (x == LOG_MAIL)
6501                 {*r = Mono_Posix_SyslogFacility_LOG_MAIL; return 0;}
6502 #endif /* ndef LOG_MAIL */
6503 #ifdef LOG_NEWS
6504         if (x == LOG_NEWS)
6505                 {*r = Mono_Posix_SyslogFacility_LOG_NEWS; return 0;}
6506 #endif /* ndef LOG_NEWS */
6507 #ifdef LOG_SYSLOG
6508         if (x == LOG_SYSLOG)
6509                 {*r = Mono_Posix_SyslogFacility_LOG_SYSLOG; return 0;}
6510 #endif /* ndef LOG_SYSLOG */
6511 #ifdef LOG_USER
6512         if (x == LOG_USER)
6513                 {*r = Mono_Posix_SyslogFacility_LOG_USER; return 0;}
6514 #endif /* ndef LOG_USER */
6515 #ifdef LOG_UUCP
6516         if (x == LOG_UUCP)
6517                 {*r = Mono_Posix_SyslogFacility_LOG_UUCP; return 0;}
6518 #endif /* ndef LOG_UUCP */
6519         errno = EINVAL; return -1;
6520 }
6521
6522 int Mono_Posix_FromSyslogLevel (int x, int *r)
6523 {
6524         *r = 0;
6525         if (x == Mono_Posix_SyslogLevel_LOG_ALERT)
6526 #ifdef LOG_ALERT
6527                 {*r = LOG_ALERT; return 0;}
6528 #else /* def LOG_ALERT */
6529                 {errno = EINVAL; return -1;}
6530 #endif /* ndef LOG_ALERT */
6531         if (x == Mono_Posix_SyslogLevel_LOG_CRIT)
6532 #ifdef LOG_CRIT
6533                 {*r = LOG_CRIT; return 0;}
6534 #else /* def LOG_CRIT */
6535                 {errno = EINVAL; return -1;}
6536 #endif /* ndef LOG_CRIT */
6537         if (x == Mono_Posix_SyslogLevel_LOG_DEBUG)
6538 #ifdef LOG_DEBUG
6539                 {*r = LOG_DEBUG; return 0;}
6540 #else /* def LOG_DEBUG */
6541                 {errno = EINVAL; return -1;}
6542 #endif /* ndef LOG_DEBUG */
6543         if (x == Mono_Posix_SyslogLevel_LOG_EMERG)
6544 #ifdef LOG_EMERG
6545                 {*r = LOG_EMERG; return 0;}
6546 #else /* def LOG_EMERG */
6547                 {errno = EINVAL; return -1;}
6548 #endif /* ndef LOG_EMERG */
6549         if (x == Mono_Posix_SyslogLevel_LOG_ERR)
6550 #ifdef LOG_ERR
6551                 {*r = LOG_ERR; return 0;}
6552 #else /* def LOG_ERR */
6553                 {errno = EINVAL; return -1;}
6554 #endif /* ndef LOG_ERR */
6555         if (x == Mono_Posix_SyslogLevel_LOG_INFO)
6556 #ifdef LOG_INFO
6557                 {*r = LOG_INFO; return 0;}
6558 #else /* def LOG_INFO */
6559                 {errno = EINVAL; return -1;}
6560 #endif /* ndef LOG_INFO */
6561         if (x == Mono_Posix_SyslogLevel_LOG_NOTICE)
6562 #ifdef LOG_NOTICE
6563                 {*r = LOG_NOTICE; return 0;}
6564 #else /* def LOG_NOTICE */
6565                 {errno = EINVAL; return -1;}
6566 #endif /* ndef LOG_NOTICE */
6567         if (x == Mono_Posix_SyslogLevel_LOG_WARNING)
6568 #ifdef LOG_WARNING
6569                 {*r = LOG_WARNING; return 0;}
6570 #else /* def LOG_WARNING */
6571                 {errno = EINVAL; return -1;}
6572 #endif /* ndef LOG_WARNING */
6573         if (x == 0)
6574                 return 0;
6575         errno = EINVAL; return -1;
6576 }
6577
6578 int Mono_Posix_ToSyslogLevel (int x, int *r)
6579 {
6580         *r = 0;
6581         if (x == 0)
6582                 return 0;
6583 #ifdef LOG_ALERT
6584         if (x == LOG_ALERT)
6585                 {*r = Mono_Posix_SyslogLevel_LOG_ALERT; return 0;}
6586 #endif /* ndef LOG_ALERT */
6587 #ifdef LOG_CRIT
6588         if (x == LOG_CRIT)
6589                 {*r = Mono_Posix_SyslogLevel_LOG_CRIT; return 0;}
6590 #endif /* ndef LOG_CRIT */
6591 #ifdef LOG_DEBUG
6592         if (x == LOG_DEBUG)
6593                 {*r = Mono_Posix_SyslogLevel_LOG_DEBUG; return 0;}
6594 #endif /* ndef LOG_DEBUG */
6595 #ifdef LOG_EMERG
6596         if (x == LOG_EMERG)
6597                 {*r = Mono_Posix_SyslogLevel_LOG_EMERG; return 0;}
6598 #endif /* ndef LOG_EMERG */
6599 #ifdef LOG_ERR
6600         if (x == LOG_ERR)
6601                 {*r = Mono_Posix_SyslogLevel_LOG_ERR; return 0;}
6602 #endif /* ndef LOG_ERR */
6603 #ifdef LOG_INFO
6604         if (x == LOG_INFO)
6605                 {*r = Mono_Posix_SyslogLevel_LOG_INFO; return 0;}
6606 #endif /* ndef LOG_INFO */
6607 #ifdef LOG_NOTICE
6608         if (x == LOG_NOTICE)
6609                 {*r = Mono_Posix_SyslogLevel_LOG_NOTICE; return 0;}
6610 #endif /* ndef LOG_NOTICE */
6611 #ifdef LOG_WARNING
6612         if (x == LOG_WARNING)
6613                 {*r = Mono_Posix_SyslogLevel_LOG_WARNING; return 0;}
6614 #endif /* ndef LOG_WARNING */
6615         errno = EINVAL; return -1;
6616 }
6617
6618 int Mono_Posix_FromSyslogOptions (int x, int *r)
6619 {
6620         *r = 0;
6621         if ((x & Mono_Posix_SyslogOptions_LOG_CONS) == Mono_Posix_SyslogOptions_LOG_CONS)
6622 #ifdef LOG_CONS
6623                 *r |= LOG_CONS;
6624 #else /* def LOG_CONS */
6625                 {errno = EINVAL; return -1;}
6626 #endif /* ndef LOG_CONS */
6627         if ((x & Mono_Posix_SyslogOptions_LOG_NDELAY) == Mono_Posix_SyslogOptions_LOG_NDELAY)
6628 #ifdef LOG_NDELAY
6629                 *r |= LOG_NDELAY;
6630 #else /* def LOG_NDELAY */
6631                 {errno = EINVAL; return -1;}
6632 #endif /* ndef LOG_NDELAY */
6633         if ((x & Mono_Posix_SyslogOptions_LOG_NOWAIT) == Mono_Posix_SyslogOptions_LOG_NOWAIT)
6634 #ifdef LOG_NOWAIT
6635                 *r |= LOG_NOWAIT;
6636 #else /* def LOG_NOWAIT */
6637                 {errno = EINVAL; return -1;}
6638 #endif /* ndef LOG_NOWAIT */
6639         if ((x & Mono_Posix_SyslogOptions_LOG_ODELAY) == Mono_Posix_SyslogOptions_LOG_ODELAY)
6640 #ifdef LOG_ODELAY
6641                 *r |= LOG_ODELAY;
6642 #else /* def LOG_ODELAY */
6643                 {errno = EINVAL; return -1;}
6644 #endif /* ndef LOG_ODELAY */
6645         if ((x & Mono_Posix_SyslogOptions_LOG_PERROR) == Mono_Posix_SyslogOptions_LOG_PERROR)
6646 #ifdef LOG_PERROR
6647                 *r |= LOG_PERROR;
6648 #else /* def LOG_PERROR */
6649                 {errno = EINVAL; return -1;}
6650 #endif /* ndef LOG_PERROR */
6651         if ((x & Mono_Posix_SyslogOptions_LOG_PID) == Mono_Posix_SyslogOptions_LOG_PID)
6652 #ifdef LOG_PID
6653                 *r |= LOG_PID;
6654 #else /* def LOG_PID */
6655                 {errno = EINVAL; return -1;}
6656 #endif /* ndef LOG_PID */
6657         if (x == 0)
6658                 return 0;
6659         return 0;
6660 }
6661
6662 int Mono_Posix_ToSyslogOptions (int x, int *r)
6663 {
6664         *r = 0;
6665         if (x == 0)
6666                 return 0;
6667 #ifdef LOG_CONS
6668         if ((x & LOG_CONS) == LOG_CONS)
6669                 *r |= Mono_Posix_SyslogOptions_LOG_CONS;
6670 #endif /* ndef LOG_CONS */
6671 #ifdef LOG_NDELAY
6672         if ((x & LOG_NDELAY) == LOG_NDELAY)
6673                 *r |= Mono_Posix_SyslogOptions_LOG_NDELAY;
6674 #endif /* ndef LOG_NDELAY */
6675 #ifdef LOG_NOWAIT
6676         if ((x & LOG_NOWAIT) == LOG_NOWAIT)
6677                 *r |= Mono_Posix_SyslogOptions_LOG_NOWAIT;
6678 #endif /* ndef LOG_NOWAIT */
6679 #ifdef LOG_ODELAY
6680         if ((x & LOG_ODELAY) == LOG_ODELAY)
6681                 *r |= Mono_Posix_SyslogOptions_LOG_ODELAY;
6682 #endif /* ndef LOG_ODELAY */
6683 #ifdef LOG_PERROR
6684         if ((x & LOG_PERROR) == LOG_PERROR)
6685                 *r |= Mono_Posix_SyslogOptions_LOG_PERROR;
6686 #endif /* ndef LOG_PERROR */
6687 #ifdef LOG_PID
6688         if ((x & LOG_PID) == LOG_PID)
6689                 *r |= Mono_Posix_SyslogOptions_LOG_PID;
6690 #endif /* ndef LOG_PID */
6691         return 0;
6692 }
6693
6694 int
6695 Mono_Posix_FromTimeval (struct Mono_Posix_Timeval *from, struct timeval *to)
6696 {
6697         _cnm_return_val_if_overflow (time_t, from->tv_sec, -1);
6698         _cnm_return_val_if_overflow (suseconds_t, from->tv_usec, -1);
6699
6700         memset (to, 0, sizeof(*to));
6701
6702         to->tv_sec  = from->tv_sec;
6703         to->tv_usec = from->tv_usec;
6704
6705         return 0;
6706 }
6707
6708
6709 int
6710 Mono_Posix_ToTimeval (struct timeval *from, struct Mono_Posix_Timeval *to)
6711 {
6712         _cnm_return_val_if_overflow (gint64, from->tv_sec, -1);
6713         _cnm_return_val_if_overflow (gint64, from->tv_usec, -1);
6714
6715         memset (to, 0, sizeof(*to));
6716
6717         to->tv_sec  = from->tv_sec;
6718         to->tv_usec = from->tv_usec;
6719
6720         return 0;
6721 }
6722
6723
6724 int
6725 Mono_Posix_FromTimezone (struct Mono_Posix_Timezone *from, struct timezone *to)
6726 {
6727         _cnm_return_val_if_overflow (int, from->tz_minuteswest, -1);
6728         _cnm_return_val_if_overflow (int, from->tz_dsttime, -1);
6729
6730         memset (to, 0, sizeof(*to));
6731
6732         to->tz_minuteswest = from->tz_minuteswest;
6733         to->tz_dsttime     = from->tz_dsttime;
6734
6735         return 0;
6736 }
6737
6738
6739 int
6740 Mono_Posix_ToTimezone (struct timezone *from, struct Mono_Posix_Timezone *to)
6741 {
6742         _cnm_return_val_if_overflow (int, from->tz_minuteswest, -1);
6743         _cnm_return_val_if_overflow (int, from->tz_dsttime, -1);
6744
6745         memset (to, 0, sizeof(*to));
6746
6747         to->tz_minuteswest = from->tz_minuteswest;
6748         to->tz_dsttime     = from->tz_dsttime;
6749
6750         return 0;
6751 }
6752
6753
6754 int Mono_Posix_FromWaitOptions (int x, int *r)
6755 {
6756         *r = 0;
6757         if ((x & Mono_Posix_WaitOptions_WNOHANG) == Mono_Posix_WaitOptions_WNOHANG)
6758 #ifdef WNOHANG
6759                 *r |= WNOHANG;
6760 #else /* def WNOHANG */
6761                 {errno = EINVAL; return -1;}
6762 #endif /* ndef WNOHANG */
6763         if ((x & Mono_Posix_WaitOptions_WUNTRACED) == Mono_Posix_WaitOptions_WUNTRACED)
6764 #ifdef WUNTRACED
6765                 *r |= WUNTRACED;
6766 #else /* def WUNTRACED */
6767                 {errno = EINVAL; return -1;}
6768 #endif /* ndef WUNTRACED */
6769         if (x == 0)
6770                 return 0;
6771         return 0;
6772 }
6773
6774 int Mono_Posix_ToWaitOptions (int x, int *r)
6775 {
6776         *r = 0;
6777         if (x == 0)
6778                 return 0;
6779 #ifdef WNOHANG
6780         if ((x & WNOHANG) == WNOHANG)
6781                 *r |= Mono_Posix_WaitOptions_WNOHANG;
6782 #endif /* ndef WNOHANG */
6783 #ifdef WUNTRACED
6784         if ((x & WUNTRACED) == WUNTRACED)
6785                 *r |= Mono_Posix_WaitOptions_WUNTRACED;
6786 #endif /* ndef WUNTRACED */
6787         return 0;
6788 }
6789
6790 int Mono_Posix_FromXattrFlags (int x, int *r)
6791 {
6792         *r = 0;
6793         if ((x & Mono_Posix_XattrFlags_XATTR_AUTO) == Mono_Posix_XattrFlags_XATTR_AUTO)
6794 #ifdef XATTR_AUTO
6795                 *r |= XATTR_AUTO;
6796 #else /* def XATTR_AUTO */
6797                 {errno = EINVAL; return -1;}
6798 #endif /* ndef XATTR_AUTO */
6799         if ((x & Mono_Posix_XattrFlags_XATTR_CREATE) == Mono_Posix_XattrFlags_XATTR_CREATE)
6800 #ifdef XATTR_CREATE
6801                 *r |= XATTR_CREATE;
6802 #else /* def XATTR_CREATE */
6803                 {errno = EINVAL; return -1;}
6804 #endif /* ndef XATTR_CREATE */
6805         if ((x & Mono_Posix_XattrFlags_XATTR_REPLACE) == Mono_Posix_XattrFlags_XATTR_REPLACE)
6806 #ifdef XATTR_REPLACE
6807                 *r |= XATTR_REPLACE;
6808 #else /* def XATTR_REPLACE */
6809                 {errno = EINVAL; return -1;}
6810 #endif /* ndef XATTR_REPLACE */
6811         if (x == 0)
6812                 return 0;
6813         return 0;
6814 }
6815
6816 int Mono_Posix_ToXattrFlags (int x, int *r)
6817 {
6818         *r = 0;
6819         if (x == 0)
6820                 return 0;
6821 #ifdef XATTR_AUTO
6822         if ((x & XATTR_AUTO) == XATTR_AUTO)
6823                 *r |= Mono_Posix_XattrFlags_XATTR_AUTO;
6824 #endif /* ndef XATTR_AUTO */
6825 #ifdef XATTR_CREATE
6826         if ((x & XATTR_CREATE) == XATTR_CREATE)
6827                 *r |= Mono_Posix_XattrFlags_XATTR_CREATE;
6828 #endif /* ndef XATTR_CREATE */
6829 #ifdef XATTR_REPLACE
6830         if ((x & XATTR_REPLACE) == XATTR_REPLACE)
6831                 *r |= Mono_Posix_XattrFlags_XATTR_REPLACE;
6832 #endif /* ndef XATTR_REPLACE */
6833         return 0;
6834 }
6835