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