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