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