svn path=/branches/mono-1-1-9/mcs/; revision=50438
[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)
1382 #ifdef LOG_KERN
1383                 {*r = LOG_KERN; return 0;}
1384 #else /* def LOG_KERN */
1385                 {errno = EINVAL; return -1;}
1386 #endif /* ndef LOG_KERN */
1387         if (x == Mono_Posix_SyslogFacility_LOG_USER)
1388 #ifdef LOG_USER
1389                 {*r = LOG_USER; return 0;}
1390 #else /* def LOG_USER */
1391                 {errno = EINVAL; return -1;}
1392 #endif /* ndef LOG_USER */
1393         /* Mono_Posix_SyslogFacility_LOG_USRE is obsolete; ignoring */
1394         if (x == Mono_Posix_SyslogFacility_LOG_MAIL)
1395 #ifdef LOG_MAIL
1396                 {*r = LOG_MAIL; return 0;}
1397 #else /* def LOG_MAIL */
1398                 {errno = EINVAL; return -1;}
1399 #endif /* ndef LOG_MAIL */
1400         if (x == Mono_Posix_SyslogFacility_LOG_DAEMON)
1401 #ifdef LOG_DAEMON
1402                 {*r = LOG_DAEMON; return 0;}
1403 #else /* def LOG_DAEMON */
1404                 {errno = EINVAL; return -1;}
1405 #endif /* ndef LOG_DAEMON */
1406         if (x == Mono_Posix_SyslogFacility_LOG_AUTH)
1407 #ifdef LOG_AUTH
1408                 {*r = LOG_AUTH; return 0;}
1409 #else /* def LOG_AUTH */
1410                 {errno = EINVAL; return -1;}
1411 #endif /* ndef LOG_AUTH */
1412         if (x == Mono_Posix_SyslogFacility_LOG_SYSLOG)
1413 #ifdef LOG_SYSLOG
1414                 {*r = LOG_SYSLOG; return 0;}
1415 #else /* def LOG_SYSLOG */
1416                 {errno = EINVAL; return -1;}
1417 #endif /* ndef LOG_SYSLOG */
1418         if (x == Mono_Posix_SyslogFacility_LOG_LPR)
1419 #ifdef LOG_LPR
1420                 {*r = LOG_LPR; return 0;}
1421 #else /* def LOG_LPR */
1422                 {errno = EINVAL; return -1;}
1423 #endif /* ndef LOG_LPR */
1424         if (x == Mono_Posix_SyslogFacility_LOG_NEWS)
1425 #ifdef LOG_NEWS
1426                 {*r = LOG_NEWS; return 0;}
1427 #else /* def LOG_NEWS */
1428                 {errno = EINVAL; return -1;}
1429 #endif /* ndef LOG_NEWS */
1430         if (x == Mono_Posix_SyslogFacility_LOG_UUCP)
1431 #ifdef LOG_UUCP
1432                 {*r = LOG_UUCP; return 0;}
1433 #else /* def LOG_UUCP */
1434                 {errno = EINVAL; return -1;}
1435 #endif /* ndef LOG_UUCP */
1436         if (x == Mono_Posix_SyslogFacility_LOG_CRON)
1437 #ifdef LOG_CRON
1438                 {*r = LOG_CRON; return 0;}
1439 #else /* def LOG_CRON */
1440                 {errno = EINVAL; return -1;}
1441 #endif /* ndef LOG_CRON */
1442         if (x == Mono_Posix_SyslogFacility_LOG_AUTHPRIV)
1443 #ifdef LOG_AUTHPRIV
1444                 {*r = LOG_AUTHPRIV; return 0;}
1445 #else /* def LOG_AUTHPRIV */
1446                 {errno = EINVAL; return -1;}
1447 #endif /* ndef LOG_AUTHPRIV */
1448         if (x == Mono_Posix_SyslogFacility_LOG_FTP)
1449 #ifdef LOG_FTP
1450                 {*r = LOG_FTP; return 0;}
1451 #else /* def LOG_FTP */
1452                 {errno = EINVAL; return -1;}
1453 #endif /* ndef LOG_FTP */
1454         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL0)
1455 #ifdef LOG_LOCAL0
1456                 {*r = LOG_LOCAL0; return 0;}
1457 #else /* def LOG_LOCAL0 */
1458                 {errno = EINVAL; return -1;}
1459 #endif /* ndef LOG_LOCAL0 */
1460         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL1)
1461 #ifdef LOG_LOCAL1
1462                 {*r = LOG_LOCAL1; return 0;}
1463 #else /* def LOG_LOCAL1 */
1464                 {errno = EINVAL; return -1;}
1465 #endif /* ndef LOG_LOCAL1 */
1466         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL2)
1467 #ifdef LOG_LOCAL2
1468                 {*r = LOG_LOCAL2; return 0;}
1469 #else /* def LOG_LOCAL2 */
1470                 {errno = EINVAL; return -1;}
1471 #endif /* ndef LOG_LOCAL2 */
1472         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL3)
1473 #ifdef LOG_LOCAL3
1474                 {*r = LOG_LOCAL3; return 0;}
1475 #else /* def LOG_LOCAL3 */
1476                 {errno = EINVAL; return -1;}
1477 #endif /* ndef LOG_LOCAL3 */
1478         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL4)
1479 #ifdef LOG_LOCAL4
1480                 {*r = LOG_LOCAL4; return 0;}
1481 #else /* def LOG_LOCAL4 */
1482                 {errno = EINVAL; return -1;}
1483 #endif /* ndef LOG_LOCAL4 */
1484         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL5)
1485 #ifdef LOG_LOCAL5
1486                 {*r = LOG_LOCAL5; return 0;}
1487 #else /* def LOG_LOCAL5 */
1488                 {errno = EINVAL; return -1;}
1489 #endif /* ndef LOG_LOCAL5 */
1490         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL6)
1491 #ifdef LOG_LOCAL6
1492                 {*r = LOG_LOCAL6; return 0;}
1493 #else /* def LOG_LOCAL6 */
1494                 {errno = EINVAL; return -1;}
1495 #endif /* ndef LOG_LOCAL6 */
1496         if (x == Mono_Posix_SyslogFacility_LOG_LOCAL7)
1497 #ifdef LOG_LOCAL7
1498                 {*r = LOG_LOCAL7; return 0;}
1499 #else /* def LOG_LOCAL7 */
1500                 {errno = EINVAL; return -1;}
1501 #endif /* ndef LOG_LOCAL7 */
1502         errno = EINVAL; return -1;
1503 }
1504
1505 int Mono_Posix_ToSyslogFacility (int x, int *r)
1506 {
1507         *r = 0;
1508         if (x == 0)
1509                 return 0;
1510 #ifdef LOG_KERN
1511         if (x == LOG_KERN)
1512                 {*r = Mono_Posix_SyslogFacility_LOG_KERN; return 0;}
1513 #endif /* ndef LOG_KERN */
1514 #ifdef LOG_USER
1515         if (x == LOG_USER)
1516                 {*r = Mono_Posix_SyslogFacility_LOG_USER; return 0;}
1517 #endif /* ndef LOG_USER */
1518 #ifdef LOG_USRE
1519         if (x == LOG_USRE)
1520                 {*r = Mono_Posix_SyslogFacility_LOG_USRE; return 0;}
1521 #endif /* ndef LOG_USRE */
1522 #ifdef LOG_MAIL
1523         if (x == LOG_MAIL)
1524                 {*r = Mono_Posix_SyslogFacility_LOG_MAIL; return 0;}
1525 #endif /* ndef LOG_MAIL */
1526 #ifdef LOG_DAEMON
1527         if (x == LOG_DAEMON)
1528                 {*r = Mono_Posix_SyslogFacility_LOG_DAEMON; return 0;}
1529 #endif /* ndef LOG_DAEMON */
1530 #ifdef LOG_AUTH
1531         if (x == LOG_AUTH)
1532                 {*r = Mono_Posix_SyslogFacility_LOG_AUTH; return 0;}
1533 #endif /* ndef LOG_AUTH */
1534 #ifdef LOG_SYSLOG
1535         if (x == LOG_SYSLOG)
1536                 {*r = Mono_Posix_SyslogFacility_LOG_SYSLOG; return 0;}
1537 #endif /* ndef LOG_SYSLOG */
1538 #ifdef LOG_LPR
1539         if (x == LOG_LPR)
1540                 {*r = Mono_Posix_SyslogFacility_LOG_LPR; return 0;}
1541 #endif /* ndef LOG_LPR */
1542 #ifdef LOG_NEWS
1543         if (x == LOG_NEWS)
1544                 {*r = Mono_Posix_SyslogFacility_LOG_NEWS; return 0;}
1545 #endif /* ndef LOG_NEWS */
1546 #ifdef LOG_UUCP
1547         if (x == LOG_UUCP)
1548                 {*r = Mono_Posix_SyslogFacility_LOG_UUCP; return 0;}
1549 #endif /* ndef LOG_UUCP */
1550 #ifdef LOG_CRON
1551         if (x == LOG_CRON)
1552                 {*r = Mono_Posix_SyslogFacility_LOG_CRON; return 0;}
1553 #endif /* ndef LOG_CRON */
1554 #ifdef LOG_AUTHPRIV
1555         if (x == LOG_AUTHPRIV)
1556                 {*r = Mono_Posix_SyslogFacility_LOG_AUTHPRIV; return 0;}
1557 #endif /* ndef LOG_AUTHPRIV */
1558 #ifdef LOG_FTP
1559         if (x == LOG_FTP)
1560                 {*r = Mono_Posix_SyslogFacility_LOG_FTP; return 0;}
1561 #endif /* ndef LOG_FTP */
1562 #ifdef LOG_LOCAL0
1563         if (x == LOG_LOCAL0)
1564                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL0; return 0;}
1565 #endif /* ndef LOG_LOCAL0 */
1566 #ifdef LOG_LOCAL1
1567         if (x == LOG_LOCAL1)
1568                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL1; return 0;}
1569 #endif /* ndef LOG_LOCAL1 */
1570 #ifdef LOG_LOCAL2
1571         if (x == LOG_LOCAL2)
1572                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL2; return 0;}
1573 #endif /* ndef LOG_LOCAL2 */
1574 #ifdef LOG_LOCAL3
1575         if (x == LOG_LOCAL3)
1576                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL3; return 0;}
1577 #endif /* ndef LOG_LOCAL3 */
1578 #ifdef LOG_LOCAL4
1579         if (x == LOG_LOCAL4)
1580                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL4; return 0;}
1581 #endif /* ndef LOG_LOCAL4 */
1582 #ifdef LOG_LOCAL5
1583         if (x == LOG_LOCAL5)
1584                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL5; return 0;}
1585 #endif /* ndef LOG_LOCAL5 */
1586 #ifdef LOG_LOCAL6
1587         if (x == LOG_LOCAL6)
1588                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL6; return 0;}
1589 #endif /* ndef LOG_LOCAL6 */
1590 #ifdef LOG_LOCAL7
1591         if (x == LOG_LOCAL7)
1592                 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL7; return 0;}
1593 #endif /* ndef LOG_LOCAL7 */
1594         errno = EINVAL; return -1;
1595 }
1596
1597 int Mono_Posix_FromSyslogLevel (int x, int *r)
1598 {
1599         *r = 0;
1600         if (x == 0)
1601                 return 0;
1602         if (x == Mono_Posix_SyslogLevel_LOG_EMERG)
1603 #ifdef LOG_EMERG
1604                 {*r = LOG_EMERG; return 0;}
1605 #else /* def LOG_EMERG */
1606                 {errno = EINVAL; return -1;}
1607 #endif /* ndef LOG_EMERG */
1608         if (x == Mono_Posix_SyslogLevel_LOG_ALERT)
1609 #ifdef LOG_ALERT
1610                 {*r = LOG_ALERT; return 0;}
1611 #else /* def LOG_ALERT */
1612                 {errno = EINVAL; return -1;}
1613 #endif /* ndef LOG_ALERT */
1614         if (x == Mono_Posix_SyslogLevel_LOG_CRIT)
1615 #ifdef LOG_CRIT
1616                 {*r = LOG_CRIT; return 0;}
1617 #else /* def LOG_CRIT */
1618                 {errno = EINVAL; return -1;}
1619 #endif /* ndef LOG_CRIT */
1620         if (x == Mono_Posix_SyslogLevel_LOG_ERR)
1621 #ifdef LOG_ERR
1622                 {*r = LOG_ERR; return 0;}
1623 #else /* def LOG_ERR */
1624                 {errno = EINVAL; return -1;}
1625 #endif /* ndef LOG_ERR */
1626         if (x == Mono_Posix_SyslogLevel_LOG_WARNING)
1627 #ifdef LOG_WARNING
1628                 {*r = LOG_WARNING; return 0;}
1629 #else /* def LOG_WARNING */
1630                 {errno = EINVAL; return -1;}
1631 #endif /* ndef LOG_WARNING */
1632         if (x == Mono_Posix_SyslogLevel_LOG_NOTICE)
1633 #ifdef LOG_NOTICE
1634                 {*r = LOG_NOTICE; return 0;}
1635 #else /* def LOG_NOTICE */
1636                 {errno = EINVAL; return -1;}
1637 #endif /* ndef LOG_NOTICE */
1638         if (x == Mono_Posix_SyslogLevel_LOG_INFO)
1639 #ifdef LOG_INFO
1640                 {*r = LOG_INFO; return 0;}
1641 #else /* def LOG_INFO */
1642                 {errno = EINVAL; return -1;}
1643 #endif /* ndef LOG_INFO */
1644         if (x == Mono_Posix_SyslogLevel_LOG_DEBUG)
1645 #ifdef LOG_DEBUG
1646                 {*r = LOG_DEBUG; return 0;}
1647 #else /* def LOG_DEBUG */
1648                 {errno = EINVAL; return -1;}
1649 #endif /* ndef LOG_DEBUG */
1650         errno = EINVAL; return -1;
1651 }
1652
1653 int Mono_Posix_ToSyslogLevel (int x, int *r)
1654 {
1655         *r = 0;
1656         if (x == 0)
1657                 return 0;
1658 #ifdef LOG_EMERG
1659         if (x == LOG_EMERG)
1660                 {*r = Mono_Posix_SyslogLevel_LOG_EMERG; return 0;}
1661 #endif /* ndef LOG_EMERG */
1662 #ifdef LOG_ALERT
1663         if (x == LOG_ALERT)
1664                 {*r = Mono_Posix_SyslogLevel_LOG_ALERT; return 0;}
1665 #endif /* ndef LOG_ALERT */
1666 #ifdef LOG_CRIT
1667         if (x == LOG_CRIT)
1668                 {*r = Mono_Posix_SyslogLevel_LOG_CRIT; return 0;}
1669 #endif /* ndef LOG_CRIT */
1670 #ifdef LOG_ERR
1671         if (x == LOG_ERR)
1672                 {*r = Mono_Posix_SyslogLevel_LOG_ERR; return 0;}
1673 #endif /* ndef LOG_ERR */
1674 #ifdef LOG_WARNING
1675         if (x == LOG_WARNING)
1676                 {*r = Mono_Posix_SyslogLevel_LOG_WARNING; return 0;}
1677 #endif /* ndef LOG_WARNING */
1678 #ifdef LOG_NOTICE
1679         if (x == LOG_NOTICE)
1680                 {*r = Mono_Posix_SyslogLevel_LOG_NOTICE; return 0;}
1681 #endif /* ndef LOG_NOTICE */
1682 #ifdef LOG_INFO
1683         if (x == LOG_INFO)
1684                 {*r = Mono_Posix_SyslogLevel_LOG_INFO; return 0;}
1685 #endif /* ndef LOG_INFO */
1686 #ifdef LOG_DEBUG
1687         if (x == LOG_DEBUG)
1688                 {*r = Mono_Posix_SyslogLevel_LOG_DEBUG; return 0;}
1689 #endif /* ndef LOG_DEBUG */
1690         errno = EINVAL; return -1;
1691 }
1692
1693 int Mono_Posix_FromOpenFlags (int x, int *r)
1694 {
1695         *r = 0;
1696         if (x == 0)
1697                 return 0;
1698         if ((x & Mono_Posix_OpenFlags_O_RDONLY) == Mono_Posix_OpenFlags_O_RDONLY)
1699 #ifdef O_RDONLY
1700                 *r |= O_RDONLY;
1701 #else /* def O_RDONLY */
1702                 {errno = EINVAL; return -1;}
1703 #endif /* ndef O_RDONLY */
1704         if ((x & Mono_Posix_OpenFlags_O_WRONLY) == Mono_Posix_OpenFlags_O_WRONLY)
1705 #ifdef O_WRONLY
1706                 *r |= O_WRONLY;
1707 #else /* def O_WRONLY */
1708                 {errno = EINVAL; return -1;}
1709 #endif /* ndef O_WRONLY */
1710         if ((x & Mono_Posix_OpenFlags_O_RDWR) == Mono_Posix_OpenFlags_O_RDWR)
1711 #ifdef O_RDWR
1712                 *r |= O_RDWR;
1713 #else /* def O_RDWR */
1714                 {errno = EINVAL; return -1;}
1715 #endif /* ndef O_RDWR */
1716         if ((x & Mono_Posix_OpenFlags_O_CREAT) == Mono_Posix_OpenFlags_O_CREAT)
1717 #ifdef O_CREAT
1718                 *r |= O_CREAT;
1719 #else /* def O_CREAT */
1720                 {errno = EINVAL; return -1;}
1721 #endif /* ndef O_CREAT */
1722         if ((x & Mono_Posix_OpenFlags_O_EXCL) == Mono_Posix_OpenFlags_O_EXCL)
1723 #ifdef O_EXCL
1724                 *r |= O_EXCL;
1725 #else /* def O_EXCL */
1726                 {errno = EINVAL; return -1;}
1727 #endif /* ndef O_EXCL */
1728         if ((x & Mono_Posix_OpenFlags_O_NOCTTY) == Mono_Posix_OpenFlags_O_NOCTTY)
1729 #ifdef O_NOCTTY
1730                 *r |= O_NOCTTY;
1731 #else /* def O_NOCTTY */
1732                 {errno = EINVAL; return -1;}
1733 #endif /* ndef O_NOCTTY */
1734         if ((x & Mono_Posix_OpenFlags_O_TRUNC) == Mono_Posix_OpenFlags_O_TRUNC)
1735 #ifdef O_TRUNC
1736                 *r |= O_TRUNC;
1737 #else /* def O_TRUNC */
1738                 {errno = EINVAL; return -1;}
1739 #endif /* ndef O_TRUNC */
1740         if ((x & Mono_Posix_OpenFlags_O_APPEND) == Mono_Posix_OpenFlags_O_APPEND)
1741 #ifdef O_APPEND
1742                 *r |= O_APPEND;
1743 #else /* def O_APPEND */
1744                 {errno = EINVAL; return -1;}
1745 #endif /* ndef O_APPEND */
1746         if ((x & Mono_Posix_OpenFlags_O_NONBLOCK) == Mono_Posix_OpenFlags_O_NONBLOCK)
1747 #ifdef O_NONBLOCK
1748                 *r |= O_NONBLOCK;
1749 #else /* def O_NONBLOCK */
1750                 {errno = EINVAL; return -1;}
1751 #endif /* ndef O_NONBLOCK */
1752         if ((x & Mono_Posix_OpenFlags_O_SYNC) == Mono_Posix_OpenFlags_O_SYNC)
1753 #ifdef O_SYNC
1754                 *r |= O_SYNC;
1755 #else /* def O_SYNC */
1756                 {errno = EINVAL; return -1;}
1757 #endif /* ndef O_SYNC */
1758         if ((x & Mono_Posix_OpenFlags_O_NOFOLLOW) == Mono_Posix_OpenFlags_O_NOFOLLOW)
1759 #ifdef O_NOFOLLOW
1760                 *r |= O_NOFOLLOW;
1761 #else /* def O_NOFOLLOW */
1762                 {errno = EINVAL; return -1;}
1763 #endif /* ndef O_NOFOLLOW */
1764         if ((x & Mono_Posix_OpenFlags_O_DIRECTORY) == Mono_Posix_OpenFlags_O_DIRECTORY)
1765 #ifdef O_DIRECTORY
1766                 *r |= O_DIRECTORY;
1767 #else /* def O_DIRECTORY */
1768                 {errno = EINVAL; return -1;}
1769 #endif /* ndef O_DIRECTORY */
1770         if ((x & Mono_Posix_OpenFlags_O_DIRECT) == Mono_Posix_OpenFlags_O_DIRECT)
1771 #ifdef O_DIRECT
1772                 *r |= O_DIRECT;
1773 #else /* def O_DIRECT */
1774                 {errno = EINVAL; return -1;}
1775 #endif /* ndef O_DIRECT */
1776         if ((x & Mono_Posix_OpenFlags_O_ASYNC) == Mono_Posix_OpenFlags_O_ASYNC)
1777 #ifdef O_ASYNC
1778                 *r |= O_ASYNC;
1779 #else /* def O_ASYNC */
1780                 {errno = EINVAL; return -1;}
1781 #endif /* ndef O_ASYNC */
1782         if ((x & Mono_Posix_OpenFlags_O_LARGEFILE) == Mono_Posix_OpenFlags_O_LARGEFILE)
1783 #ifdef O_LARGEFILE
1784                 *r |= O_LARGEFILE;
1785 #else /* def O_LARGEFILE */
1786                 {errno = EINVAL; return -1;}
1787 #endif /* ndef O_LARGEFILE */
1788         return 0;
1789 }
1790
1791 int Mono_Posix_ToOpenFlags (int x, int *r)
1792 {
1793         *r = 0;
1794         if (x == 0)
1795                 return 0;
1796 #ifdef O_RDONLY
1797         if ((x & O_RDONLY) == O_RDONLY)
1798                 *r |= Mono_Posix_OpenFlags_O_RDONLY;
1799 #endif /* ndef O_RDONLY */
1800 #ifdef O_WRONLY
1801         if ((x & O_WRONLY) == O_WRONLY)
1802                 *r |= Mono_Posix_OpenFlags_O_WRONLY;
1803 #endif /* ndef O_WRONLY */
1804 #ifdef O_RDWR
1805         if ((x & O_RDWR) == O_RDWR)
1806                 *r |= Mono_Posix_OpenFlags_O_RDWR;
1807 #endif /* ndef O_RDWR */
1808 #ifdef O_CREAT
1809         if ((x & O_CREAT) == O_CREAT)
1810                 *r |= Mono_Posix_OpenFlags_O_CREAT;
1811 #endif /* ndef O_CREAT */
1812 #ifdef O_EXCL
1813         if ((x & O_EXCL) == O_EXCL)
1814                 *r |= Mono_Posix_OpenFlags_O_EXCL;
1815 #endif /* ndef O_EXCL */
1816 #ifdef O_NOCTTY
1817         if ((x & O_NOCTTY) == O_NOCTTY)
1818                 *r |= Mono_Posix_OpenFlags_O_NOCTTY;
1819 #endif /* ndef O_NOCTTY */
1820 #ifdef O_TRUNC
1821         if ((x & O_TRUNC) == O_TRUNC)
1822                 *r |= Mono_Posix_OpenFlags_O_TRUNC;
1823 #endif /* ndef O_TRUNC */
1824 #ifdef O_APPEND
1825         if ((x & O_APPEND) == O_APPEND)
1826                 *r |= Mono_Posix_OpenFlags_O_APPEND;
1827 #endif /* ndef O_APPEND */
1828 #ifdef O_NONBLOCK
1829         if ((x & O_NONBLOCK) == O_NONBLOCK)
1830                 *r |= Mono_Posix_OpenFlags_O_NONBLOCK;
1831 #endif /* ndef O_NONBLOCK */
1832 #ifdef O_SYNC
1833         if ((x & O_SYNC) == O_SYNC)
1834                 *r |= Mono_Posix_OpenFlags_O_SYNC;
1835 #endif /* ndef O_SYNC */
1836 #ifdef O_NOFOLLOW
1837         if ((x & O_NOFOLLOW) == O_NOFOLLOW)
1838                 *r |= Mono_Posix_OpenFlags_O_NOFOLLOW;
1839 #endif /* ndef O_NOFOLLOW */
1840 #ifdef O_DIRECTORY
1841         if ((x & O_DIRECTORY) == O_DIRECTORY)
1842                 *r |= Mono_Posix_OpenFlags_O_DIRECTORY;
1843 #endif /* ndef O_DIRECTORY */
1844 #ifdef O_DIRECT
1845         if ((x & O_DIRECT) == O_DIRECT)
1846                 *r |= Mono_Posix_OpenFlags_O_DIRECT;
1847 #endif /* ndef O_DIRECT */
1848 #ifdef O_ASYNC
1849         if ((x & O_ASYNC) == O_ASYNC)
1850                 *r |= Mono_Posix_OpenFlags_O_ASYNC;
1851 #endif /* ndef O_ASYNC */
1852 #ifdef O_LARGEFILE
1853         if ((x & O_LARGEFILE) == O_LARGEFILE)
1854                 *r |= Mono_Posix_OpenFlags_O_LARGEFILE;
1855 #endif /* ndef O_LARGEFILE */
1856         return 0;
1857 }
1858
1859 int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r)
1860 {
1861         *r = 0;
1862         if (x == 0)
1863                 return 0;
1864         if ((x & Mono_Posix_FilePermissions_S_ISUID) == Mono_Posix_FilePermissions_S_ISUID)
1865 #ifdef S_ISUID
1866                 *r |= S_ISUID;
1867 #else /* def S_ISUID */
1868                 {errno = EINVAL; return -1;}
1869 #endif /* ndef S_ISUID */
1870         if ((x & Mono_Posix_FilePermissions_S_ISGID) == Mono_Posix_FilePermissions_S_ISGID)
1871 #ifdef S_ISGID
1872                 *r |= S_ISGID;
1873 #else /* def S_ISGID */
1874                 {errno = EINVAL; return -1;}
1875 #endif /* ndef S_ISGID */
1876         if ((x & Mono_Posix_FilePermissions_S_ISVTX) == Mono_Posix_FilePermissions_S_ISVTX)
1877 #ifdef S_ISVTX
1878                 *r |= S_ISVTX;
1879 #else /* def S_ISVTX */
1880                 {errno = EINVAL; return -1;}
1881 #endif /* ndef S_ISVTX */
1882         if ((x & Mono_Posix_FilePermissions_S_IRUSR) == Mono_Posix_FilePermissions_S_IRUSR)
1883 #ifdef S_IRUSR
1884                 *r |= S_IRUSR;
1885 #else /* def S_IRUSR */
1886                 {errno = EINVAL; return -1;}
1887 #endif /* ndef S_IRUSR */
1888         if ((x & Mono_Posix_FilePermissions_S_IWUSR) == Mono_Posix_FilePermissions_S_IWUSR)
1889 #ifdef S_IWUSR
1890                 *r |= S_IWUSR;
1891 #else /* def S_IWUSR */
1892                 {errno = EINVAL; return -1;}
1893 #endif /* ndef S_IWUSR */
1894         if ((x & Mono_Posix_FilePermissions_S_IXUSR) == Mono_Posix_FilePermissions_S_IXUSR)
1895 #ifdef S_IXUSR
1896                 *r |= S_IXUSR;
1897 #else /* def S_IXUSR */
1898                 {errno = EINVAL; return -1;}
1899 #endif /* ndef S_IXUSR */
1900         if ((x & Mono_Posix_FilePermissions_S_IRGRP) == Mono_Posix_FilePermissions_S_IRGRP)
1901 #ifdef S_IRGRP
1902                 *r |= S_IRGRP;
1903 #else /* def S_IRGRP */
1904                 {errno = EINVAL; return -1;}
1905 #endif /* ndef S_IRGRP */
1906         if ((x & Mono_Posix_FilePermissions_S_IWGRP) == Mono_Posix_FilePermissions_S_IWGRP)
1907 #ifdef S_IWGRP
1908                 *r |= S_IWGRP;
1909 #else /* def S_IWGRP */
1910                 {errno = EINVAL; return -1;}
1911 #endif /* ndef S_IWGRP */
1912         if ((x & Mono_Posix_FilePermissions_S_IXGRP) == Mono_Posix_FilePermissions_S_IXGRP)
1913 #ifdef S_IXGRP
1914                 *r |= S_IXGRP;
1915 #else /* def S_IXGRP */
1916                 {errno = EINVAL; return -1;}
1917 #endif /* ndef S_IXGRP */
1918         if ((x & Mono_Posix_FilePermissions_S_IROTH) == Mono_Posix_FilePermissions_S_IROTH)
1919 #ifdef S_IROTH
1920                 *r |= S_IROTH;
1921 #else /* def S_IROTH */
1922                 {errno = EINVAL; return -1;}
1923 #endif /* ndef S_IROTH */
1924         if ((x & Mono_Posix_FilePermissions_S_IWOTH) == Mono_Posix_FilePermissions_S_IWOTH)
1925 #ifdef S_IWOTH
1926                 *r |= S_IWOTH;
1927 #else /* def S_IWOTH */
1928                 {errno = EINVAL; return -1;}
1929 #endif /* ndef S_IWOTH */
1930         if ((x & Mono_Posix_FilePermissions_S_IXOTH) == Mono_Posix_FilePermissions_S_IXOTH)
1931 #ifdef S_IXOTH
1932                 *r |= S_IXOTH;
1933 #else /* def S_IXOTH */
1934                 {errno = EINVAL; return -1;}
1935 #endif /* ndef S_IXOTH */
1936         if ((x & Mono_Posix_FilePermissions_S_IRWXG) == Mono_Posix_FilePermissions_S_IRWXG)
1937 #ifdef S_IRWXG
1938                 *r |= S_IRWXG;
1939 #else /* def S_IRWXG */
1940                 {errno = EINVAL; return -1;}
1941 #endif /* ndef S_IRWXG */
1942         if ((x & Mono_Posix_FilePermissions_S_IRWXU) == Mono_Posix_FilePermissions_S_IRWXU)
1943 #ifdef S_IRWXU
1944                 *r |= S_IRWXU;
1945 #else /* def S_IRWXU */
1946                 {errno = EINVAL; return -1;}
1947 #endif /* ndef S_IRWXU */
1948         if ((x & Mono_Posix_FilePermissions_S_IRWXO) == Mono_Posix_FilePermissions_S_IRWXO)
1949 #ifdef S_IRWXO
1950                 *r |= S_IRWXO;
1951 #else /* def S_IRWXO */
1952                 {errno = EINVAL; return -1;}
1953 #endif /* ndef S_IRWXO */
1954         if ((x & Mono_Posix_FilePermissions_ACCESSPERMS) == Mono_Posix_FilePermissions_ACCESSPERMS)
1955 #ifdef ACCESSPERMS
1956                 *r |= ACCESSPERMS;
1957 #else /* def ACCESSPERMS */
1958                 {errno = EINVAL; return -1;}
1959 #endif /* ndef ACCESSPERMS */
1960         if ((x & Mono_Posix_FilePermissions_ALLPERMS) == Mono_Posix_FilePermissions_ALLPERMS)
1961 #ifdef ALLPERMS
1962                 *r |= ALLPERMS;
1963 #else /* def ALLPERMS */
1964                 {errno = EINVAL; return -1;}
1965 #endif /* ndef ALLPERMS */
1966         if ((x & Mono_Posix_FilePermissions_DEFFILEMODE) == Mono_Posix_FilePermissions_DEFFILEMODE)
1967 #ifdef DEFFILEMODE
1968                 *r |= DEFFILEMODE;
1969 #else /* def DEFFILEMODE */
1970                 {errno = EINVAL; return -1;}
1971 #endif /* ndef DEFFILEMODE */
1972         if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFMT)
1973 #ifdef S_IFMT
1974                 *r |= S_IFMT;
1975 #else /* def S_IFMT */
1976                 {errno = EINVAL; return -1;}
1977 #endif /* ndef S_IFMT */
1978         if ((x & Mono_Posix_FilePermissions_S_IFDIR) == Mono_Posix_FilePermissions_S_IFDIR)
1979 #ifdef S_IFDIR
1980                 *r |= S_IFDIR;
1981 #else /* def S_IFDIR */
1982                 {errno = EINVAL; return -1;}
1983 #endif /* ndef S_IFDIR */
1984         if ((x & Mono_Posix_FilePermissions_S_IFCHR) == Mono_Posix_FilePermissions_S_IFCHR)
1985 #ifdef S_IFCHR
1986                 *r |= S_IFCHR;
1987 #else /* def S_IFCHR */
1988                 {errno = EINVAL; return -1;}
1989 #endif /* ndef S_IFCHR */
1990         if ((x & Mono_Posix_FilePermissions_S_IFBLK) == Mono_Posix_FilePermissions_S_IFBLK)
1991 #ifdef S_IFBLK
1992                 *r |= S_IFBLK;
1993 #else /* def S_IFBLK */
1994                 {errno = EINVAL; return -1;}
1995 #endif /* ndef S_IFBLK */
1996         if ((x & Mono_Posix_FilePermissions_S_IFREG) == Mono_Posix_FilePermissions_S_IFREG)
1997 #ifdef S_IFREG
1998                 *r |= S_IFREG;
1999 #else /* def S_IFREG */
2000                 {errno = EINVAL; return -1;}
2001 #endif /* ndef S_IFREG */
2002         if ((x & Mono_Posix_FilePermissions_S_IFIFO) == Mono_Posix_FilePermissions_S_IFIFO)
2003 #ifdef S_IFIFO
2004                 *r |= S_IFIFO;
2005 #else /* def S_IFIFO */
2006                 {errno = EINVAL; return -1;}
2007 #endif /* ndef S_IFIFO */
2008         if ((x & Mono_Posix_FilePermissions_S_IFLNK) == Mono_Posix_FilePermissions_S_IFLNK)
2009 #ifdef S_IFLNK
2010                 *r |= S_IFLNK;
2011 #else /* def S_IFLNK */
2012                 {errno = EINVAL; return -1;}
2013 #endif /* ndef S_IFLNK */
2014         if ((x & Mono_Posix_FilePermissions_S_IFSOCK) == Mono_Posix_FilePermissions_S_IFSOCK)
2015 #ifdef S_IFSOCK
2016                 *r |= S_IFSOCK;
2017 #else /* def S_IFSOCK */
2018                 {errno = EINVAL; return -1;}
2019 #endif /* ndef S_IFSOCK */
2020         return 0;
2021 }
2022
2023 int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r)
2024 {
2025         *r = 0;
2026         if (x == 0)
2027                 return 0;
2028 #ifdef S_ISUID
2029         if ((x & S_ISUID) == S_ISUID)
2030                 *r |= Mono_Posix_FilePermissions_S_ISUID;
2031 #endif /* ndef S_ISUID */
2032 #ifdef S_ISGID
2033         if ((x & S_ISGID) == S_ISGID)
2034                 *r |= Mono_Posix_FilePermissions_S_ISGID;
2035 #endif /* ndef S_ISGID */
2036 #ifdef S_ISVTX
2037         if ((x & S_ISVTX) == S_ISVTX)
2038                 *r |= Mono_Posix_FilePermissions_S_ISVTX;
2039 #endif /* ndef S_ISVTX */
2040 #ifdef S_IRUSR
2041         if ((x & S_IRUSR) == S_IRUSR)
2042                 *r |= Mono_Posix_FilePermissions_S_IRUSR;
2043 #endif /* ndef S_IRUSR */
2044 #ifdef S_IWUSR
2045         if ((x & S_IWUSR) == S_IWUSR)
2046                 *r |= Mono_Posix_FilePermissions_S_IWUSR;
2047 #endif /* ndef S_IWUSR */
2048 #ifdef S_IXUSR
2049         if ((x & S_IXUSR) == S_IXUSR)
2050                 *r |= Mono_Posix_FilePermissions_S_IXUSR;
2051 #endif /* ndef S_IXUSR */
2052 #ifdef S_IRGRP
2053         if ((x & S_IRGRP) == S_IRGRP)
2054                 *r |= Mono_Posix_FilePermissions_S_IRGRP;
2055 #endif /* ndef S_IRGRP */
2056 #ifdef S_IWGRP
2057         if ((x & S_IWGRP) == S_IWGRP)
2058                 *r |= Mono_Posix_FilePermissions_S_IWGRP;
2059 #endif /* ndef S_IWGRP */
2060 #ifdef S_IXGRP
2061         if ((x & S_IXGRP) == S_IXGRP)
2062                 *r |= Mono_Posix_FilePermissions_S_IXGRP;
2063 #endif /* ndef S_IXGRP */
2064 #ifdef S_IROTH
2065         if ((x & S_IROTH) == S_IROTH)
2066                 *r |= Mono_Posix_FilePermissions_S_IROTH;
2067 #endif /* ndef S_IROTH */
2068 #ifdef S_IWOTH
2069         if ((x & S_IWOTH) == S_IWOTH)
2070                 *r |= Mono_Posix_FilePermissions_S_IWOTH;
2071 #endif /* ndef S_IWOTH */
2072 #ifdef S_IXOTH
2073         if ((x & S_IXOTH) == S_IXOTH)
2074                 *r |= Mono_Posix_FilePermissions_S_IXOTH;
2075 #endif /* ndef S_IXOTH */
2076 #ifdef S_IRWXG
2077         if ((x & S_IRWXG) == S_IRWXG)
2078                 *r |= Mono_Posix_FilePermissions_S_IRWXG;
2079 #endif /* ndef S_IRWXG */
2080 #ifdef S_IRWXU
2081         if ((x & S_IRWXU) == S_IRWXU)
2082                 *r |= Mono_Posix_FilePermissions_S_IRWXU;
2083 #endif /* ndef S_IRWXU */
2084 #ifdef S_IRWXO
2085         if ((x & S_IRWXO) == S_IRWXO)
2086                 *r |= Mono_Posix_FilePermissions_S_IRWXO;
2087 #endif /* ndef S_IRWXO */
2088 #ifdef ACCESSPERMS
2089         if ((x & ACCESSPERMS) == ACCESSPERMS)
2090                 *r |= Mono_Posix_FilePermissions_ACCESSPERMS;
2091 #endif /* ndef ACCESSPERMS */
2092 #ifdef ALLPERMS
2093         if ((x & ALLPERMS) == ALLPERMS)
2094                 *r |= Mono_Posix_FilePermissions_ALLPERMS;
2095 #endif /* ndef ALLPERMS */
2096 #ifdef DEFFILEMODE
2097         if ((x & DEFFILEMODE) == DEFFILEMODE)
2098                 *r |= Mono_Posix_FilePermissions_DEFFILEMODE;
2099 #endif /* ndef DEFFILEMODE */
2100 #ifdef S_IFMT
2101         if ((x & S_IFMT) == S_IFMT)
2102                 *r |= Mono_Posix_FilePermissions_S_IFMT;
2103 #endif /* ndef S_IFMT */
2104 #ifdef S_IFDIR
2105         if ((x & S_IFDIR) == S_IFDIR)
2106                 *r |= Mono_Posix_FilePermissions_S_IFDIR;
2107 #endif /* ndef S_IFDIR */
2108 #ifdef S_IFCHR
2109         if ((x & S_IFCHR) == S_IFCHR)
2110                 *r |= Mono_Posix_FilePermissions_S_IFCHR;
2111 #endif /* ndef S_IFCHR */
2112 #ifdef S_IFBLK
2113         if ((x & S_IFBLK) == S_IFBLK)
2114                 *r |= Mono_Posix_FilePermissions_S_IFBLK;
2115 #endif /* ndef S_IFBLK */
2116 #ifdef S_IFREG
2117         if ((x & S_IFREG) == S_IFREG)
2118                 *r |= Mono_Posix_FilePermissions_S_IFREG;
2119 #endif /* ndef S_IFREG */
2120 #ifdef S_IFIFO
2121         if ((x & S_IFIFO) == S_IFIFO)
2122                 *r |= Mono_Posix_FilePermissions_S_IFIFO;
2123 #endif /* ndef S_IFIFO */
2124 #ifdef S_IFLNK
2125         if ((x & S_IFLNK) == S_IFLNK)
2126                 *r |= Mono_Posix_FilePermissions_S_IFLNK;
2127 #endif /* ndef S_IFLNK */
2128 #ifdef S_IFSOCK
2129         if ((x & S_IFSOCK) == S_IFSOCK)
2130                 *r |= Mono_Posix_FilePermissions_S_IFSOCK;
2131 #endif /* ndef S_IFSOCK */
2132         return 0;
2133 }
2134
2135 int Mono_Posix_FromFcntlCommand (int x, int *r)
2136 {
2137         *r = 0;
2138         if (x == 0)
2139                 return 0;
2140         if (x == Mono_Posix_FcntlCommand_F_DUPFD)
2141 #ifdef F_DUPFD
2142                 {*r = F_DUPFD; return 0;}
2143 #else /* def F_DUPFD */
2144                 {errno = EINVAL; return -1;}
2145 #endif /* ndef F_DUPFD */
2146         if (x == Mono_Posix_FcntlCommand_F_GETFD)
2147 #ifdef F_GETFD
2148                 {*r = F_GETFD; return 0;}
2149 #else /* def F_GETFD */
2150                 {errno = EINVAL; return -1;}
2151 #endif /* ndef F_GETFD */
2152         if (x == Mono_Posix_FcntlCommand_F_SETFD)
2153 #ifdef F_SETFD
2154                 {*r = F_SETFD; return 0;}
2155 #else /* def F_SETFD */
2156                 {errno = EINVAL; return -1;}
2157 #endif /* ndef F_SETFD */
2158         if (x == Mono_Posix_FcntlCommand_F_GETFL)
2159 #ifdef F_GETFL
2160                 {*r = F_GETFL; return 0;}
2161 #else /* def F_GETFL */
2162                 {errno = EINVAL; return -1;}
2163 #endif /* ndef F_GETFL */
2164         if (x == Mono_Posix_FcntlCommand_F_SETFL)
2165 #ifdef F_SETFL
2166                 {*r = F_SETFL; return 0;}
2167 #else /* def F_SETFL */
2168                 {errno = EINVAL; return -1;}
2169 #endif /* ndef F_SETFL */
2170         if (x == Mono_Posix_FcntlCommand_F_GETLK)
2171 #ifdef F_GETLK
2172                 {*r = F_GETLK; return 0;}
2173 #else /* def F_GETLK */
2174                 {errno = EINVAL; return -1;}
2175 #endif /* ndef F_GETLK */
2176         if (x == Mono_Posix_FcntlCommand_F_SETLK)
2177 #ifdef F_SETLK
2178                 {*r = F_SETLK; return 0;}
2179 #else /* def F_SETLK */
2180                 {errno = EINVAL; return -1;}
2181 #endif /* ndef F_SETLK */
2182         if (x == Mono_Posix_FcntlCommand_F_SETLKW)
2183 #ifdef F_SETLKW
2184                 {*r = F_SETLKW; return 0;}
2185 #else /* def F_SETLKW */
2186                 {errno = EINVAL; return -1;}
2187 #endif /* ndef F_SETLKW */
2188         if (x == Mono_Posix_FcntlCommand_F_SETOWN)
2189 #ifdef F_SETOWN
2190                 {*r = F_SETOWN; return 0;}
2191 #else /* def F_SETOWN */
2192                 {errno = EINVAL; return -1;}
2193 #endif /* ndef F_SETOWN */
2194         if (x == Mono_Posix_FcntlCommand_F_GETOWN)
2195 #ifdef F_GETOWN
2196                 {*r = F_GETOWN; return 0;}
2197 #else /* def F_GETOWN */
2198                 {errno = EINVAL; return -1;}
2199 #endif /* ndef F_GETOWN */
2200         if (x == Mono_Posix_FcntlCommand_F_SETSIG)
2201 #ifdef F_SETSIG
2202                 {*r = F_SETSIG; return 0;}
2203 #else /* def F_SETSIG */
2204                 {errno = EINVAL; return -1;}
2205 #endif /* ndef F_SETSIG */
2206         if (x == Mono_Posix_FcntlCommand_F_GETSIG)
2207 #ifdef F_GETSIG
2208                 {*r = F_GETSIG; return 0;}
2209 #else /* def F_GETSIG */
2210                 {errno = EINVAL; return -1;}
2211 #endif /* ndef F_GETSIG */
2212         if (x == Mono_Posix_FcntlCommand_F_SETLEASE)
2213 #ifdef F_SETLEASE
2214                 {*r = F_SETLEASE; return 0;}
2215 #else /* def F_SETLEASE */
2216                 {errno = EINVAL; return -1;}
2217 #endif /* ndef F_SETLEASE */
2218         if (x == Mono_Posix_FcntlCommand_F_GETLEASE)
2219 #ifdef F_GETLEASE
2220                 {*r = F_GETLEASE; return 0;}
2221 #else /* def F_GETLEASE */
2222                 {errno = EINVAL; return -1;}
2223 #endif /* ndef F_GETLEASE */
2224         if (x == Mono_Posix_FcntlCommand_F_NOTIFY)
2225 #ifdef F_NOTIFY
2226                 {*r = F_NOTIFY; return 0;}
2227 #else /* def F_NOTIFY */
2228                 {errno = EINVAL; return -1;}
2229 #endif /* ndef F_NOTIFY */
2230         errno = EINVAL; return -1;
2231 }
2232
2233 int Mono_Posix_ToFcntlCommand (int x, int *r)
2234 {
2235         *r = 0;
2236         if (x == 0)
2237                 return 0;
2238 #ifdef F_DUPFD
2239         if (x == F_DUPFD)
2240                 {*r = Mono_Posix_FcntlCommand_F_DUPFD; return 0;}
2241 #endif /* ndef F_DUPFD */
2242 #ifdef F_GETFD
2243         if (x == F_GETFD)
2244                 {*r = Mono_Posix_FcntlCommand_F_GETFD; return 0;}
2245 #endif /* ndef F_GETFD */
2246 #ifdef F_SETFD
2247         if (x == F_SETFD)
2248                 {*r = Mono_Posix_FcntlCommand_F_SETFD; return 0;}
2249 #endif /* ndef F_SETFD */
2250 #ifdef F_GETFL
2251         if (x == F_GETFL)
2252                 {*r = Mono_Posix_FcntlCommand_F_GETFL; return 0;}
2253 #endif /* ndef F_GETFL */
2254 #ifdef F_SETFL
2255         if (x == F_SETFL)
2256                 {*r = Mono_Posix_FcntlCommand_F_SETFL; return 0;}
2257 #endif /* ndef F_SETFL */
2258 #ifdef F_GETLK
2259         if (x == F_GETLK)
2260                 {*r = Mono_Posix_FcntlCommand_F_GETLK; return 0;}
2261 #endif /* ndef F_GETLK */
2262 #ifdef F_SETLK
2263         if (x == F_SETLK)
2264                 {*r = Mono_Posix_FcntlCommand_F_SETLK; return 0;}
2265 #endif /* ndef F_SETLK */
2266 #ifdef F_SETLKW
2267         if (x == F_SETLKW)
2268                 {*r = Mono_Posix_FcntlCommand_F_SETLKW; return 0;}
2269 #endif /* ndef F_SETLKW */
2270 #ifdef F_SETOWN
2271         if (x == F_SETOWN)
2272                 {*r = Mono_Posix_FcntlCommand_F_SETOWN; return 0;}
2273 #endif /* ndef F_SETOWN */
2274 #ifdef F_GETOWN
2275         if (x == F_GETOWN)
2276                 {*r = Mono_Posix_FcntlCommand_F_GETOWN; return 0;}
2277 #endif /* ndef F_GETOWN */
2278 #ifdef F_SETSIG
2279         if (x == F_SETSIG)
2280                 {*r = Mono_Posix_FcntlCommand_F_SETSIG; return 0;}
2281 #endif /* ndef F_SETSIG */
2282 #ifdef F_GETSIG
2283         if (x == F_GETSIG)
2284                 {*r = Mono_Posix_FcntlCommand_F_GETSIG; return 0;}
2285 #endif /* ndef F_GETSIG */
2286 #ifdef F_SETLEASE
2287         if (x == F_SETLEASE)
2288                 {*r = Mono_Posix_FcntlCommand_F_SETLEASE; return 0;}
2289 #endif /* ndef F_SETLEASE */
2290 #ifdef F_GETLEASE
2291         if (x == F_GETLEASE)
2292                 {*r = Mono_Posix_FcntlCommand_F_GETLEASE; return 0;}
2293 #endif /* ndef F_GETLEASE */
2294 #ifdef F_NOTIFY
2295         if (x == F_NOTIFY)
2296                 {*r = Mono_Posix_FcntlCommand_F_NOTIFY; return 0;}
2297 #endif /* ndef F_NOTIFY */
2298         errno = EINVAL; return -1;
2299 }
2300
2301 int Mono_Posix_FromLockType (short x, short *r)
2302 {
2303         *r = 0;
2304         if (x == 0)
2305                 return 0;
2306         if (x == Mono_Posix_LockType_F_RDLCK)
2307 #ifdef F_RDLCK
2308                 {*r = F_RDLCK; return 0;}
2309 #else /* def F_RDLCK */
2310                 {errno = EINVAL; return -1;}
2311 #endif /* ndef F_RDLCK */
2312         if (x == Mono_Posix_LockType_F_WRLCK)
2313 #ifdef F_WRLCK
2314                 {*r = F_WRLCK; return 0;}
2315 #else /* def F_WRLCK */
2316                 {errno = EINVAL; return -1;}
2317 #endif /* ndef F_WRLCK */
2318         if (x == Mono_Posix_LockType_F_UNLCK)
2319 #ifdef F_UNLCK
2320                 {*r = F_UNLCK; return 0;}
2321 #else /* def F_UNLCK */
2322                 {errno = EINVAL; return -1;}
2323 #endif /* ndef F_UNLCK */
2324         errno = EINVAL; return -1;
2325 }
2326
2327 int Mono_Posix_ToLockType (short x, short *r)
2328 {
2329         *r = 0;
2330         if (x == 0)
2331                 return 0;
2332 #ifdef F_RDLCK
2333         if (x == F_RDLCK)
2334                 {*r = Mono_Posix_LockType_F_RDLCK; return 0;}
2335 #endif /* ndef F_RDLCK */
2336 #ifdef F_WRLCK
2337         if (x == F_WRLCK)
2338                 {*r = Mono_Posix_LockType_F_WRLCK; return 0;}
2339 #endif /* ndef F_WRLCK */
2340 #ifdef F_UNLCK
2341         if (x == F_UNLCK)
2342                 {*r = Mono_Posix_LockType_F_UNLCK; return 0;}
2343 #endif /* ndef F_UNLCK */
2344         errno = EINVAL; return -1;
2345 }
2346
2347 int Mono_Posix_FromSeekFlags (short x, short *r)
2348 {
2349         *r = 0;
2350         if (x == 0)
2351                 return 0;
2352         if (x == Mono_Posix_SeekFlags_SEEK_SET)
2353 #ifdef SEEK_SET
2354                 {*r = SEEK_SET; return 0;}
2355 #else /* def SEEK_SET */
2356                 {errno = EINVAL; return -1;}
2357 #endif /* ndef SEEK_SET */
2358         if (x == Mono_Posix_SeekFlags_SEEK_CUR)
2359 #ifdef SEEK_CUR
2360                 {*r = SEEK_CUR; return 0;}
2361 #else /* def SEEK_CUR */
2362                 {errno = EINVAL; return -1;}
2363 #endif /* ndef SEEK_CUR */
2364         if (x == Mono_Posix_SeekFlags_SEEK_END)
2365 #ifdef SEEK_END
2366                 {*r = SEEK_END; return 0;}
2367 #else /* def SEEK_END */
2368                 {errno = EINVAL; return -1;}
2369 #endif /* ndef SEEK_END */
2370         if (x == Mono_Posix_SeekFlags_L_SET)
2371 #ifdef L_SET
2372                 {*r = L_SET; return 0;}
2373 #else /* def L_SET */
2374                 {errno = EINVAL; return -1;}
2375 #endif /* ndef L_SET */
2376         if (x == Mono_Posix_SeekFlags_L_INCR)
2377 #ifdef L_INCR
2378                 {*r = L_INCR; return 0;}
2379 #else /* def L_INCR */
2380                 {errno = EINVAL; return -1;}
2381 #endif /* ndef L_INCR */
2382         if (x == Mono_Posix_SeekFlags_L_XTND)
2383 #ifdef L_XTND
2384                 {*r = L_XTND; return 0;}
2385 #else /* def L_XTND */
2386                 {errno = EINVAL; return -1;}
2387 #endif /* ndef L_XTND */
2388         errno = EINVAL; return -1;
2389 }
2390
2391 int Mono_Posix_ToSeekFlags (short x, short *r)
2392 {
2393         *r = 0;
2394         if (x == 0)
2395                 return 0;
2396 #ifdef SEEK_SET
2397         if (x == SEEK_SET)
2398                 {*r = Mono_Posix_SeekFlags_SEEK_SET; return 0;}
2399 #endif /* ndef SEEK_SET */
2400 #ifdef SEEK_CUR
2401         if (x == SEEK_CUR)
2402                 {*r = Mono_Posix_SeekFlags_SEEK_CUR; return 0;}
2403 #endif /* ndef SEEK_CUR */
2404 #ifdef SEEK_END
2405         if (x == SEEK_END)
2406                 {*r = Mono_Posix_SeekFlags_SEEK_END; return 0;}
2407 #endif /* ndef SEEK_END */
2408 #ifdef L_SET
2409         if (x == L_SET)
2410                 {*r = Mono_Posix_SeekFlags_L_SET; return 0;}
2411 #endif /* ndef L_SET */
2412 #ifdef L_INCR
2413         if (x == L_INCR)
2414                 {*r = Mono_Posix_SeekFlags_L_INCR; return 0;}
2415 #endif /* ndef L_INCR */
2416 #ifdef L_XTND
2417         if (x == L_XTND)
2418                 {*r = Mono_Posix_SeekFlags_L_XTND; return 0;}
2419 #endif /* ndef L_XTND */
2420         errno = EINVAL; return -1;
2421 }
2422
2423 int Mono_Posix_FromDirectoryNotifyFlags (int x, int *r)
2424 {
2425         *r = 0;
2426         if (x == 0)
2427                 return 0;
2428         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ACCESS) == Mono_Posix_DirectoryNotifyFlags_DN_ACCESS)
2429 #ifdef DN_ACCESS
2430                 *r |= DN_ACCESS;
2431 #else /* def DN_ACCESS */
2432                 {errno = EINVAL; return -1;}
2433 #endif /* ndef DN_ACCESS */
2434         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MODIFY) == Mono_Posix_DirectoryNotifyFlags_DN_MODIFY)
2435 #ifdef DN_MODIFY
2436                 *r |= DN_MODIFY;
2437 #else /* def DN_MODIFY */
2438                 {errno = EINVAL; return -1;}
2439 #endif /* ndef DN_MODIFY */
2440         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_CREATE) == Mono_Posix_DirectoryNotifyFlags_DN_CREATE)
2441 #ifdef DN_CREATE
2442                 *r |= DN_CREATE;
2443 #else /* def DN_CREATE */
2444                 {errno = EINVAL; return -1;}
2445 #endif /* ndef DN_CREATE */
2446         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_DELETE) == Mono_Posix_DirectoryNotifyFlags_DN_DELETE)
2447 #ifdef DN_DELETE
2448                 *r |= DN_DELETE;
2449 #else /* def DN_DELETE */
2450                 {errno = EINVAL; return -1;}
2451 #endif /* ndef DN_DELETE */
2452         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_RENAME) == Mono_Posix_DirectoryNotifyFlags_DN_RENAME)
2453 #ifdef DN_RENAME
2454                 *r |= DN_RENAME;
2455 #else /* def DN_RENAME */
2456                 {errno = EINVAL; return -1;}
2457 #endif /* ndef DN_RENAME */
2458         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB) == Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB)
2459 #ifdef DN_ATTRIB
2460                 *r |= DN_ATTRIB;
2461 #else /* def DN_ATTRIB */
2462                 {errno = EINVAL; return -1;}
2463 #endif /* ndef DN_ATTRIB */
2464         if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT) == Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT)
2465 #ifdef DN_MULTISHOT
2466                 *r |= DN_MULTISHOT;
2467 #else /* def DN_MULTISHOT */
2468                 {errno = EINVAL; return -1;}
2469 #endif /* ndef DN_MULTISHOT */
2470         return 0;
2471 }
2472
2473 int Mono_Posix_ToDirectoryNotifyFlags (int x, int *r)
2474 {
2475         *r = 0;
2476         if (x == 0)
2477                 return 0;
2478 #ifdef DN_ACCESS
2479         if ((x & DN_ACCESS) == DN_ACCESS)
2480                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ACCESS;
2481 #endif /* ndef DN_ACCESS */
2482 #ifdef DN_MODIFY
2483         if ((x & DN_MODIFY) == DN_MODIFY)
2484                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MODIFY;
2485 #endif /* ndef DN_MODIFY */
2486 #ifdef DN_CREATE
2487         if ((x & DN_CREATE) == DN_CREATE)
2488                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_CREATE;
2489 #endif /* ndef DN_CREATE */
2490 #ifdef DN_DELETE
2491         if ((x & DN_DELETE) == DN_DELETE)
2492                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_DELETE;
2493 #endif /* ndef DN_DELETE */
2494 #ifdef DN_RENAME
2495         if ((x & DN_RENAME) == DN_RENAME)
2496                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_RENAME;
2497 #endif /* ndef DN_RENAME */
2498 #ifdef DN_ATTRIB
2499         if ((x & DN_ATTRIB) == DN_ATTRIB)
2500                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB;
2501 #endif /* ndef DN_ATTRIB */
2502 #ifdef DN_MULTISHOT
2503         if ((x & DN_MULTISHOT) == DN_MULTISHOT)
2504                 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT;
2505 #endif /* ndef DN_MULTISHOT */
2506         return 0;
2507 }
2508
2509 int Mono_Posix_FromPosixFadviseAdvice (int x, int *r)
2510 {
2511         *r = 0;
2512         if (x == 0)
2513                 return 0;
2514         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL)
2515 #ifdef POSIX_FADV_NORMAL
2516                 {*r = POSIX_FADV_NORMAL; return 0;}
2517 #else /* def POSIX_FADV_NORMAL */
2518                 {errno = EINVAL; return -1;}
2519 #endif /* ndef POSIX_FADV_NORMAL */
2520         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM)
2521 #ifdef POSIX_FADV_RANDOM
2522                 {*r = POSIX_FADV_RANDOM; return 0;}
2523 #else /* def POSIX_FADV_RANDOM */
2524                 {errno = EINVAL; return -1;}
2525 #endif /* ndef POSIX_FADV_RANDOM */
2526         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL)
2527 #ifdef POSIX_FADV_SEQUENTIAL
2528                 {*r = POSIX_FADV_SEQUENTIAL; return 0;}
2529 #else /* def POSIX_FADV_SEQUENTIAL */
2530                 {errno = EINVAL; return -1;}
2531 #endif /* ndef POSIX_FADV_SEQUENTIAL */
2532         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED)
2533 #ifdef POSIX_FADV_WILLNEED
2534                 {*r = POSIX_FADV_WILLNEED; return 0;}
2535 #else /* def POSIX_FADV_WILLNEED */
2536                 {errno = EINVAL; return -1;}
2537 #endif /* ndef POSIX_FADV_WILLNEED */
2538         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED)
2539 #ifdef POSIX_FADV_DONTNEED
2540                 {*r = POSIX_FADV_DONTNEED; return 0;}
2541 #else /* def POSIX_FADV_DONTNEED */
2542                 {errno = EINVAL; return -1;}
2543 #endif /* ndef POSIX_FADV_DONTNEED */
2544         if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE)
2545 #ifdef POSIX_FADV_NOREUSE
2546                 {*r = POSIX_FADV_NOREUSE; return 0;}
2547 #else /* def POSIX_FADV_NOREUSE */
2548                 {errno = EINVAL; return -1;}
2549 #endif /* ndef POSIX_FADV_NOREUSE */
2550         errno = EINVAL; return -1;
2551 }
2552
2553 int Mono_Posix_ToPosixFadviseAdvice (int x, int *r)
2554 {
2555         *r = 0;
2556         if (x == 0)
2557                 return 0;
2558 #ifdef POSIX_FADV_NORMAL
2559         if (x == POSIX_FADV_NORMAL)
2560                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL; return 0;}
2561 #endif /* ndef POSIX_FADV_NORMAL */
2562 #ifdef POSIX_FADV_RANDOM
2563         if (x == POSIX_FADV_RANDOM)
2564                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM; return 0;}
2565 #endif /* ndef POSIX_FADV_RANDOM */
2566 #ifdef POSIX_FADV_SEQUENTIAL
2567         if (x == POSIX_FADV_SEQUENTIAL)
2568                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL; return 0;}
2569 #endif /* ndef POSIX_FADV_SEQUENTIAL */
2570 #ifdef POSIX_FADV_WILLNEED
2571         if (x == POSIX_FADV_WILLNEED)
2572                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED; return 0;}
2573 #endif /* ndef POSIX_FADV_WILLNEED */
2574 #ifdef POSIX_FADV_DONTNEED
2575         if (x == POSIX_FADV_DONTNEED)
2576                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED; return 0;}
2577 #endif /* ndef POSIX_FADV_DONTNEED */
2578 #ifdef POSIX_FADV_NOREUSE
2579         if (x == POSIX_FADV_NOREUSE)
2580                 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE; return 0;}
2581 #endif /* ndef POSIX_FADV_NOREUSE */
2582         errno = EINVAL; return -1;
2583 }
2584
2585 int Mono_Posix_FromPosixMadviseAdvice (int x, int *r)
2586 {
2587         *r = 0;
2588         if (x == 0)
2589                 return 0;
2590         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL)
2591 #ifdef POSIX_MADV_NORMAL
2592                 {*r = POSIX_MADV_NORMAL; return 0;}
2593 #else /* def POSIX_MADV_NORMAL */
2594                 {errno = EINVAL; return -1;}
2595 #endif /* ndef POSIX_MADV_NORMAL */
2596         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM)
2597 #ifdef POSIX_MADV_RANDOM
2598                 {*r = POSIX_MADV_RANDOM; return 0;}
2599 #else /* def POSIX_MADV_RANDOM */
2600                 {errno = EINVAL; return -1;}
2601 #endif /* ndef POSIX_MADV_RANDOM */
2602         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL)
2603 #ifdef POSIX_MADV_SEQUENTIAL
2604                 {*r = POSIX_MADV_SEQUENTIAL; return 0;}
2605 #else /* def POSIX_MADV_SEQUENTIAL */
2606                 {errno = EINVAL; return -1;}
2607 #endif /* ndef POSIX_MADV_SEQUENTIAL */
2608         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED)
2609 #ifdef POSIX_MADV_WILLNEED
2610                 {*r = POSIX_MADV_WILLNEED; return 0;}
2611 #else /* def POSIX_MADV_WILLNEED */
2612                 {errno = EINVAL; return -1;}
2613 #endif /* ndef POSIX_MADV_WILLNEED */
2614         if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED)
2615 #ifdef POSIX_MADV_DONTNEED
2616                 {*r = POSIX_MADV_DONTNEED; return 0;}
2617 #else /* def POSIX_MADV_DONTNEED */
2618                 {errno = EINVAL; return -1;}
2619 #endif /* ndef POSIX_MADV_DONTNEED */
2620         errno = EINVAL; return -1;
2621 }
2622
2623 int Mono_Posix_ToPosixMadviseAdvice (int x, int *r)
2624 {
2625         *r = 0;
2626         if (x == 0)
2627                 return 0;
2628 #ifdef POSIX_MADV_NORMAL
2629         if (x == POSIX_MADV_NORMAL)
2630                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL; return 0;}
2631 #endif /* ndef POSIX_MADV_NORMAL */
2632 #ifdef POSIX_MADV_RANDOM
2633         if (x == POSIX_MADV_RANDOM)
2634                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM; return 0;}
2635 #endif /* ndef POSIX_MADV_RANDOM */
2636 #ifdef POSIX_MADV_SEQUENTIAL
2637         if (x == POSIX_MADV_SEQUENTIAL)
2638                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL; return 0;}
2639 #endif /* ndef POSIX_MADV_SEQUENTIAL */
2640 #ifdef POSIX_MADV_WILLNEED
2641         if (x == POSIX_MADV_WILLNEED)
2642                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED; return 0;}
2643 #endif /* ndef POSIX_MADV_WILLNEED */
2644 #ifdef POSIX_MADV_DONTNEED
2645         if (x == POSIX_MADV_DONTNEED)
2646                 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED; return 0;}
2647 #endif /* ndef POSIX_MADV_DONTNEED */
2648         errno = EINVAL; return -1;
2649 }
2650
2651 int Mono_Posix_FromSignum (int x, int *r)
2652 {
2653         *r = 0;
2654         if (x == 0)
2655                 return 0;
2656         if (x == Mono_Posix_Signum_SIGHUP)
2657 #ifdef SIGHUP
2658                 {*r = SIGHUP; return 0;}
2659 #else /* def SIGHUP */
2660                 {errno = EINVAL; return -1;}
2661 #endif /* ndef SIGHUP */
2662         if (x == Mono_Posix_Signum_SIGINT)
2663 #ifdef SIGINT
2664                 {*r = SIGINT; return 0;}
2665 #else /* def SIGINT */
2666                 {errno = EINVAL; return -1;}
2667 #endif /* ndef SIGINT */
2668         if (x == Mono_Posix_Signum_SIGQUIT)
2669 #ifdef SIGQUIT
2670                 {*r = SIGQUIT; return 0;}
2671 #else /* def SIGQUIT */
2672                 {errno = EINVAL; return -1;}
2673 #endif /* ndef SIGQUIT */
2674         if (x == Mono_Posix_Signum_SIGILL)
2675 #ifdef SIGILL
2676                 {*r = SIGILL; return 0;}
2677 #else /* def SIGILL */
2678                 {errno = EINVAL; return -1;}
2679 #endif /* ndef SIGILL */
2680         if (x == Mono_Posix_Signum_SIGTRAP)
2681 #ifdef SIGTRAP
2682                 {*r = SIGTRAP; return 0;}
2683 #else /* def SIGTRAP */
2684                 {errno = EINVAL; return -1;}
2685 #endif /* ndef SIGTRAP */
2686         if (x == Mono_Posix_Signum_SIGABRT)
2687 #ifdef SIGABRT
2688                 {*r = SIGABRT; return 0;}
2689 #else /* def SIGABRT */
2690                 {errno = EINVAL; return -1;}
2691 #endif /* ndef SIGABRT */
2692         if (x == Mono_Posix_Signum_SIGIOT)
2693 #ifdef SIGIOT
2694                 {*r = SIGIOT; return 0;}
2695 #else /* def SIGIOT */
2696                 {errno = EINVAL; return -1;}
2697 #endif /* ndef SIGIOT */
2698         if (x == Mono_Posix_Signum_SIGBUS)
2699 #ifdef SIGBUS
2700                 {*r = SIGBUS; return 0;}
2701 #else /* def SIGBUS */
2702                 {errno = EINVAL; return -1;}
2703 #endif /* ndef SIGBUS */
2704         if (x == Mono_Posix_Signum_SIGFPE)
2705 #ifdef SIGFPE
2706                 {*r = SIGFPE; return 0;}
2707 #else /* def SIGFPE */
2708                 {errno = EINVAL; return -1;}
2709 #endif /* ndef SIGFPE */
2710         if (x == Mono_Posix_Signum_SIGKILL)
2711 #ifdef SIGKILL
2712                 {*r = SIGKILL; return 0;}
2713 #else /* def SIGKILL */
2714                 {errno = EINVAL; return -1;}
2715 #endif /* ndef SIGKILL */
2716         if (x == Mono_Posix_Signum_SIGUSR1)
2717 #ifdef SIGUSR1
2718                 {*r = SIGUSR1; return 0;}
2719 #else /* def SIGUSR1 */
2720                 {errno = EINVAL; return -1;}
2721 #endif /* ndef SIGUSR1 */
2722         if (x == Mono_Posix_Signum_SIGSEGV)
2723 #ifdef SIGSEGV
2724                 {*r = SIGSEGV; return 0;}
2725 #else /* def SIGSEGV */
2726                 {errno = EINVAL; return -1;}
2727 #endif /* ndef SIGSEGV */
2728         if (x == Mono_Posix_Signum_SIGUSR2)
2729 #ifdef SIGUSR2
2730                 {*r = SIGUSR2; return 0;}
2731 #else /* def SIGUSR2 */
2732                 {errno = EINVAL; return -1;}
2733 #endif /* ndef SIGUSR2 */
2734         if (x == Mono_Posix_Signum_SIGPIPE)
2735 #ifdef SIGPIPE
2736                 {*r = SIGPIPE; return 0;}
2737 #else /* def SIGPIPE */
2738                 {errno = EINVAL; return -1;}
2739 #endif /* ndef SIGPIPE */
2740         if (x == Mono_Posix_Signum_SIGALRM)
2741 #ifdef SIGALRM
2742                 {*r = SIGALRM; return 0;}
2743 #else /* def SIGALRM */
2744                 {errno = EINVAL; return -1;}
2745 #endif /* ndef SIGALRM */
2746         if (x == Mono_Posix_Signum_SIGTERM)
2747 #ifdef SIGTERM
2748                 {*r = SIGTERM; return 0;}
2749 #else /* def SIGTERM */
2750                 {errno = EINVAL; return -1;}
2751 #endif /* ndef SIGTERM */
2752         if (x == Mono_Posix_Signum_SIGSTKFLT)
2753 #ifdef SIGSTKFLT
2754                 {*r = SIGSTKFLT; return 0;}
2755 #else /* def SIGSTKFLT */
2756                 {errno = EINVAL; return -1;}
2757 #endif /* ndef SIGSTKFLT */
2758         if (x == Mono_Posix_Signum_SIGCHLD)
2759 #ifdef SIGCHLD
2760                 {*r = SIGCHLD; return 0;}
2761 #else /* def SIGCHLD */
2762                 {errno = EINVAL; return -1;}
2763 #endif /* ndef SIGCHLD */
2764         if (x == Mono_Posix_Signum_SIGCLD)
2765 #ifdef SIGCLD
2766                 {*r = SIGCLD; return 0;}
2767 #else /* def SIGCLD */
2768                 {errno = EINVAL; return -1;}
2769 #endif /* ndef SIGCLD */
2770         if (x == Mono_Posix_Signum_SIGCONT)
2771 #ifdef SIGCONT
2772                 {*r = SIGCONT; return 0;}
2773 #else /* def SIGCONT */
2774                 {errno = EINVAL; return -1;}
2775 #endif /* ndef SIGCONT */
2776         if (x == Mono_Posix_Signum_SIGSTOP)
2777 #ifdef SIGSTOP
2778                 {*r = SIGSTOP; return 0;}
2779 #else /* def SIGSTOP */
2780                 {errno = EINVAL; return -1;}
2781 #endif /* ndef SIGSTOP */
2782         if (x == Mono_Posix_Signum_SIGTSTP)
2783 #ifdef SIGTSTP
2784                 {*r = SIGTSTP; return 0;}
2785 #else /* def SIGTSTP */
2786                 {errno = EINVAL; return -1;}
2787 #endif /* ndef SIGTSTP */
2788         if (x == Mono_Posix_Signum_SIGTTIN)
2789 #ifdef SIGTTIN
2790                 {*r = SIGTTIN; return 0;}
2791 #else /* def SIGTTIN */
2792                 {errno = EINVAL; return -1;}
2793 #endif /* ndef SIGTTIN */
2794         if (x == Mono_Posix_Signum_SIGTTOU)
2795 #ifdef SIGTTOU
2796                 {*r = SIGTTOU; return 0;}
2797 #else /* def SIGTTOU */
2798                 {errno = EINVAL; return -1;}
2799 #endif /* ndef SIGTTOU */
2800         if (x == Mono_Posix_Signum_SIGURG)
2801 #ifdef SIGURG
2802                 {*r = SIGURG; return 0;}
2803 #else /* def SIGURG */
2804                 {errno = EINVAL; return -1;}
2805 #endif /* ndef SIGURG */
2806         if (x == Mono_Posix_Signum_SIGXCPU)
2807 #ifdef SIGXCPU
2808                 {*r = SIGXCPU; return 0;}
2809 #else /* def SIGXCPU */
2810                 {errno = EINVAL; return -1;}
2811 #endif /* ndef SIGXCPU */
2812         if (x == Mono_Posix_Signum_SIGXFSZ)
2813 #ifdef SIGXFSZ
2814                 {*r = SIGXFSZ; return 0;}
2815 #else /* def SIGXFSZ */
2816                 {errno = EINVAL; return -1;}
2817 #endif /* ndef SIGXFSZ */
2818         if (x == Mono_Posix_Signum_SIGVTALRM)
2819 #ifdef SIGVTALRM
2820                 {*r = SIGVTALRM; return 0;}
2821 #else /* def SIGVTALRM */
2822                 {errno = EINVAL; return -1;}
2823 #endif /* ndef SIGVTALRM */
2824         if (x == Mono_Posix_Signum_SIGPROF)
2825 #ifdef SIGPROF
2826                 {*r = SIGPROF; return 0;}
2827 #else /* def SIGPROF */
2828                 {errno = EINVAL; return -1;}
2829 #endif /* ndef SIGPROF */
2830         if (x == Mono_Posix_Signum_SIGWINCH)
2831 #ifdef SIGWINCH
2832                 {*r = SIGWINCH; return 0;}
2833 #else /* def SIGWINCH */
2834                 {errno = EINVAL; return -1;}
2835 #endif /* ndef SIGWINCH */
2836         if (x == Mono_Posix_Signum_SIGIO)
2837 #ifdef SIGIO
2838                 {*r = SIGIO; return 0;}
2839 #else /* def SIGIO */
2840                 {errno = EINVAL; return -1;}
2841 #endif /* ndef SIGIO */
2842         if (x == Mono_Posix_Signum_SIGPOLL)
2843 #ifdef SIGPOLL
2844                 {*r = SIGPOLL; return 0;}
2845 #else /* def SIGPOLL */
2846                 {errno = EINVAL; return -1;}
2847 #endif /* ndef SIGPOLL */
2848         if (x == Mono_Posix_Signum_SIGPWR)
2849 #ifdef SIGPWR
2850                 {*r = SIGPWR; return 0;}
2851 #else /* def SIGPWR */
2852                 {errno = EINVAL; return -1;}
2853 #endif /* ndef SIGPWR */
2854         if (x == Mono_Posix_Signum_SIGSYS)
2855 #ifdef SIGSYS
2856                 {*r = SIGSYS; return 0;}
2857 #else /* def SIGSYS */
2858                 {errno = EINVAL; return -1;}
2859 #endif /* ndef SIGSYS */
2860         if (x == Mono_Posix_Signum_SIGUNUSED)
2861 #ifdef SIGUNUSED
2862                 {*r = SIGUNUSED; return 0;}
2863 #else /* def SIGUNUSED */
2864                 {errno = EINVAL; return -1;}
2865 #endif /* ndef SIGUNUSED */
2866         errno = EINVAL; return -1;
2867 }
2868
2869 int Mono_Posix_ToSignum (int x, int *r)
2870 {
2871         *r = 0;
2872         if (x == 0)
2873                 return 0;
2874 #ifdef SIGHUP
2875         if (x == SIGHUP)
2876                 {*r = Mono_Posix_Signum_SIGHUP; return 0;}
2877 #endif /* ndef SIGHUP */
2878 #ifdef SIGINT
2879         if (x == SIGINT)
2880                 {*r = Mono_Posix_Signum_SIGINT; return 0;}
2881 #endif /* ndef SIGINT */
2882 #ifdef SIGQUIT
2883         if (x == SIGQUIT)
2884                 {*r = Mono_Posix_Signum_SIGQUIT; return 0;}
2885 #endif /* ndef SIGQUIT */
2886 #ifdef SIGILL
2887         if (x == SIGILL)
2888                 {*r = Mono_Posix_Signum_SIGILL; return 0;}
2889 #endif /* ndef SIGILL */
2890 #ifdef SIGTRAP
2891         if (x == SIGTRAP)
2892                 {*r = Mono_Posix_Signum_SIGTRAP; return 0;}
2893 #endif /* ndef SIGTRAP */
2894 #ifdef SIGABRT
2895         if (x == SIGABRT)
2896                 {*r = Mono_Posix_Signum_SIGABRT; return 0;}
2897 #endif /* ndef SIGABRT */
2898 #ifdef SIGIOT
2899         if (x == SIGIOT)
2900                 {*r = Mono_Posix_Signum_SIGIOT; return 0;}
2901 #endif /* ndef SIGIOT */
2902 #ifdef SIGBUS
2903         if (x == SIGBUS)
2904                 {*r = Mono_Posix_Signum_SIGBUS; return 0;}
2905 #endif /* ndef SIGBUS */
2906 #ifdef SIGFPE
2907         if (x == SIGFPE)
2908                 {*r = Mono_Posix_Signum_SIGFPE; return 0;}
2909 #endif /* ndef SIGFPE */
2910 #ifdef SIGKILL
2911         if (x == SIGKILL)
2912                 {*r = Mono_Posix_Signum_SIGKILL; return 0;}
2913 #endif /* ndef SIGKILL */
2914 #ifdef SIGUSR1
2915         if (x == SIGUSR1)
2916                 {*r = Mono_Posix_Signum_SIGUSR1; return 0;}
2917 #endif /* ndef SIGUSR1 */
2918 #ifdef SIGSEGV
2919         if (x == SIGSEGV)
2920                 {*r = Mono_Posix_Signum_SIGSEGV; return 0;}
2921 #endif /* ndef SIGSEGV */
2922 #ifdef SIGUSR2
2923         if (x == SIGUSR2)
2924                 {*r = Mono_Posix_Signum_SIGUSR2; return 0;}
2925 #endif /* ndef SIGUSR2 */
2926 #ifdef SIGPIPE
2927         if (x == SIGPIPE)
2928                 {*r = Mono_Posix_Signum_SIGPIPE; return 0;}
2929 #endif /* ndef SIGPIPE */
2930 #ifdef SIGALRM
2931         if (x == SIGALRM)
2932                 {*r = Mono_Posix_Signum_SIGALRM; return 0;}
2933 #endif /* ndef SIGALRM */
2934 #ifdef SIGTERM
2935         if (x == SIGTERM)
2936                 {*r = Mono_Posix_Signum_SIGTERM; return 0;}
2937 #endif /* ndef SIGTERM */
2938 #ifdef SIGSTKFLT
2939         if (x == SIGSTKFLT)
2940                 {*r = Mono_Posix_Signum_SIGSTKFLT; return 0;}
2941 #endif /* ndef SIGSTKFLT */
2942 #ifdef SIGCHLD
2943         if (x == SIGCHLD)
2944                 {*r = Mono_Posix_Signum_SIGCHLD; return 0;}
2945 #endif /* ndef SIGCHLD */
2946 #ifdef SIGCLD
2947         if (x == SIGCLD)
2948                 {*r = Mono_Posix_Signum_SIGCLD; return 0;}
2949 #endif /* ndef SIGCLD */
2950 #ifdef SIGCONT
2951         if (x == SIGCONT)
2952                 {*r = Mono_Posix_Signum_SIGCONT; return 0;}
2953 #endif /* ndef SIGCONT */
2954 #ifdef SIGSTOP
2955         if (x == SIGSTOP)
2956                 {*r = Mono_Posix_Signum_SIGSTOP; return 0;}
2957 #endif /* ndef SIGSTOP */
2958 #ifdef SIGTSTP
2959         if (x == SIGTSTP)
2960                 {*r = Mono_Posix_Signum_SIGTSTP; return 0;}
2961 #endif /* ndef SIGTSTP */
2962 #ifdef SIGTTIN
2963         if (x == SIGTTIN)
2964                 {*r = Mono_Posix_Signum_SIGTTIN; return 0;}
2965 #endif /* ndef SIGTTIN */
2966 #ifdef SIGTTOU
2967         if (x == SIGTTOU)
2968                 {*r = Mono_Posix_Signum_SIGTTOU; return 0;}
2969 #endif /* ndef SIGTTOU */
2970 #ifdef SIGURG
2971         if (x == SIGURG)
2972                 {*r = Mono_Posix_Signum_SIGURG; return 0;}
2973 #endif /* ndef SIGURG */
2974 #ifdef SIGXCPU
2975         if (x == SIGXCPU)
2976                 {*r = Mono_Posix_Signum_SIGXCPU; return 0;}
2977 #endif /* ndef SIGXCPU */
2978 #ifdef SIGXFSZ
2979         if (x == SIGXFSZ)
2980                 {*r = Mono_Posix_Signum_SIGXFSZ; return 0;}
2981 #endif /* ndef SIGXFSZ */
2982 #ifdef SIGVTALRM
2983         if (x == SIGVTALRM)
2984                 {*r = Mono_Posix_Signum_SIGVTALRM; return 0;}
2985 #endif /* ndef SIGVTALRM */
2986 #ifdef SIGPROF
2987         if (x == SIGPROF)
2988                 {*r = Mono_Posix_Signum_SIGPROF; return 0;}
2989 #endif /* ndef SIGPROF */
2990 #ifdef SIGWINCH
2991         if (x == SIGWINCH)
2992                 {*r = Mono_Posix_Signum_SIGWINCH; return 0;}
2993 #endif /* ndef SIGWINCH */
2994 #ifdef SIGIO
2995         if (x == SIGIO)
2996                 {*r = Mono_Posix_Signum_SIGIO; return 0;}
2997 #endif /* ndef SIGIO */
2998 #ifdef SIGPOLL
2999         if (x == SIGPOLL)
3000                 {*r = Mono_Posix_Signum_SIGPOLL; return 0;}
3001 #endif /* ndef SIGPOLL */
3002 #ifdef SIGPWR
3003         if (x == SIGPWR)
3004                 {*r = Mono_Posix_Signum_SIGPWR; return 0;}
3005 #endif /* ndef SIGPWR */
3006 #ifdef SIGSYS
3007         if (x == SIGSYS)
3008                 {*r = Mono_Posix_Signum_SIGSYS; return 0;}
3009 #endif /* ndef SIGSYS */
3010 #ifdef SIGUNUSED
3011         if (x == SIGUNUSED)
3012                 {*r = Mono_Posix_Signum_SIGUNUSED; return 0;}
3013 #endif /* ndef SIGUNUSED */
3014         errno = EINVAL; return -1;
3015 }
3016
3017 int Mono_Posix_FromWaitOptions (int x, int *r)
3018 {
3019         *r = 0;
3020         if (x == 0)
3021                 return 0;
3022         if ((x & Mono_Posix_WaitOptions_WNOHANG) == Mono_Posix_WaitOptions_WNOHANG)
3023 #ifdef WNOHANG
3024                 *r |= WNOHANG;
3025 #else /* def WNOHANG */
3026                 {errno = EINVAL; return -1;}
3027 #endif /* ndef WNOHANG */
3028         if ((x & Mono_Posix_WaitOptions_WUNTRACED) == Mono_Posix_WaitOptions_WUNTRACED)
3029 #ifdef WUNTRACED
3030                 *r |= WUNTRACED;
3031 #else /* def WUNTRACED */
3032                 {errno = EINVAL; return -1;}
3033 #endif /* ndef WUNTRACED */
3034         return 0;
3035 }
3036
3037 int Mono_Posix_ToWaitOptions (int x, int *r)
3038 {
3039         *r = 0;
3040         if (x == 0)
3041                 return 0;
3042 #ifdef WNOHANG
3043         if ((x & WNOHANG) == WNOHANG)
3044                 *r |= Mono_Posix_WaitOptions_WNOHANG;
3045 #endif /* ndef WNOHANG */
3046 #ifdef WUNTRACED
3047         if ((x & WUNTRACED) == WUNTRACED)
3048                 *r |= Mono_Posix_WaitOptions_WUNTRACED;
3049 #endif /* ndef WUNTRACED */
3050         return 0;
3051 }
3052
3053 int Mono_Posix_FromAccessMode (int x, int *r)
3054 {
3055         *r = 0;
3056         if (x == 0)
3057                 return 0;
3058         if ((x & Mono_Posix_AccessMode_R_OK) == Mono_Posix_AccessMode_R_OK)
3059 #ifdef R_OK
3060                 *r |= R_OK;
3061 #else /* def R_OK */
3062                 {errno = EINVAL; return -1;}
3063 #endif /* ndef R_OK */
3064         if ((x & Mono_Posix_AccessMode_W_OK) == Mono_Posix_AccessMode_W_OK)
3065 #ifdef W_OK
3066                 *r |= W_OK;
3067 #else /* def W_OK */
3068                 {errno = EINVAL; return -1;}
3069 #endif /* ndef W_OK */
3070         if ((x & Mono_Posix_AccessMode_X_OK) == Mono_Posix_AccessMode_X_OK)
3071 #ifdef X_OK
3072                 *r |= X_OK;
3073 #else /* def X_OK */
3074                 {errno = EINVAL; return -1;}
3075 #endif /* ndef X_OK */
3076         if ((x & Mono_Posix_AccessMode_F_OK) == Mono_Posix_AccessMode_F_OK)
3077 #ifdef F_OK
3078                 *r |= F_OK;
3079 #else /* def F_OK */
3080                 {errno = EINVAL; return -1;}
3081 #endif /* ndef F_OK */
3082         return 0;
3083 }
3084
3085 int Mono_Posix_ToAccessMode (int x, int *r)
3086 {
3087         *r = 0;
3088         if (x == 0)
3089                 return 0;
3090 #ifdef R_OK
3091         if ((x & R_OK) == R_OK)
3092                 *r |= Mono_Posix_AccessMode_R_OK;
3093 #endif /* ndef R_OK */
3094 #ifdef W_OK
3095         if ((x & W_OK) == W_OK)
3096                 *r |= Mono_Posix_AccessMode_W_OK;
3097 #endif /* ndef W_OK */
3098 #ifdef X_OK
3099         if ((x & X_OK) == X_OK)
3100                 *r |= Mono_Posix_AccessMode_X_OK;
3101 #endif /* ndef X_OK */
3102 #ifdef F_OK
3103         if ((x & F_OK) == F_OK)
3104                 *r |= Mono_Posix_AccessMode_F_OK;
3105 #endif /* ndef F_OK */
3106         return 0;
3107 }
3108
3109 int Mono_Posix_FromPathConf (int x, int *r)
3110 {
3111         *r = 0;
3112         if (x == 0)
3113                 return 0;
3114         if (x == Mono_Posix_PathConf__PC_LINK_MAX)
3115 #ifdef _PC_LINK_MAX
3116                 {*r = _PC_LINK_MAX; return 0;}
3117 #else /* def _PC_LINK_MAX */
3118                 {errno = EINVAL; return -1;}
3119 #endif /* ndef _PC_LINK_MAX */
3120         if (x == Mono_Posix_PathConf__PC_MAX_CANON)
3121 #ifdef _PC_MAX_CANON
3122                 {*r = _PC_MAX_CANON; return 0;}
3123 #else /* def _PC_MAX_CANON */
3124                 {errno = EINVAL; return -1;}
3125 #endif /* ndef _PC_MAX_CANON */
3126         if (x == Mono_Posix_PathConf__PC_MAX_INPUT)
3127 #ifdef _PC_MAX_INPUT
3128                 {*r = _PC_MAX_INPUT; return 0;}
3129 #else /* def _PC_MAX_INPUT */
3130                 {errno = EINVAL; return -1;}
3131 #endif /* ndef _PC_MAX_INPUT */
3132         if (x == Mono_Posix_PathConf__PC_NAME_MAX)
3133 #ifdef _PC_NAME_MAX
3134                 {*r = _PC_NAME_MAX; return 0;}
3135 #else /* def _PC_NAME_MAX */
3136                 {errno = EINVAL; return -1;}
3137 #endif /* ndef _PC_NAME_MAX */
3138         if (x == Mono_Posix_PathConf__PC_PATH_MAX)
3139 #ifdef _PC_PATH_MAX
3140                 {*r = _PC_PATH_MAX; return 0;}
3141 #else /* def _PC_PATH_MAX */
3142                 {errno = EINVAL; return -1;}
3143 #endif /* ndef _PC_PATH_MAX */
3144         if (x == Mono_Posix_PathConf__PC_PIPE_BUF)
3145 #ifdef _PC_PIPE_BUF
3146                 {*r = _PC_PIPE_BUF; return 0;}
3147 #else /* def _PC_PIPE_BUF */
3148                 {errno = EINVAL; return -1;}
3149 #endif /* ndef _PC_PIPE_BUF */
3150         if (x == Mono_Posix_PathConf__PC_CHOWN_RESTRICTED)
3151 #ifdef _PC_CHOWN_RESTRICTED
3152                 {*r = _PC_CHOWN_RESTRICTED; return 0;}
3153 #else /* def _PC_CHOWN_RESTRICTED */
3154                 {errno = EINVAL; return -1;}
3155 #endif /* ndef _PC_CHOWN_RESTRICTED */
3156         if (x == Mono_Posix_PathConf__PC_NO_TRUNC)
3157 #ifdef _PC_NO_TRUNC
3158                 {*r = _PC_NO_TRUNC; return 0;}
3159 #else /* def _PC_NO_TRUNC */
3160                 {errno = EINVAL; return -1;}
3161 #endif /* ndef _PC_NO_TRUNC */
3162         if (x == Mono_Posix_PathConf__PC_VDISABLE)
3163 #ifdef _PC_VDISABLE
3164                 {*r = _PC_VDISABLE; return 0;}
3165 #else /* def _PC_VDISABLE */
3166                 {errno = EINVAL; return -1;}
3167 #endif /* ndef _PC_VDISABLE */
3168         if (x == Mono_Posix_PathConf__PC_SYNC_IO)
3169 #ifdef _PC_SYNC_IO
3170                 {*r = _PC_SYNC_IO; return 0;}
3171 #else /* def _PC_SYNC_IO */
3172                 {errno = EINVAL; return -1;}
3173 #endif /* ndef _PC_SYNC_IO */
3174         if (x == Mono_Posix_PathConf__PC_ASYNC_IO)
3175 #ifdef _PC_ASYNC_IO
3176                 {*r = _PC_ASYNC_IO; return 0;}
3177 #else /* def _PC_ASYNC_IO */
3178                 {errno = EINVAL; return -1;}
3179 #endif /* ndef _PC_ASYNC_IO */
3180         if (x == Mono_Posix_PathConf__PC_PRIO_IO)
3181 #ifdef _PC_PRIO_IO
3182                 {*r = _PC_PRIO_IO; return 0;}
3183 #else /* def _PC_PRIO_IO */
3184                 {errno = EINVAL; return -1;}
3185 #endif /* ndef _PC_PRIO_IO */
3186         if (x == Mono_Posix_PathConf__PC_SOCK_MAXBUF)
3187 #ifdef _PC_SOCK_MAXBUF
3188                 {*r = _PC_SOCK_MAXBUF; return 0;}
3189 #else /* def _PC_SOCK_MAXBUF */
3190                 {errno = EINVAL; return -1;}
3191 #endif /* ndef _PC_SOCK_MAXBUF */
3192         if (x == Mono_Posix_PathConf__PC_FILESIZEBITS)
3193 #ifdef _PC_FILESIZEBITS
3194                 {*r = _PC_FILESIZEBITS; return 0;}
3195 #else /* def _PC_FILESIZEBITS */
3196                 {errno = EINVAL; return -1;}
3197 #endif /* ndef _PC_FILESIZEBITS */
3198         if (x == Mono_Posix_PathConf__PC_REC_INCR_XFER_SIZE)
3199 #ifdef _PC_REC_INCR_XFER_SIZE
3200                 {*r = _PC_REC_INCR_XFER_SIZE; return 0;}
3201 #else /* def _PC_REC_INCR_XFER_SIZE */
3202                 {errno = EINVAL; return -1;}
3203 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
3204         if (x == Mono_Posix_PathConf__PC_REC_MAX_XFER_SIZE)
3205 #ifdef _PC_REC_MAX_XFER_SIZE
3206                 {*r = _PC_REC_MAX_XFER_SIZE; return 0;}
3207 #else /* def _PC_REC_MAX_XFER_SIZE */
3208                 {errno = EINVAL; return -1;}
3209 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
3210         if (x == Mono_Posix_PathConf__PC_REC_MIN_XFER_SIZE)
3211 #ifdef _PC_REC_MIN_XFER_SIZE
3212                 {*r = _PC_REC_MIN_XFER_SIZE; return 0;}
3213 #else /* def _PC_REC_MIN_XFER_SIZE */
3214                 {errno = EINVAL; return -1;}
3215 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
3216         if (x == Mono_Posix_PathConf__PC_REC_XFER_ALIGN)
3217 #ifdef _PC_REC_XFER_ALIGN
3218                 {*r = _PC_REC_XFER_ALIGN; return 0;}
3219 #else /* def _PC_REC_XFER_ALIGN */
3220                 {errno = EINVAL; return -1;}
3221 #endif /* ndef _PC_REC_XFER_ALIGN */
3222         if (x == Mono_Posix_PathConf__PC_ALLOC_SIZE_MIN)
3223 #ifdef _PC_ALLOC_SIZE_MIN
3224                 {*r = _PC_ALLOC_SIZE_MIN; return 0;}
3225 #else /* def _PC_ALLOC_SIZE_MIN */
3226                 {errno = EINVAL; return -1;}
3227 #endif /* ndef _PC_ALLOC_SIZE_MIN */
3228         if (x == Mono_Posix_PathConf__PC_SYMLINK_MAX)
3229 #ifdef _PC_SYMLINK_MAX
3230                 {*r = _PC_SYMLINK_MAX; return 0;}
3231 #else /* def _PC_SYMLINK_MAX */
3232                 {errno = EINVAL; return -1;}
3233 #endif /* ndef _PC_SYMLINK_MAX */
3234         if (x == Mono_Posix_PathConf__PC_2_SYMLINKS)
3235 #ifdef _PC_2_SYMLINKS
3236                 {*r = _PC_2_SYMLINKS; return 0;}
3237 #else /* def _PC_2_SYMLINKS */
3238                 {errno = EINVAL; return -1;}
3239 #endif /* ndef _PC_2_SYMLINKS */
3240         errno = EINVAL; return -1;
3241 }
3242
3243 int Mono_Posix_ToPathConf (int x, int *r)
3244 {
3245         *r = 0;
3246         if (x == 0)
3247                 return 0;
3248 #ifdef _PC_LINK_MAX
3249         if (x == _PC_LINK_MAX)
3250                 {*r = Mono_Posix_PathConf__PC_LINK_MAX; return 0;}
3251 #endif /* ndef _PC_LINK_MAX */
3252 #ifdef _PC_MAX_CANON
3253         if (x == _PC_MAX_CANON)
3254                 {*r = Mono_Posix_PathConf__PC_MAX_CANON; return 0;}
3255 #endif /* ndef _PC_MAX_CANON */
3256 #ifdef _PC_MAX_INPUT
3257         if (x == _PC_MAX_INPUT)
3258                 {*r = Mono_Posix_PathConf__PC_MAX_INPUT; return 0;}
3259 #endif /* ndef _PC_MAX_INPUT */
3260 #ifdef _PC_NAME_MAX
3261         if (x == _PC_NAME_MAX)
3262                 {*r = Mono_Posix_PathConf__PC_NAME_MAX; return 0;}
3263 #endif /* ndef _PC_NAME_MAX */
3264 #ifdef _PC_PATH_MAX
3265         if (x == _PC_PATH_MAX)
3266                 {*r = Mono_Posix_PathConf__PC_PATH_MAX; return 0;}
3267 #endif /* ndef _PC_PATH_MAX */
3268 #ifdef _PC_PIPE_BUF
3269         if (x == _PC_PIPE_BUF)
3270                 {*r = Mono_Posix_PathConf__PC_PIPE_BUF; return 0;}
3271 #endif /* ndef _PC_PIPE_BUF */
3272 #ifdef _PC_CHOWN_RESTRICTED
3273         if (x == _PC_CHOWN_RESTRICTED)
3274                 {*r = Mono_Posix_PathConf__PC_CHOWN_RESTRICTED; return 0;}
3275 #endif /* ndef _PC_CHOWN_RESTRICTED */
3276 #ifdef _PC_NO_TRUNC
3277         if (x == _PC_NO_TRUNC)
3278                 {*r = Mono_Posix_PathConf__PC_NO_TRUNC; return 0;}
3279 #endif /* ndef _PC_NO_TRUNC */
3280 #ifdef _PC_VDISABLE
3281         if (x == _PC_VDISABLE)
3282                 {*r = Mono_Posix_PathConf__PC_VDISABLE; return 0;}
3283 #endif /* ndef _PC_VDISABLE */
3284 #ifdef _PC_SYNC_IO
3285         if (x == _PC_SYNC_IO)
3286                 {*r = Mono_Posix_PathConf__PC_SYNC_IO; return 0;}
3287 #endif /* ndef _PC_SYNC_IO */
3288 #ifdef _PC_ASYNC_IO
3289         if (x == _PC_ASYNC_IO)
3290                 {*r = Mono_Posix_PathConf__PC_ASYNC_IO; return 0;}
3291 #endif /* ndef _PC_ASYNC_IO */
3292 #ifdef _PC_PRIO_IO
3293         if (x == _PC_PRIO_IO)
3294                 {*r = Mono_Posix_PathConf__PC_PRIO_IO; return 0;}
3295 #endif /* ndef _PC_PRIO_IO */
3296 #ifdef _PC_SOCK_MAXBUF
3297         if (x == _PC_SOCK_MAXBUF)
3298                 {*r = Mono_Posix_PathConf__PC_SOCK_MAXBUF; return 0;}
3299 #endif /* ndef _PC_SOCK_MAXBUF */
3300 #ifdef _PC_FILESIZEBITS
3301         if (x == _PC_FILESIZEBITS)
3302                 {*r = Mono_Posix_PathConf__PC_FILESIZEBITS; return 0;}
3303 #endif /* ndef _PC_FILESIZEBITS */
3304 #ifdef _PC_REC_INCR_XFER_SIZE
3305         if (x == _PC_REC_INCR_XFER_SIZE)
3306                 {*r = Mono_Posix_PathConf__PC_REC_INCR_XFER_SIZE; return 0;}
3307 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
3308 #ifdef _PC_REC_MAX_XFER_SIZE
3309         if (x == _PC_REC_MAX_XFER_SIZE)
3310                 {*r = Mono_Posix_PathConf__PC_REC_MAX_XFER_SIZE; return 0;}
3311 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
3312 #ifdef _PC_REC_MIN_XFER_SIZE
3313         if (x == _PC_REC_MIN_XFER_SIZE)
3314                 {*r = Mono_Posix_PathConf__PC_REC_MIN_XFER_SIZE; return 0;}
3315 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
3316 #ifdef _PC_REC_XFER_ALIGN
3317         if (x == _PC_REC_XFER_ALIGN)
3318                 {*r = Mono_Posix_PathConf__PC_REC_XFER_ALIGN; return 0;}
3319 #endif /* ndef _PC_REC_XFER_ALIGN */
3320 #ifdef _PC_ALLOC_SIZE_MIN
3321         if (x == _PC_ALLOC_SIZE_MIN)
3322                 {*r = Mono_Posix_PathConf__PC_ALLOC_SIZE_MIN; return 0;}
3323 #endif /* ndef _PC_ALLOC_SIZE_MIN */
3324 #ifdef _PC_SYMLINK_MAX
3325         if (x == _PC_SYMLINK_MAX)
3326                 {*r = Mono_Posix_PathConf__PC_SYMLINK_MAX; return 0;}
3327 #endif /* ndef _PC_SYMLINK_MAX */
3328 #ifdef _PC_2_SYMLINKS
3329         if (x == _PC_2_SYMLINKS)
3330                 {*r = Mono_Posix_PathConf__PC_2_SYMLINKS; return 0;}
3331 #endif /* ndef _PC_2_SYMLINKS */
3332         errno = EINVAL; return -1;
3333 }
3334
3335 int Mono_Posix_FromSysConf (int x, int *r)
3336 {
3337         *r = 0;
3338         if (x == 0)
3339                 return 0;
3340         if (x == Mono_Posix_SysConf__SC_ARG_MAX)
3341 #ifdef _SC_ARG_MAX
3342                 {*r = _SC_ARG_MAX; return 0;}
3343 #else /* def _SC_ARG_MAX */
3344                 {errno = EINVAL; return -1;}
3345 #endif /* ndef _SC_ARG_MAX */
3346         if (x == Mono_Posix_SysConf__SC_CHILD_MAX)
3347 #ifdef _SC_CHILD_MAX
3348                 {*r = _SC_CHILD_MAX; return 0;}
3349 #else /* def _SC_CHILD_MAX */
3350                 {errno = EINVAL; return -1;}
3351 #endif /* ndef _SC_CHILD_MAX */
3352         if (x == Mono_Posix_SysConf__SC_CLK_TCK)
3353 #ifdef _SC_CLK_TCK
3354                 {*r = _SC_CLK_TCK; return 0;}
3355 #else /* def _SC_CLK_TCK */
3356                 {errno = EINVAL; return -1;}
3357 #endif /* ndef _SC_CLK_TCK */
3358         if (x == Mono_Posix_SysConf__SC_NGROUPS_MAX)
3359 #ifdef _SC_NGROUPS_MAX
3360                 {*r = _SC_NGROUPS_MAX; return 0;}
3361 #else /* def _SC_NGROUPS_MAX */
3362                 {errno = EINVAL; return -1;}
3363 #endif /* ndef _SC_NGROUPS_MAX */
3364         if (x == Mono_Posix_SysConf__SC_OPEN_MAX)
3365 #ifdef _SC_OPEN_MAX
3366                 {*r = _SC_OPEN_MAX; return 0;}
3367 #else /* def _SC_OPEN_MAX */
3368                 {errno = EINVAL; return -1;}
3369 #endif /* ndef _SC_OPEN_MAX */
3370         if (x == Mono_Posix_SysConf__SC_STREAM_MAX)
3371 #ifdef _SC_STREAM_MAX
3372                 {*r = _SC_STREAM_MAX; return 0;}
3373 #else /* def _SC_STREAM_MAX */
3374                 {errno = EINVAL; return -1;}
3375 #endif /* ndef _SC_STREAM_MAX */
3376         if (x == Mono_Posix_SysConf__SC_TZNAME_MAX)
3377 #ifdef _SC_TZNAME_MAX
3378                 {*r = _SC_TZNAME_MAX; return 0;}
3379 #else /* def _SC_TZNAME_MAX */
3380                 {errno = EINVAL; return -1;}
3381 #endif /* ndef _SC_TZNAME_MAX */
3382         if (x == Mono_Posix_SysConf__SC_JOB_CONTROL)
3383 #ifdef _SC_JOB_CONTROL
3384                 {*r = _SC_JOB_CONTROL; return 0;}
3385 #else /* def _SC_JOB_CONTROL */
3386                 {errno = EINVAL; return -1;}
3387 #endif /* ndef _SC_JOB_CONTROL */
3388         if (x == Mono_Posix_SysConf__SC_SAVED_IDS)
3389 #ifdef _SC_SAVED_IDS
3390                 {*r = _SC_SAVED_IDS; return 0;}
3391 #else /* def _SC_SAVED_IDS */
3392                 {errno = EINVAL; return -1;}
3393 #endif /* ndef _SC_SAVED_IDS */
3394         if (x == Mono_Posix_SysConf__SC_REALTIME_SIGNALS)
3395 #ifdef _SC_REALTIME_SIGNALS
3396                 {*r = _SC_REALTIME_SIGNALS; return 0;}
3397 #else /* def _SC_REALTIME_SIGNALS */
3398                 {errno = EINVAL; return -1;}
3399 #endif /* ndef _SC_REALTIME_SIGNALS */
3400         if (x == Mono_Posix_SysConf__SC_PRIORITY_SCHEDULING)
3401 #ifdef _SC_PRIORITY_SCHEDULING
3402                 {*r = _SC_PRIORITY_SCHEDULING; return 0;}
3403 #else /* def _SC_PRIORITY_SCHEDULING */
3404                 {errno = EINVAL; return -1;}
3405 #endif /* ndef _SC_PRIORITY_SCHEDULING */
3406         if (x == Mono_Posix_SysConf__SC_TIMERS)
3407 #ifdef _SC_TIMERS
3408                 {*r = _SC_TIMERS; return 0;}
3409 #else /* def _SC_TIMERS */
3410                 {errno = EINVAL; return -1;}
3411 #endif /* ndef _SC_TIMERS */
3412         if (x == Mono_Posix_SysConf__SC_ASYNCHRONOUS_IO)
3413 #ifdef _SC_ASYNCHRONOUS_IO
3414                 {*r = _SC_ASYNCHRONOUS_IO; return 0;}
3415 #else /* def _SC_ASYNCHRONOUS_IO */
3416                 {errno = EINVAL; return -1;}
3417 #endif /* ndef _SC_ASYNCHRONOUS_IO */
3418         if (x == Mono_Posix_SysConf__SC_PRIORITIZED_IO)
3419 #ifdef _SC_PRIORITIZED_IO
3420                 {*r = _SC_PRIORITIZED_IO; return 0;}
3421 #else /* def _SC_PRIORITIZED_IO */
3422                 {errno = EINVAL; return -1;}
3423 #endif /* ndef _SC_PRIORITIZED_IO */
3424         if (x == Mono_Posix_SysConf__SC_SYNCHRONIZED_IO)
3425 #ifdef _SC_SYNCHRONIZED_IO
3426                 {*r = _SC_SYNCHRONIZED_IO; return 0;}
3427 #else /* def _SC_SYNCHRONIZED_IO */
3428                 {errno = EINVAL; return -1;}
3429 #endif /* ndef _SC_SYNCHRONIZED_IO */
3430         if (x == Mono_Posix_SysConf__SC_FSYNC)
3431 #ifdef _SC_FSYNC
3432                 {*r = _SC_FSYNC; return 0;}
3433 #else /* def _SC_FSYNC */
3434                 {errno = EINVAL; return -1;}
3435 #endif /* ndef _SC_FSYNC */
3436         if (x == Mono_Posix_SysConf__SC_MAPPED_FILES)
3437 #ifdef _SC_MAPPED_FILES
3438                 {*r = _SC_MAPPED_FILES; return 0;}
3439 #else /* def _SC_MAPPED_FILES */
3440                 {errno = EINVAL; return -1;}
3441 #endif /* ndef _SC_MAPPED_FILES */
3442         if (x == Mono_Posix_SysConf__SC_MEMLOCK)
3443 #ifdef _SC_MEMLOCK
3444                 {*r = _SC_MEMLOCK; return 0;}
3445 #else /* def _SC_MEMLOCK */
3446                 {errno = EINVAL; return -1;}
3447 #endif /* ndef _SC_MEMLOCK */
3448         if (x == Mono_Posix_SysConf__SC_MEMLOCK_RANGE)
3449 #ifdef _SC_MEMLOCK_RANGE
3450                 {*r = _SC_MEMLOCK_RANGE; return 0;}
3451 #else /* def _SC_MEMLOCK_RANGE */
3452                 {errno = EINVAL; return -1;}
3453 #endif /* ndef _SC_MEMLOCK_RANGE */
3454         if (x == Mono_Posix_SysConf__SC_MEMORY_PROTECTION)
3455 #ifdef _SC_MEMORY_PROTECTION
3456                 {*r = _SC_MEMORY_PROTECTION; return 0;}
3457 #else /* def _SC_MEMORY_PROTECTION */
3458                 {errno = EINVAL; return -1;}
3459 #endif /* ndef _SC_MEMORY_PROTECTION */
3460         if (x == Mono_Posix_SysConf__SC_MESSAGE_PASSING)
3461 #ifdef _SC_MESSAGE_PASSING
3462                 {*r = _SC_MESSAGE_PASSING; return 0;}
3463 #else /* def _SC_MESSAGE_PASSING */
3464                 {errno = EINVAL; return -1;}
3465 #endif /* ndef _SC_MESSAGE_PASSING */
3466         if (x == Mono_Posix_SysConf__SC_SEMAPHORES)
3467 #ifdef _SC_SEMAPHORES
3468                 {*r = _SC_SEMAPHORES; return 0;}
3469 #else /* def _SC_SEMAPHORES */
3470                 {errno = EINVAL; return -1;}
3471 #endif /* ndef _SC_SEMAPHORES */
3472         if (x == Mono_Posix_SysConf__SC_SHARED_MEMORY_OBJECTS)
3473 #ifdef _SC_SHARED_MEMORY_OBJECTS
3474                 {*r = _SC_SHARED_MEMORY_OBJECTS; return 0;}
3475 #else /* def _SC_SHARED_MEMORY_OBJECTS */
3476                 {errno = EINVAL; return -1;}
3477 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
3478         if (x == Mono_Posix_SysConf__SC_AIO_LISTIO_MAX)
3479 #ifdef _SC_AIO_LISTIO_MAX
3480                 {*r = _SC_AIO_LISTIO_MAX; return 0;}
3481 #else /* def _SC_AIO_LISTIO_MAX */
3482                 {errno = EINVAL; return -1;}
3483 #endif /* ndef _SC_AIO_LISTIO_MAX */
3484         if (x == Mono_Posix_SysConf__SC_AIO_MAX)
3485 #ifdef _SC_AIO_MAX
3486                 {*r = _SC_AIO_MAX; return 0;}
3487 #else /* def _SC_AIO_MAX */
3488                 {errno = EINVAL; return -1;}
3489 #endif /* ndef _SC_AIO_MAX */
3490         if (x == Mono_Posix_SysConf__SC_AIO_PRIO_DELTA_MAX)
3491 #ifdef _SC_AIO_PRIO_DELTA_MAX
3492                 {*r = _SC_AIO_PRIO_DELTA_MAX; return 0;}
3493 #else /* def _SC_AIO_PRIO_DELTA_MAX */
3494                 {errno = EINVAL; return -1;}
3495 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
3496         if (x == Mono_Posix_SysConf__SC_DELAYTIMER_MAX)
3497 #ifdef _SC_DELAYTIMER_MAX
3498                 {*r = _SC_DELAYTIMER_MAX; return 0;}
3499 #else /* def _SC_DELAYTIMER_MAX */
3500                 {errno = EINVAL; return -1;}
3501 #endif /* ndef _SC_DELAYTIMER_MAX */
3502         if (x == Mono_Posix_SysConf__SC_MQ_OPEN_MAX)
3503 #ifdef _SC_MQ_OPEN_MAX
3504                 {*r = _SC_MQ_OPEN_MAX; return 0;}
3505 #else /* def _SC_MQ_OPEN_MAX */
3506                 {errno = EINVAL; return -1;}
3507 #endif /* ndef _SC_MQ_OPEN_MAX */
3508         if (x == Mono_Posix_SysConf__SC_MQ_PRIO_MAX)
3509 #ifdef _SC_MQ_PRIO_MAX
3510                 {*r = _SC_MQ_PRIO_MAX; return 0;}
3511 #else /* def _SC_MQ_PRIO_MAX */
3512                 {errno = EINVAL; return -1;}
3513 #endif /* ndef _SC_MQ_PRIO_MAX */
3514         if (x == Mono_Posix_SysConf__SC_VERSION)
3515 #ifdef _SC_VERSION
3516                 {*r = _SC_VERSION; return 0;}
3517 #else /* def _SC_VERSION */
3518                 {errno = EINVAL; return -1;}
3519 #endif /* ndef _SC_VERSION */
3520         if (x == Mono_Posix_SysConf__SC_PAGESIZE)
3521 #ifdef _SC_PAGESIZE
3522                 {*r = _SC_PAGESIZE; return 0;}
3523 #else /* def _SC_PAGESIZE */
3524                 {errno = EINVAL; return -1;}
3525 #endif /* ndef _SC_PAGESIZE */
3526         if (x == Mono_Posix_SysConf__SC_RTSIG_MAX)
3527 #ifdef _SC_RTSIG_MAX
3528                 {*r = _SC_RTSIG_MAX; return 0;}
3529 #else /* def _SC_RTSIG_MAX */
3530                 {errno = EINVAL; return -1;}
3531 #endif /* ndef _SC_RTSIG_MAX */
3532         if (x == Mono_Posix_SysConf__SC_SEM_NSEMS_MAX)
3533 #ifdef _SC_SEM_NSEMS_MAX
3534                 {*r = _SC_SEM_NSEMS_MAX; return 0;}
3535 #else /* def _SC_SEM_NSEMS_MAX */
3536                 {errno = EINVAL; return -1;}
3537 #endif /* ndef _SC_SEM_NSEMS_MAX */
3538         if (x == Mono_Posix_SysConf__SC_SEM_VALUE_MAX)
3539 #ifdef _SC_SEM_VALUE_MAX
3540                 {*r = _SC_SEM_VALUE_MAX; return 0;}
3541 #else /* def _SC_SEM_VALUE_MAX */
3542                 {errno = EINVAL; return -1;}
3543 #endif /* ndef _SC_SEM_VALUE_MAX */
3544         if (x == Mono_Posix_SysConf__SC_SIGQUEUE_MAX)
3545 #ifdef _SC_SIGQUEUE_MAX
3546                 {*r = _SC_SIGQUEUE_MAX; return 0;}
3547 #else /* def _SC_SIGQUEUE_MAX */
3548                 {errno = EINVAL; return -1;}
3549 #endif /* ndef _SC_SIGQUEUE_MAX */
3550         if (x == Mono_Posix_SysConf__SC_TIMER_MAX)
3551 #ifdef _SC_TIMER_MAX
3552                 {*r = _SC_TIMER_MAX; return 0;}
3553 #else /* def _SC_TIMER_MAX */
3554                 {errno = EINVAL; return -1;}
3555 #endif /* ndef _SC_TIMER_MAX */
3556         if (x == Mono_Posix_SysConf__SC_BC_BASE_MAX)
3557 #ifdef _SC_BC_BASE_MAX
3558                 {*r = _SC_BC_BASE_MAX; return 0;}
3559 #else /* def _SC_BC_BASE_MAX */
3560                 {errno = EINVAL; return -1;}
3561 #endif /* ndef _SC_BC_BASE_MAX */
3562         if (x == Mono_Posix_SysConf__SC_BC_DIM_MAX)
3563 #ifdef _SC_BC_DIM_MAX
3564                 {*r = _SC_BC_DIM_MAX; return 0;}
3565 #else /* def _SC_BC_DIM_MAX */
3566                 {errno = EINVAL; return -1;}
3567 #endif /* ndef _SC_BC_DIM_MAX */
3568         if (x == Mono_Posix_SysConf__SC_BC_SCALE_MAX)
3569 #ifdef _SC_BC_SCALE_MAX
3570                 {*r = _SC_BC_SCALE_MAX; return 0;}
3571 #else /* def _SC_BC_SCALE_MAX */
3572                 {errno = EINVAL; return -1;}
3573 #endif /* ndef _SC_BC_SCALE_MAX */
3574         if (x == Mono_Posix_SysConf__SC_BC_STRING_MAX)
3575 #ifdef _SC_BC_STRING_MAX
3576                 {*r = _SC_BC_STRING_MAX; return 0;}
3577 #else /* def _SC_BC_STRING_MAX */
3578                 {errno = EINVAL; return -1;}
3579 #endif /* ndef _SC_BC_STRING_MAX */
3580         if (x == Mono_Posix_SysConf__SC_COLL_WEIGHTS_MAX)
3581 #ifdef _SC_COLL_WEIGHTS_MAX
3582                 {*r = _SC_COLL_WEIGHTS_MAX; return 0;}
3583 #else /* def _SC_COLL_WEIGHTS_MAX */
3584                 {errno = EINVAL; return -1;}
3585 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
3586         if (x == Mono_Posix_SysConf__SC_EQUIV_CLASS_MAX)
3587 #ifdef _SC_EQUIV_CLASS_MAX
3588                 {*r = _SC_EQUIV_CLASS_MAX; return 0;}
3589 #else /* def _SC_EQUIV_CLASS_MAX */
3590                 {errno = EINVAL; return -1;}
3591 #endif /* ndef _SC_EQUIV_CLASS_MAX */
3592         if (x == Mono_Posix_SysConf__SC_EXPR_NEST_MAX)
3593 #ifdef _SC_EXPR_NEST_MAX
3594                 {*r = _SC_EXPR_NEST_MAX; return 0;}
3595 #else /* def _SC_EXPR_NEST_MAX */
3596                 {errno = EINVAL; return -1;}
3597 #endif /* ndef _SC_EXPR_NEST_MAX */
3598         if (x == Mono_Posix_SysConf__SC_LINE_MAX)
3599 #ifdef _SC_LINE_MAX
3600                 {*r = _SC_LINE_MAX; return 0;}
3601 #else /* def _SC_LINE_MAX */
3602                 {errno = EINVAL; return -1;}
3603 #endif /* ndef _SC_LINE_MAX */
3604         if (x == Mono_Posix_SysConf__SC_RE_DUP_MAX)
3605 #ifdef _SC_RE_DUP_MAX
3606                 {*r = _SC_RE_DUP_MAX; return 0;}
3607 #else /* def _SC_RE_DUP_MAX */
3608                 {errno = EINVAL; return -1;}
3609 #endif /* ndef _SC_RE_DUP_MAX */
3610         if (x == Mono_Posix_SysConf__SC_CHARCLASS_NAME_MAX)
3611 #ifdef _SC_CHARCLASS_NAME_MAX
3612                 {*r = _SC_CHARCLASS_NAME_MAX; return 0;}
3613 #else /* def _SC_CHARCLASS_NAME_MAX */
3614                 {errno = EINVAL; return -1;}
3615 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
3616         if (x == Mono_Posix_SysConf__SC_2_VERSION)
3617 #ifdef _SC_2_VERSION
3618                 {*r = _SC_2_VERSION; return 0;}
3619 #else /* def _SC_2_VERSION */
3620                 {errno = EINVAL; return -1;}
3621 #endif /* ndef _SC_2_VERSION */
3622         if (x == Mono_Posix_SysConf__SC_2_C_BIND)
3623 #ifdef _SC_2_C_BIND
3624                 {*r = _SC_2_C_BIND; return 0;}
3625 #else /* def _SC_2_C_BIND */
3626                 {errno = EINVAL; return -1;}
3627 #endif /* ndef _SC_2_C_BIND */
3628         if (x == Mono_Posix_SysConf__SC_2_C_DEV)
3629 #ifdef _SC_2_C_DEV
3630                 {*r = _SC_2_C_DEV; return 0;}
3631 #else /* def _SC_2_C_DEV */
3632                 {errno = EINVAL; return -1;}
3633 #endif /* ndef _SC_2_C_DEV */
3634         if (x == Mono_Posix_SysConf__SC_2_FORT_DEV)
3635 #ifdef _SC_2_FORT_DEV
3636                 {*r = _SC_2_FORT_DEV; return 0;}
3637 #else /* def _SC_2_FORT_DEV */
3638                 {errno = EINVAL; return -1;}
3639 #endif /* ndef _SC_2_FORT_DEV */
3640         if (x == Mono_Posix_SysConf__SC_2_FORT_RUN)
3641 #ifdef _SC_2_FORT_RUN
3642                 {*r = _SC_2_FORT_RUN; return 0;}
3643 #else /* def _SC_2_FORT_RUN */
3644                 {errno = EINVAL; return -1;}
3645 #endif /* ndef _SC_2_FORT_RUN */
3646         if (x == Mono_Posix_SysConf__SC_2_SW_DEV)
3647 #ifdef _SC_2_SW_DEV
3648                 {*r = _SC_2_SW_DEV; return 0;}
3649 #else /* def _SC_2_SW_DEV */
3650                 {errno = EINVAL; return -1;}
3651 #endif /* ndef _SC_2_SW_DEV */
3652         if (x == Mono_Posix_SysConf__SC_2_LOCALEDEF)
3653 #ifdef _SC_2_LOCALEDEF
3654                 {*r = _SC_2_LOCALEDEF; return 0;}
3655 #else /* def _SC_2_LOCALEDEF */
3656                 {errno = EINVAL; return -1;}
3657 #endif /* ndef _SC_2_LOCALEDEF */
3658         if (x == Mono_Posix_SysConf__SC_PII)
3659 #ifdef _SC_PII
3660                 {*r = _SC_PII; return 0;}
3661 #else /* def _SC_PII */
3662                 {errno = EINVAL; return -1;}
3663 #endif /* ndef _SC_PII */
3664         if (x == Mono_Posix_SysConf__SC_PII_XTI)
3665 #ifdef _SC_PII_XTI
3666                 {*r = _SC_PII_XTI; return 0;}
3667 #else /* def _SC_PII_XTI */
3668                 {errno = EINVAL; return -1;}
3669 #endif /* ndef _SC_PII_XTI */
3670         if (x == Mono_Posix_SysConf__SC_PII_SOCKET)
3671 #ifdef _SC_PII_SOCKET
3672                 {*r = _SC_PII_SOCKET; return 0;}
3673 #else /* def _SC_PII_SOCKET */
3674                 {errno = EINVAL; return -1;}
3675 #endif /* ndef _SC_PII_SOCKET */
3676         if (x == Mono_Posix_SysConf__SC_PII_INTERNET)
3677 #ifdef _SC_PII_INTERNET
3678                 {*r = _SC_PII_INTERNET; return 0;}
3679 #else /* def _SC_PII_INTERNET */
3680                 {errno = EINVAL; return -1;}
3681 #endif /* ndef _SC_PII_INTERNET */
3682         if (x == Mono_Posix_SysConf__SC_PII_OSI)
3683 #ifdef _SC_PII_OSI
3684                 {*r = _SC_PII_OSI; return 0;}
3685 #else /* def _SC_PII_OSI */
3686                 {errno = EINVAL; return -1;}
3687 #endif /* ndef _SC_PII_OSI */
3688         if (x == Mono_Posix_SysConf__SC_POLL)
3689 #ifdef _SC_POLL
3690                 {*r = _SC_POLL; return 0;}
3691 #else /* def _SC_POLL */
3692                 {errno = EINVAL; return -1;}
3693 #endif /* ndef _SC_POLL */
3694         if (x == Mono_Posix_SysConf__SC_SELECT)
3695 #ifdef _SC_SELECT
3696                 {*r = _SC_SELECT; return 0;}
3697 #else /* def _SC_SELECT */
3698                 {errno = EINVAL; return -1;}
3699 #endif /* ndef _SC_SELECT */
3700         if (x == Mono_Posix_SysConf__SC_UIO_MAXIOV)
3701 #ifdef _SC_UIO_MAXIOV
3702                 {*r = _SC_UIO_MAXIOV; return 0;}
3703 #else /* def _SC_UIO_MAXIOV */
3704                 {errno = EINVAL; return -1;}
3705 #endif /* ndef _SC_UIO_MAXIOV */
3706         if (x == Mono_Posix_SysConf__SC_IOV_MAX)
3707 #ifdef _SC_IOV_MAX
3708                 {*r = _SC_IOV_MAX; return 0;}
3709 #else /* def _SC_IOV_MAX */
3710                 {errno = EINVAL; return -1;}
3711 #endif /* ndef _SC_IOV_MAX */
3712         if (x == Mono_Posix_SysConf__SC_PII_INTERNET_STREAM)
3713 #ifdef _SC_PII_INTERNET_STREAM
3714                 {*r = _SC_PII_INTERNET_STREAM; return 0;}
3715 #else /* def _SC_PII_INTERNET_STREAM */
3716                 {errno = EINVAL; return -1;}
3717 #endif /* ndef _SC_PII_INTERNET_STREAM */
3718         if (x == Mono_Posix_SysConf__SC_PII_INTERNET_DGRAM)
3719 #ifdef _SC_PII_INTERNET_DGRAM
3720                 {*r = _SC_PII_INTERNET_DGRAM; return 0;}
3721 #else /* def _SC_PII_INTERNET_DGRAM */
3722                 {errno = EINVAL; return -1;}
3723 #endif /* ndef _SC_PII_INTERNET_DGRAM */
3724         if (x == Mono_Posix_SysConf__SC_PII_OSI_COTS)
3725 #ifdef _SC_PII_OSI_COTS
3726                 {*r = _SC_PII_OSI_COTS; return 0;}
3727 #else /* def _SC_PII_OSI_COTS */
3728                 {errno = EINVAL; return -1;}
3729 #endif /* ndef _SC_PII_OSI_COTS */
3730         if (x == Mono_Posix_SysConf__SC_PII_OSI_CLTS)
3731 #ifdef _SC_PII_OSI_CLTS
3732                 {*r = _SC_PII_OSI_CLTS; return 0;}
3733 #else /* def _SC_PII_OSI_CLTS */
3734                 {errno = EINVAL; return -1;}
3735 #endif /* ndef _SC_PII_OSI_CLTS */
3736         if (x == Mono_Posix_SysConf__SC_PII_OSI_M)
3737 #ifdef _SC_PII_OSI_M
3738                 {*r = _SC_PII_OSI_M; return 0;}
3739 #else /* def _SC_PII_OSI_M */
3740                 {errno = EINVAL; return -1;}
3741 #endif /* ndef _SC_PII_OSI_M */
3742         if (x == Mono_Posix_SysConf__SC_T_IOV_MAX)
3743 #ifdef _SC_T_IOV_MAX
3744                 {*r = _SC_T_IOV_MAX; return 0;}
3745 #else /* def _SC_T_IOV_MAX */
3746                 {errno = EINVAL; return -1;}
3747 #endif /* ndef _SC_T_IOV_MAX */
3748         if (x == Mono_Posix_SysConf__SC_THREADS)
3749 #ifdef _SC_THREADS
3750                 {*r = _SC_THREADS; return 0;}
3751 #else /* def _SC_THREADS */
3752                 {errno = EINVAL; return -1;}
3753 #endif /* ndef _SC_THREADS */
3754         if (x == Mono_Posix_SysConf__SC_THREAD_SAFE_FUNCTIONS)
3755 #ifdef _SC_THREAD_SAFE_FUNCTIONS
3756                 {*r = _SC_THREAD_SAFE_FUNCTIONS; return 0;}
3757 #else /* def _SC_THREAD_SAFE_FUNCTIONS */
3758                 {errno = EINVAL; return -1;}
3759 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
3760         if (x == Mono_Posix_SysConf__SC_GETGR_R_SIZE_MAX)
3761 #ifdef _SC_GETGR_R_SIZE_MAX
3762                 {*r = _SC_GETGR_R_SIZE_MAX; return 0;}
3763 #else /* def _SC_GETGR_R_SIZE_MAX */
3764                 {errno = EINVAL; return -1;}
3765 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
3766         if (x == Mono_Posix_SysConf__SC_GETPW_R_SIZE_MAX)
3767 #ifdef _SC_GETPW_R_SIZE_MAX
3768                 {*r = _SC_GETPW_R_SIZE_MAX; return 0;}
3769 #else /* def _SC_GETPW_R_SIZE_MAX */
3770                 {errno = EINVAL; return -1;}
3771 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
3772         if (x == Mono_Posix_SysConf__SC_LOGIN_NAME_MAX)
3773 #ifdef _SC_LOGIN_NAME_MAX
3774                 {*r = _SC_LOGIN_NAME_MAX; return 0;}
3775 #else /* def _SC_LOGIN_NAME_MAX */
3776                 {errno = EINVAL; return -1;}
3777 #endif /* ndef _SC_LOGIN_NAME_MAX */
3778         if (x == Mono_Posix_SysConf__SC_TTY_NAME_MAX)
3779 #ifdef _SC_TTY_NAME_MAX
3780                 {*r = _SC_TTY_NAME_MAX; return 0;}
3781 #else /* def _SC_TTY_NAME_MAX */
3782                 {errno = EINVAL; return -1;}
3783 #endif /* ndef _SC_TTY_NAME_MAX */
3784         if (x == Mono_Posix_SysConf__SC_THREAD_DESTRUCTOR_ITERATIONS)
3785 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
3786                 {*r = _SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
3787 #else /* def _SC_THREAD_DESTRUCTOR_ITERATIONS */
3788                 {errno = EINVAL; return -1;}
3789 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
3790         if (x == Mono_Posix_SysConf__SC_THREAD_KEYS_MAX)
3791 #ifdef _SC_THREAD_KEYS_MAX
3792                 {*r = _SC_THREAD_KEYS_MAX; return 0;}
3793 #else /* def _SC_THREAD_KEYS_MAX */
3794                 {errno = EINVAL; return -1;}
3795 #endif /* ndef _SC_THREAD_KEYS_MAX */
3796         if (x == Mono_Posix_SysConf__SC_THREAD_STACK_MIN)
3797 #ifdef _SC_THREAD_STACK_MIN
3798                 {*r = _SC_THREAD_STACK_MIN; return 0;}
3799 #else /* def _SC_THREAD_STACK_MIN */
3800                 {errno = EINVAL; return -1;}
3801 #endif /* ndef _SC_THREAD_STACK_MIN */
3802         if (x == Mono_Posix_SysConf__SC_THREAD_THREADS_MAX)
3803 #ifdef _SC_THREAD_THREADS_MAX
3804                 {*r = _SC_THREAD_THREADS_MAX; return 0;}
3805 #else /* def _SC_THREAD_THREADS_MAX */
3806                 {errno = EINVAL; return -1;}
3807 #endif /* ndef _SC_THREAD_THREADS_MAX */
3808         if (x == Mono_Posix_SysConf__SC_THREAD_ATTR_STACKADDR)
3809 #ifdef _SC_THREAD_ATTR_STACKADDR
3810                 {*r = _SC_THREAD_ATTR_STACKADDR; return 0;}
3811 #else /* def _SC_THREAD_ATTR_STACKADDR */
3812                 {errno = EINVAL; return -1;}
3813 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
3814         if (x == Mono_Posix_SysConf__SC_THREAD_ATTR_STACKSIZE)
3815 #ifdef _SC_THREAD_ATTR_STACKSIZE
3816                 {*r = _SC_THREAD_ATTR_STACKSIZE; return 0;}
3817 #else /* def _SC_THREAD_ATTR_STACKSIZE */
3818                 {errno = EINVAL; return -1;}
3819 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
3820         if (x == Mono_Posix_SysConf__SC_THREAD_PRIORITY_SCHEDULING)
3821 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
3822                 {*r = _SC_THREAD_PRIORITY_SCHEDULING; return 0;}
3823 #else /* def _SC_THREAD_PRIORITY_SCHEDULING */
3824                 {errno = EINVAL; return -1;}
3825 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
3826         if (x == Mono_Posix_SysConf__SC_THREAD_PRIO_INHERIT)
3827 #ifdef _SC_THREAD_PRIO_INHERIT
3828                 {*r = _SC_THREAD_PRIO_INHERIT; return 0;}
3829 #else /* def _SC_THREAD_PRIO_INHERIT */
3830                 {errno = EINVAL; return -1;}
3831 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
3832         if (x == Mono_Posix_SysConf__SC_THREAD_PRIO_PROTECT)
3833 #ifdef _SC_THREAD_PRIO_PROTECT
3834                 {*r = _SC_THREAD_PRIO_PROTECT; return 0;}
3835 #else /* def _SC_THREAD_PRIO_PROTECT */
3836                 {errno = EINVAL; return -1;}
3837 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
3838         if (x == Mono_Posix_SysConf__SC_THREAD_PROCESS_SHARED)
3839 #ifdef _SC_THREAD_PROCESS_SHARED
3840                 {*r = _SC_THREAD_PROCESS_SHARED; return 0;}
3841 #else /* def _SC_THREAD_PROCESS_SHARED */
3842                 {errno = EINVAL; return -1;}
3843 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
3844         if (x == Mono_Posix_SysConf__SC_NPROCESSORS_CONF)
3845 #ifdef _SC_NPROCESSORS_CONF
3846                 {*r = _SC_NPROCESSORS_CONF; return 0;}
3847 #else /* def _SC_NPROCESSORS_CONF */
3848                 {errno = EINVAL; return -1;}
3849 #endif /* ndef _SC_NPROCESSORS_CONF */
3850         if (x == Mono_Posix_SysConf__SC_NPROCESSORS_ONLN)
3851 #ifdef _SC_NPROCESSORS_ONLN
3852                 {*r = _SC_NPROCESSORS_ONLN; return 0;}
3853 #else /* def _SC_NPROCESSORS_ONLN */
3854                 {errno = EINVAL; return -1;}
3855 #endif /* ndef _SC_NPROCESSORS_ONLN */
3856         if (x == Mono_Posix_SysConf__SC_PHYS_PAGES)
3857 #ifdef _SC_PHYS_PAGES
3858                 {*r = _SC_PHYS_PAGES; return 0;}
3859 #else /* def _SC_PHYS_PAGES */
3860                 {errno = EINVAL; return -1;}
3861 #endif /* ndef _SC_PHYS_PAGES */
3862         if (x == Mono_Posix_SysConf__SC_AVPHYS_PAGES)
3863 #ifdef _SC_AVPHYS_PAGES
3864                 {*r = _SC_AVPHYS_PAGES; return 0;}
3865 #else /* def _SC_AVPHYS_PAGES */
3866                 {errno = EINVAL; return -1;}
3867 #endif /* ndef _SC_AVPHYS_PAGES */
3868         if (x == Mono_Posix_SysConf__SC_ATEXIT_MAX)
3869 #ifdef _SC_ATEXIT_MAX
3870                 {*r = _SC_ATEXIT_MAX; return 0;}
3871 #else /* def _SC_ATEXIT_MAX */
3872                 {errno = EINVAL; return -1;}
3873 #endif /* ndef _SC_ATEXIT_MAX */
3874         if (x == Mono_Posix_SysConf__SC_PASS_MAX)
3875 #ifdef _SC_PASS_MAX
3876                 {*r = _SC_PASS_MAX; return 0;}
3877 #else /* def _SC_PASS_MAX */
3878                 {errno = EINVAL; return -1;}
3879 #endif /* ndef _SC_PASS_MAX */
3880         if (x == Mono_Posix_SysConf__SC_XOPEN_VERSION)
3881 #ifdef _SC_XOPEN_VERSION
3882                 {*r = _SC_XOPEN_VERSION; return 0;}
3883 #else /* def _SC_XOPEN_VERSION */
3884                 {errno = EINVAL; return -1;}
3885 #endif /* ndef _SC_XOPEN_VERSION */
3886         if (x == Mono_Posix_SysConf__SC_XOPEN_XCU_VERSION)
3887 #ifdef _SC_XOPEN_XCU_VERSION
3888                 {*r = _SC_XOPEN_XCU_VERSION; return 0;}
3889 #else /* def _SC_XOPEN_XCU_VERSION */
3890                 {errno = EINVAL; return -1;}
3891 #endif /* ndef _SC_XOPEN_XCU_VERSION */
3892         if (x == Mono_Posix_SysConf__SC_XOPEN_UNIX)
3893 #ifdef _SC_XOPEN_UNIX
3894                 {*r = _SC_XOPEN_UNIX; return 0;}
3895 #else /* def _SC_XOPEN_UNIX */
3896                 {errno = EINVAL; return -1;}
3897 #endif /* ndef _SC_XOPEN_UNIX */
3898         if (x == Mono_Posix_SysConf__SC_XOPEN_CRYPT)
3899 #ifdef _SC_XOPEN_CRYPT
3900                 {*r = _SC_XOPEN_CRYPT; return 0;}
3901 #else /* def _SC_XOPEN_CRYPT */
3902                 {errno = EINVAL; return -1;}
3903 #endif /* ndef _SC_XOPEN_CRYPT */
3904         if (x == Mono_Posix_SysConf__SC_XOPEN_ENH_I18N)
3905 #ifdef _SC_XOPEN_ENH_I18N
3906                 {*r = _SC_XOPEN_ENH_I18N; return 0;}
3907 #else /* def _SC_XOPEN_ENH_I18N */
3908                 {errno = EINVAL; return -1;}
3909 #endif /* ndef _SC_XOPEN_ENH_I18N */
3910         if (x == Mono_Posix_SysConf__SC_XOPEN_SHM)
3911 #ifdef _SC_XOPEN_SHM
3912                 {*r = _SC_XOPEN_SHM; return 0;}
3913 #else /* def _SC_XOPEN_SHM */
3914                 {errno = EINVAL; return -1;}
3915 #endif /* ndef _SC_XOPEN_SHM */
3916         if (x == Mono_Posix_SysConf__SC_2_CHAR_TERM)
3917 #ifdef _SC_2_CHAR_TERM
3918                 {*r = _SC_2_CHAR_TERM; return 0;}
3919 #else /* def _SC_2_CHAR_TERM */
3920                 {errno = EINVAL; return -1;}
3921 #endif /* ndef _SC_2_CHAR_TERM */
3922         if (x == Mono_Posix_SysConf__SC_2_C_VERSION)
3923 #ifdef _SC_2_C_VERSION
3924                 {*r = _SC_2_C_VERSION; return 0;}
3925 #else /* def _SC_2_C_VERSION */
3926                 {errno = EINVAL; return -1;}
3927 #endif /* ndef _SC_2_C_VERSION */
3928         if (x == Mono_Posix_SysConf__SC_2_UPE)
3929 #ifdef _SC_2_UPE
3930                 {*r = _SC_2_UPE; return 0;}
3931 #else /* def _SC_2_UPE */
3932                 {errno = EINVAL; return -1;}
3933 #endif /* ndef _SC_2_UPE */
3934         if (x == Mono_Posix_SysConf__SC_XOPEN_XPG2)
3935 #ifdef _SC_XOPEN_XPG2
3936                 {*r = _SC_XOPEN_XPG2; return 0;}
3937 #else /* def _SC_XOPEN_XPG2 */
3938                 {errno = EINVAL; return -1;}
3939 #endif /* ndef _SC_XOPEN_XPG2 */
3940         if (x == Mono_Posix_SysConf__SC_XOPEN_XPG3)
3941 #ifdef _SC_XOPEN_XPG3
3942                 {*r = _SC_XOPEN_XPG3; return 0;}
3943 #else /* def _SC_XOPEN_XPG3 */
3944                 {errno = EINVAL; return -1;}
3945 #endif /* ndef _SC_XOPEN_XPG3 */
3946         if (x == Mono_Posix_SysConf__SC_XOPEN_XPG4)
3947 #ifdef _SC_XOPEN_XPG4
3948                 {*r = _SC_XOPEN_XPG4; return 0;}
3949 #else /* def _SC_XOPEN_XPG4 */
3950                 {errno = EINVAL; return -1;}
3951 #endif /* ndef _SC_XOPEN_XPG4 */
3952         if (x == Mono_Posix_SysConf__SC_CHAR_BIT)
3953 #ifdef _SC_CHAR_BIT
3954                 {*r = _SC_CHAR_BIT; return 0;}
3955 #else /* def _SC_CHAR_BIT */
3956                 {errno = EINVAL; return -1;}
3957 #endif /* ndef _SC_CHAR_BIT */
3958         if (x == Mono_Posix_SysConf__SC_CHAR_MAX)
3959 #ifdef _SC_CHAR_MAX
3960                 {*r = _SC_CHAR_MAX; return 0;}
3961 #else /* def _SC_CHAR_MAX */
3962                 {errno = EINVAL; return -1;}
3963 #endif /* ndef _SC_CHAR_MAX */
3964         if (x == Mono_Posix_SysConf__SC_CHAR_MIN)
3965 #ifdef _SC_CHAR_MIN
3966                 {*r = _SC_CHAR_MIN; return 0;}
3967 #else /* def _SC_CHAR_MIN */
3968                 {errno = EINVAL; return -1;}
3969 #endif /* ndef _SC_CHAR_MIN */
3970         if (x == Mono_Posix_SysConf__SC_INT_MAX)
3971 #ifdef _SC_INT_MAX
3972                 {*r = _SC_INT_MAX; return 0;}
3973 #else /* def _SC_INT_MAX */
3974                 {errno = EINVAL; return -1;}
3975 #endif /* ndef _SC_INT_MAX */
3976         if (x == Mono_Posix_SysConf__SC_INT_MIN)
3977 #ifdef _SC_INT_MIN
3978                 {*r = _SC_INT_MIN; return 0;}
3979 #else /* def _SC_INT_MIN */
3980                 {errno = EINVAL; return -1;}
3981 #endif /* ndef _SC_INT_MIN */
3982         if (x == Mono_Posix_SysConf__SC_LONG_BIT)
3983 #ifdef _SC_LONG_BIT
3984                 {*r = _SC_LONG_BIT; return 0;}
3985 #else /* def _SC_LONG_BIT */
3986                 {errno = EINVAL; return -1;}
3987 #endif /* ndef _SC_LONG_BIT */
3988         if (x == Mono_Posix_SysConf__SC_WORD_BIT)
3989 #ifdef _SC_WORD_BIT
3990                 {*r = _SC_WORD_BIT; return 0;}
3991 #else /* def _SC_WORD_BIT */
3992                 {errno = EINVAL; return -1;}
3993 #endif /* ndef _SC_WORD_BIT */
3994         if (x == Mono_Posix_SysConf__SC_MB_LEN_MAX)
3995 #ifdef _SC_MB_LEN_MAX
3996                 {*r = _SC_MB_LEN_MAX; return 0;}
3997 #else /* def _SC_MB_LEN_MAX */
3998                 {errno = EINVAL; return -1;}
3999 #endif /* ndef _SC_MB_LEN_MAX */
4000         if (x == Mono_Posix_SysConf__SC_NZERO)
4001 #ifdef _SC_NZERO
4002                 {*r = _SC_NZERO; return 0;}
4003 #else /* def _SC_NZERO */
4004                 {errno = EINVAL; return -1;}
4005 #endif /* ndef _SC_NZERO */
4006         if (x == Mono_Posix_SysConf__SC_SSIZE_MAX)
4007 #ifdef _SC_SSIZE_MAX
4008                 {*r = _SC_SSIZE_MAX; return 0;}
4009 #else /* def _SC_SSIZE_MAX */
4010                 {errno = EINVAL; return -1;}
4011 #endif /* ndef _SC_SSIZE_MAX */
4012         if (x == Mono_Posix_SysConf__SC_SCHAR_MAX)
4013 #ifdef _SC_SCHAR_MAX
4014                 {*r = _SC_SCHAR_MAX; return 0;}
4015 #else /* def _SC_SCHAR_MAX */
4016                 {errno = EINVAL; return -1;}
4017 #endif /* ndef _SC_SCHAR_MAX */
4018         if (x == Mono_Posix_SysConf__SC_SCHAR_MIN)
4019 #ifdef _SC_SCHAR_MIN
4020                 {*r = _SC_SCHAR_MIN; return 0;}
4021 #else /* def _SC_SCHAR_MIN */
4022                 {errno = EINVAL; return -1;}
4023 #endif /* ndef _SC_SCHAR_MIN */
4024         if (x == Mono_Posix_SysConf__SC_SHRT_MAX)
4025 #ifdef _SC_SHRT_MAX
4026                 {*r = _SC_SHRT_MAX; return 0;}
4027 #else /* def _SC_SHRT_MAX */
4028                 {errno = EINVAL; return -1;}
4029 #endif /* ndef _SC_SHRT_MAX */
4030         if (x == Mono_Posix_SysConf__SC_SHRT_MIN)
4031 #ifdef _SC_SHRT_MIN
4032                 {*r = _SC_SHRT_MIN; return 0;}
4033 #else /* def _SC_SHRT_MIN */
4034                 {errno = EINVAL; return -1;}
4035 #endif /* ndef _SC_SHRT_MIN */
4036         if (x == Mono_Posix_SysConf__SC_UCHAR_MAX)
4037 #ifdef _SC_UCHAR_MAX
4038                 {*r = _SC_UCHAR_MAX; return 0;}
4039 #else /* def _SC_UCHAR_MAX */
4040                 {errno = EINVAL; return -1;}
4041 #endif /* ndef _SC_UCHAR_MAX */
4042         if (x == Mono_Posix_SysConf__SC_UINT_MAX)
4043 #ifdef _SC_UINT_MAX
4044                 {*r = _SC_UINT_MAX; return 0;}
4045 #else /* def _SC_UINT_MAX */
4046                 {errno = EINVAL; return -1;}
4047 #endif /* ndef _SC_UINT_MAX */
4048         if (x == Mono_Posix_SysConf__SC_ULONG_MAX)
4049 #ifdef _SC_ULONG_MAX
4050                 {*r = _SC_ULONG_MAX; return 0;}
4051 #else /* def _SC_ULONG_MAX */
4052                 {errno = EINVAL; return -1;}
4053 #endif /* ndef _SC_ULONG_MAX */
4054         if (x == Mono_Posix_SysConf__SC_USHRT_MAX)
4055 #ifdef _SC_USHRT_MAX
4056                 {*r = _SC_USHRT_MAX; return 0;}
4057 #else /* def _SC_USHRT_MAX */
4058                 {errno = EINVAL; return -1;}
4059 #endif /* ndef _SC_USHRT_MAX */
4060         if (x == Mono_Posix_SysConf__SC_NL_ARGMAX)
4061 #ifdef _SC_NL_ARGMAX
4062                 {*r = _SC_NL_ARGMAX; return 0;}
4063 #else /* def _SC_NL_ARGMAX */
4064                 {errno = EINVAL; return -1;}
4065 #endif /* ndef _SC_NL_ARGMAX */
4066         if (x == Mono_Posix_SysConf__SC_NL_LANGMAX)
4067 #ifdef _SC_NL_LANGMAX
4068                 {*r = _SC_NL_LANGMAX; return 0;}
4069 #else /* def _SC_NL_LANGMAX */
4070                 {errno = EINVAL; return -1;}
4071 #endif /* ndef _SC_NL_LANGMAX */
4072         if (x == Mono_Posix_SysConf__SC_NL_MSGMAX)
4073 #ifdef _SC_NL_MSGMAX
4074                 {*r = _SC_NL_MSGMAX; return 0;}
4075 #else /* def _SC_NL_MSGMAX */
4076                 {errno = EINVAL; return -1;}
4077 #endif /* ndef _SC_NL_MSGMAX */
4078         if (x == Mono_Posix_SysConf__SC_NL_NMAX)
4079 #ifdef _SC_NL_NMAX
4080                 {*r = _SC_NL_NMAX; return 0;}
4081 #else /* def _SC_NL_NMAX */
4082                 {errno = EINVAL; return -1;}
4083 #endif /* ndef _SC_NL_NMAX */
4084         if (x == Mono_Posix_SysConf__SC_NL_SETMAX)
4085 #ifdef _SC_NL_SETMAX
4086                 {*r = _SC_NL_SETMAX; return 0;}
4087 #else /* def _SC_NL_SETMAX */
4088                 {errno = EINVAL; return -1;}
4089 #endif /* ndef _SC_NL_SETMAX */
4090         if (x == Mono_Posix_SysConf__SC_NL_TEXTMAX)
4091 #ifdef _SC_NL_TEXTMAX
4092                 {*r = _SC_NL_TEXTMAX; return 0;}
4093 #else /* def _SC_NL_TEXTMAX */
4094                 {errno = EINVAL; return -1;}
4095 #endif /* ndef _SC_NL_TEXTMAX */
4096         if (x == Mono_Posix_SysConf__SC_XBS5_ILP32_OFF32)
4097 #ifdef _SC_XBS5_ILP32_OFF32
4098                 {*r = _SC_XBS5_ILP32_OFF32; return 0;}
4099 #else /* def _SC_XBS5_ILP32_OFF32 */
4100                 {errno = EINVAL; return -1;}
4101 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
4102         if (x == Mono_Posix_SysConf__SC_XBS5_ILP32_OFFBIG)
4103 #ifdef _SC_XBS5_ILP32_OFFBIG
4104                 {*r = _SC_XBS5_ILP32_OFFBIG; return 0;}
4105 #else /* def _SC_XBS5_ILP32_OFFBIG */
4106                 {errno = EINVAL; return -1;}
4107 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
4108         if (x == Mono_Posix_SysConf__SC_XBS5_LP64_OFF64)
4109 #ifdef _SC_XBS5_LP64_OFF64
4110                 {*r = _SC_XBS5_LP64_OFF64; return 0;}
4111 #else /* def _SC_XBS5_LP64_OFF64 */
4112                 {errno = EINVAL; return -1;}
4113 #endif /* ndef _SC_XBS5_LP64_OFF64 */
4114         if (x == Mono_Posix_SysConf__SC_XBS5_LPBIG_OFFBIG)
4115 #ifdef _SC_XBS5_LPBIG_OFFBIG
4116                 {*r = _SC_XBS5_LPBIG_OFFBIG; return 0;}
4117 #else /* def _SC_XBS5_LPBIG_OFFBIG */
4118                 {errno = EINVAL; return -1;}
4119 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
4120         if (x == Mono_Posix_SysConf__SC_XOPEN_LEGACY)
4121 #ifdef _SC_XOPEN_LEGACY
4122                 {*r = _SC_XOPEN_LEGACY; return 0;}
4123 #else /* def _SC_XOPEN_LEGACY */
4124                 {errno = EINVAL; return -1;}
4125 #endif /* ndef _SC_XOPEN_LEGACY */
4126         if (x == Mono_Posix_SysConf__SC_XOPEN_REALTIME)
4127 #ifdef _SC_XOPEN_REALTIME
4128                 {*r = _SC_XOPEN_REALTIME; return 0;}
4129 #else /* def _SC_XOPEN_REALTIME */
4130                 {errno = EINVAL; return -1;}
4131 #endif /* ndef _SC_XOPEN_REALTIME */
4132         if (x == Mono_Posix_SysConf__SC_XOPEN_REALTIME_THREADS)
4133 #ifdef _SC_XOPEN_REALTIME_THREADS
4134                 {*r = _SC_XOPEN_REALTIME_THREADS; return 0;}
4135 #else /* def _SC_XOPEN_REALTIME_THREADS */
4136                 {errno = EINVAL; return -1;}
4137 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
4138         if (x == Mono_Posix_SysConf__SC_ADVISORY_INFO)
4139 #ifdef _SC_ADVISORY_INFO
4140                 {*r = _SC_ADVISORY_INFO; return 0;}
4141 #else /* def _SC_ADVISORY_INFO */
4142                 {errno = EINVAL; return -1;}
4143 #endif /* ndef _SC_ADVISORY_INFO */
4144         if (x == Mono_Posix_SysConf__SC_BARRIERS)
4145 #ifdef _SC_BARRIERS
4146                 {*r = _SC_BARRIERS; return 0;}
4147 #else /* def _SC_BARRIERS */
4148                 {errno = EINVAL; return -1;}
4149 #endif /* ndef _SC_BARRIERS */
4150         if (x == Mono_Posix_SysConf__SC_BASE)
4151 #ifdef _SC_BASE
4152                 {*r = _SC_BASE; return 0;}
4153 #else /* def _SC_BASE */
4154                 {errno = EINVAL; return -1;}
4155 #endif /* ndef _SC_BASE */
4156         if (x == Mono_Posix_SysConf__SC_C_LANG_SUPPORT)
4157 #ifdef _SC_C_LANG_SUPPORT
4158                 {*r = _SC_C_LANG_SUPPORT; return 0;}
4159 #else /* def _SC_C_LANG_SUPPORT */
4160                 {errno = EINVAL; return -1;}
4161 #endif /* ndef _SC_C_LANG_SUPPORT */
4162         if (x == Mono_Posix_SysConf__SC_C_LANG_SUPPORT_R)
4163 #ifdef _SC_C_LANG_SUPPORT_R
4164                 {*r = _SC_C_LANG_SUPPORT_R; return 0;}
4165 #else /* def _SC_C_LANG_SUPPORT_R */
4166                 {errno = EINVAL; return -1;}
4167 #endif /* ndef _SC_C_LANG_SUPPORT_R */
4168         if (x == Mono_Posix_SysConf__SC_CLOCK_SELECTION)
4169 #ifdef _SC_CLOCK_SELECTION
4170                 {*r = _SC_CLOCK_SELECTION; return 0;}
4171 #else /* def _SC_CLOCK_SELECTION */
4172                 {errno = EINVAL; return -1;}
4173 #endif /* ndef _SC_CLOCK_SELECTION */
4174         if (x == Mono_Posix_SysConf__SC_CPUTIME)
4175 #ifdef _SC_CPUTIME
4176                 {*r = _SC_CPUTIME; return 0;}
4177 #else /* def _SC_CPUTIME */
4178                 {errno = EINVAL; return -1;}
4179 #endif /* ndef _SC_CPUTIME */
4180         if (x == Mono_Posix_SysConf__SC_THREAD_CPUTIME)
4181 #ifdef _SC_THREAD_CPUTIME
4182                 {*r = _SC_THREAD_CPUTIME; return 0;}
4183 #else /* def _SC_THREAD_CPUTIME */
4184                 {errno = EINVAL; return -1;}
4185 #endif /* ndef _SC_THREAD_CPUTIME */
4186         if (x == Mono_Posix_SysConf__SC_DEVICE_IO)
4187 #ifdef _SC_DEVICE_IO
4188                 {*r = _SC_DEVICE_IO; return 0;}
4189 #else /* def _SC_DEVICE_IO */
4190                 {errno = EINVAL; return -1;}
4191 #endif /* ndef _SC_DEVICE_IO */
4192         if (x == Mono_Posix_SysConf__SC_DEVICE_SPECIFIC)
4193 #ifdef _SC_DEVICE_SPECIFIC
4194                 {*r = _SC_DEVICE_SPECIFIC; return 0;}
4195 #else /* def _SC_DEVICE_SPECIFIC */
4196                 {errno = EINVAL; return -1;}
4197 #endif /* ndef _SC_DEVICE_SPECIFIC */
4198         if (x == Mono_Posix_SysConf__SC_DEVICE_SPECIFIC_R)
4199 #ifdef _SC_DEVICE_SPECIFIC_R
4200                 {*r = _SC_DEVICE_SPECIFIC_R; return 0;}
4201 #else /* def _SC_DEVICE_SPECIFIC_R */
4202                 {errno = EINVAL; return -1;}
4203 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
4204         if (x == Mono_Posix_SysConf__SC_FD_MGMT)
4205 #ifdef _SC_FD_MGMT
4206                 {*r = _SC_FD_MGMT; return 0;}
4207 #else /* def _SC_FD_MGMT */
4208                 {errno = EINVAL; return -1;}
4209 #endif /* ndef _SC_FD_MGMT */
4210         if (x == Mono_Posix_SysConf__SC_FIFO)
4211 #ifdef _SC_FIFO
4212                 {*r = _SC_FIFO; return 0;}
4213 #else /* def _SC_FIFO */
4214                 {errno = EINVAL; return -1;}
4215 #endif /* ndef _SC_FIFO */
4216         if (x == Mono_Posix_SysConf__SC_PIPE)
4217 #ifdef _SC_PIPE
4218                 {*r = _SC_PIPE; return 0;}
4219 #else /* def _SC_PIPE */
4220                 {errno = EINVAL; return -1;}
4221 #endif /* ndef _SC_PIPE */
4222         if (x == Mono_Posix_SysConf__SC_FILE_ATTRIBUTES)
4223 #ifdef _SC_FILE_ATTRIBUTES
4224                 {*r = _SC_FILE_ATTRIBUTES; return 0;}
4225 #else /* def _SC_FILE_ATTRIBUTES */
4226                 {errno = EINVAL; return -1;}
4227 #endif /* ndef _SC_FILE_ATTRIBUTES */
4228         if (x == Mono_Posix_SysConf__SC_FILE_LOCKING)
4229 #ifdef _SC_FILE_LOCKING
4230                 {*r = _SC_FILE_LOCKING; return 0;}
4231 #else /* def _SC_FILE_LOCKING */
4232                 {errno = EINVAL; return -1;}
4233 #endif /* ndef _SC_FILE_LOCKING */
4234         if (x == Mono_Posix_SysConf__SC_FILE_SYSTEM)
4235 #ifdef _SC_FILE_SYSTEM
4236                 {*r = _SC_FILE_SYSTEM; return 0;}
4237 #else /* def _SC_FILE_SYSTEM */
4238                 {errno = EINVAL; return -1;}
4239 #endif /* ndef _SC_FILE_SYSTEM */
4240         if (x == Mono_Posix_SysConf__SC_MONOTONIC_CLOCK)
4241 #ifdef _SC_MONOTONIC_CLOCK
4242                 {*r = _SC_MONOTONIC_CLOCK; return 0;}
4243 #else /* def _SC_MONOTONIC_CLOCK */
4244                 {errno = EINVAL; return -1;}
4245 #endif /* ndef _SC_MONOTONIC_CLOCK */
4246         if (x == Mono_Posix_SysConf__SC_MULTI_PROCESS)
4247 #ifdef _SC_MULTI_PROCESS
4248                 {*r = _SC_MULTI_PROCESS; return 0;}
4249 #else /* def _SC_MULTI_PROCESS */
4250                 {errno = EINVAL; return -1;}
4251 #endif /* ndef _SC_MULTI_PROCESS */
4252         if (x == Mono_Posix_SysConf__SC_SINGLE_PROCESS)
4253 #ifdef _SC_SINGLE_PROCESS
4254                 {*r = _SC_SINGLE_PROCESS; return 0;}
4255 #else /* def _SC_SINGLE_PROCESS */
4256                 {errno = EINVAL; return -1;}
4257 #endif /* ndef _SC_SINGLE_PROCESS */
4258         if (x == Mono_Posix_SysConf__SC_NETWORKING)
4259 #ifdef _SC_NETWORKING
4260                 {*r = _SC_NETWORKING; return 0;}
4261 #else /* def _SC_NETWORKING */
4262                 {errno = EINVAL; return -1;}
4263 #endif /* ndef _SC_NETWORKING */
4264         if (x == Mono_Posix_SysConf__SC_READER_WRITER_LOCKS)
4265 #ifdef _SC_READER_WRITER_LOCKS
4266                 {*r = _SC_READER_WRITER_LOCKS; return 0;}
4267 #else /* def _SC_READER_WRITER_LOCKS */
4268                 {errno = EINVAL; return -1;}
4269 #endif /* ndef _SC_READER_WRITER_LOCKS */
4270         if (x == Mono_Posix_SysConf__SC_SPIN_LOCKS)
4271 #ifdef _SC_SPIN_LOCKS
4272                 {*r = _SC_SPIN_LOCKS; return 0;}
4273 #else /* def _SC_SPIN_LOCKS */
4274                 {errno = EINVAL; return -1;}
4275 #endif /* ndef _SC_SPIN_LOCKS */
4276         if (x == Mono_Posix_SysConf__SC_REGEXP)
4277 #ifdef _SC_REGEXP
4278                 {*r = _SC_REGEXP; return 0;}
4279 #else /* def _SC_REGEXP */
4280                 {errno = EINVAL; return -1;}
4281 #endif /* ndef _SC_REGEXP */
4282         if (x == Mono_Posix_SysConf__SC_REGEX_VERSION)
4283 #ifdef _SC_REGEX_VERSION
4284                 {*r = _SC_REGEX_VERSION; return 0;}
4285 #else /* def _SC_REGEX_VERSION */
4286                 {errno = EINVAL; return -1;}
4287 #endif /* ndef _SC_REGEX_VERSION */
4288         if (x == Mono_Posix_SysConf__SC_SHELL)
4289 #ifdef _SC_SHELL
4290                 {*r = _SC_SHELL; return 0;}
4291 #else /* def _SC_SHELL */
4292                 {errno = EINVAL; return -1;}
4293 #endif /* ndef _SC_SHELL */
4294         if (x == Mono_Posix_SysConf__SC_SIGNALS)
4295 #ifdef _SC_SIGNALS
4296                 {*r = _SC_SIGNALS; return 0;}
4297 #else /* def _SC_SIGNALS */
4298                 {errno = EINVAL; return -1;}
4299 #endif /* ndef _SC_SIGNALS */
4300         if (x == Mono_Posix_SysConf__SC_SPAWN)
4301 #ifdef _SC_SPAWN
4302                 {*r = _SC_SPAWN; return 0;}
4303 #else /* def _SC_SPAWN */
4304                 {errno = EINVAL; return -1;}
4305 #endif /* ndef _SC_SPAWN */
4306         if (x == Mono_Posix_SysConf__SC_SPORADIC_SERVER)
4307 #ifdef _SC_SPORADIC_SERVER
4308                 {*r = _SC_SPORADIC_SERVER; return 0;}
4309 #else /* def _SC_SPORADIC_SERVER */
4310                 {errno = EINVAL; return -1;}
4311 #endif /* ndef _SC_SPORADIC_SERVER */
4312         if (x == Mono_Posix_SysConf__SC_THREAD_SPORADIC_SERVER)
4313 #ifdef _SC_THREAD_SPORADIC_SERVER
4314                 {*r = _SC_THREAD_SPORADIC_SERVER; return 0;}
4315 #else /* def _SC_THREAD_SPORADIC_SERVER */
4316                 {errno = EINVAL; return -1;}
4317 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
4318         if (x == Mono_Posix_SysConf__SC_SYSTEM_DATABASE)
4319 #ifdef _SC_SYSTEM_DATABASE
4320                 {*r = _SC_SYSTEM_DATABASE; return 0;}
4321 #else /* def _SC_SYSTEM_DATABASE */
4322                 {errno = EINVAL; return -1;}
4323 #endif /* ndef _SC_SYSTEM_DATABASE */
4324         if (x == Mono_Posix_SysConf__SC_SYSTEM_DATABASE_R)
4325 #ifdef _SC_SYSTEM_DATABASE_R
4326                 {*r = _SC_SYSTEM_DATABASE_R; return 0;}
4327 #else /* def _SC_SYSTEM_DATABASE_R */
4328                 {errno = EINVAL; return -1;}
4329 #endif /* ndef _SC_SYSTEM_DATABASE_R */
4330         if (x == Mono_Posix_SysConf__SC_TIMEOUTS)
4331 #ifdef _SC_TIMEOUTS
4332                 {*r = _SC_TIMEOUTS; return 0;}
4333 #else /* def _SC_TIMEOUTS */
4334                 {errno = EINVAL; return -1;}
4335 #endif /* ndef _SC_TIMEOUTS */
4336         if (x == Mono_Posix_SysConf__SC_TYPED_MEMORY_OBJECTS)
4337 #ifdef _SC_TYPED_MEMORY_OBJECTS
4338                 {*r = _SC_TYPED_MEMORY_OBJECTS; return 0;}
4339 #else /* def _SC_TYPED_MEMORY_OBJECTS */
4340                 {errno = EINVAL; return -1;}
4341 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
4342         if (x == Mono_Posix_SysConf__SC_USER_GROUPS)
4343 #ifdef _SC_USER_GROUPS
4344                 {*r = _SC_USER_GROUPS; return 0;}
4345 #else /* def _SC_USER_GROUPS */
4346                 {errno = EINVAL; return -1;}
4347 #endif /* ndef _SC_USER_GROUPS */
4348         if (x == Mono_Posix_SysConf__SC_USER_GROUPS_R)
4349 #ifdef _SC_USER_GROUPS_R
4350                 {*r = _SC_USER_GROUPS_R; return 0;}
4351 #else /* def _SC_USER_GROUPS_R */
4352                 {errno = EINVAL; return -1;}
4353 #endif /* ndef _SC_USER_GROUPS_R */
4354         if (x == Mono_Posix_SysConf__SC_2_PBS)
4355 #ifdef _SC_2_PBS
4356                 {*r = _SC_2_PBS; return 0;}
4357 #else /* def _SC_2_PBS */
4358                 {errno = EINVAL; return -1;}
4359 #endif /* ndef _SC_2_PBS */
4360         if (x == Mono_Posix_SysConf__SC_2_PBS_ACCOUNTING)
4361 #ifdef _SC_2_PBS_ACCOUNTING
4362                 {*r = _SC_2_PBS_ACCOUNTING; return 0;}
4363 #else /* def _SC_2_PBS_ACCOUNTING */
4364                 {errno = EINVAL; return -1;}
4365 #endif /* ndef _SC_2_PBS_ACCOUNTING */
4366         if (x == Mono_Posix_SysConf__SC_2_PBS_LOCATE)
4367 #ifdef _SC_2_PBS_LOCATE
4368                 {*r = _SC_2_PBS_LOCATE; return 0;}
4369 #else /* def _SC_2_PBS_LOCATE */
4370                 {errno = EINVAL; return -1;}
4371 #endif /* ndef _SC_2_PBS_LOCATE */
4372         if (x == Mono_Posix_SysConf__SC_2_PBS_MESSAGE)
4373 #ifdef _SC_2_PBS_MESSAGE
4374                 {*r = _SC_2_PBS_MESSAGE; return 0;}
4375 #else /* def _SC_2_PBS_MESSAGE */
4376                 {errno = EINVAL; return -1;}
4377 #endif /* ndef _SC_2_PBS_MESSAGE */
4378         if (x == Mono_Posix_SysConf__SC_2_PBS_TRACK)
4379 #ifdef _SC_2_PBS_TRACK
4380                 {*r = _SC_2_PBS_TRACK; return 0;}
4381 #else /* def _SC_2_PBS_TRACK */
4382                 {errno = EINVAL; return -1;}
4383 #endif /* ndef _SC_2_PBS_TRACK */
4384         if (x == Mono_Posix_SysConf__SC_SYMLOOP_MAX)
4385 #ifdef _SC_SYMLOOP_MAX
4386                 {*r = _SC_SYMLOOP_MAX; return 0;}
4387 #else /* def _SC_SYMLOOP_MAX */
4388                 {errno = EINVAL; return -1;}
4389 #endif /* ndef _SC_SYMLOOP_MAX */
4390         if (x == Mono_Posix_SysConf__SC_STREAMS)
4391 #ifdef _SC_STREAMS
4392                 {*r = _SC_STREAMS; return 0;}
4393 #else /* def _SC_STREAMS */
4394                 {errno = EINVAL; return -1;}
4395 #endif /* ndef _SC_STREAMS */
4396         if (x == Mono_Posix_SysConf__SC_2_PBS_CHECKPOINT)
4397 #ifdef _SC_2_PBS_CHECKPOINT
4398                 {*r = _SC_2_PBS_CHECKPOINT; return 0;}
4399 #else /* def _SC_2_PBS_CHECKPOINT */
4400                 {errno = EINVAL; return -1;}
4401 #endif /* ndef _SC_2_PBS_CHECKPOINT */
4402         if (x == Mono_Posix_SysConf__SC_V6_ILP32_OFF32)
4403 #ifdef _SC_V6_ILP32_OFF32
4404                 {*r = _SC_V6_ILP32_OFF32; return 0;}
4405 #else /* def _SC_V6_ILP32_OFF32 */
4406                 {errno = EINVAL; return -1;}
4407 #endif /* ndef _SC_V6_ILP32_OFF32 */
4408         if (x == Mono_Posix_SysConf__SC_V6_ILP32_OFFBIG)
4409 #ifdef _SC_V6_ILP32_OFFBIG
4410                 {*r = _SC_V6_ILP32_OFFBIG; return 0;}
4411 #else /* def _SC_V6_ILP32_OFFBIG */
4412                 {errno = EINVAL; return -1;}
4413 #endif /* ndef _SC_V6_ILP32_OFFBIG */
4414         if (x == Mono_Posix_SysConf__SC_V6_LP64_OFF64)
4415 #ifdef _SC_V6_LP64_OFF64
4416                 {*r = _SC_V6_LP64_OFF64; return 0;}
4417 #else /* def _SC_V6_LP64_OFF64 */
4418                 {errno = EINVAL; return -1;}
4419 #endif /* ndef _SC_V6_LP64_OFF64 */
4420         if (x == Mono_Posix_SysConf__SC_V6_LPBIG_OFFBIG)
4421 #ifdef _SC_V6_LPBIG_OFFBIG
4422                 {*r = _SC_V6_LPBIG_OFFBIG; return 0;}
4423 #else /* def _SC_V6_LPBIG_OFFBIG */
4424                 {errno = EINVAL; return -1;}
4425 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
4426         if (x == Mono_Posix_SysConf__SC_HOST_NAME_MAX)
4427 #ifdef _SC_HOST_NAME_MAX
4428                 {*r = _SC_HOST_NAME_MAX; return 0;}
4429 #else /* def _SC_HOST_NAME_MAX */
4430                 {errno = EINVAL; return -1;}
4431 #endif /* ndef _SC_HOST_NAME_MAX */
4432         if (x == Mono_Posix_SysConf__SC_TRACE)
4433 #ifdef _SC_TRACE
4434                 {*r = _SC_TRACE; return 0;}
4435 #else /* def _SC_TRACE */
4436                 {errno = EINVAL; return -1;}
4437 #endif /* ndef _SC_TRACE */
4438         if (x == Mono_Posix_SysConf__SC_TRACE_EVENT_FILTER)
4439 #ifdef _SC_TRACE_EVENT_FILTER
4440                 {*r = _SC_TRACE_EVENT_FILTER; return 0;}
4441 #else /* def _SC_TRACE_EVENT_FILTER */
4442                 {errno = EINVAL; return -1;}
4443 #endif /* ndef _SC_TRACE_EVENT_FILTER */
4444         if (x == Mono_Posix_SysConf__SC_TRACE_INHERIT)
4445 #ifdef _SC_TRACE_INHERIT
4446                 {*r = _SC_TRACE_INHERIT; return 0;}
4447 #else /* def _SC_TRACE_INHERIT */
4448                 {errno = EINVAL; return -1;}
4449 #endif /* ndef _SC_TRACE_INHERIT */
4450         if (x == Mono_Posix_SysConf__SC_TRACE_LOG)
4451 #ifdef _SC_TRACE_LOG
4452                 {*r = _SC_TRACE_LOG; return 0;}
4453 #else /* def _SC_TRACE_LOG */
4454                 {errno = EINVAL; return -1;}
4455 #endif /* ndef _SC_TRACE_LOG */
4456         if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_SIZE)
4457 #ifdef _SC_LEVEL1_ICACHE_SIZE
4458                 {*r = _SC_LEVEL1_ICACHE_SIZE; return 0;}
4459 #else /* def _SC_LEVEL1_ICACHE_SIZE */
4460                 {errno = EINVAL; return -1;}
4461 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
4462         if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_ASSOC)
4463 #ifdef _SC_LEVEL1_ICACHE_ASSOC
4464                 {*r = _SC_LEVEL1_ICACHE_ASSOC; return 0;}
4465 #else /* def _SC_LEVEL1_ICACHE_ASSOC */
4466                 {errno = EINVAL; return -1;}
4467 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
4468         if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_LINESIZE)
4469 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
4470                 {*r = _SC_LEVEL1_ICACHE_LINESIZE; return 0;}
4471 #else /* def _SC_LEVEL1_ICACHE_LINESIZE */
4472                 {errno = EINVAL; return -1;}
4473 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
4474         if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_SIZE)
4475 #ifdef _SC_LEVEL1_DCACHE_SIZE
4476                 {*r = _SC_LEVEL1_DCACHE_SIZE; return 0;}
4477 #else /* def _SC_LEVEL1_DCACHE_SIZE */
4478                 {errno = EINVAL; return -1;}
4479 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
4480         if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_ASSOC)
4481 #ifdef _SC_LEVEL1_DCACHE_ASSOC
4482                 {*r = _SC_LEVEL1_DCACHE_ASSOC; return 0;}
4483 #else /* def _SC_LEVEL1_DCACHE_ASSOC */
4484                 {errno = EINVAL; return -1;}
4485 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
4486         if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_LINESIZE)
4487 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
4488                 {*r = _SC_LEVEL1_DCACHE_LINESIZE; return 0;}
4489 #else /* def _SC_LEVEL1_DCACHE_LINESIZE */
4490                 {errno = EINVAL; return -1;}
4491 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
4492         if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_SIZE)
4493 #ifdef _SC_LEVEL2_CACHE_SIZE
4494                 {*r = _SC_LEVEL2_CACHE_SIZE; return 0;}
4495 #else /* def _SC_LEVEL2_CACHE_SIZE */
4496                 {errno = EINVAL; return -1;}
4497 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
4498         if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_ASSOC)
4499 #ifdef _SC_LEVEL2_CACHE_ASSOC
4500                 {*r = _SC_LEVEL2_CACHE_ASSOC; return 0;}
4501 #else /* def _SC_LEVEL2_CACHE_ASSOC */
4502                 {errno = EINVAL; return -1;}
4503 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
4504         if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_LINESIZE)
4505 #ifdef _SC_LEVEL2_CACHE_LINESIZE
4506                 {*r = _SC_LEVEL2_CACHE_LINESIZE; return 0;}
4507 #else /* def _SC_LEVEL2_CACHE_LINESIZE */
4508                 {errno = EINVAL; return -1;}
4509 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
4510         if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_SIZE)
4511 #ifdef _SC_LEVEL3_CACHE_SIZE
4512                 {*r = _SC_LEVEL3_CACHE_SIZE; return 0;}
4513 #else /* def _SC_LEVEL3_CACHE_SIZE */
4514                 {errno = EINVAL; return -1;}
4515 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
4516         if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_ASSOC)
4517 #ifdef _SC_LEVEL3_CACHE_ASSOC
4518                 {*r = _SC_LEVEL3_CACHE_ASSOC; return 0;}
4519 #else /* def _SC_LEVEL3_CACHE_ASSOC */
4520                 {errno = EINVAL; return -1;}
4521 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
4522         if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_LINESIZE)
4523 #ifdef _SC_LEVEL3_CACHE_LINESIZE
4524                 {*r = _SC_LEVEL3_CACHE_LINESIZE; return 0;}
4525 #else /* def _SC_LEVEL3_CACHE_LINESIZE */
4526                 {errno = EINVAL; return -1;}
4527 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
4528         if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_SIZE)
4529 #ifdef _SC_LEVEL4_CACHE_SIZE
4530                 {*r = _SC_LEVEL4_CACHE_SIZE; return 0;}
4531 #else /* def _SC_LEVEL4_CACHE_SIZE */
4532                 {errno = EINVAL; return -1;}
4533 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
4534         if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_ASSOC)
4535 #ifdef _SC_LEVEL4_CACHE_ASSOC
4536                 {*r = _SC_LEVEL4_CACHE_ASSOC; return 0;}
4537 #else /* def _SC_LEVEL4_CACHE_ASSOC */
4538                 {errno = EINVAL; return -1;}
4539 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
4540         if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_LINESIZE)
4541 #ifdef _SC_LEVEL4_CACHE_LINESIZE
4542                 {*r = _SC_LEVEL4_CACHE_LINESIZE; return 0;}
4543 #else /* def _SC_LEVEL4_CACHE_LINESIZE */
4544                 {errno = EINVAL; return -1;}
4545 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
4546         errno = EINVAL; return -1;
4547 }
4548
4549 int Mono_Posix_ToSysConf (int x, int *r)
4550 {
4551         *r = 0;
4552         if (x == 0)
4553                 return 0;
4554 #ifdef _SC_ARG_MAX
4555         if (x == _SC_ARG_MAX)
4556                 {*r = Mono_Posix_SysConf__SC_ARG_MAX; return 0;}
4557 #endif /* ndef _SC_ARG_MAX */
4558 #ifdef _SC_CHILD_MAX
4559         if (x == _SC_CHILD_MAX)
4560                 {*r = Mono_Posix_SysConf__SC_CHILD_MAX; return 0;}
4561 #endif /* ndef _SC_CHILD_MAX */
4562 #ifdef _SC_CLK_TCK
4563         if (x == _SC_CLK_TCK)
4564                 {*r = Mono_Posix_SysConf__SC_CLK_TCK; return 0;}
4565 #endif /* ndef _SC_CLK_TCK */
4566 #ifdef _SC_NGROUPS_MAX
4567         if (x == _SC_NGROUPS_MAX)
4568                 {*r = Mono_Posix_SysConf__SC_NGROUPS_MAX; return 0;}
4569 #endif /* ndef _SC_NGROUPS_MAX */
4570 #ifdef _SC_OPEN_MAX
4571         if (x == _SC_OPEN_MAX)
4572                 {*r = Mono_Posix_SysConf__SC_OPEN_MAX; return 0;}
4573 #endif /* ndef _SC_OPEN_MAX */
4574 #ifdef _SC_STREAM_MAX
4575         if (x == _SC_STREAM_MAX)
4576                 {*r = Mono_Posix_SysConf__SC_STREAM_MAX; return 0;}
4577 #endif /* ndef _SC_STREAM_MAX */
4578 #ifdef _SC_TZNAME_MAX
4579         if (x == _SC_TZNAME_MAX)
4580                 {*r = Mono_Posix_SysConf__SC_TZNAME_MAX; return 0;}
4581 #endif /* ndef _SC_TZNAME_MAX */
4582 #ifdef _SC_JOB_CONTROL
4583         if (x == _SC_JOB_CONTROL)
4584                 {*r = Mono_Posix_SysConf__SC_JOB_CONTROL; return 0;}
4585 #endif /* ndef _SC_JOB_CONTROL */
4586 #ifdef _SC_SAVED_IDS
4587         if (x == _SC_SAVED_IDS)
4588                 {*r = Mono_Posix_SysConf__SC_SAVED_IDS; return 0;}
4589 #endif /* ndef _SC_SAVED_IDS */
4590 #ifdef _SC_REALTIME_SIGNALS
4591         if (x == _SC_REALTIME_SIGNALS)
4592                 {*r = Mono_Posix_SysConf__SC_REALTIME_SIGNALS; return 0;}
4593 #endif /* ndef _SC_REALTIME_SIGNALS */
4594 #ifdef _SC_PRIORITY_SCHEDULING
4595         if (x == _SC_PRIORITY_SCHEDULING)
4596                 {*r = Mono_Posix_SysConf__SC_PRIORITY_SCHEDULING; return 0;}
4597 #endif /* ndef _SC_PRIORITY_SCHEDULING */
4598 #ifdef _SC_TIMERS
4599         if (x == _SC_TIMERS)
4600                 {*r = Mono_Posix_SysConf__SC_TIMERS; return 0;}
4601 #endif /* ndef _SC_TIMERS */
4602 #ifdef _SC_ASYNCHRONOUS_IO
4603         if (x == _SC_ASYNCHRONOUS_IO)
4604                 {*r = Mono_Posix_SysConf__SC_ASYNCHRONOUS_IO; return 0;}
4605 #endif /* ndef _SC_ASYNCHRONOUS_IO */
4606 #ifdef _SC_PRIORITIZED_IO
4607         if (x == _SC_PRIORITIZED_IO)
4608                 {*r = Mono_Posix_SysConf__SC_PRIORITIZED_IO; return 0;}
4609 #endif /* ndef _SC_PRIORITIZED_IO */
4610 #ifdef _SC_SYNCHRONIZED_IO
4611         if (x == _SC_SYNCHRONIZED_IO)
4612                 {*r = Mono_Posix_SysConf__SC_SYNCHRONIZED_IO; return 0;}
4613 #endif /* ndef _SC_SYNCHRONIZED_IO */
4614 #ifdef _SC_FSYNC
4615         if (x == _SC_FSYNC)
4616                 {*r = Mono_Posix_SysConf__SC_FSYNC; return 0;}
4617 #endif /* ndef _SC_FSYNC */
4618 #ifdef _SC_MAPPED_FILES
4619         if (x == _SC_MAPPED_FILES)
4620                 {*r = Mono_Posix_SysConf__SC_MAPPED_FILES; return 0;}
4621 #endif /* ndef _SC_MAPPED_FILES */
4622 #ifdef _SC_MEMLOCK
4623         if (x == _SC_MEMLOCK)
4624                 {*r = Mono_Posix_SysConf__SC_MEMLOCK; return 0;}
4625 #endif /* ndef _SC_MEMLOCK */
4626 #ifdef _SC_MEMLOCK_RANGE
4627         if (x == _SC_MEMLOCK_RANGE)
4628                 {*r = Mono_Posix_SysConf__SC_MEMLOCK_RANGE; return 0;}
4629 #endif /* ndef _SC_MEMLOCK_RANGE */
4630 #ifdef _SC_MEMORY_PROTECTION
4631         if (x == _SC_MEMORY_PROTECTION)
4632                 {*r = Mono_Posix_SysConf__SC_MEMORY_PROTECTION; return 0;}
4633 #endif /* ndef _SC_MEMORY_PROTECTION */
4634 #ifdef _SC_MESSAGE_PASSING
4635         if (x == _SC_MESSAGE_PASSING)
4636                 {*r = Mono_Posix_SysConf__SC_MESSAGE_PASSING; return 0;}
4637 #endif /* ndef _SC_MESSAGE_PASSING */
4638 #ifdef _SC_SEMAPHORES
4639         if (x == _SC_SEMAPHORES)
4640                 {*r = Mono_Posix_SysConf__SC_SEMAPHORES; return 0;}
4641 #endif /* ndef _SC_SEMAPHORES */
4642 #ifdef _SC_SHARED_MEMORY_OBJECTS
4643         if (x == _SC_SHARED_MEMORY_OBJECTS)
4644                 {*r = Mono_Posix_SysConf__SC_SHARED_MEMORY_OBJECTS; return 0;}
4645 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
4646 #ifdef _SC_AIO_LISTIO_MAX
4647         if (x == _SC_AIO_LISTIO_MAX)
4648                 {*r = Mono_Posix_SysConf__SC_AIO_LISTIO_MAX; return 0;}
4649 #endif /* ndef _SC_AIO_LISTIO_MAX */
4650 #ifdef _SC_AIO_MAX
4651         if (x == _SC_AIO_MAX)
4652                 {*r = Mono_Posix_SysConf__SC_AIO_MAX; return 0;}
4653 #endif /* ndef _SC_AIO_MAX */
4654 #ifdef _SC_AIO_PRIO_DELTA_MAX
4655         if (x == _SC_AIO_PRIO_DELTA_MAX)
4656                 {*r = Mono_Posix_SysConf__SC_AIO_PRIO_DELTA_MAX; return 0;}
4657 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
4658 #ifdef _SC_DELAYTIMER_MAX
4659         if (x == _SC_DELAYTIMER_MAX)
4660                 {*r = Mono_Posix_SysConf__SC_DELAYTIMER_MAX; return 0;}
4661 #endif /* ndef _SC_DELAYTIMER_MAX */
4662 #ifdef _SC_MQ_OPEN_MAX
4663         if (x == _SC_MQ_OPEN_MAX)
4664                 {*r = Mono_Posix_SysConf__SC_MQ_OPEN_MAX; return 0;}
4665 #endif /* ndef _SC_MQ_OPEN_MAX */
4666 #ifdef _SC_MQ_PRIO_MAX
4667         if (x == _SC_MQ_PRIO_MAX)
4668                 {*r = Mono_Posix_SysConf__SC_MQ_PRIO_MAX; return 0;}
4669 #endif /* ndef _SC_MQ_PRIO_MAX */
4670 #ifdef _SC_VERSION
4671         if (x == _SC_VERSION)
4672                 {*r = Mono_Posix_SysConf__SC_VERSION; return 0;}
4673 #endif /* ndef _SC_VERSION */
4674 #ifdef _SC_PAGESIZE
4675         if (x == _SC_PAGESIZE)
4676                 {*r = Mono_Posix_SysConf__SC_PAGESIZE; return 0;}
4677 #endif /* ndef _SC_PAGESIZE */
4678 #ifdef _SC_RTSIG_MAX
4679         if (x == _SC_RTSIG_MAX)
4680                 {*r = Mono_Posix_SysConf__SC_RTSIG_MAX; return 0;}
4681 #endif /* ndef _SC_RTSIG_MAX */
4682 #ifdef _SC_SEM_NSEMS_MAX
4683         if (x == _SC_SEM_NSEMS_MAX)
4684                 {*r = Mono_Posix_SysConf__SC_SEM_NSEMS_MAX; return 0;}
4685 #endif /* ndef _SC_SEM_NSEMS_MAX */
4686 #ifdef _SC_SEM_VALUE_MAX
4687         if (x == _SC_SEM_VALUE_MAX)
4688                 {*r = Mono_Posix_SysConf__SC_SEM_VALUE_MAX; return 0;}
4689 #endif /* ndef _SC_SEM_VALUE_MAX */
4690 #ifdef _SC_SIGQUEUE_MAX
4691         if (x == _SC_SIGQUEUE_MAX)
4692                 {*r = Mono_Posix_SysConf__SC_SIGQUEUE_MAX; return 0;}
4693 #endif /* ndef _SC_SIGQUEUE_MAX */
4694 #ifdef _SC_TIMER_MAX
4695         if (x == _SC_TIMER_MAX)
4696                 {*r = Mono_Posix_SysConf__SC_TIMER_MAX; return 0;}
4697 #endif /* ndef _SC_TIMER_MAX */
4698 #ifdef _SC_BC_BASE_MAX
4699         if (x == _SC_BC_BASE_MAX)
4700                 {*r = Mono_Posix_SysConf__SC_BC_BASE_MAX; return 0;}
4701 #endif /* ndef _SC_BC_BASE_MAX */
4702 #ifdef _SC_BC_DIM_MAX
4703         if (x == _SC_BC_DIM_MAX)
4704                 {*r = Mono_Posix_SysConf__SC_BC_DIM_MAX; return 0;}
4705 #endif /* ndef _SC_BC_DIM_MAX */
4706 #ifdef _SC_BC_SCALE_MAX
4707         if (x == _SC_BC_SCALE_MAX)
4708                 {*r = Mono_Posix_SysConf__SC_BC_SCALE_MAX; return 0;}
4709 #endif /* ndef _SC_BC_SCALE_MAX */
4710 #ifdef _SC_BC_STRING_MAX
4711         if (x == _SC_BC_STRING_MAX)
4712                 {*r = Mono_Posix_SysConf__SC_BC_STRING_MAX; return 0;}
4713 #endif /* ndef _SC_BC_STRING_MAX */
4714 #ifdef _SC_COLL_WEIGHTS_MAX
4715         if (x == _SC_COLL_WEIGHTS_MAX)
4716                 {*r = Mono_Posix_SysConf__SC_COLL_WEIGHTS_MAX; return 0;}
4717 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
4718 #ifdef _SC_EQUIV_CLASS_MAX
4719         if (x == _SC_EQUIV_CLASS_MAX)
4720                 {*r = Mono_Posix_SysConf__SC_EQUIV_CLASS_MAX; return 0;}
4721 #endif /* ndef _SC_EQUIV_CLASS_MAX */
4722 #ifdef _SC_EXPR_NEST_MAX
4723         if (x == _SC_EXPR_NEST_MAX)
4724                 {*r = Mono_Posix_SysConf__SC_EXPR_NEST_MAX; return 0;}
4725 #endif /* ndef _SC_EXPR_NEST_MAX */
4726 #ifdef _SC_LINE_MAX
4727         if (x == _SC_LINE_MAX)
4728                 {*r = Mono_Posix_SysConf__SC_LINE_MAX; return 0;}
4729 #endif /* ndef _SC_LINE_MAX */
4730 #ifdef _SC_RE_DUP_MAX
4731         if (x == _SC_RE_DUP_MAX)
4732                 {*r = Mono_Posix_SysConf__SC_RE_DUP_MAX; return 0;}
4733 #endif /* ndef _SC_RE_DUP_MAX */
4734 #ifdef _SC_CHARCLASS_NAME_MAX
4735         if (x == _SC_CHARCLASS_NAME_MAX)
4736                 {*r = Mono_Posix_SysConf__SC_CHARCLASS_NAME_MAX; return 0;}
4737 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
4738 #ifdef _SC_2_VERSION
4739         if (x == _SC_2_VERSION)
4740                 {*r = Mono_Posix_SysConf__SC_2_VERSION; return 0;}
4741 #endif /* ndef _SC_2_VERSION */
4742 #ifdef _SC_2_C_BIND
4743         if (x == _SC_2_C_BIND)
4744                 {*r = Mono_Posix_SysConf__SC_2_C_BIND; return 0;}
4745 #endif /* ndef _SC_2_C_BIND */
4746 #ifdef _SC_2_C_DEV
4747         if (x == _SC_2_C_DEV)
4748                 {*r = Mono_Posix_SysConf__SC_2_C_DEV; return 0;}
4749 #endif /* ndef _SC_2_C_DEV */
4750 #ifdef _SC_2_FORT_DEV
4751         if (x == _SC_2_FORT_DEV)
4752                 {*r = Mono_Posix_SysConf__SC_2_FORT_DEV; return 0;}
4753 #endif /* ndef _SC_2_FORT_DEV */
4754 #ifdef _SC_2_FORT_RUN
4755         if (x == _SC_2_FORT_RUN)
4756                 {*r = Mono_Posix_SysConf__SC_2_FORT_RUN; return 0;}
4757 #endif /* ndef _SC_2_FORT_RUN */
4758 #ifdef _SC_2_SW_DEV
4759         if (x == _SC_2_SW_DEV)
4760                 {*r = Mono_Posix_SysConf__SC_2_SW_DEV; return 0;}
4761 #endif /* ndef _SC_2_SW_DEV */
4762 #ifdef _SC_2_LOCALEDEF
4763         if (x == _SC_2_LOCALEDEF)
4764                 {*r = Mono_Posix_SysConf__SC_2_LOCALEDEF; return 0;}
4765 #endif /* ndef _SC_2_LOCALEDEF */
4766 #ifdef _SC_PII
4767         if (x == _SC_PII)
4768                 {*r = Mono_Posix_SysConf__SC_PII; return 0;}
4769 #endif /* ndef _SC_PII */
4770 #ifdef _SC_PII_XTI
4771         if (x == _SC_PII_XTI)
4772                 {*r = Mono_Posix_SysConf__SC_PII_XTI; return 0;}
4773 #endif /* ndef _SC_PII_XTI */
4774 #ifdef _SC_PII_SOCKET
4775         if (x == _SC_PII_SOCKET)
4776                 {*r = Mono_Posix_SysConf__SC_PII_SOCKET; return 0;}
4777 #endif /* ndef _SC_PII_SOCKET */
4778 #ifdef _SC_PII_INTERNET
4779         if (x == _SC_PII_INTERNET)
4780                 {*r = Mono_Posix_SysConf__SC_PII_INTERNET; return 0;}
4781 #endif /* ndef _SC_PII_INTERNET */
4782 #ifdef _SC_PII_OSI
4783         if (x == _SC_PII_OSI)
4784                 {*r = Mono_Posix_SysConf__SC_PII_OSI; return 0;}
4785 #endif /* ndef _SC_PII_OSI */
4786 #ifdef _SC_POLL
4787         if (x == _SC_POLL)
4788                 {*r = Mono_Posix_SysConf__SC_POLL; return 0;}
4789 #endif /* ndef _SC_POLL */
4790 #ifdef _SC_SELECT
4791         if (x == _SC_SELECT)
4792                 {*r = Mono_Posix_SysConf__SC_SELECT; return 0;}
4793 #endif /* ndef _SC_SELECT */
4794 #ifdef _SC_UIO_MAXIOV
4795         if (x == _SC_UIO_MAXIOV)
4796                 {*r = Mono_Posix_SysConf__SC_UIO_MAXIOV; return 0;}
4797 #endif /* ndef _SC_UIO_MAXIOV */
4798 #ifdef _SC_IOV_MAX
4799         if (x == _SC_IOV_MAX)
4800                 {*r = Mono_Posix_SysConf__SC_IOV_MAX; return 0;}
4801 #endif /* ndef _SC_IOV_MAX */
4802 #ifdef _SC_PII_INTERNET_STREAM
4803         if (x == _SC_PII_INTERNET_STREAM)
4804                 {*r = Mono_Posix_SysConf__SC_PII_INTERNET_STREAM; return 0;}
4805 #endif /* ndef _SC_PII_INTERNET_STREAM */
4806 #ifdef _SC_PII_INTERNET_DGRAM
4807         if (x == _SC_PII_INTERNET_DGRAM)
4808                 {*r = Mono_Posix_SysConf__SC_PII_INTERNET_DGRAM; return 0;}
4809 #endif /* ndef _SC_PII_INTERNET_DGRAM */
4810 #ifdef _SC_PII_OSI_COTS
4811         if (x == _SC_PII_OSI_COTS)
4812                 {*r = Mono_Posix_SysConf__SC_PII_OSI_COTS; return 0;}
4813 #endif /* ndef _SC_PII_OSI_COTS */
4814 #ifdef _SC_PII_OSI_CLTS
4815         if (x == _SC_PII_OSI_CLTS)
4816                 {*r = Mono_Posix_SysConf__SC_PII_OSI_CLTS; return 0;}
4817 #endif /* ndef _SC_PII_OSI_CLTS */
4818 #ifdef _SC_PII_OSI_M
4819         if (x == _SC_PII_OSI_M)
4820                 {*r = Mono_Posix_SysConf__SC_PII_OSI_M; return 0;}
4821 #endif /* ndef _SC_PII_OSI_M */
4822 #ifdef _SC_T_IOV_MAX
4823         if (x == _SC_T_IOV_MAX)
4824                 {*r = Mono_Posix_SysConf__SC_T_IOV_MAX; return 0;}
4825 #endif /* ndef _SC_T_IOV_MAX */
4826 #ifdef _SC_THREADS
4827         if (x == _SC_THREADS)
4828                 {*r = Mono_Posix_SysConf__SC_THREADS; return 0;}
4829 #endif /* ndef _SC_THREADS */
4830 #ifdef _SC_THREAD_SAFE_FUNCTIONS
4831         if (x == _SC_THREAD_SAFE_FUNCTIONS)
4832                 {*r = Mono_Posix_SysConf__SC_THREAD_SAFE_FUNCTIONS; return 0;}
4833 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
4834 #ifdef _SC_GETGR_R_SIZE_MAX
4835         if (x == _SC_GETGR_R_SIZE_MAX)
4836                 {*r = Mono_Posix_SysConf__SC_GETGR_R_SIZE_MAX; return 0;}
4837 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
4838 #ifdef _SC_GETPW_R_SIZE_MAX
4839         if (x == _SC_GETPW_R_SIZE_MAX)
4840                 {*r = Mono_Posix_SysConf__SC_GETPW_R_SIZE_MAX; return 0;}
4841 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
4842 #ifdef _SC_LOGIN_NAME_MAX
4843         if (x == _SC_LOGIN_NAME_MAX)
4844                 {*r = Mono_Posix_SysConf__SC_LOGIN_NAME_MAX; return 0;}
4845 #endif /* ndef _SC_LOGIN_NAME_MAX */
4846 #ifdef _SC_TTY_NAME_MAX
4847         if (x == _SC_TTY_NAME_MAX)
4848                 {*r = Mono_Posix_SysConf__SC_TTY_NAME_MAX; return 0;}
4849 #endif /* ndef _SC_TTY_NAME_MAX */
4850 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
4851         if (x == _SC_THREAD_DESTRUCTOR_ITERATIONS)
4852                 {*r = Mono_Posix_SysConf__SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
4853 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
4854 #ifdef _SC_THREAD_KEYS_MAX
4855         if (x == _SC_THREAD_KEYS_MAX)
4856                 {*r = Mono_Posix_SysConf__SC_THREAD_KEYS_MAX; return 0;}
4857 #endif /* ndef _SC_THREAD_KEYS_MAX */
4858 #ifdef _SC_THREAD_STACK_MIN
4859         if (x == _SC_THREAD_STACK_MIN)
4860                 {*r = Mono_Posix_SysConf__SC_THREAD_STACK_MIN; return 0;}
4861 #endif /* ndef _SC_THREAD_STACK_MIN */
4862 #ifdef _SC_THREAD_THREADS_MAX
4863         if (x == _SC_THREAD_THREADS_MAX)
4864                 {*r = Mono_Posix_SysConf__SC_THREAD_THREADS_MAX; return 0;}
4865 #endif /* ndef _SC_THREAD_THREADS_MAX */
4866 #ifdef _SC_THREAD_ATTR_STACKADDR
4867         if (x == _SC_THREAD_ATTR_STACKADDR)
4868                 {*r = Mono_Posix_SysConf__SC_THREAD_ATTR_STACKADDR; return 0;}
4869 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
4870 #ifdef _SC_THREAD_ATTR_STACKSIZE
4871         if (x == _SC_THREAD_ATTR_STACKSIZE)
4872                 {*r = Mono_Posix_SysConf__SC_THREAD_ATTR_STACKSIZE; return 0;}
4873 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
4874 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
4875         if (x == _SC_THREAD_PRIORITY_SCHEDULING)
4876                 {*r = Mono_Posix_SysConf__SC_THREAD_PRIORITY_SCHEDULING; return 0;}
4877 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
4878 #ifdef _SC_THREAD_PRIO_INHERIT
4879         if (x == _SC_THREAD_PRIO_INHERIT)
4880                 {*r = Mono_Posix_SysConf__SC_THREAD_PRIO_INHERIT; return 0;}
4881 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
4882 #ifdef _SC_THREAD_PRIO_PROTECT
4883         if (x == _SC_THREAD_PRIO_PROTECT)
4884                 {*r = Mono_Posix_SysConf__SC_THREAD_PRIO_PROTECT; return 0;}
4885 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
4886 #ifdef _SC_THREAD_PROCESS_SHARED
4887         if (x == _SC_THREAD_PROCESS_SHARED)
4888                 {*r = Mono_Posix_SysConf__SC_THREAD_PROCESS_SHARED; return 0;}
4889 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
4890 #ifdef _SC_NPROCESSORS_CONF
4891         if (x == _SC_NPROCESSORS_CONF)
4892                 {*r = Mono_Posix_SysConf__SC_NPROCESSORS_CONF; return 0;}
4893 #endif /* ndef _SC_NPROCESSORS_CONF */
4894 #ifdef _SC_NPROCESSORS_ONLN
4895         if (x == _SC_NPROCESSORS_ONLN)
4896                 {*r = Mono_Posix_SysConf__SC_NPROCESSORS_ONLN; return 0;}
4897 #endif /* ndef _SC_NPROCESSORS_ONLN */
4898 #ifdef _SC_PHYS_PAGES
4899         if (x == _SC_PHYS_PAGES)
4900                 {*r = Mono_Posix_SysConf__SC_PHYS_PAGES; return 0;}
4901 #endif /* ndef _SC_PHYS_PAGES */
4902 #ifdef _SC_AVPHYS_PAGES
4903         if (x == _SC_AVPHYS_PAGES)
4904                 {*r = Mono_Posix_SysConf__SC_AVPHYS_PAGES; return 0;}
4905 #endif /* ndef _SC_AVPHYS_PAGES */
4906 #ifdef _SC_ATEXIT_MAX
4907         if (x == _SC_ATEXIT_MAX)
4908                 {*r = Mono_Posix_SysConf__SC_ATEXIT_MAX; return 0;}
4909 #endif /* ndef _SC_ATEXIT_MAX */
4910 #ifdef _SC_PASS_MAX
4911         if (x == _SC_PASS_MAX)
4912                 {*r = Mono_Posix_SysConf__SC_PASS_MAX; return 0;}
4913 #endif /* ndef _SC_PASS_MAX */
4914 #ifdef _SC_XOPEN_VERSION
4915         if (x == _SC_XOPEN_VERSION)
4916                 {*r = Mono_Posix_SysConf__SC_XOPEN_VERSION; return 0;}
4917 #endif /* ndef _SC_XOPEN_VERSION */
4918 #ifdef _SC_XOPEN_XCU_VERSION
4919         if (x == _SC_XOPEN_XCU_VERSION)
4920                 {*r = Mono_Posix_SysConf__SC_XOPEN_XCU_VERSION; return 0;}
4921 #endif /* ndef _SC_XOPEN_XCU_VERSION */
4922 #ifdef _SC_XOPEN_UNIX
4923         if (x == _SC_XOPEN_UNIX)
4924                 {*r = Mono_Posix_SysConf__SC_XOPEN_UNIX; return 0;}
4925 #endif /* ndef _SC_XOPEN_UNIX */
4926 #ifdef _SC_XOPEN_CRYPT
4927         if (x == _SC_XOPEN_CRYPT)
4928                 {*r = Mono_Posix_SysConf__SC_XOPEN_CRYPT; return 0;}
4929 #endif /* ndef _SC_XOPEN_CRYPT */
4930 #ifdef _SC_XOPEN_ENH_I18N
4931         if (x == _SC_XOPEN_ENH_I18N)
4932                 {*r = Mono_Posix_SysConf__SC_XOPEN_ENH_I18N; return 0;}
4933 #endif /* ndef _SC_XOPEN_ENH_I18N */
4934 #ifdef _SC_XOPEN_SHM
4935         if (x == _SC_XOPEN_SHM)
4936                 {*r = Mono_Posix_SysConf__SC_XOPEN_SHM; return 0;}
4937 #endif /* ndef _SC_XOPEN_SHM */
4938 #ifdef _SC_2_CHAR_TERM
4939         if (x == _SC_2_CHAR_TERM)
4940                 {*r = Mono_Posix_SysConf__SC_2_CHAR_TERM; return 0;}
4941 #endif /* ndef _SC_2_CHAR_TERM */
4942 #ifdef _SC_2_C_VERSION
4943         if (x == _SC_2_C_VERSION)
4944                 {*r = Mono_Posix_SysConf__SC_2_C_VERSION; return 0;}
4945 #endif /* ndef _SC_2_C_VERSION */
4946 #ifdef _SC_2_UPE
4947         if (x == _SC_2_UPE)
4948                 {*r = Mono_Posix_SysConf__SC_2_UPE; return 0;}
4949 #endif /* ndef _SC_2_UPE */
4950 #ifdef _SC_XOPEN_XPG2
4951         if (x == _SC_XOPEN_XPG2)
4952                 {*r = Mono_Posix_SysConf__SC_XOPEN_XPG2; return 0;}
4953 #endif /* ndef _SC_XOPEN_XPG2 */
4954 #ifdef _SC_XOPEN_XPG3
4955         if (x == _SC_XOPEN_XPG3)
4956                 {*r = Mono_Posix_SysConf__SC_XOPEN_XPG3; return 0;}
4957 #endif /* ndef _SC_XOPEN_XPG3 */
4958 #ifdef _SC_XOPEN_XPG4
4959         if (x == _SC_XOPEN_XPG4)
4960                 {*r = Mono_Posix_SysConf__SC_XOPEN_XPG4; return 0;}
4961 #endif /* ndef _SC_XOPEN_XPG4 */
4962 #ifdef _SC_CHAR_BIT
4963         if (x == _SC_CHAR_BIT)
4964                 {*r = Mono_Posix_SysConf__SC_CHAR_BIT; return 0;}
4965 #endif /* ndef _SC_CHAR_BIT */
4966 #ifdef _SC_CHAR_MAX
4967         if (x == _SC_CHAR_MAX)
4968                 {*r = Mono_Posix_SysConf__SC_CHAR_MAX; return 0;}
4969 #endif /* ndef _SC_CHAR_MAX */
4970 #ifdef _SC_CHAR_MIN
4971         if (x == _SC_CHAR_MIN)
4972                 {*r = Mono_Posix_SysConf__SC_CHAR_MIN; return 0;}
4973 #endif /* ndef _SC_CHAR_MIN */
4974 #ifdef _SC_INT_MAX
4975         if (x == _SC_INT_MAX)
4976                 {*r = Mono_Posix_SysConf__SC_INT_MAX; return 0;}
4977 #endif /* ndef _SC_INT_MAX */
4978 #ifdef _SC_INT_MIN
4979         if (x == _SC_INT_MIN)
4980                 {*r = Mono_Posix_SysConf__SC_INT_MIN; return 0;}
4981 #endif /* ndef _SC_INT_MIN */
4982 #ifdef _SC_LONG_BIT
4983         if (x == _SC_LONG_BIT)
4984                 {*r = Mono_Posix_SysConf__SC_LONG_BIT; return 0;}
4985 #endif /* ndef _SC_LONG_BIT */
4986 #ifdef _SC_WORD_BIT
4987         if (x == _SC_WORD_BIT)
4988                 {*r = Mono_Posix_SysConf__SC_WORD_BIT; return 0;}
4989 #endif /* ndef _SC_WORD_BIT */
4990 #ifdef _SC_MB_LEN_MAX
4991         if (x == _SC_MB_LEN_MAX)
4992                 {*r = Mono_Posix_SysConf__SC_MB_LEN_MAX; return 0;}
4993 #endif /* ndef _SC_MB_LEN_MAX */
4994 #ifdef _SC_NZERO
4995         if (x == _SC_NZERO)
4996                 {*r = Mono_Posix_SysConf__SC_NZERO; return 0;}
4997 #endif /* ndef _SC_NZERO */
4998 #ifdef _SC_SSIZE_MAX
4999         if (x == _SC_SSIZE_MAX)
5000                 {*r = Mono_Posix_SysConf__SC_SSIZE_MAX; return 0;}
5001 #endif /* ndef _SC_SSIZE_MAX */
5002 #ifdef _SC_SCHAR_MAX
5003         if (x == _SC_SCHAR_MAX)
5004                 {*r = Mono_Posix_SysConf__SC_SCHAR_MAX; return 0;}
5005 #endif /* ndef _SC_SCHAR_MAX */
5006 #ifdef _SC_SCHAR_MIN
5007         if (x == _SC_SCHAR_MIN)
5008                 {*r = Mono_Posix_SysConf__SC_SCHAR_MIN; return 0;}
5009 #endif /* ndef _SC_SCHAR_MIN */
5010 #ifdef _SC_SHRT_MAX
5011         if (x == _SC_SHRT_MAX)
5012                 {*r = Mono_Posix_SysConf__SC_SHRT_MAX; return 0;}
5013 #endif /* ndef _SC_SHRT_MAX */
5014 #ifdef _SC_SHRT_MIN
5015         if (x == _SC_SHRT_MIN)
5016                 {*r = Mono_Posix_SysConf__SC_SHRT_MIN; return 0;}
5017 #endif /* ndef _SC_SHRT_MIN */
5018 #ifdef _SC_UCHAR_MAX
5019         if (x == _SC_UCHAR_MAX)
5020                 {*r = Mono_Posix_SysConf__SC_UCHAR_MAX; return 0;}
5021 #endif /* ndef _SC_UCHAR_MAX */
5022 #ifdef _SC_UINT_MAX
5023         if (x == _SC_UINT_MAX)
5024                 {*r = Mono_Posix_SysConf__SC_UINT_MAX; return 0;}
5025 #endif /* ndef _SC_UINT_MAX */
5026 #ifdef _SC_ULONG_MAX
5027         if (x == _SC_ULONG_MAX)
5028                 {*r = Mono_Posix_SysConf__SC_ULONG_MAX; return 0;}
5029 #endif /* ndef _SC_ULONG_MAX */
5030 #ifdef _SC_USHRT_MAX
5031         if (x == _SC_USHRT_MAX)
5032                 {*r = Mono_Posix_SysConf__SC_USHRT_MAX; return 0;}
5033 #endif /* ndef _SC_USHRT_MAX */
5034 #ifdef _SC_NL_ARGMAX
5035         if (x == _SC_NL_ARGMAX)
5036                 {*r = Mono_Posix_SysConf__SC_NL_ARGMAX; return 0;}
5037 #endif /* ndef _SC_NL_ARGMAX */
5038 #ifdef _SC_NL_LANGMAX
5039         if (x == _SC_NL_LANGMAX)
5040                 {*r = Mono_Posix_SysConf__SC_NL_LANGMAX; return 0;}
5041 #endif /* ndef _SC_NL_LANGMAX */
5042 #ifdef _SC_NL_MSGMAX
5043         if (x == _SC_NL_MSGMAX)
5044                 {*r = Mono_Posix_SysConf__SC_NL_MSGMAX; return 0;}
5045 #endif /* ndef _SC_NL_MSGMAX */
5046 #ifdef _SC_NL_NMAX
5047         if (x == _SC_NL_NMAX)
5048                 {*r = Mono_Posix_SysConf__SC_NL_NMAX; return 0;}
5049 #endif /* ndef _SC_NL_NMAX */
5050 #ifdef _SC_NL_SETMAX
5051         if (x == _SC_NL_SETMAX)
5052                 {*r = Mono_Posix_SysConf__SC_NL_SETMAX; return 0;}
5053 #endif /* ndef _SC_NL_SETMAX */
5054 #ifdef _SC_NL_TEXTMAX
5055         if (x == _SC_NL_TEXTMAX)
5056                 {*r = Mono_Posix_SysConf__SC_NL_TEXTMAX; return 0;}
5057 #endif /* ndef _SC_NL_TEXTMAX */
5058 #ifdef _SC_XBS5_ILP32_OFF32
5059         if (x == _SC_XBS5_ILP32_OFF32)
5060                 {*r = Mono_Posix_SysConf__SC_XBS5_ILP32_OFF32; return 0;}
5061 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
5062 #ifdef _SC_XBS5_ILP32_OFFBIG
5063         if (x == _SC_XBS5_ILP32_OFFBIG)
5064                 {*r = Mono_Posix_SysConf__SC_XBS5_ILP32_OFFBIG; return 0;}
5065 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
5066 #ifdef _SC_XBS5_LP64_OFF64
5067         if (x == _SC_XBS5_LP64_OFF64)
5068                 {*r = Mono_Posix_SysConf__SC_XBS5_LP64_OFF64; return 0;}
5069 #endif /* ndef _SC_XBS5_LP64_OFF64 */
5070 #ifdef _SC_XBS5_LPBIG_OFFBIG
5071         if (x == _SC_XBS5_LPBIG_OFFBIG)
5072                 {*r = Mono_Posix_SysConf__SC_XBS5_LPBIG_OFFBIG; return 0;}
5073 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
5074 #ifdef _SC_XOPEN_LEGACY
5075         if (x == _SC_XOPEN_LEGACY)
5076                 {*r = Mono_Posix_SysConf__SC_XOPEN_LEGACY; return 0;}
5077 #endif /* ndef _SC_XOPEN_LEGACY */
5078 #ifdef _SC_XOPEN_REALTIME
5079         if (x == _SC_XOPEN_REALTIME)
5080                 {*r = Mono_Posix_SysConf__SC_XOPEN_REALTIME; return 0;}
5081 #endif /* ndef _SC_XOPEN_REALTIME */
5082 #ifdef _SC_XOPEN_REALTIME_THREADS
5083         if (x == _SC_XOPEN_REALTIME_THREADS)
5084                 {*r = Mono_Posix_SysConf__SC_XOPEN_REALTIME_THREADS; return 0;}
5085 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
5086 #ifdef _SC_ADVISORY_INFO
5087         if (x == _SC_ADVISORY_INFO)
5088                 {*r = Mono_Posix_SysConf__SC_ADVISORY_INFO; return 0;}
5089 #endif /* ndef _SC_ADVISORY_INFO */
5090 #ifdef _SC_BARRIERS
5091         if (x == _SC_BARRIERS)
5092                 {*r = Mono_Posix_SysConf__SC_BARRIERS; return 0;}
5093 #endif /* ndef _SC_BARRIERS */
5094 #ifdef _SC_BASE
5095         if (x == _SC_BASE)
5096                 {*r = Mono_Posix_SysConf__SC_BASE; return 0;}
5097 #endif /* ndef _SC_BASE */
5098 #ifdef _SC_C_LANG_SUPPORT
5099         if (x == _SC_C_LANG_SUPPORT)
5100                 {*r = Mono_Posix_SysConf__SC_C_LANG_SUPPORT; return 0;}
5101 #endif /* ndef _SC_C_LANG_SUPPORT */
5102 #ifdef _SC_C_LANG_SUPPORT_R
5103         if (x == _SC_C_LANG_SUPPORT_R)
5104                 {*r = Mono_Posix_SysConf__SC_C_LANG_SUPPORT_R; return 0;}
5105 #endif /* ndef _SC_C_LANG_SUPPORT_R */
5106 #ifdef _SC_CLOCK_SELECTION
5107         if (x == _SC_CLOCK_SELECTION)
5108                 {*r = Mono_Posix_SysConf__SC_CLOCK_SELECTION; return 0;}
5109 #endif /* ndef _SC_CLOCK_SELECTION */
5110 #ifdef _SC_CPUTIME
5111         if (x == _SC_CPUTIME)
5112                 {*r = Mono_Posix_SysConf__SC_CPUTIME; return 0;}
5113 #endif /* ndef _SC_CPUTIME */
5114 #ifdef _SC_THREAD_CPUTIME
5115         if (x == _SC_THREAD_CPUTIME)
5116                 {*r = Mono_Posix_SysConf__SC_THREAD_CPUTIME; return 0;}
5117 #endif /* ndef _SC_THREAD_CPUTIME */
5118 #ifdef _SC_DEVICE_IO
5119         if (x == _SC_DEVICE_IO)
5120                 {*r = Mono_Posix_SysConf__SC_DEVICE_IO; return 0;}
5121 #endif /* ndef _SC_DEVICE_IO */
5122 #ifdef _SC_DEVICE_SPECIFIC
5123         if (x == _SC_DEVICE_SPECIFIC)
5124                 {*r = Mono_Posix_SysConf__SC_DEVICE_SPECIFIC; return 0;}
5125 #endif /* ndef _SC_DEVICE_SPECIFIC */
5126 #ifdef _SC_DEVICE_SPECIFIC_R
5127         if (x == _SC_DEVICE_SPECIFIC_R)
5128                 {*r = Mono_Posix_SysConf__SC_DEVICE_SPECIFIC_R; return 0;}
5129 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
5130 #ifdef _SC_FD_MGMT
5131         if (x == _SC_FD_MGMT)
5132                 {*r = Mono_Posix_SysConf__SC_FD_MGMT; return 0;}
5133 #endif /* ndef _SC_FD_MGMT */
5134 #ifdef _SC_FIFO
5135         if (x == _SC_FIFO)
5136                 {*r = Mono_Posix_SysConf__SC_FIFO; return 0;}
5137 #endif /* ndef _SC_FIFO */
5138 #ifdef _SC_PIPE
5139         if (x == _SC_PIPE)
5140                 {*r = Mono_Posix_SysConf__SC_PIPE; return 0;}
5141 #endif /* ndef _SC_PIPE */
5142 #ifdef _SC_FILE_ATTRIBUTES
5143         if (x == _SC_FILE_ATTRIBUTES)
5144                 {*r = Mono_Posix_SysConf__SC_FILE_ATTRIBUTES; return 0;}
5145 #endif /* ndef _SC_FILE_ATTRIBUTES */
5146 #ifdef _SC_FILE_LOCKING
5147         if (x == _SC_FILE_LOCKING)
5148                 {*r = Mono_Posix_SysConf__SC_FILE_LOCKING; return 0;}
5149 #endif /* ndef _SC_FILE_LOCKING */
5150 #ifdef _SC_FILE_SYSTEM
5151         if (x == _SC_FILE_SYSTEM)
5152                 {*r = Mono_Posix_SysConf__SC_FILE_SYSTEM; return 0;}
5153 #endif /* ndef _SC_FILE_SYSTEM */
5154 #ifdef _SC_MONOTONIC_CLOCK
5155         if (x == _SC_MONOTONIC_CLOCK)
5156                 {*r = Mono_Posix_SysConf__SC_MONOTONIC_CLOCK; return 0;}
5157 #endif /* ndef _SC_MONOTONIC_CLOCK */
5158 #ifdef _SC_MULTI_PROCESS
5159         if (x == _SC_MULTI_PROCESS)
5160                 {*r = Mono_Posix_SysConf__SC_MULTI_PROCESS; return 0;}
5161 #endif /* ndef _SC_MULTI_PROCESS */
5162 #ifdef _SC_SINGLE_PROCESS
5163         if (x == _SC_SINGLE_PROCESS)
5164                 {*r = Mono_Posix_SysConf__SC_SINGLE_PROCESS; return 0;}
5165 #endif /* ndef _SC_SINGLE_PROCESS */
5166 #ifdef _SC_NETWORKING
5167         if (x == _SC_NETWORKING)
5168                 {*r = Mono_Posix_SysConf__SC_NETWORKING; return 0;}
5169 #endif /* ndef _SC_NETWORKING */
5170 #ifdef _SC_READER_WRITER_LOCKS
5171         if (x == _SC_READER_WRITER_LOCKS)
5172                 {*r = Mono_Posix_SysConf__SC_READER_WRITER_LOCKS; return 0;}
5173 #endif /* ndef _SC_READER_WRITER_LOCKS */
5174 #ifdef _SC_SPIN_LOCKS
5175         if (x == _SC_SPIN_LOCKS)
5176                 {*r = Mono_Posix_SysConf__SC_SPIN_LOCKS; return 0;}
5177 #endif /* ndef _SC_SPIN_LOCKS */
5178 #ifdef _SC_REGEXP
5179         if (x == _SC_REGEXP)
5180                 {*r = Mono_Posix_SysConf__SC_REGEXP; return 0;}
5181 #endif /* ndef _SC_REGEXP */
5182 #ifdef _SC_REGEX_VERSION
5183         if (x == _SC_REGEX_VERSION)
5184                 {*r = Mono_Posix_SysConf__SC_REGEX_VERSION; return 0;}
5185 #endif /* ndef _SC_REGEX_VERSION */
5186 #ifdef _SC_SHELL
5187         if (x == _SC_SHELL)
5188                 {*r = Mono_Posix_SysConf__SC_SHELL; return 0;}
5189 #endif /* ndef _SC_SHELL */
5190 #ifdef _SC_SIGNALS
5191         if (x == _SC_SIGNALS)
5192                 {*r = Mono_Posix_SysConf__SC_SIGNALS; return 0;}
5193 #endif /* ndef _SC_SIGNALS */
5194 #ifdef _SC_SPAWN
5195         if (x == _SC_SPAWN)
5196                 {*r = Mono_Posix_SysConf__SC_SPAWN; return 0;}
5197 #endif /* ndef _SC_SPAWN */
5198 #ifdef _SC_SPORADIC_SERVER
5199         if (x == _SC_SPORADIC_SERVER)
5200                 {*r = Mono_Posix_SysConf__SC_SPORADIC_SERVER; return 0;}
5201 #endif /* ndef _SC_SPORADIC_SERVER */
5202 #ifdef _SC_THREAD_SPORADIC_SERVER
5203         if (x == _SC_THREAD_SPORADIC_SERVER)
5204                 {*r = Mono_Posix_SysConf__SC_THREAD_SPORADIC_SERVER; return 0;}
5205 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
5206 #ifdef _SC_SYSTEM_DATABASE
5207         if (x == _SC_SYSTEM_DATABASE)
5208                 {*r = Mono_Posix_SysConf__SC_SYSTEM_DATABASE; return 0;}
5209 #endif /* ndef _SC_SYSTEM_DATABASE */
5210 #ifdef _SC_SYSTEM_DATABASE_R
5211         if (x == _SC_SYSTEM_DATABASE_R)
5212                 {*r = Mono_Posix_SysConf__SC_SYSTEM_DATABASE_R; return 0;}
5213 #endif /* ndef _SC_SYSTEM_DATABASE_R */
5214 #ifdef _SC_TIMEOUTS
5215         if (x == _SC_TIMEOUTS)
5216                 {*r = Mono_Posix_SysConf__SC_TIMEOUTS; return 0;}
5217 #endif /* ndef _SC_TIMEOUTS */
5218 #ifdef _SC_TYPED_MEMORY_OBJECTS
5219         if (x == _SC_TYPED_MEMORY_OBJECTS)
5220                 {*r = Mono_Posix_SysConf__SC_TYPED_MEMORY_OBJECTS; return 0;}
5221 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
5222 #ifdef _SC_USER_GROUPS
5223         if (x == _SC_USER_GROUPS)
5224                 {*r = Mono_Posix_SysConf__SC_USER_GROUPS; return 0;}
5225 #endif /* ndef _SC_USER_GROUPS */
5226 #ifdef _SC_USER_GROUPS_R
5227         if (x == _SC_USER_GROUPS_R)
5228                 {*r = Mono_Posix_SysConf__SC_USER_GROUPS_R; return 0;}
5229 #endif /* ndef _SC_USER_GROUPS_R */
5230 #ifdef _SC_2_PBS
5231         if (x == _SC_2_PBS)
5232                 {*r = Mono_Posix_SysConf__SC_2_PBS; return 0;}
5233 #endif /* ndef _SC_2_PBS */
5234 #ifdef _SC_2_PBS_ACCOUNTING
5235         if (x == _SC_2_PBS_ACCOUNTING)
5236                 {*r = Mono_Posix_SysConf__SC_2_PBS_ACCOUNTING; return 0;}
5237 #endif /* ndef _SC_2_PBS_ACCOUNTING */
5238 #ifdef _SC_2_PBS_LOCATE
5239         if (x == _SC_2_PBS_LOCATE)
5240                 {*r = Mono_Posix_SysConf__SC_2_PBS_LOCATE; return 0;}
5241 #endif /* ndef _SC_2_PBS_LOCATE */
5242 #ifdef _SC_2_PBS_MESSAGE
5243         if (x == _SC_2_PBS_MESSAGE)
5244                 {*r = Mono_Posix_SysConf__SC_2_PBS_MESSAGE; return 0;}
5245 #endif /* ndef _SC_2_PBS_MESSAGE */
5246 #ifdef _SC_2_PBS_TRACK
5247         if (x == _SC_2_PBS_TRACK)
5248                 {*r = Mono_Posix_SysConf__SC_2_PBS_TRACK; return 0;}
5249 #endif /* ndef _SC_2_PBS_TRACK */
5250 #ifdef _SC_SYMLOOP_MAX
5251         if (x == _SC_SYMLOOP_MAX)
5252                 {*r = Mono_Posix_SysConf__SC_SYMLOOP_MAX; return 0;}
5253 #endif /* ndef _SC_SYMLOOP_MAX */
5254 #ifdef _SC_STREAMS
5255         if (x == _SC_STREAMS)
5256                 {*r = Mono_Posix_SysConf__SC_STREAMS; return 0;}
5257 #endif /* ndef _SC_STREAMS */
5258 #ifdef _SC_2_PBS_CHECKPOINT
5259         if (x == _SC_2_PBS_CHECKPOINT)
5260                 {*r = Mono_Posix_SysConf__SC_2_PBS_CHECKPOINT; return 0;}
5261 #endif /* ndef _SC_2_PBS_CHECKPOINT */
5262 #ifdef _SC_V6_ILP32_OFF32
5263         if (x == _SC_V6_ILP32_OFF32)
5264                 {*r = Mono_Posix_SysConf__SC_V6_ILP32_OFF32; return 0;}
5265 #endif /* ndef _SC_V6_ILP32_OFF32 */
5266 #ifdef _SC_V6_ILP32_OFFBIG
5267         if (x == _SC_V6_ILP32_OFFBIG)
5268                 {*r = Mono_Posix_SysConf__SC_V6_ILP32_OFFBIG; return 0;}
5269 #endif /* ndef _SC_V6_ILP32_OFFBIG */
5270 #ifdef _SC_V6_LP64_OFF64
5271         if (x == _SC_V6_LP64_OFF64)
5272                 {*r = Mono_Posix_SysConf__SC_V6_LP64_OFF64; return 0;}
5273 #endif /* ndef _SC_V6_LP64_OFF64 */
5274 #ifdef _SC_V6_LPBIG_OFFBIG
5275         if (x == _SC_V6_LPBIG_OFFBIG)
5276                 {*r = Mono_Posix_SysConf__SC_V6_LPBIG_OFFBIG; return 0;}
5277 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
5278 #ifdef _SC_HOST_NAME_MAX
5279         if (x == _SC_HOST_NAME_MAX)
5280                 {*r = Mono_Posix_SysConf__SC_HOST_NAME_MAX; return 0;}
5281 #endif /* ndef _SC_HOST_NAME_MAX */
5282 #ifdef _SC_TRACE
5283         if (x == _SC_TRACE)
5284                 {*r = Mono_Posix_SysConf__SC_TRACE; return 0;}
5285 #endif /* ndef _SC_TRACE */
5286 #ifdef _SC_TRACE_EVENT_FILTER
5287         if (x == _SC_TRACE_EVENT_FILTER)
5288                 {*r = Mono_Posix_SysConf__SC_TRACE_EVENT_FILTER; return 0;}
5289 #endif /* ndef _SC_TRACE_EVENT_FILTER */
5290 #ifdef _SC_TRACE_INHERIT
5291         if (x == _SC_TRACE_INHERIT)
5292                 {*r = Mono_Posix_SysConf__SC_TRACE_INHERIT; return 0;}
5293 #endif /* ndef _SC_TRACE_INHERIT */
5294 #ifdef _SC_TRACE_LOG
5295         if (x == _SC_TRACE_LOG)
5296                 {*r = Mono_Posix_SysConf__SC_TRACE_LOG; return 0;}
5297 #endif /* ndef _SC_TRACE_LOG */
5298 #ifdef _SC_LEVEL1_ICACHE_SIZE
5299         if (x == _SC_LEVEL1_ICACHE_SIZE)
5300                 {*r = Mono_Posix_SysConf__SC_LEVEL1_ICACHE_SIZE; return 0;}
5301 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
5302 #ifdef _SC_LEVEL1_ICACHE_ASSOC
5303         if (x == _SC_LEVEL1_ICACHE_ASSOC)
5304                 {*r = Mono_Posix_SysConf__SC_LEVEL1_ICACHE_ASSOC; return 0;}
5305 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
5306 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
5307         if (x == _SC_LEVEL1_ICACHE_LINESIZE)
5308                 {*r = Mono_Posix_SysConf__SC_LEVEL1_ICACHE_LINESIZE; return 0;}
5309 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
5310 #ifdef _SC_LEVEL1_DCACHE_SIZE
5311         if (x == _SC_LEVEL1_DCACHE_SIZE)
5312                 {*r = Mono_Posix_SysConf__SC_LEVEL1_DCACHE_SIZE; return 0;}
5313 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
5314 #ifdef _SC_LEVEL1_DCACHE_ASSOC
5315         if (x == _SC_LEVEL1_DCACHE_ASSOC)
5316                 {*r = Mono_Posix_SysConf__SC_LEVEL1_DCACHE_ASSOC; return 0;}
5317 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
5318 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
5319         if (x == _SC_LEVEL1_DCACHE_LINESIZE)
5320                 {*r = Mono_Posix_SysConf__SC_LEVEL1_DCACHE_LINESIZE; return 0;}
5321 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
5322 #ifdef _SC_LEVEL2_CACHE_SIZE
5323         if (x == _SC_LEVEL2_CACHE_SIZE)
5324                 {*r = Mono_Posix_SysConf__SC_LEVEL2_CACHE_SIZE; return 0;}
5325 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
5326 #ifdef _SC_LEVEL2_CACHE_ASSOC
5327         if (x == _SC_LEVEL2_CACHE_ASSOC)
5328                 {*r = Mono_Posix_SysConf__SC_LEVEL2_CACHE_ASSOC; return 0;}
5329 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
5330 #ifdef _SC_LEVEL2_CACHE_LINESIZE
5331         if (x == _SC_LEVEL2_CACHE_LINESIZE)
5332                 {*r = Mono_Posix_SysConf__SC_LEVEL2_CACHE_LINESIZE; return 0;}
5333 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
5334 #ifdef _SC_LEVEL3_CACHE_SIZE
5335         if (x == _SC_LEVEL3_CACHE_SIZE)
5336                 {*r = Mono_Posix_SysConf__SC_LEVEL3_CACHE_SIZE; return 0;}
5337 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
5338 #ifdef _SC_LEVEL3_CACHE_ASSOC
5339         if (x == _SC_LEVEL3_CACHE_ASSOC)
5340                 {*r = Mono_Posix_SysConf__SC_LEVEL3_CACHE_ASSOC; return 0;}
5341 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
5342 #ifdef _SC_LEVEL3_CACHE_LINESIZE
5343         if (x == _SC_LEVEL3_CACHE_LINESIZE)
5344                 {*r = Mono_Posix_SysConf__SC_LEVEL3_CACHE_LINESIZE; return 0;}
5345 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
5346 #ifdef _SC_LEVEL4_CACHE_SIZE
5347         if (x == _SC_LEVEL4_CACHE_SIZE)
5348                 {*r = Mono_Posix_SysConf__SC_LEVEL4_CACHE_SIZE; return 0;}
5349 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
5350 #ifdef _SC_LEVEL4_CACHE_ASSOC
5351         if (x == _SC_LEVEL4_CACHE_ASSOC)
5352                 {*r = Mono_Posix_SysConf__SC_LEVEL4_CACHE_ASSOC; return 0;}
5353 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
5354 #ifdef _SC_LEVEL4_CACHE_LINESIZE
5355         if (x == _SC_LEVEL4_CACHE_LINESIZE)
5356                 {*r = Mono_Posix_SysConf__SC_LEVEL4_CACHE_LINESIZE; return 0;}
5357 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
5358         errno = EINVAL; return -1;
5359 }
5360
5361 int Mono_Posix_FromConfStr (int x, int *r)
5362 {
5363         *r = 0;
5364         if (x == 0)
5365                 return 0;
5366         if (x == Mono_Posix_ConfStr__CS_PATH)
5367 #ifdef _CS_PATH
5368                 {*r = _CS_PATH; return 0;}
5369 #else /* def _CS_PATH */
5370                 {errno = EINVAL; return -1;}
5371 #endif /* ndef _CS_PATH */
5372         if (x == Mono_Posix_ConfStr__CS_V6_WIDTH_RESTRICTED_ENVS)
5373 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
5374                 {*r = _CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
5375 #else /* def _CS_V6_WIDTH_RESTRICTED_ENVS */
5376                 {errno = EINVAL; return -1;}
5377 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
5378         if (x == Mono_Posix_ConfStr__CS_GNU_LIBC_VERSION)
5379 #ifdef _CS_GNU_LIBC_VERSION
5380                 {*r = _CS_GNU_LIBC_VERSION; return 0;}
5381 #else /* def _CS_GNU_LIBC_VERSION */
5382                 {errno = EINVAL; return -1;}
5383 #endif /* ndef _CS_GNU_LIBC_VERSION */
5384         if (x == Mono_Posix_ConfStr__CS_GNU_LIBPTHREAD_VERSION)
5385 #ifdef _CS_GNU_LIBPTHREAD_VERSION
5386                 {*r = _CS_GNU_LIBPTHREAD_VERSION; return 0;}
5387 #else /* def _CS_GNU_LIBPTHREAD_VERSION */
5388                 {errno = EINVAL; return -1;}
5389 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
5390         if (x == Mono_Posix_ConfStr__CS_LFS_CFLAGS)
5391 #ifdef _CS_LFS_CFLAGS
5392                 {*r = _CS_LFS_CFLAGS; return 0;}
5393 #else /* def _CS_LFS_CFLAGS */
5394                 {errno = EINVAL; return -1;}
5395 #endif /* ndef _CS_LFS_CFLAGS */
5396         if (x == Mono_Posix_ConfStr__CS_LFS_LDFLAGS)
5397 #ifdef _CS_LFS_LDFLAGS
5398                 {*r = _CS_LFS_LDFLAGS; return 0;}
5399 #else /* def _CS_LFS_LDFLAGS */
5400                 {errno = EINVAL; return -1;}
5401 #endif /* ndef _CS_LFS_LDFLAGS */
5402         if (x == Mono_Posix_ConfStr__CS_LFS_LIBS)
5403 #ifdef _CS_LFS_LIBS
5404                 {*r = _CS_LFS_LIBS; return 0;}
5405 #else /* def _CS_LFS_LIBS */
5406                 {errno = EINVAL; return -1;}
5407 #endif /* ndef _CS_LFS_LIBS */
5408         if (x == Mono_Posix_ConfStr__CS_LFS_LINTFLAGS)
5409 #ifdef _CS_LFS_LINTFLAGS
5410                 {*r = _CS_LFS_LINTFLAGS; return 0;}
5411 #else /* def _CS_LFS_LINTFLAGS */
5412                 {errno = EINVAL; return -1;}
5413 #endif /* ndef _CS_LFS_LINTFLAGS */
5414         if (x == Mono_Posix_ConfStr__CS_LFS64_CFLAGS)
5415 #ifdef _CS_LFS64_CFLAGS
5416                 {*r = _CS_LFS64_CFLAGS; return 0;}
5417 #else /* def _CS_LFS64_CFLAGS */
5418                 {errno = EINVAL; return -1;}
5419 #endif /* ndef _CS_LFS64_CFLAGS */
5420         if (x == Mono_Posix_ConfStr__CS_LFS64_LDFLAGS)
5421 #ifdef _CS_LFS64_LDFLAGS
5422                 {*r = _CS_LFS64_LDFLAGS; return 0;}
5423 #else /* def _CS_LFS64_LDFLAGS */
5424                 {errno = EINVAL; return -1;}
5425 #endif /* ndef _CS_LFS64_LDFLAGS */
5426         if (x == Mono_Posix_ConfStr__CS_LFS64_LIBS)
5427 #ifdef _CS_LFS64_LIBS
5428                 {*r = _CS_LFS64_LIBS; return 0;}
5429 #else /* def _CS_LFS64_LIBS */
5430                 {errno = EINVAL; return -1;}
5431 #endif /* ndef _CS_LFS64_LIBS */
5432         if (x == Mono_Posix_ConfStr__CS_LFS64_LINTFLAGS)
5433 #ifdef _CS_LFS64_LINTFLAGS
5434                 {*r = _CS_LFS64_LINTFLAGS; return 0;}
5435 #else /* def _CS_LFS64_LINTFLAGS */
5436                 {errno = EINVAL; return -1;}
5437 #endif /* ndef _CS_LFS64_LINTFLAGS */
5438         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_CFLAGS)
5439 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
5440                 {*r = _CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
5441 #else /* def _CS_XBS5_ILP32_OFF32_CFLAGS */
5442                 {errno = EINVAL; return -1;}
5443 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
5444         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LDFLAGS)
5445 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
5446                 {*r = _CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
5447 #else /* def _CS_XBS5_ILP32_OFF32_LDFLAGS */
5448                 {errno = EINVAL; return -1;}
5449 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
5450         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LIBS)
5451 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
5452                 {*r = _CS_XBS5_ILP32_OFF32_LIBS; return 0;}
5453 #else /* def _CS_XBS5_ILP32_OFF32_LIBS */
5454                 {errno = EINVAL; return -1;}
5455 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
5456         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LINTFLAGS)
5457 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
5458                 {*r = _CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
5459 #else /* def _CS_XBS5_ILP32_OFF32_LINTFLAGS */
5460                 {errno = EINVAL; return -1;}
5461 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
5462         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_CFLAGS)
5463 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
5464                 {*r = _CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
5465 #else /* def _CS_XBS5_ILP32_OFFBIG_CFLAGS */
5466                 {errno = EINVAL; return -1;}
5467 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
5468         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LDFLAGS)
5469 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
5470                 {*r = _CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
5471 #else /* def _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
5472                 {errno = EINVAL; return -1;}
5473 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
5474         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LIBS)
5475 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
5476                 {*r = _CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
5477 #else /* def _CS_XBS5_ILP32_OFFBIG_LIBS */
5478                 {errno = EINVAL; return -1;}
5479 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
5480         if (x == Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
5481 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
5482                 {*r = _CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
5483 #else /* def _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
5484                 {errno = EINVAL; return -1;}
5485 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
5486         if (x == Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_CFLAGS)
5487 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
5488                 {*r = _CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
5489 #else /* def _CS_XBS5_LP64_OFF64_CFLAGS */
5490                 {errno = EINVAL; return -1;}
5491 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
5492         if (x == Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LDFLAGS)
5493 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
5494                 {*r = _CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
5495 #else /* def _CS_XBS5_LP64_OFF64_LDFLAGS */
5496                 {errno = EINVAL; return -1;}
5497 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
5498         if (x == Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LIBS)
5499 #ifdef _CS_XBS5_LP64_OFF64_LIBS
5500                 {*r = _CS_XBS5_LP64_OFF64_LIBS; return 0;}
5501 #else /* def _CS_XBS5_LP64_OFF64_LIBS */
5502                 {errno = EINVAL; return -1;}
5503 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
5504         if (x == Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LINTFLAGS)
5505 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
5506                 {*r = _CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
5507 #else /* def _CS_XBS5_LP64_OFF64_LINTFLAGS */
5508                 {errno = EINVAL; return -1;}
5509 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
5510         if (x == Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_CFLAGS)
5511 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
5512                 {*r = _CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
5513 #else /* def _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
5514                 {errno = EINVAL; return -1;}
5515 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
5516         if (x == Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
5517 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
5518                 {*r = _CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
5519 #else /* def _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
5520                 {errno = EINVAL; return -1;}
5521 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
5522         if (x == Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LIBS)
5523 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
5524                 {*r = _CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
5525 #else /* def _CS_XBS5_LPBIG_OFFBIG_LIBS */
5526                 {errno = EINVAL; return -1;}
5527 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
5528         if (x == Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
5529 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
5530                 {*r = _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
5531 #else /* def _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
5532                 {errno = EINVAL; return -1;}
5533 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
5534         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_CFLAGS)
5535 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
5536                 {*r = _CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
5537 #else /* def _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
5538                 {errno = EINVAL; return -1;}
5539 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
5540         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
5541 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
5542                 {*r = _CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
5543 #else /* def _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
5544                 {errno = EINVAL; return -1;}
5545 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
5546         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LIBS)
5547 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
5548                 {*r = _CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
5549 #else /* def _CS_POSIX_V6_ILP32_OFF32_LIBS */
5550                 {errno = EINVAL; return -1;}
5551 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
5552         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
5553 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
5554                 {*r = _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
5555 #else /* def _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
5556                 {errno = EINVAL; return -1;}
5557 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
5558         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
5559 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
5560                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
5561 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
5562                 {errno = EINVAL; return -1;}
5563 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
5564         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
5565 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
5566                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
5567 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
5568                 {errno = EINVAL; return -1;}
5569 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
5570         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LIBS)
5571 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
5572                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
5573 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
5574                 {errno = EINVAL; return -1;}
5575 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
5576         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
5577 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
5578                 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
5579 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
5580                 {errno = EINVAL; return -1;}
5581 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
5582         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_CFLAGS)
5583 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
5584                 {*r = _CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
5585 #else /* def _CS_POSIX_V6_LP64_OFF64_CFLAGS */
5586                 {errno = EINVAL; return -1;}
5587 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
5588         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LDFLAGS)
5589 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
5590                 {*r = _CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
5591 #else /* def _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
5592                 {errno = EINVAL; return -1;}
5593 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
5594         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LIBS)
5595 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
5596                 {*r = _CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
5597 #else /* def _CS_POSIX_V6_LP64_OFF64_LIBS */
5598                 {errno = EINVAL; return -1;}
5599 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
5600         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
5601 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
5602                 {*r = _CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
5603 #else /* def _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
5604                 {errno = EINVAL; return -1;}
5605 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
5606         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
5607 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
5608                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
5609 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
5610                 {errno = EINVAL; return -1;}
5611 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
5612         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
5613 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
5614                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
5615 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
5616                 {errno = EINVAL; return -1;}
5617 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
5618         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
5619 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
5620                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
5621 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
5622                 {errno = EINVAL; return -1;}
5623 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
5624         if (x == Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
5625 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5626                 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
5627 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
5628                 {errno = EINVAL; return -1;}
5629 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
5630         errno = EINVAL; return -1;
5631 }
5632
5633 int Mono_Posix_ToConfStr (int x, int *r)
5634 {
5635         *r = 0;
5636         if (x == 0)
5637                 return 0;
5638 #ifdef _CS_PATH
5639         if (x == _CS_PATH)
5640                 {*r = Mono_Posix_ConfStr__CS_PATH; return 0;}
5641 #endif /* ndef _CS_PATH */
5642 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
5643         if (x == _CS_V6_WIDTH_RESTRICTED_ENVS)
5644                 {*r = Mono_Posix_ConfStr__CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
5645 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
5646 #ifdef _CS_GNU_LIBC_VERSION
5647         if (x == _CS_GNU_LIBC_VERSION)
5648                 {*r = Mono_Posix_ConfStr__CS_GNU_LIBC_VERSION; return 0;}
5649 #endif /* ndef _CS_GNU_LIBC_VERSION */
5650 #ifdef _CS_GNU_LIBPTHREAD_VERSION
5651         if (x == _CS_GNU_LIBPTHREAD_VERSION)
5652                 {*r = Mono_Posix_ConfStr__CS_GNU_LIBPTHREAD_VERSION; return 0;}
5653 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
5654 #ifdef _CS_LFS_CFLAGS
5655         if (x == _CS_LFS_CFLAGS)
5656                 {*r = Mono_Posix_ConfStr__CS_LFS_CFLAGS; return 0;}
5657 #endif /* ndef _CS_LFS_CFLAGS */
5658 #ifdef _CS_LFS_LDFLAGS
5659         if (x == _CS_LFS_LDFLAGS)
5660                 {*r = Mono_Posix_ConfStr__CS_LFS_LDFLAGS; return 0;}
5661 #endif /* ndef _CS_LFS_LDFLAGS */
5662 #ifdef _CS_LFS_LIBS
5663         if (x == _CS_LFS_LIBS)
5664                 {*r = Mono_Posix_ConfStr__CS_LFS_LIBS; return 0;}
5665 #endif /* ndef _CS_LFS_LIBS */
5666 #ifdef _CS_LFS_LINTFLAGS
5667         if (x == _CS_LFS_LINTFLAGS)
5668                 {*r = Mono_Posix_ConfStr__CS_LFS_LINTFLAGS; return 0;}
5669 #endif /* ndef _CS_LFS_LINTFLAGS */
5670 #ifdef _CS_LFS64_CFLAGS
5671         if (x == _CS_LFS64_CFLAGS)
5672                 {*r = Mono_Posix_ConfStr__CS_LFS64_CFLAGS; return 0;}
5673 #endif /* ndef _CS_LFS64_CFLAGS */
5674 #ifdef _CS_LFS64_LDFLAGS
5675         if (x == _CS_LFS64_LDFLAGS)
5676                 {*r = Mono_Posix_ConfStr__CS_LFS64_LDFLAGS; return 0;}
5677 #endif /* ndef _CS_LFS64_LDFLAGS */
5678 #ifdef _CS_LFS64_LIBS
5679         if (x == _CS_LFS64_LIBS)
5680                 {*r = Mono_Posix_ConfStr__CS_LFS64_LIBS; return 0;}
5681 #endif /* ndef _CS_LFS64_LIBS */
5682 #ifdef _CS_LFS64_LINTFLAGS
5683         if (x == _CS_LFS64_LINTFLAGS)
5684                 {*r = Mono_Posix_ConfStr__CS_LFS64_LINTFLAGS; return 0;}
5685 #endif /* ndef _CS_LFS64_LINTFLAGS */
5686 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
5687         if (x == _CS_XBS5_ILP32_OFF32_CFLAGS)
5688                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
5689 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
5690 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
5691         if (x == _CS_XBS5_ILP32_OFF32_LDFLAGS)
5692                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
5693 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
5694 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
5695         if (x == _CS_XBS5_ILP32_OFF32_LIBS)
5696                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LIBS; return 0;}
5697 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
5698 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
5699         if (x == _CS_XBS5_ILP32_OFF32_LINTFLAGS)
5700                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
5701 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
5702 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
5703         if (x == _CS_XBS5_ILP32_OFFBIG_CFLAGS)
5704                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
5705 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
5706 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
5707         if (x == _CS_XBS5_ILP32_OFFBIG_LDFLAGS)
5708                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
5709 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
5710 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
5711         if (x == _CS_XBS5_ILP32_OFFBIG_LIBS)
5712                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
5713 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
5714 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
5715         if (x == _CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
5716                 {*r = Mono_Posix_ConfStr__CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
5717 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
5718 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
5719         if (x == _CS_XBS5_LP64_OFF64_CFLAGS)
5720                 {*r = Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
5721 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
5722 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
5723         if (x == _CS_XBS5_LP64_OFF64_LDFLAGS)
5724                 {*r = Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
5725 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
5726 #ifdef _CS_XBS5_LP64_OFF64_LIBS
5727         if (x == _CS_XBS5_LP64_OFF64_LIBS)
5728                 {*r = Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LIBS; return 0;}
5729 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
5730 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
5731         if (x == _CS_XBS5_LP64_OFF64_LINTFLAGS)
5732                 {*r = Mono_Posix_ConfStr__CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
5733 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
5734 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
5735         if (x == _CS_XBS5_LPBIG_OFFBIG_CFLAGS)
5736                 {*r = Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
5737 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
5738 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
5739         if (x == _CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
5740                 {*r = Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
5741 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
5742 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
5743         if (x == _CS_XBS5_LPBIG_OFFBIG_LIBS)
5744                 {*r = Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
5745 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
5746 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
5747         if (x == _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
5748                 {*r = Mono_Posix_ConfStr__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
5749 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
5750 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
5751         if (x == _CS_POSIX_V6_ILP32_OFF32_CFLAGS)
5752                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
5753 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
5754 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
5755         if (x == _CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
5756                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
5757 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
5758 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
5759         if (x == _CS_POSIX_V6_ILP32_OFF32_LIBS)
5760                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
5761 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
5762 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
5763         if (x == _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
5764                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
5765 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
5766 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
5767         if (x == _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
5768                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
5769 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
5770 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
5771         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
5772                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
5773 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
5774 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
5775         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LIBS)
5776                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
5777 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
5778 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
5779         if (x == _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
5780                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
5781 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
5782 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
5783         if (x == _CS_POSIX_V6_LP64_OFF64_CFLAGS)
5784                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
5785 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
5786 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
5787         if (x == _CS_POSIX_V6_LP64_OFF64_LDFLAGS)
5788                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
5789 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
5790 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
5791         if (x == _CS_POSIX_V6_LP64_OFF64_LIBS)
5792                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
5793 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
5794 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
5795         if (x == _CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
5796                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
5797 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
5798 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
5799         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
5800                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
5801 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
5802 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
5803         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
5804                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
5805 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
5806 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
5807         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
5808                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
5809 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
5810 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5811         if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
5812                 {*r = Mono_Posix_ConfStr__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
5813 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
5814         errno = EINVAL; return -1;
5815 }
5816
5817 int Mono_Posix_FromLockfCommand (int x, int *r)
5818 {
5819         *r = 0;
5820         if (x == 0)
5821                 return 0;
5822         if (x == Mono_Posix_LockfCommand_F_ULOCK)
5823 #ifdef F_ULOCK
5824                 {*r = F_ULOCK; return 0;}
5825 #else /* def F_ULOCK */
5826                 {errno = EINVAL; return -1;}
5827 #endif /* ndef F_ULOCK */
5828         if (x == Mono_Posix_LockfCommand_F_LOCK)
5829 #ifdef F_LOCK
5830                 {*r = F_LOCK; return 0;}
5831 #else /* def F_LOCK */
5832                 {errno = EINVAL; return -1;}
5833 #endif /* ndef F_LOCK */
5834         if (x == Mono_Posix_LockfCommand_F_TLOCK)
5835 #ifdef F_TLOCK
5836                 {*r = F_TLOCK; return 0;}
5837 #else /* def F_TLOCK */
5838                 {errno = EINVAL; return -1;}
5839 #endif /* ndef F_TLOCK */
5840         if (x == Mono_Posix_LockfCommand_F_TEST)
5841 #ifdef F_TEST
5842                 {*r = F_TEST; return 0;}
5843 #else /* def F_TEST */
5844                 {errno = EINVAL; return -1;}
5845 #endif /* ndef F_TEST */
5846         errno = EINVAL; return -1;
5847 }
5848
5849 int Mono_Posix_ToLockfCommand (int x, int *r)
5850 {
5851         *r = 0;
5852         if (x == 0)
5853                 return 0;
5854 #ifdef F_ULOCK
5855         if (x == F_ULOCK)
5856                 {*r = Mono_Posix_LockfCommand_F_ULOCK; return 0;}
5857 #endif /* ndef F_ULOCK */
5858 #ifdef F_LOCK
5859         if (x == F_LOCK)
5860                 {*r = Mono_Posix_LockfCommand_F_LOCK; return 0;}
5861 #endif /* ndef F_LOCK */
5862 #ifdef F_TLOCK
5863         if (x == F_TLOCK)
5864                 {*r = Mono_Posix_LockfCommand_F_TLOCK; return 0;}
5865 #endif /* ndef F_TLOCK */
5866 #ifdef F_TEST
5867         if (x == F_TEST)
5868                 {*r = Mono_Posix_LockfCommand_F_TEST; return 0;}
5869 #endif /* ndef F_TEST */
5870         errno = EINVAL; return -1;
5871 }
5872
5873 int Mono_Posix_FromPollEvents (short x, short *r)
5874 {
5875         *r = 0;
5876         if (x == 0)
5877                 return 0;
5878         if ((x & Mono_Posix_PollEvents_POLLIN) == Mono_Posix_PollEvents_POLLIN)
5879 #ifdef POLLIN
5880                 *r |= POLLIN;
5881 #else /* def POLLIN */
5882                 {errno = EINVAL; return -1;}
5883 #endif /* ndef POLLIN */
5884         if ((x & Mono_Posix_PollEvents_POLLPRI) == Mono_Posix_PollEvents_POLLPRI)
5885 #ifdef POLLPRI
5886                 *r |= POLLPRI;
5887 #else /* def POLLPRI */
5888                 {errno = EINVAL; return -1;}
5889 #endif /* ndef POLLPRI */
5890         if ((x & Mono_Posix_PollEvents_POLLOUT) == Mono_Posix_PollEvents_POLLOUT)
5891 #ifdef POLLOUT
5892                 *r |= POLLOUT;
5893 #else /* def POLLOUT */
5894                 {errno = EINVAL; return -1;}
5895 #endif /* ndef POLLOUT */
5896         if ((x & Mono_Posix_PollEvents_POLLERR) == Mono_Posix_PollEvents_POLLERR)
5897 #ifdef POLLERR
5898                 *r |= POLLERR;
5899 #else /* def POLLERR */
5900                 {errno = EINVAL; return -1;}
5901 #endif /* ndef POLLERR */
5902         if ((x & Mono_Posix_PollEvents_POLLHUP) == Mono_Posix_PollEvents_POLLHUP)
5903 #ifdef POLLHUP
5904                 *r |= POLLHUP;
5905 #else /* def POLLHUP */
5906                 {errno = EINVAL; return -1;}
5907 #endif /* ndef POLLHUP */
5908         if ((x & Mono_Posix_PollEvents_POLLNVAL) == Mono_Posix_PollEvents_POLLNVAL)
5909 #ifdef POLLNVAL
5910                 *r |= POLLNVAL;
5911 #else /* def POLLNVAL */
5912                 {errno = EINVAL; return -1;}
5913 #endif /* ndef POLLNVAL */
5914         if ((x & Mono_Posix_PollEvents_POLLRDNORM) == Mono_Posix_PollEvents_POLLRDNORM)
5915 #ifdef POLLRDNORM
5916                 *r |= POLLRDNORM;
5917 #else /* def POLLRDNORM */
5918                 {errno = EINVAL; return -1;}
5919 #endif /* ndef POLLRDNORM */
5920         if ((x & Mono_Posix_PollEvents_POLLRDBAND) == Mono_Posix_PollEvents_POLLRDBAND)
5921 #ifdef POLLRDBAND
5922                 *r |= POLLRDBAND;
5923 #else /* def POLLRDBAND */
5924                 {errno = EINVAL; return -1;}
5925 #endif /* ndef POLLRDBAND */
5926         if ((x & Mono_Posix_PollEvents_POLLWRNORM) == Mono_Posix_PollEvents_POLLWRNORM)
5927 #ifdef POLLWRNORM
5928                 *r |= POLLWRNORM;
5929 #else /* def POLLWRNORM */
5930                 {errno = EINVAL; return -1;}
5931 #endif /* ndef POLLWRNORM */
5932         if ((x & Mono_Posix_PollEvents_POLLWRBAND) == Mono_Posix_PollEvents_POLLWRBAND)
5933 #ifdef POLLWRBAND
5934                 *r |= POLLWRBAND;
5935 #else /* def POLLWRBAND */
5936                 {errno = EINVAL; return -1;}
5937 #endif /* ndef POLLWRBAND */
5938         return 0;
5939 }
5940
5941 int Mono_Posix_ToPollEvents (short x, short *r)
5942 {
5943         *r = 0;
5944         if (x == 0)
5945                 return 0;
5946 #ifdef POLLIN
5947         if ((x & POLLIN) == POLLIN)
5948                 *r |= Mono_Posix_PollEvents_POLLIN;
5949 #endif /* ndef POLLIN */
5950 #ifdef POLLPRI
5951         if ((x & POLLPRI) == POLLPRI)
5952                 *r |= Mono_Posix_PollEvents_POLLPRI;
5953 #endif /* ndef POLLPRI */
5954 #ifdef POLLOUT
5955         if ((x & POLLOUT) == POLLOUT)
5956                 *r |= Mono_Posix_PollEvents_POLLOUT;
5957 #endif /* ndef POLLOUT */
5958 #ifdef POLLERR
5959         if ((x & POLLERR) == POLLERR)
5960                 *r |= Mono_Posix_PollEvents_POLLERR;
5961 #endif /* ndef POLLERR */
5962 #ifdef POLLHUP
5963         if ((x & POLLHUP) == POLLHUP)
5964                 *r |= Mono_Posix_PollEvents_POLLHUP;
5965 #endif /* ndef POLLHUP */
5966 #ifdef POLLNVAL
5967         if ((x & POLLNVAL) == POLLNVAL)
5968                 *r |= Mono_Posix_PollEvents_POLLNVAL;
5969 #endif /* ndef POLLNVAL */
5970 #ifdef POLLRDNORM
5971         if ((x & POLLRDNORM) == POLLRDNORM)
5972                 *r |= Mono_Posix_PollEvents_POLLRDNORM;
5973 #endif /* ndef POLLRDNORM */
5974 #ifdef POLLRDBAND
5975         if ((x & POLLRDBAND) == POLLRDBAND)
5976                 *r |= Mono_Posix_PollEvents_POLLRDBAND;
5977 #endif /* ndef POLLRDBAND */
5978 #ifdef POLLWRNORM
5979         if ((x & POLLWRNORM) == POLLWRNORM)
5980                 *r |= Mono_Posix_PollEvents_POLLWRNORM;
5981 #endif /* ndef POLLWRNORM */
5982 #ifdef POLLWRBAND
5983         if ((x & POLLWRBAND) == POLLWRBAND)
5984                 *r |= Mono_Posix_PollEvents_POLLWRBAND;
5985 #endif /* ndef POLLWRBAND */
5986         return 0;
5987 }
5988
5989 int Mono_Posix_FromXattrFlags (int x, int *r)
5990 {
5991         *r = 0;
5992         if (x == 0)
5993                 return 0;
5994         if ((x & Mono_Posix_XattrFlags_XATTR_AUTO) == Mono_Posix_XattrFlags_XATTR_AUTO)
5995 #ifdef XATTR_AUTO
5996                 *r |= XATTR_AUTO;
5997 #else /* def XATTR_AUTO */
5998                 {errno = EINVAL; return -1;}
5999 #endif /* ndef XATTR_AUTO */
6000         if ((x & Mono_Posix_XattrFlags_XATTR_CREATE) == Mono_Posix_XattrFlags_XATTR_CREATE)
6001 #ifdef XATTR_CREATE
6002                 *r |= XATTR_CREATE;
6003 #else /* def XATTR_CREATE */
6004                 {errno = EINVAL; return -1;}
6005 #endif /* ndef XATTR_CREATE */
6006         if ((x & Mono_Posix_XattrFlags_XATTR_REPLACE) == Mono_Posix_XattrFlags_XATTR_REPLACE)
6007 #ifdef XATTR_REPLACE
6008                 *r |= XATTR_REPLACE;
6009 #else /* def XATTR_REPLACE */
6010                 {errno = EINVAL; return -1;}
6011 #endif /* ndef XATTR_REPLACE */
6012         return 0;
6013 }
6014
6015 int Mono_Posix_ToXattrFlags (int x, int *r)
6016 {
6017         *r = 0;
6018         if (x == 0)
6019                 return 0;
6020 #ifdef XATTR_AUTO
6021         if ((x & XATTR_AUTO) == XATTR_AUTO)
6022                 *r |= Mono_Posix_XattrFlags_XATTR_AUTO;
6023 #endif /* ndef XATTR_AUTO */
6024 #ifdef XATTR_CREATE
6025         if ((x & XATTR_CREATE) == XATTR_CREATE)
6026                 *r |= Mono_Posix_XattrFlags_XATTR_CREATE;
6027 #endif /* ndef XATTR_CREATE */
6028 #ifdef XATTR_REPLACE
6029         if ((x & XATTR_REPLACE) == XATTR_REPLACE)
6030                 *r |= Mono_Posix_XattrFlags_XATTR_REPLACE;
6031 #endif /* ndef XATTR_REPLACE */
6032         return 0;
6033 }
6034
6035 int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
6036 {
6037         *r = 0;
6038         if (x == 0)
6039                 return 0;
6040         if ((x & Mono_Posix_MountFlags_ST_RDONLY) == Mono_Posix_MountFlags_ST_RDONLY)
6041 #ifdef ST_RDONLY
6042                 *r |= ST_RDONLY;
6043 #else /* def ST_RDONLY */
6044                 {errno = EINVAL; return -1;}
6045 #endif /* ndef ST_RDONLY */
6046         if ((x & Mono_Posix_MountFlags_ST_NOSUID) == Mono_Posix_MountFlags_ST_NOSUID)
6047 #ifdef ST_NOSUID
6048                 *r |= ST_NOSUID;
6049 #else /* def ST_NOSUID */
6050                 {errno = EINVAL; return -1;}
6051 #endif /* ndef ST_NOSUID */
6052         if ((x & Mono_Posix_MountFlags_ST_NODEV) == Mono_Posix_MountFlags_ST_NODEV)
6053 #ifdef ST_NODEV
6054                 *r |= ST_NODEV;
6055 #else /* def ST_NODEV */
6056                 {errno = EINVAL; return -1;}
6057 #endif /* ndef ST_NODEV */
6058         if ((x & Mono_Posix_MountFlags_ST_SYNCHRONOUS) == Mono_Posix_MountFlags_ST_SYNCHRONOUS)
6059 #ifdef ST_SYNCHRONOUS
6060                 *r |= ST_SYNCHRONOUS;
6061 #else /* def ST_SYNCHRONOUS */
6062                 {errno = EINVAL; return -1;}
6063 #endif /* ndef ST_SYNCHRONOUS */
6064         if ((x & Mono_Posix_MountFlags_ST_MANDLOCK) == Mono_Posix_MountFlags_ST_MANDLOCK)
6065 #ifdef ST_MANDLOCK
6066                 *r |= ST_MANDLOCK;
6067 #else /* def ST_MANDLOCK */
6068                 {errno = EINVAL; return -1;}
6069 #endif /* ndef ST_MANDLOCK */
6070         if ((x & Mono_Posix_MountFlags_ST_WRITE) == Mono_Posix_MountFlags_ST_WRITE)
6071 #ifdef ST_WRITE
6072                 *r |= ST_WRITE;
6073 #else /* def ST_WRITE */
6074                 {errno = EINVAL; return -1;}
6075 #endif /* ndef ST_WRITE */
6076         if ((x & Mono_Posix_MountFlags_ST_APPEND) == Mono_Posix_MountFlags_ST_APPEND)
6077 #ifdef ST_APPEND
6078                 *r |= ST_APPEND;
6079 #else /* def ST_APPEND */
6080                 {errno = EINVAL; return -1;}
6081 #endif /* ndef ST_APPEND */
6082         if ((x & Mono_Posix_MountFlags_ST_IMMUTABLE) == Mono_Posix_MountFlags_ST_IMMUTABLE)
6083 #ifdef ST_IMMUTABLE
6084                 *r |= ST_IMMUTABLE;
6085 #else /* def ST_IMMUTABLE */
6086                 {errno = EINVAL; return -1;}
6087 #endif /* ndef ST_IMMUTABLE */
6088         if ((x & Mono_Posix_MountFlags_ST_NOATIME) == Mono_Posix_MountFlags_ST_NOATIME)
6089 #ifdef ST_NOATIME
6090                 *r |= ST_NOATIME;
6091 #else /* def ST_NOATIME */
6092                 {errno = EINVAL; return -1;}
6093 #endif /* ndef ST_NOATIME */
6094         if ((x & Mono_Posix_MountFlags_ST_NODIRATIME) == Mono_Posix_MountFlags_ST_NODIRATIME)
6095 #ifdef ST_NODIRATIME
6096                 *r |= ST_NODIRATIME;
6097 #else /* def ST_NODIRATIME */
6098                 {errno = EINVAL; return -1;}
6099 #endif /* ndef ST_NODIRATIME */
6100         return 0;
6101 }
6102
6103 int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
6104 {
6105         *r = 0;
6106         if (x == 0)
6107                 return 0;
6108 #ifdef ST_RDONLY
6109         if ((x & ST_RDONLY) == ST_RDONLY)
6110                 *r |= Mono_Posix_MountFlags_ST_RDONLY;
6111 #endif /* ndef ST_RDONLY */
6112 #ifdef ST_NOSUID
6113         if ((x & ST_NOSUID) == ST_NOSUID)
6114                 *r |= Mono_Posix_MountFlags_ST_NOSUID;
6115 #endif /* ndef ST_NOSUID */
6116 #ifdef ST_NODEV
6117         if ((x & ST_NODEV) == ST_NODEV)
6118                 *r |= Mono_Posix_MountFlags_ST_NODEV;
6119 #endif /* ndef ST_NODEV */
6120 #ifdef ST_SYNCHRONOUS
6121         if ((x & ST_SYNCHRONOUS) == ST_SYNCHRONOUS)
6122                 *r |= Mono_Posix_MountFlags_ST_SYNCHRONOUS;
6123 #endif /* ndef ST_SYNCHRONOUS */
6124 #ifdef ST_MANDLOCK
6125         if ((x & ST_MANDLOCK) == ST_MANDLOCK)
6126                 *r |= Mono_Posix_MountFlags_ST_MANDLOCK;
6127 #endif /* ndef ST_MANDLOCK */
6128 #ifdef ST_WRITE
6129         if ((x & ST_WRITE) == ST_WRITE)
6130                 *r |= Mono_Posix_MountFlags_ST_WRITE;
6131 #endif /* ndef ST_WRITE */
6132 #ifdef ST_APPEND
6133         if ((x & ST_APPEND) == ST_APPEND)
6134                 *r |= Mono_Posix_MountFlags_ST_APPEND;
6135 #endif /* ndef ST_APPEND */
6136 #ifdef ST_IMMUTABLE
6137         if ((x & ST_IMMUTABLE) == ST_IMMUTABLE)
6138                 *r |= Mono_Posix_MountFlags_ST_IMMUTABLE;
6139 #endif /* ndef ST_IMMUTABLE */
6140 #ifdef ST_NOATIME
6141         if ((x & ST_NOATIME) == ST_NOATIME)
6142                 *r |= Mono_Posix_MountFlags_ST_NOATIME;
6143 #endif /* ndef ST_NOATIME */
6144 #ifdef ST_NODIRATIME
6145         if ((x & ST_NODIRATIME) == ST_NODIRATIME)
6146                 *r |= Mono_Posix_MountFlags_ST_NODIRATIME;
6147 #endif /* ndef ST_NODIRATIME */
6148         return 0;
6149 }
6150
6151 int Mono_Posix_FromMmapFlags (int x, int *r)
6152 {
6153         *r = 0;
6154         if (x == 0)
6155                 return 0;
6156         if ((x & Mono_Posix_MmapFlags_MAP_SHARED) == Mono_Posix_MmapFlags_MAP_SHARED)
6157 #ifdef MAP_SHARED
6158                 *r |= MAP_SHARED;
6159 #else /* def MAP_SHARED */
6160                 {errno = EINVAL; return -1;}
6161 #endif /* ndef MAP_SHARED */
6162         if ((x & Mono_Posix_MmapFlags_MAP_PRIVATE) == Mono_Posix_MmapFlags_MAP_PRIVATE)
6163 #ifdef MAP_PRIVATE
6164                 *r |= MAP_PRIVATE;
6165 #else /* def MAP_PRIVATE */
6166                 {errno = EINVAL; return -1;}
6167 #endif /* ndef MAP_PRIVATE */
6168         if ((x & Mono_Posix_MmapFlags_MAP_TYPE) == Mono_Posix_MmapFlags_MAP_TYPE)
6169 #ifdef MAP_TYPE
6170                 *r |= MAP_TYPE;
6171 #else /* def MAP_TYPE */
6172                 {errno = EINVAL; return -1;}
6173 #endif /* ndef MAP_TYPE */
6174         if ((x & Mono_Posix_MmapFlags_MAP_FIXED) == Mono_Posix_MmapFlags_MAP_FIXED)
6175 #ifdef MAP_FIXED
6176                 *r |= MAP_FIXED;
6177 #else /* def MAP_FIXED */
6178                 {errno = EINVAL; return -1;}
6179 #endif /* ndef MAP_FIXED */
6180         if ((x & Mono_Posix_MmapFlags_MAP_FILE) == Mono_Posix_MmapFlags_MAP_FILE)
6181 #ifdef MAP_FILE
6182                 *r |= MAP_FILE;
6183 #else /* def MAP_FILE */
6184                 {errno = EINVAL; return -1;}
6185 #endif /* ndef MAP_FILE */
6186         if ((x & Mono_Posix_MmapFlags_MAP_ANONYMOUS) == Mono_Posix_MmapFlags_MAP_ANONYMOUS)
6187 #ifdef MAP_ANONYMOUS
6188                 *r |= MAP_ANONYMOUS;
6189 #else /* def MAP_ANONYMOUS */
6190                 {errno = EINVAL; return -1;}
6191 #endif /* ndef MAP_ANONYMOUS */
6192         if ((x & Mono_Posix_MmapFlags_MAP_ANON) == Mono_Posix_MmapFlags_MAP_ANON)
6193 #ifdef MAP_ANON
6194                 *r |= MAP_ANON;
6195 #else /* def MAP_ANON */
6196                 {errno = EINVAL; return -1;}
6197 #endif /* ndef MAP_ANON */
6198         if ((x & Mono_Posix_MmapFlags_MAP_GROWSDOWN) == Mono_Posix_MmapFlags_MAP_GROWSDOWN)
6199 #ifdef MAP_GROWSDOWN
6200                 *r |= MAP_GROWSDOWN;
6201 #else /* def MAP_GROWSDOWN */
6202                 {errno = EINVAL; return -1;}
6203 #endif /* ndef MAP_GROWSDOWN */
6204         if ((x & Mono_Posix_MmapFlags_MAP_DENYWRITE) == Mono_Posix_MmapFlags_MAP_DENYWRITE)
6205 #ifdef MAP_DENYWRITE
6206                 *r |= MAP_DENYWRITE;
6207 #else /* def MAP_DENYWRITE */
6208                 {errno = EINVAL; return -1;}
6209 #endif /* ndef MAP_DENYWRITE */
6210         if ((x & Mono_Posix_MmapFlags_MAP_EXECUTABLE) == Mono_Posix_MmapFlags_MAP_EXECUTABLE)
6211 #ifdef MAP_EXECUTABLE
6212                 *r |= MAP_EXECUTABLE;
6213 #else /* def MAP_EXECUTABLE */
6214                 {errno = EINVAL; return -1;}
6215 #endif /* ndef MAP_EXECUTABLE */
6216         if ((x & Mono_Posix_MmapFlags_MAP_LOCKED) == Mono_Posix_MmapFlags_MAP_LOCKED)
6217 #ifdef MAP_LOCKED
6218                 *r |= MAP_LOCKED;
6219 #else /* def MAP_LOCKED */
6220                 {errno = EINVAL; return -1;}
6221 #endif /* ndef MAP_LOCKED */
6222         if ((x & Mono_Posix_MmapFlags_MAP_NORESERVE) == Mono_Posix_MmapFlags_MAP_NORESERVE)
6223 #ifdef MAP_NORESERVE
6224                 *r |= MAP_NORESERVE;
6225 #else /* def MAP_NORESERVE */
6226                 {errno = EINVAL; return -1;}
6227 #endif /* ndef MAP_NORESERVE */
6228         if ((x & Mono_Posix_MmapFlags_MAP_POPULATE) == Mono_Posix_MmapFlags_MAP_POPULATE)
6229 #ifdef MAP_POPULATE
6230                 *r |= MAP_POPULATE;
6231 #else /* def MAP_POPULATE */
6232                 {errno = EINVAL; return -1;}
6233 #endif /* ndef MAP_POPULATE */
6234         if ((x & Mono_Posix_MmapFlags_MAP_NONBLOCK) == Mono_Posix_MmapFlags_MAP_NONBLOCK)
6235 #ifdef MAP_NONBLOCK
6236                 *r |= MAP_NONBLOCK;
6237 #else /* def MAP_NONBLOCK */
6238                 {errno = EINVAL; return -1;}
6239 #endif /* ndef MAP_NONBLOCK */
6240         return 0;
6241 }
6242
6243 int Mono_Posix_ToMmapFlags (int x, int *r)
6244 {
6245         *r = 0;
6246         if (x == 0)
6247                 return 0;
6248 #ifdef MAP_SHARED
6249         if ((x & MAP_SHARED) == MAP_SHARED)
6250                 *r |= Mono_Posix_MmapFlags_MAP_SHARED;
6251 #endif /* ndef MAP_SHARED */
6252 #ifdef MAP_PRIVATE
6253         if ((x & MAP_PRIVATE) == MAP_PRIVATE)
6254                 *r |= Mono_Posix_MmapFlags_MAP_PRIVATE;
6255 #endif /* ndef MAP_PRIVATE */
6256 #ifdef MAP_TYPE
6257         if ((x & MAP_TYPE) == MAP_TYPE)
6258                 *r |= Mono_Posix_MmapFlags_MAP_TYPE;
6259 #endif /* ndef MAP_TYPE */
6260 #ifdef MAP_FIXED
6261         if ((x & MAP_FIXED) == MAP_FIXED)
6262                 *r |= Mono_Posix_MmapFlags_MAP_FIXED;
6263 #endif /* ndef MAP_FIXED */
6264 #ifdef MAP_FILE
6265         if ((x & MAP_FILE) == MAP_FILE)
6266                 *r |= Mono_Posix_MmapFlags_MAP_FILE;
6267 #endif /* ndef MAP_FILE */
6268 #ifdef MAP_ANONYMOUS
6269         if ((x & MAP_ANONYMOUS) == MAP_ANONYMOUS)
6270                 *r |= Mono_Posix_MmapFlags_MAP_ANONYMOUS;
6271 #endif /* ndef MAP_ANONYMOUS */
6272 #ifdef MAP_ANON
6273         if ((x & MAP_ANON) == MAP_ANON)
6274                 *r |= Mono_Posix_MmapFlags_MAP_ANON;
6275 #endif /* ndef MAP_ANON */
6276 #ifdef MAP_GROWSDOWN
6277         if ((x & MAP_GROWSDOWN) == MAP_GROWSDOWN)
6278                 *r |= Mono_Posix_MmapFlags_MAP_GROWSDOWN;
6279 #endif /* ndef MAP_GROWSDOWN */
6280 #ifdef MAP_DENYWRITE
6281         if ((x & MAP_DENYWRITE) == MAP_DENYWRITE)
6282                 *r |= Mono_Posix_MmapFlags_MAP_DENYWRITE;
6283 #endif /* ndef MAP_DENYWRITE */
6284 #ifdef MAP_EXECUTABLE
6285         if ((x & MAP_EXECUTABLE) == MAP_EXECUTABLE)
6286                 *r |= Mono_Posix_MmapFlags_MAP_EXECUTABLE;
6287 #endif /* ndef MAP_EXECUTABLE */
6288 #ifdef MAP_LOCKED
6289         if ((x & MAP_LOCKED) == MAP_LOCKED)
6290                 *r |= Mono_Posix_MmapFlags_MAP_LOCKED;
6291 #endif /* ndef MAP_LOCKED */
6292 #ifdef MAP_NORESERVE
6293         if ((x & MAP_NORESERVE) == MAP_NORESERVE)
6294                 *r |= Mono_Posix_MmapFlags_MAP_NORESERVE;
6295 #endif /* ndef MAP_NORESERVE */
6296 #ifdef MAP_POPULATE
6297         if ((x & MAP_POPULATE) == MAP_POPULATE)
6298                 *r |= Mono_Posix_MmapFlags_MAP_POPULATE;
6299 #endif /* ndef MAP_POPULATE */
6300 #ifdef MAP_NONBLOCK
6301         if ((x & MAP_NONBLOCK) == MAP_NONBLOCK)
6302                 *r |= Mono_Posix_MmapFlags_MAP_NONBLOCK;
6303 #endif /* ndef MAP_NONBLOCK */
6304         return 0;
6305 }
6306
6307 int Mono_Posix_FromMmapProt (int x, int *r)
6308 {
6309         *r = 0;
6310         if (x == 0)
6311                 return 0;
6312         if ((x & Mono_Posix_MmapProt_PROT_READ) == Mono_Posix_MmapProt_PROT_READ)
6313 #ifdef PROT_READ
6314                 *r |= PROT_READ;
6315 #else /* def PROT_READ */
6316                 {errno = EINVAL; return -1;}
6317 #endif /* ndef PROT_READ */
6318         if ((x & Mono_Posix_MmapProt_PROT_WRITE) == Mono_Posix_MmapProt_PROT_WRITE)
6319 #ifdef PROT_WRITE
6320                 *r |= PROT_WRITE;
6321 #else /* def PROT_WRITE */
6322                 {errno = EINVAL; return -1;}
6323 #endif /* ndef PROT_WRITE */
6324         if ((x & Mono_Posix_MmapProt_PROT_EXEC) == Mono_Posix_MmapProt_PROT_EXEC)
6325 #ifdef PROT_EXEC
6326                 *r |= PROT_EXEC;
6327 #else /* def PROT_EXEC */
6328                 {errno = EINVAL; return -1;}
6329 #endif /* ndef PROT_EXEC */
6330         if ((x & Mono_Posix_MmapProt_PROT_NONE) == Mono_Posix_MmapProt_PROT_NONE)
6331 #ifdef PROT_NONE
6332                 *r |= PROT_NONE;
6333 #else /* def PROT_NONE */
6334                 {errno = EINVAL; return -1;}
6335 #endif /* ndef PROT_NONE */
6336         if ((x & Mono_Posix_MmapProt_PROT_GROWSDOWN) == Mono_Posix_MmapProt_PROT_GROWSDOWN)
6337 #ifdef PROT_GROWSDOWN
6338                 *r |= PROT_GROWSDOWN;
6339 #else /* def PROT_GROWSDOWN */
6340                 {errno = EINVAL; return -1;}
6341 #endif /* ndef PROT_GROWSDOWN */
6342         if ((x & Mono_Posix_MmapProt_PROT_GROWSUP) == Mono_Posix_MmapProt_PROT_GROWSUP)
6343 #ifdef PROT_GROWSUP
6344                 *r |= PROT_GROWSUP;
6345 #else /* def PROT_GROWSUP */
6346                 {errno = EINVAL; return -1;}
6347 #endif /* ndef PROT_GROWSUP */
6348         return 0;
6349 }
6350
6351 int Mono_Posix_ToMmapProt (int x, int *r)
6352 {
6353         *r = 0;
6354         if (x == 0)
6355                 return 0;
6356 #ifdef PROT_READ
6357         if ((x & PROT_READ) == PROT_READ)
6358                 *r |= Mono_Posix_MmapProt_PROT_READ;
6359 #endif /* ndef PROT_READ */
6360 #ifdef PROT_WRITE
6361         if ((x & PROT_WRITE) == PROT_WRITE)
6362                 *r |= Mono_Posix_MmapProt_PROT_WRITE;
6363 #endif /* ndef PROT_WRITE */
6364 #ifdef PROT_EXEC
6365         if ((x & PROT_EXEC) == PROT_EXEC)
6366                 *r |= Mono_Posix_MmapProt_PROT_EXEC;
6367 #endif /* ndef PROT_EXEC */
6368 #ifdef PROT_NONE
6369         if ((x & PROT_NONE) == PROT_NONE)
6370                 *r |= Mono_Posix_MmapProt_PROT_NONE;
6371 #endif /* ndef PROT_NONE */
6372 #ifdef PROT_GROWSDOWN
6373         if ((x & PROT_GROWSDOWN) == PROT_GROWSDOWN)
6374                 *r |= Mono_Posix_MmapProt_PROT_GROWSDOWN;
6375 #endif /* ndef PROT_GROWSDOWN */
6376 #ifdef PROT_GROWSUP
6377         if ((x & PROT_GROWSUP) == PROT_GROWSUP)
6378                 *r |= Mono_Posix_MmapProt_PROT_GROWSUP;
6379 #endif /* ndef PROT_GROWSUP */
6380         return 0;
6381 }
6382
6383 int Mono_Posix_FromMsyncFlags (int x, int *r)
6384 {
6385         *r = 0;
6386         if (x == 0)
6387                 return 0;
6388         if ((x & Mono_Posix_MsyncFlags_MS_ASYNC) == Mono_Posix_MsyncFlags_MS_ASYNC)
6389 #ifdef MS_ASYNC
6390                 *r |= MS_ASYNC;
6391 #else /* def MS_ASYNC */
6392                 {errno = EINVAL; return -1;}
6393 #endif /* ndef MS_ASYNC */
6394         if ((x & Mono_Posix_MsyncFlags_MS_SYNC) == Mono_Posix_MsyncFlags_MS_SYNC)
6395 #ifdef MS_SYNC
6396                 *r |= MS_SYNC;
6397 #else /* def MS_SYNC */
6398                 {errno = EINVAL; return -1;}
6399 #endif /* ndef MS_SYNC */
6400         if ((x & Mono_Posix_MsyncFlags_MS_INVALIDATE) == Mono_Posix_MsyncFlags_MS_INVALIDATE)
6401 #ifdef MS_INVALIDATE
6402                 *r |= MS_INVALIDATE;
6403 #else /* def MS_INVALIDATE */
6404                 {errno = EINVAL; return -1;}
6405 #endif /* ndef MS_INVALIDATE */
6406         return 0;
6407 }
6408
6409 int Mono_Posix_ToMsyncFlags (int x, int *r)
6410 {
6411         *r = 0;
6412         if (x == 0)
6413                 return 0;
6414 #ifdef MS_ASYNC
6415         if ((x & MS_ASYNC) == MS_ASYNC)
6416                 *r |= Mono_Posix_MsyncFlags_MS_ASYNC;
6417 #endif /* ndef MS_ASYNC */
6418 #ifdef MS_SYNC
6419         if ((x & MS_SYNC) == MS_SYNC)
6420                 *r |= Mono_Posix_MsyncFlags_MS_SYNC;
6421 #endif /* ndef MS_SYNC */
6422 #ifdef MS_INVALIDATE
6423         if ((x & MS_INVALIDATE) == MS_INVALIDATE)
6424                 *r |= Mono_Posix_MsyncFlags_MS_INVALIDATE;
6425 #endif /* ndef MS_INVALIDATE */
6426         return 0;
6427 }
6428
6429 int Mono_Posix_FromMlockallFlags (int x, int *r)
6430 {
6431         *r = 0;
6432         if (x == 0)
6433                 return 0;
6434         if ((x & Mono_Posix_MlockallFlags_MCL_CURRENT) == Mono_Posix_MlockallFlags_MCL_CURRENT)
6435 #ifdef MCL_CURRENT
6436                 *r |= MCL_CURRENT;
6437 #else /* def MCL_CURRENT */
6438                 {errno = EINVAL; return -1;}
6439 #endif /* ndef MCL_CURRENT */
6440         if ((x & Mono_Posix_MlockallFlags_MCL_FUTURE) == Mono_Posix_MlockallFlags_MCL_FUTURE)
6441 #ifdef MCL_FUTURE
6442                 *r |= MCL_FUTURE;
6443 #else /* def MCL_FUTURE */
6444                 {errno = EINVAL; return -1;}
6445 #endif /* ndef MCL_FUTURE */
6446         return 0;
6447 }
6448
6449 int Mono_Posix_ToMlockallFlags (int x, int *r)
6450 {
6451         *r = 0;
6452         if (x == 0)
6453                 return 0;
6454 #ifdef MCL_CURRENT
6455         if ((x & MCL_CURRENT) == MCL_CURRENT)
6456                 *r |= Mono_Posix_MlockallFlags_MCL_CURRENT;
6457 #endif /* ndef MCL_CURRENT */
6458 #ifdef MCL_FUTURE
6459         if ((x & MCL_FUTURE) == MCL_FUTURE)
6460                 *r |= Mono_Posix_MlockallFlags_MCL_FUTURE;
6461 #endif /* ndef MCL_FUTURE */
6462         return 0;
6463 }
6464
6465 int Mono_Posix_FromMremapFlags (guint64 x, guint64 *r)
6466 {
6467         *r = 0;
6468         if (x == 0)
6469                 return 0;
6470         if ((x & Mono_Posix_MremapFlags_MREMAP_MAYMOVE) == Mono_Posix_MremapFlags_MREMAP_MAYMOVE)
6471 #ifdef MREMAP_MAYMOVE
6472                 *r |= MREMAP_MAYMOVE;
6473 #else /* def MREMAP_MAYMOVE */
6474                 {errno = EINVAL; return -1;}
6475 #endif /* ndef MREMAP_MAYMOVE */
6476         return 0;
6477 }
6478
6479 int Mono_Posix_ToMremapFlags (guint64 x, guint64 *r)
6480 {
6481         *r = 0;
6482         if (x == 0)
6483                 return 0;
6484 #ifdef MREMAP_MAYMOVE
6485         if ((x & MREMAP_MAYMOVE) == MREMAP_MAYMOVE)
6486                 *r |= Mono_Posix_MremapFlags_MREMAP_MAYMOVE;
6487 #endif /* ndef MREMAP_MAYMOVE */
6488         return 0;
6489 }
6490