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