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