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