[llvm] Disable running the llvm verifier by default, it was enabled by mistake, and...
[mono-project.git] / support / map.c
blob8c55834e3c69a304995d4f65fdaded72d4642112
1 /*
2 * This file was automatically generated by create-native-map from ../mcs/class/lib/net_4_x/Mono.Posix.dll.
4 * DO NOT MODIFY.
5 */
6 #ifdef HAVE_CONFIG_H
7 #include <config.h>
8 #endif /* ndef HAVE_CONFIG_H */
10 #include <stdlib.h>
11 #include <string.h>
14 * Implementation Macros
16 #ifndef _GNU_SOURCE
17 #define _GNU_SOURCE
18 #endif /* ndef _GNU_SOURCE */
20 #ifndef _XOPEN_SOURCE
21 #define _XOPEN_SOURCE
22 #endif /* ndef _XOPEN_SOURCE */
26 * Implementation Includes
28 #include <sys/types.h>
29 #include <sys/stat.h>
30 #ifdef HAVE_NETINET_IN_H
31 #include <netinet/in.h>
32 #endif /* ndef HAVE_NETINET_IN_H */
33 #ifdef HAVE_SYS_TIME_H
34 #include <sys/time.h>
35 #endif /* ndef HAVE_SYS_TIME_H */
36 #ifdef HAVE_SYS_POLL_H
37 #include <sys/poll.h>
38 #endif /* ndef HAVE_SYS_POLL_H */
39 #ifdef HAVE_SYS_WAIT_H
40 #include <sys/wait.h>
41 #endif /* ndef HAVE_SYS_WAIT_H */
42 #ifdef HAVE_SYS_STATVFS_H
43 #include <sys/statvfs.h>
44 #endif /* ndef HAVE_SYS_STATVFS_H */
45 #ifdef HAVE_SYS_XATTR_H
46 #include <sys/xattr.h>
47 #endif /* ndef HAVE_SYS_XATTR_H */
48 #ifdef HAVE_SYS_MMAN_H
49 #include <sys/mman.h>
50 #endif /* ndef HAVE_SYS_MMAN_H */
51 #ifdef HAVE_SYS_SOCKET_H
52 #include <sys/socket.h>
53 #endif /* ndef HAVE_SYS_SOCKET_H */
54 #ifdef HAVE_SYS_UIO_H
55 #include <sys/uio.h>
56 #endif /* ndef HAVE_SYS_UIO_H */
57 #ifdef HAVE_UNISTD_H
58 #include <unistd.h>
59 #endif /* ndef HAVE_UNISTD_H */
60 #include <fcntl.h>
61 #include <signal.h>
62 #ifdef HAVE_POLL_H
63 #include <poll.h>
64 #endif /* ndef HAVE_POLL_H */
65 #ifdef HAVE_GRP_H
66 #include <grp.h>
67 #endif /* ndef HAVE_GRP_H */
68 #include <errno.h>
69 #ifdef HAVE_SYSLOG_H
70 #include <syslog.h>
71 #endif /* ndef HAVE_SYSLOG_H */
72 #ifdef HAVE_DIRENT_H
73 #include <dirent.h>
74 #endif /* ndef HAVE_DIRENT_H */
75 #ifdef HAVE_UTIME_H
76 #include <utime.h>
77 #endif /* ndef HAVE_UTIME_H */
78 #include <time.h>
79 #include "mph.h"
80 #include "map-impl.h"
82 #include "map.h"
84 #include <errno.h> /* errno, EOVERFLOW */
85 #include <glib.h> /* g* types, g_assert_not_reached() */
87 #if defined (G_MININT8)
88 #define CNM_MININT8 G_MININT8
89 #else
90 #define CNM_MININT8 (-128)
91 #endif
93 #if defined (G_MAXINT8)
94 #define CNM_MAXINT8 G_MAXINT8
95 #else
96 #define CNM_MAXINT8 (127)
97 #endif
99 #if defined (G_MAXUINT8)
100 #define CNM_MAXUINT8 G_MAXUINT8
101 #else
102 #define CNM_MAXUINT8 (255)
103 #endif
105 #if defined (G_MININT16)
106 #define CNM_MININT16 G_MININT16
107 #else
108 #define CNM_MININT16 (-32768)
109 #endif
111 #if defined (G_MAXINT16)
112 #define CNM_MAXINT16 G_MAXINT16
113 #else
114 #define CNM_MAXINT16 (32767)
115 #endif
117 #if defined (G_MAXUINT16)
118 #define CNM_MAXUINT16 G_MAXUINT16
119 #else
120 #define CNM_MAXUINT16 (65535)
121 #endif
123 #if defined (G_MININT32)
124 #define CNM_MININT32 G_MININT32
125 #else
126 #define CNM_MININT32 (-2147483648)
127 #endif
129 #if defined (G_MAXINT32)
130 #define CNM_MAXINT32 G_MAXINT32
131 #else
132 #define CNM_MAXINT32 (2147483647)
133 #endif
135 #if defined (G_MAXUINT32)
136 #define CNM_MAXUINT32 G_MAXUINT32
137 #else
138 #define CNM_MAXUINT32 (4294967295U)
139 #endif
141 #if defined (G_MININT64)
142 #define CNM_MININT64 G_MININT64
143 #else
144 #define CNM_MININT64 (-9223372036854775808LL)
145 #endif
147 #if defined (G_MAXINT64)
148 #define CNM_MAXINT64 G_MAXINT64
149 #else
150 #define CNM_MAXINT64 (9223372036854775807LL)
151 #endif
153 #if defined (G_MAXUINT64)
154 #define CNM_MAXUINT64 G_MAXUINT64
155 #else
156 #define CNM_MAXUINT64 (18446744073709551615ULL)
157 #endif
160 /* returns TRUE if @type is an unsigned type */
161 #define _cnm_integral_type_is_unsigned(type) \
162 (sizeof(type) == sizeof(gint8) \
163 ? (((type)-1) > CNM_MAXINT8) \
164 : sizeof(type) == sizeof(gint16) \
165 ? (((type)-1) > CNM_MAXINT16) \
166 : sizeof(type) == sizeof(gint32) \
167 ? (((type)-1) > CNM_MAXINT32) \
168 : sizeof(type) == sizeof(gint64) \
169 ? (((type)-1) > CNM_MAXINT64) \
170 : (g_assert_not_reached (), 0))
172 /* returns the minimum value of @type as a gint64 */
173 #define _cnm_integral_type_min(type) \
174 (_cnm_integral_type_is_unsigned (type) \
175 ? 0 \
176 : sizeof(type) == sizeof(gint8) \
177 ? CNM_MININT8 \
178 : sizeof(type) == sizeof(gint16) \
179 ? CNM_MININT16 \
180 : sizeof(type) == sizeof(gint32) \
181 ? CNM_MININT32 \
182 : sizeof(type) == sizeof(gint64) \
183 ? CNM_MININT64 \
184 : (g_assert_not_reached (), 0))
186 /* returns the maximum value of @type as a guint64 */
187 #define _cnm_integral_type_max(type) \
188 (_cnm_integral_type_is_unsigned (type) \
189 ? sizeof(type) == sizeof(gint8) \
190 ? CNM_MAXUINT8 \
191 : sizeof(type) == sizeof(gint16) \
192 ? CNM_MAXUINT16 \
193 : sizeof(type) == sizeof(gint32) \
194 ? CNM_MAXUINT32 \
195 : sizeof(type) == sizeof(gint64) \
196 ? CNM_MAXUINT64 \
197 : (g_assert_not_reached (), 0) \
198 : sizeof(type) == sizeof(gint8) \
199 ? CNM_MAXINT8 \
200 : sizeof(type) == sizeof(gint16) \
201 ? CNM_MAXINT16 \
202 : sizeof(type) == sizeof(gint32) \
203 ? CNM_MAXINT32 \
204 : sizeof(type) == sizeof(gint64) \
205 ? CNM_MAXINT64 \
206 : (g_assert_not_reached (), 0))
208 #ifdef _CNM_DUMP
209 #define _cnm_dump(to_t,from) \
210 printf ("# %s -> %s: uns=%i; min=%llx; max=%llx; value=%llx; lt=%i; l0=%i; gt=%i; e=%i\n", \
211 #from, #to_t, \
212 (int) _cnm_integral_type_is_unsigned (to_t), \
213 (gint64) (_cnm_integral_type_min (to_t)), \
214 (gint64) (_cnm_integral_type_max (to_t)), \
215 (gint64) (from), \
216 (((gint64) _cnm_integral_type_min (to_t)) <= (gint64) from), \
217 (from < 0), \
218 (((guint64) from) <= (guint64) _cnm_integral_type_max (to_t)), \
219 !((int) _cnm_integral_type_is_unsigned (to_t) \
220 ? ((0 <= from) && \
221 ((guint64) from <= (guint64) _cnm_integral_type_max (to_t))) \
222 : ((gint64) _cnm_integral_type_min(to_t) <= (gint64) from && \
223 (guint64) from <= (guint64) _cnm_integral_type_max (to_t))) \
225 #else /* ndef _CNM_DUMP */
226 #define _cnm_dump(to_t, from) do {} while (0)
227 #endif /* def _CNM_DUMP */
229 #ifdef DEBUG
230 #define _cnm_return_val_if_overflow(to_t,from,val) G_STMT_START { \
231 int uns = _cnm_integral_type_is_unsigned (to_t); \
232 gint64 min = (gint64) _cnm_integral_type_min (to_t); \
233 guint64 max = (guint64) _cnm_integral_type_max (to_t); \
234 gint64 sf = (gint64) from; \
235 guint64 uf = (guint64) from; \
236 if (!(uns ? ((0 <= from) && (uf <= max)) \
237 : (min <= sf && (from < 0 || uf <= max)))) { \
238 _cnm_dump(to_t, from); \
239 errno = EOVERFLOW; \
240 return (val); \
242 } G_STMT_END
243 #else /* !def DEBUG */
244 /* don't do any overflow checking */
245 #define _cnm_return_val_if_overflow(to_t,from,val) G_STMT_START { \
246 } G_STMT_END
247 #endif /* def DEBUG */
249 int Mono_Posix_FromAccessModes (int x, int *r)
251 *r = 0;
252 if ((x & Mono_Posix_AccessModes_F_OK) == Mono_Posix_AccessModes_F_OK)
253 #ifdef F_OK
254 *r |= F_OK;
255 #else /* def F_OK */
256 {errno = EINVAL; return -1;}
257 #endif /* ndef F_OK */
258 if ((x & Mono_Posix_AccessModes_R_OK) == Mono_Posix_AccessModes_R_OK)
259 #ifdef R_OK
260 *r |= R_OK;
261 #else /* def R_OK */
262 {errno = EINVAL; return -1;}
263 #endif /* ndef R_OK */
264 if ((x & Mono_Posix_AccessModes_W_OK) == Mono_Posix_AccessModes_W_OK)
265 #ifdef W_OK
266 *r |= W_OK;
267 #else /* def W_OK */
268 {errno = EINVAL; return -1;}
269 #endif /* ndef W_OK */
270 if ((x & Mono_Posix_AccessModes_X_OK) == Mono_Posix_AccessModes_X_OK)
271 #ifdef X_OK
272 *r |= X_OK;
273 #else /* def X_OK */
274 {errno = EINVAL; return -1;}
275 #endif /* ndef X_OK */
276 if (x == 0)
277 return 0;
278 return 0;
281 int Mono_Posix_ToAccessModes (int x, int *r)
283 *r = 0;
284 if (x == 0)
285 return 0;
286 #ifdef F_OK
287 if ((x & F_OK) == F_OK)
288 *r |= Mono_Posix_AccessModes_F_OK;
289 #endif /* ndef F_OK */
290 #ifdef R_OK
291 if ((x & R_OK) == R_OK)
292 *r |= Mono_Posix_AccessModes_R_OK;
293 #endif /* ndef R_OK */
294 #ifdef W_OK
295 if ((x & W_OK) == W_OK)
296 *r |= Mono_Posix_AccessModes_W_OK;
297 #endif /* ndef W_OK */
298 #ifdef X_OK
299 if ((x & X_OK) == X_OK)
300 *r |= Mono_Posix_AccessModes_X_OK;
301 #endif /* ndef X_OK */
302 return 0;
305 int Mono_Posix_FromAtFlags (int x, int *r)
307 *r = 0;
308 if ((x & Mono_Posix_AtFlags_AT_EMPTY_PATH) == Mono_Posix_AtFlags_AT_EMPTY_PATH)
309 #ifdef AT_EMPTY_PATH
310 *r |= AT_EMPTY_PATH;
311 #else /* def AT_EMPTY_PATH */
312 {errno = EINVAL; return -1;}
313 #endif /* ndef AT_EMPTY_PATH */
314 if ((x & Mono_Posix_AtFlags_AT_NO_AUTOMOUNT) == Mono_Posix_AtFlags_AT_NO_AUTOMOUNT)
315 #ifdef AT_NO_AUTOMOUNT
316 *r |= AT_NO_AUTOMOUNT;
317 #else /* def AT_NO_AUTOMOUNT */
318 {errno = EINVAL; return -1;}
319 #endif /* ndef AT_NO_AUTOMOUNT */
320 if ((x & Mono_Posix_AtFlags_AT_REMOVEDIR) == Mono_Posix_AtFlags_AT_REMOVEDIR)
321 #ifdef AT_REMOVEDIR
322 *r |= AT_REMOVEDIR;
323 #else /* def AT_REMOVEDIR */
324 {errno = EINVAL; return -1;}
325 #endif /* ndef AT_REMOVEDIR */
326 if ((x & Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW) == Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW)
327 #ifdef AT_SYMLINK_FOLLOW
328 *r |= AT_SYMLINK_FOLLOW;
329 #else /* def AT_SYMLINK_FOLLOW */
330 {errno = EINVAL; return -1;}
331 #endif /* ndef AT_SYMLINK_FOLLOW */
332 if ((x & Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW) == Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW)
333 #ifdef AT_SYMLINK_NOFOLLOW
334 *r |= AT_SYMLINK_NOFOLLOW;
335 #else /* def AT_SYMLINK_NOFOLLOW */
336 {errno = EINVAL; return -1;}
337 #endif /* ndef AT_SYMLINK_NOFOLLOW */
338 if (x == 0)
339 return 0;
340 return 0;
343 int Mono_Posix_ToAtFlags (int x, int *r)
345 *r = 0;
346 if (x == 0)
347 return 0;
348 #ifdef AT_EMPTY_PATH
349 if ((x & AT_EMPTY_PATH) == AT_EMPTY_PATH)
350 *r |= Mono_Posix_AtFlags_AT_EMPTY_PATH;
351 #endif /* ndef AT_EMPTY_PATH */
352 #ifdef AT_NO_AUTOMOUNT
353 if ((x & AT_NO_AUTOMOUNT) == AT_NO_AUTOMOUNT)
354 *r |= Mono_Posix_AtFlags_AT_NO_AUTOMOUNT;
355 #endif /* ndef AT_NO_AUTOMOUNT */
356 #ifdef AT_REMOVEDIR
357 if ((x & AT_REMOVEDIR) == AT_REMOVEDIR)
358 *r |= Mono_Posix_AtFlags_AT_REMOVEDIR;
359 #endif /* ndef AT_REMOVEDIR */
360 #ifdef AT_SYMLINK_FOLLOW
361 if ((x & AT_SYMLINK_FOLLOW) == AT_SYMLINK_FOLLOW)
362 *r |= Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW;
363 #endif /* ndef AT_SYMLINK_FOLLOW */
364 #ifdef AT_SYMLINK_NOFOLLOW
365 if ((x & AT_SYMLINK_NOFOLLOW) == AT_SYMLINK_NOFOLLOW)
366 *r |= Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW;
367 #endif /* ndef AT_SYMLINK_NOFOLLOW */
368 return 0;
371 #ifdef HAVE_STRUCT_CMSGHDR
373 Mono_Posix_FromCmsghdr (struct Mono_Posix_Cmsghdr *from, struct cmsghdr *to)
375 _cnm_return_val_if_overflow (gint64, from->cmsg_len, -1);
377 memset (to, 0, sizeof(*to));
379 to->cmsg_len = from->cmsg_len;
380 if (Mono_Posix_FromUnixSocketProtocol (from->cmsg_level, &to->cmsg_level) != 0) {
381 return -1;
383 if (Mono_Posix_FromUnixSocketControlMessage (from->cmsg_type, &to->cmsg_type) != 0) {
384 return -1;
387 return 0;
389 #endif /* ndef HAVE_STRUCT_CMSGHDR */
392 #ifdef HAVE_STRUCT_CMSGHDR
394 Mono_Posix_ToCmsghdr (struct cmsghdr *from, struct Mono_Posix_Cmsghdr *to)
396 _cnm_return_val_if_overflow (gint64, from->cmsg_len, -1);
398 memset (to, 0, sizeof(*to));
400 to->cmsg_len = from->cmsg_len;
401 if (Mono_Posix_ToUnixSocketProtocol (from->cmsg_level, &to->cmsg_level) != 0) {
402 return -1;
404 if (Mono_Posix_ToUnixSocketControlMessage (from->cmsg_type, &to->cmsg_type) != 0) {
405 return -1;
408 return 0;
410 #endif /* ndef HAVE_STRUCT_CMSGHDR */
413 int Mono_Posix_FromConfstrName (int x, int *r)
415 *r = 0;
416 if (x == Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION)
417 #ifdef _CS_GNU_LIBC_VERSION
418 {*r = _CS_GNU_LIBC_VERSION; return 0;}
419 #else /* def _CS_GNU_LIBC_VERSION */
420 {errno = EINVAL; return -1;}
421 #endif /* ndef _CS_GNU_LIBC_VERSION */
422 if (x == Mono_Posix_ConfstrName__CS_GNU_LIBPTHREAD_VERSION)
423 #ifdef _CS_GNU_LIBPTHREAD_VERSION
424 {*r = _CS_GNU_LIBPTHREAD_VERSION; return 0;}
425 #else /* def _CS_GNU_LIBPTHREAD_VERSION */
426 {errno = EINVAL; return -1;}
427 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
428 if (x == Mono_Posix_ConfstrName__CS_LFS64_CFLAGS)
429 #ifdef _CS_LFS64_CFLAGS
430 {*r = _CS_LFS64_CFLAGS; return 0;}
431 #else /* def _CS_LFS64_CFLAGS */
432 {errno = EINVAL; return -1;}
433 #endif /* ndef _CS_LFS64_CFLAGS */
434 if (x == Mono_Posix_ConfstrName__CS_LFS64_LDFLAGS)
435 #ifdef _CS_LFS64_LDFLAGS
436 {*r = _CS_LFS64_LDFLAGS; return 0;}
437 #else /* def _CS_LFS64_LDFLAGS */
438 {errno = EINVAL; return -1;}
439 #endif /* ndef _CS_LFS64_LDFLAGS */
440 if (x == Mono_Posix_ConfstrName__CS_LFS64_LIBS)
441 #ifdef _CS_LFS64_LIBS
442 {*r = _CS_LFS64_LIBS; return 0;}
443 #else /* def _CS_LFS64_LIBS */
444 {errno = EINVAL; return -1;}
445 #endif /* ndef _CS_LFS64_LIBS */
446 if (x == Mono_Posix_ConfstrName__CS_LFS64_LINTFLAGS)
447 #ifdef _CS_LFS64_LINTFLAGS
448 {*r = _CS_LFS64_LINTFLAGS; return 0;}
449 #else /* def _CS_LFS64_LINTFLAGS */
450 {errno = EINVAL; return -1;}
451 #endif /* ndef _CS_LFS64_LINTFLAGS */
452 if (x == Mono_Posix_ConfstrName__CS_LFS_CFLAGS)
453 #ifdef _CS_LFS_CFLAGS
454 {*r = _CS_LFS_CFLAGS; return 0;}
455 #else /* def _CS_LFS_CFLAGS */
456 {errno = EINVAL; return -1;}
457 #endif /* ndef _CS_LFS_CFLAGS */
458 if (x == Mono_Posix_ConfstrName__CS_LFS_LDFLAGS)
459 #ifdef _CS_LFS_LDFLAGS
460 {*r = _CS_LFS_LDFLAGS; return 0;}
461 #else /* def _CS_LFS_LDFLAGS */
462 {errno = EINVAL; return -1;}
463 #endif /* ndef _CS_LFS_LDFLAGS */
464 if (x == Mono_Posix_ConfstrName__CS_LFS_LIBS)
465 #ifdef _CS_LFS_LIBS
466 {*r = _CS_LFS_LIBS; return 0;}
467 #else /* def _CS_LFS_LIBS */
468 {errno = EINVAL; return -1;}
469 #endif /* ndef _CS_LFS_LIBS */
470 if (x == Mono_Posix_ConfstrName__CS_LFS_LINTFLAGS)
471 #ifdef _CS_LFS_LINTFLAGS
472 {*r = _CS_LFS_LINTFLAGS; return 0;}
473 #else /* def _CS_LFS_LINTFLAGS */
474 {errno = EINVAL; return -1;}
475 #endif /* ndef _CS_LFS_LINTFLAGS */
476 if (x == Mono_Posix_ConfstrName__CS_PATH)
477 #ifdef _CS_PATH
478 {*r = _CS_PATH; return 0;}
479 #else /* def _CS_PATH */
480 {errno = EINVAL; return -1;}
481 #endif /* ndef _CS_PATH */
482 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_CFLAGS)
483 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
484 {*r = _CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
485 #else /* def _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
486 {errno = EINVAL; return -1;}
487 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
488 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
489 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
490 {*r = _CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
491 #else /* def _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
492 {errno = EINVAL; return -1;}
493 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
494 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LIBS)
495 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
496 {*r = _CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
497 #else /* def _CS_POSIX_V6_ILP32_OFF32_LIBS */
498 {errno = EINVAL; return -1;}
499 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
500 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
501 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
502 {*r = _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
503 #else /* def _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
504 {errno = EINVAL; return -1;}
505 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
506 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
507 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
508 {*r = _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
509 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
510 {errno = EINVAL; return -1;}
511 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
512 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
513 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
514 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
515 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
516 {errno = EINVAL; return -1;}
517 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
518 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LIBS)
519 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
520 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
521 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
522 {errno = EINVAL; return -1;}
523 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
524 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
525 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
526 {*r = _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
527 #else /* def _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
528 {errno = EINVAL; return -1;}
529 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
530 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_CFLAGS)
531 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
532 {*r = _CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
533 #else /* def _CS_POSIX_V6_LP64_OFF64_CFLAGS */
534 {errno = EINVAL; return -1;}
535 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
536 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LDFLAGS)
537 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
538 {*r = _CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
539 #else /* def _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
540 {errno = EINVAL; return -1;}
541 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
542 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LIBS)
543 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
544 {*r = _CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
545 #else /* def _CS_POSIX_V6_LP64_OFF64_LIBS */
546 {errno = EINVAL; return -1;}
547 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
548 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
549 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
550 {*r = _CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
551 #else /* def _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
552 {errno = EINVAL; return -1;}
553 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
554 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
555 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
556 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
557 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
558 {errno = EINVAL; return -1;}
559 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
560 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
561 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
562 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
563 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
564 {errno = EINVAL; return -1;}
565 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
566 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
567 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
568 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
569 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
570 {errno = EINVAL; return -1;}
571 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
572 if (x == Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
573 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
574 {*r = _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
575 #else /* def _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
576 {errno = EINVAL; return -1;}
577 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
578 if (x == Mono_Posix_ConfstrName__CS_V6_WIDTH_RESTRICTED_ENVS)
579 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
580 {*r = _CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
581 #else /* def _CS_V6_WIDTH_RESTRICTED_ENVS */
582 {errno = EINVAL; return -1;}
583 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
584 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_CFLAGS)
585 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
586 {*r = _CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
587 #else /* def _CS_XBS5_ILP32_OFF32_CFLAGS */
588 {errno = EINVAL; return -1;}
589 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
590 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LDFLAGS)
591 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
592 {*r = _CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
593 #else /* def _CS_XBS5_ILP32_OFF32_LDFLAGS */
594 {errno = EINVAL; return -1;}
595 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
596 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LIBS)
597 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
598 {*r = _CS_XBS5_ILP32_OFF32_LIBS; return 0;}
599 #else /* def _CS_XBS5_ILP32_OFF32_LIBS */
600 {errno = EINVAL; return -1;}
601 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
602 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LINTFLAGS)
603 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
604 {*r = _CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
605 #else /* def _CS_XBS5_ILP32_OFF32_LINTFLAGS */
606 {errno = EINVAL; return -1;}
607 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
608 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_CFLAGS)
609 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
610 {*r = _CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
611 #else /* def _CS_XBS5_ILP32_OFFBIG_CFLAGS */
612 {errno = EINVAL; return -1;}
613 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
614 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LDFLAGS)
615 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
616 {*r = _CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
617 #else /* def _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
618 {errno = EINVAL; return -1;}
619 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
620 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LIBS)
621 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
622 {*r = _CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
623 #else /* def _CS_XBS5_ILP32_OFFBIG_LIBS */
624 {errno = EINVAL; return -1;}
625 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
626 if (x == Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
627 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
628 {*r = _CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
629 #else /* def _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
630 {errno = EINVAL; return -1;}
631 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
632 if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_CFLAGS)
633 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
634 {*r = _CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
635 #else /* def _CS_XBS5_LP64_OFF64_CFLAGS */
636 {errno = EINVAL; return -1;}
637 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
638 if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LDFLAGS)
639 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
640 {*r = _CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
641 #else /* def _CS_XBS5_LP64_OFF64_LDFLAGS */
642 {errno = EINVAL; return -1;}
643 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
644 if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LIBS)
645 #ifdef _CS_XBS5_LP64_OFF64_LIBS
646 {*r = _CS_XBS5_LP64_OFF64_LIBS; return 0;}
647 #else /* def _CS_XBS5_LP64_OFF64_LIBS */
648 {errno = EINVAL; return -1;}
649 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
650 if (x == Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LINTFLAGS)
651 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
652 {*r = _CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
653 #else /* def _CS_XBS5_LP64_OFF64_LINTFLAGS */
654 {errno = EINVAL; return -1;}
655 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
656 if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_CFLAGS)
657 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
658 {*r = _CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
659 #else /* def _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
660 {errno = EINVAL; return -1;}
661 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
662 if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
663 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
664 {*r = _CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
665 #else /* def _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
666 {errno = EINVAL; return -1;}
667 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
668 if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LIBS)
669 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
670 {*r = _CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
671 #else /* def _CS_XBS5_LPBIG_OFFBIG_LIBS */
672 {errno = EINVAL; return -1;}
673 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
674 if (x == Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
675 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
676 {*r = _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
677 #else /* def _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
678 {errno = EINVAL; return -1;}
679 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
680 if (x == 0)
681 return 0;
682 errno = EINVAL; return -1;
685 int Mono_Posix_ToConfstrName (int x, int *r)
687 *r = 0;
688 if (x == 0)
689 return 0;
690 #ifdef _CS_GNU_LIBC_VERSION
691 if (x == _CS_GNU_LIBC_VERSION)
692 {*r = Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION; return 0;}
693 #endif /* ndef _CS_GNU_LIBC_VERSION */
694 #ifdef _CS_GNU_LIBPTHREAD_VERSION
695 if (x == _CS_GNU_LIBPTHREAD_VERSION)
696 {*r = Mono_Posix_ConfstrName__CS_GNU_LIBPTHREAD_VERSION; return 0;}
697 #endif /* ndef _CS_GNU_LIBPTHREAD_VERSION */
698 #ifdef _CS_LFS64_CFLAGS
699 if (x == _CS_LFS64_CFLAGS)
700 {*r = Mono_Posix_ConfstrName__CS_LFS64_CFLAGS; return 0;}
701 #endif /* ndef _CS_LFS64_CFLAGS */
702 #ifdef _CS_LFS64_LDFLAGS
703 if (x == _CS_LFS64_LDFLAGS)
704 {*r = Mono_Posix_ConfstrName__CS_LFS64_LDFLAGS; return 0;}
705 #endif /* ndef _CS_LFS64_LDFLAGS */
706 #ifdef _CS_LFS64_LIBS
707 if (x == _CS_LFS64_LIBS)
708 {*r = Mono_Posix_ConfstrName__CS_LFS64_LIBS; return 0;}
709 #endif /* ndef _CS_LFS64_LIBS */
710 #ifdef _CS_LFS64_LINTFLAGS
711 if (x == _CS_LFS64_LINTFLAGS)
712 {*r = Mono_Posix_ConfstrName__CS_LFS64_LINTFLAGS; return 0;}
713 #endif /* ndef _CS_LFS64_LINTFLAGS */
714 #ifdef _CS_LFS_CFLAGS
715 if (x == _CS_LFS_CFLAGS)
716 {*r = Mono_Posix_ConfstrName__CS_LFS_CFLAGS; return 0;}
717 #endif /* ndef _CS_LFS_CFLAGS */
718 #ifdef _CS_LFS_LDFLAGS
719 if (x == _CS_LFS_LDFLAGS)
720 {*r = Mono_Posix_ConfstrName__CS_LFS_LDFLAGS; return 0;}
721 #endif /* ndef _CS_LFS_LDFLAGS */
722 #ifdef _CS_LFS_LIBS
723 if (x == _CS_LFS_LIBS)
724 {*r = Mono_Posix_ConfstrName__CS_LFS_LIBS; return 0;}
725 #endif /* ndef _CS_LFS_LIBS */
726 #ifdef _CS_LFS_LINTFLAGS
727 if (x == _CS_LFS_LINTFLAGS)
728 {*r = Mono_Posix_ConfstrName__CS_LFS_LINTFLAGS; return 0;}
729 #endif /* ndef _CS_LFS_LINTFLAGS */
730 #ifdef _CS_PATH
731 if (x == _CS_PATH)
732 {*r = Mono_Posix_ConfstrName__CS_PATH; return 0;}
733 #endif /* ndef _CS_PATH */
734 #ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
735 if (x == _CS_POSIX_V6_ILP32_OFF32_CFLAGS)
736 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_CFLAGS; return 0;}
737 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_CFLAGS */
738 #ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
739 if (x == _CS_POSIX_V6_ILP32_OFF32_LDFLAGS)
740 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LDFLAGS; return 0;}
741 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS */
742 #ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
743 if (x == _CS_POSIX_V6_ILP32_OFF32_LIBS)
744 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LIBS; return 0;}
745 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LIBS */
746 #ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
747 if (x == _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS)
748 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFF32_LINTFLAGS; return 0;}
749 #endif /* ndef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS */
750 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
751 if (x == _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS)
752 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_CFLAGS; return 0;}
753 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS */
754 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
755 if (x == _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS)
756 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS; return 0;}
757 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS */
758 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
759 if (x == _CS_POSIX_V6_ILP32_OFFBIG_LIBS)
760 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LIBS; return 0;}
761 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LIBS */
762 #ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
763 if (x == _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS)
764 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS; return 0;}
765 #endif /* ndef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS */
766 #ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
767 if (x == _CS_POSIX_V6_LP64_OFF64_CFLAGS)
768 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_CFLAGS; return 0;}
769 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_CFLAGS */
770 #ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
771 if (x == _CS_POSIX_V6_LP64_OFF64_LDFLAGS)
772 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LDFLAGS; return 0;}
773 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LDFLAGS */
774 #ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
775 if (x == _CS_POSIX_V6_LP64_OFF64_LIBS)
776 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LIBS; return 0;}
777 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LIBS */
778 #ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
779 if (x == _CS_POSIX_V6_LP64_OFF64_LINTFLAGS)
780 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LP64_OFF64_LINTFLAGS; return 0;}
781 #endif /* ndef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS */
782 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
783 if (x == _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS)
784 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS; return 0;}
785 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS */
786 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
787 if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS)
788 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS; return 0;}
789 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS */
790 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
791 if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LIBS)
792 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LIBS; return 0;}
793 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS */
794 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
795 if (x == _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS)
796 {*r = Mono_Posix_ConfstrName__CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS; return 0;}
797 #endif /* ndef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS */
798 #ifdef _CS_V6_WIDTH_RESTRICTED_ENVS
799 if (x == _CS_V6_WIDTH_RESTRICTED_ENVS)
800 {*r = Mono_Posix_ConfstrName__CS_V6_WIDTH_RESTRICTED_ENVS; return 0;}
801 #endif /* ndef _CS_V6_WIDTH_RESTRICTED_ENVS */
802 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
803 if (x == _CS_XBS5_ILP32_OFF32_CFLAGS)
804 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_CFLAGS; return 0;}
805 #endif /* ndef _CS_XBS5_ILP32_OFF32_CFLAGS */
806 #ifdef _CS_XBS5_ILP32_OFF32_LDFLAGS
807 if (x == _CS_XBS5_ILP32_OFF32_LDFLAGS)
808 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LDFLAGS; return 0;}
809 #endif /* ndef _CS_XBS5_ILP32_OFF32_LDFLAGS */
810 #ifdef _CS_XBS5_ILP32_OFF32_LIBS
811 if (x == _CS_XBS5_ILP32_OFF32_LIBS)
812 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LIBS; return 0;}
813 #endif /* ndef _CS_XBS5_ILP32_OFF32_LIBS */
814 #ifdef _CS_XBS5_ILP32_OFF32_LINTFLAGS
815 if (x == _CS_XBS5_ILP32_OFF32_LINTFLAGS)
816 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFF32_LINTFLAGS; return 0;}
817 #endif /* ndef _CS_XBS5_ILP32_OFF32_LINTFLAGS */
818 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
819 if (x == _CS_XBS5_ILP32_OFFBIG_CFLAGS)
820 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_CFLAGS; return 0;}
821 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_CFLAGS */
822 #ifdef _CS_XBS5_ILP32_OFFBIG_LDFLAGS
823 if (x == _CS_XBS5_ILP32_OFFBIG_LDFLAGS)
824 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LDFLAGS; return 0;}
825 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LDFLAGS */
826 #ifdef _CS_XBS5_ILP32_OFFBIG_LIBS
827 if (x == _CS_XBS5_ILP32_OFFBIG_LIBS)
828 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LIBS; return 0;}
829 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LIBS */
830 #ifdef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
831 if (x == _CS_XBS5_ILP32_OFFBIG_LINTFLAGS)
832 {*r = Mono_Posix_ConfstrName__CS_XBS5_ILP32_OFFBIG_LINTFLAGS; return 0;}
833 #endif /* ndef _CS_XBS5_ILP32_OFFBIG_LINTFLAGS */
834 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
835 if (x == _CS_XBS5_LP64_OFF64_CFLAGS)
836 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_CFLAGS; return 0;}
837 #endif /* ndef _CS_XBS5_LP64_OFF64_CFLAGS */
838 #ifdef _CS_XBS5_LP64_OFF64_LDFLAGS
839 if (x == _CS_XBS5_LP64_OFF64_LDFLAGS)
840 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LDFLAGS; return 0;}
841 #endif /* ndef _CS_XBS5_LP64_OFF64_LDFLAGS */
842 #ifdef _CS_XBS5_LP64_OFF64_LIBS
843 if (x == _CS_XBS5_LP64_OFF64_LIBS)
844 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LIBS; return 0;}
845 #endif /* ndef _CS_XBS5_LP64_OFF64_LIBS */
846 #ifdef _CS_XBS5_LP64_OFF64_LINTFLAGS
847 if (x == _CS_XBS5_LP64_OFF64_LINTFLAGS)
848 {*r = Mono_Posix_ConfstrName__CS_XBS5_LP64_OFF64_LINTFLAGS; return 0;}
849 #endif /* ndef _CS_XBS5_LP64_OFF64_LINTFLAGS */
850 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
851 if (x == _CS_XBS5_LPBIG_OFFBIG_CFLAGS)
852 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_CFLAGS; return 0;}
853 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_CFLAGS */
854 #ifdef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
855 if (x == _CS_XBS5_LPBIG_OFFBIG_LDFLAGS)
856 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LDFLAGS; return 0;}
857 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LDFLAGS */
858 #ifdef _CS_XBS5_LPBIG_OFFBIG_LIBS
859 if (x == _CS_XBS5_LPBIG_OFFBIG_LIBS)
860 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LIBS; return 0;}
861 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LIBS */
862 #ifdef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
863 if (x == _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS)
864 {*r = Mono_Posix_ConfstrName__CS_XBS5_LPBIG_OFFBIG_LINTFLAGS; return 0;}
865 #endif /* ndef _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS */
866 errno = EINVAL; return -1;
869 int Mono_Posix_FromDirectoryNotifyFlags (int x, int *r)
871 *r = 0;
872 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ACCESS) == Mono_Posix_DirectoryNotifyFlags_DN_ACCESS)
873 #ifdef DN_ACCESS
874 *r |= DN_ACCESS;
875 #else /* def DN_ACCESS */
876 {errno = EINVAL; return -1;}
877 #endif /* ndef DN_ACCESS */
878 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB) == Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB)
879 #ifdef DN_ATTRIB
880 *r |= DN_ATTRIB;
881 #else /* def DN_ATTRIB */
882 {errno = EINVAL; return -1;}
883 #endif /* ndef DN_ATTRIB */
884 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_CREATE) == Mono_Posix_DirectoryNotifyFlags_DN_CREATE)
885 #ifdef DN_CREATE
886 *r |= DN_CREATE;
887 #else /* def DN_CREATE */
888 {errno = EINVAL; return -1;}
889 #endif /* ndef DN_CREATE */
890 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_DELETE) == Mono_Posix_DirectoryNotifyFlags_DN_DELETE)
891 #ifdef DN_DELETE
892 *r |= DN_DELETE;
893 #else /* def DN_DELETE */
894 {errno = EINVAL; return -1;}
895 #endif /* ndef DN_DELETE */
896 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MODIFY) == Mono_Posix_DirectoryNotifyFlags_DN_MODIFY)
897 #ifdef DN_MODIFY
898 *r |= DN_MODIFY;
899 #else /* def DN_MODIFY */
900 {errno = EINVAL; return -1;}
901 #endif /* ndef DN_MODIFY */
902 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT) == Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT)
903 #ifdef DN_MULTISHOT
904 *r |= DN_MULTISHOT;
905 #else /* def DN_MULTISHOT */
906 {errno = EINVAL; return -1;}
907 #endif /* ndef DN_MULTISHOT */
908 if ((x & Mono_Posix_DirectoryNotifyFlags_DN_RENAME) == Mono_Posix_DirectoryNotifyFlags_DN_RENAME)
909 #ifdef DN_RENAME
910 *r |= DN_RENAME;
911 #else /* def DN_RENAME */
912 {errno = EINVAL; return -1;}
913 #endif /* ndef DN_RENAME */
914 if (x == 0)
915 return 0;
916 return 0;
919 int Mono_Posix_ToDirectoryNotifyFlags (int x, int *r)
921 *r = 0;
922 if (x == 0)
923 return 0;
924 #ifdef DN_ACCESS
925 if ((x & DN_ACCESS) == DN_ACCESS)
926 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ACCESS;
927 #endif /* ndef DN_ACCESS */
928 #ifdef DN_ATTRIB
929 if ((x & DN_ATTRIB) == DN_ATTRIB)
930 *r |= Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB;
931 #endif /* ndef DN_ATTRIB */
932 #ifdef DN_CREATE
933 if ((x & DN_CREATE) == DN_CREATE)
934 *r |= Mono_Posix_DirectoryNotifyFlags_DN_CREATE;
935 #endif /* ndef DN_CREATE */
936 #ifdef DN_DELETE
937 if ((x & DN_DELETE) == DN_DELETE)
938 *r |= Mono_Posix_DirectoryNotifyFlags_DN_DELETE;
939 #endif /* ndef DN_DELETE */
940 #ifdef DN_MODIFY
941 if ((x & DN_MODIFY) == DN_MODIFY)
942 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MODIFY;
943 #endif /* ndef DN_MODIFY */
944 #ifdef DN_MULTISHOT
945 if ((x & DN_MULTISHOT) == DN_MULTISHOT)
946 *r |= Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT;
947 #endif /* ndef DN_MULTISHOT */
948 #ifdef DN_RENAME
949 if ((x & DN_RENAME) == DN_RENAME)
950 *r |= Mono_Posix_DirectoryNotifyFlags_DN_RENAME;
951 #endif /* ndef DN_RENAME */
952 return 0;
955 int Mono_Posix_FromEpollEvents (unsigned int x, unsigned int *r)
957 *r = 0;
958 if ((x & Mono_Posix_EpollEvents_EPOLLERR) == Mono_Posix_EpollEvents_EPOLLERR)
959 #ifdef EPOLLERR
960 *r |= EPOLLERR;
961 #else /* def EPOLLERR */
962 {errno = EINVAL; return -1;}
963 #endif /* ndef EPOLLERR */
964 if ((x & Mono_Posix_EpollEvents_EPOLLET) == Mono_Posix_EpollEvents_EPOLLET)
965 #ifdef EPOLLET
966 *r |= EPOLLET;
967 #else /* def EPOLLET */
968 {errno = EINVAL; return -1;}
969 #endif /* ndef EPOLLET */
970 if ((x & Mono_Posix_EpollEvents_EPOLLHUP) == Mono_Posix_EpollEvents_EPOLLHUP)
971 #ifdef EPOLLHUP
972 *r |= EPOLLHUP;
973 #else /* def EPOLLHUP */
974 {errno = EINVAL; return -1;}
975 #endif /* ndef EPOLLHUP */
976 if ((x & Mono_Posix_EpollEvents_EPOLLIN) == Mono_Posix_EpollEvents_EPOLLIN)
977 #ifdef EPOLLIN
978 *r |= EPOLLIN;
979 #else /* def EPOLLIN */
980 {errno = EINVAL; return -1;}
981 #endif /* ndef EPOLLIN */
982 if ((x & Mono_Posix_EpollEvents_EPOLLMSG) == Mono_Posix_EpollEvents_EPOLLMSG)
983 #ifdef EPOLLMSG
984 *r |= EPOLLMSG;
985 #else /* def EPOLLMSG */
986 {errno = EINVAL; return -1;}
987 #endif /* ndef EPOLLMSG */
988 if ((x & Mono_Posix_EpollEvents_EPOLLONESHOT) == Mono_Posix_EpollEvents_EPOLLONESHOT)
989 #ifdef EPOLLONESHOT
990 *r |= EPOLLONESHOT;
991 #else /* def EPOLLONESHOT */
992 {errno = EINVAL; return -1;}
993 #endif /* ndef EPOLLONESHOT */
994 if ((x & Mono_Posix_EpollEvents_EPOLLOUT) == Mono_Posix_EpollEvents_EPOLLOUT)
995 #ifdef EPOLLOUT
996 *r |= EPOLLOUT;
997 #else /* def EPOLLOUT */
998 {errno = EINVAL; return -1;}
999 #endif /* ndef EPOLLOUT */
1000 if ((x & Mono_Posix_EpollEvents_EPOLLPRI) == Mono_Posix_EpollEvents_EPOLLPRI)
1001 #ifdef EPOLLPRI
1002 *r |= EPOLLPRI;
1003 #else /* def EPOLLPRI */
1004 {errno = EINVAL; return -1;}
1005 #endif /* ndef EPOLLPRI */
1006 if ((x & Mono_Posix_EpollEvents_EPOLLRDBAND) == Mono_Posix_EpollEvents_EPOLLRDBAND)
1007 #ifdef EPOLLRDBAND
1008 *r |= EPOLLRDBAND;
1009 #else /* def EPOLLRDBAND */
1010 {errno = EINVAL; return -1;}
1011 #endif /* ndef EPOLLRDBAND */
1012 if ((x & Mono_Posix_EpollEvents_EPOLLRDHUP) == Mono_Posix_EpollEvents_EPOLLRDHUP)
1013 #ifdef EPOLLRDHUP
1014 *r |= EPOLLRDHUP;
1015 #else /* def EPOLLRDHUP */
1016 {errno = EINVAL; return -1;}
1017 #endif /* ndef EPOLLRDHUP */
1018 if ((x & Mono_Posix_EpollEvents_EPOLLRDNORM) == Mono_Posix_EpollEvents_EPOLLRDNORM)
1019 #ifdef EPOLLRDNORM
1020 *r |= EPOLLRDNORM;
1021 #else /* def EPOLLRDNORM */
1022 {errno = EINVAL; return -1;}
1023 #endif /* ndef EPOLLRDNORM */
1024 if ((x & Mono_Posix_EpollEvents_EPOLLWRBAND) == Mono_Posix_EpollEvents_EPOLLWRBAND)
1025 #ifdef EPOLLWRBAND
1026 *r |= EPOLLWRBAND;
1027 #else /* def EPOLLWRBAND */
1028 {errno = EINVAL; return -1;}
1029 #endif /* ndef EPOLLWRBAND */
1030 if ((x & Mono_Posix_EpollEvents_EPOLLWRNORM) == Mono_Posix_EpollEvents_EPOLLWRNORM)
1031 #ifdef EPOLLWRNORM
1032 *r |= EPOLLWRNORM;
1033 #else /* def EPOLLWRNORM */
1034 {errno = EINVAL; return -1;}
1035 #endif /* ndef EPOLLWRNORM */
1036 if (x == 0)
1037 return 0;
1038 return 0;
1041 int Mono_Posix_ToEpollEvents (unsigned int x, unsigned int *r)
1043 *r = 0;
1044 if (x == 0)
1045 return 0;
1046 #ifdef EPOLLERR
1047 if ((x & EPOLLERR) == EPOLLERR)
1048 *r |= Mono_Posix_EpollEvents_EPOLLERR;
1049 #endif /* ndef EPOLLERR */
1050 #ifdef EPOLLET
1051 if ((x & EPOLLET) == EPOLLET)
1052 *r |= Mono_Posix_EpollEvents_EPOLLET;
1053 #endif /* ndef EPOLLET */
1054 #ifdef EPOLLHUP
1055 if ((x & EPOLLHUP) == EPOLLHUP)
1056 *r |= Mono_Posix_EpollEvents_EPOLLHUP;
1057 #endif /* ndef EPOLLHUP */
1058 #ifdef EPOLLIN
1059 if ((x & EPOLLIN) == EPOLLIN)
1060 *r |= Mono_Posix_EpollEvents_EPOLLIN;
1061 #endif /* ndef EPOLLIN */
1062 #ifdef EPOLLMSG
1063 if ((x & EPOLLMSG) == EPOLLMSG)
1064 *r |= Mono_Posix_EpollEvents_EPOLLMSG;
1065 #endif /* ndef EPOLLMSG */
1066 #ifdef EPOLLONESHOT
1067 if ((x & EPOLLONESHOT) == EPOLLONESHOT)
1068 *r |= Mono_Posix_EpollEvents_EPOLLONESHOT;
1069 #endif /* ndef EPOLLONESHOT */
1070 #ifdef EPOLLOUT
1071 if ((x & EPOLLOUT) == EPOLLOUT)
1072 *r |= Mono_Posix_EpollEvents_EPOLLOUT;
1073 #endif /* ndef EPOLLOUT */
1074 #ifdef EPOLLPRI
1075 if ((x & EPOLLPRI) == EPOLLPRI)
1076 *r |= Mono_Posix_EpollEvents_EPOLLPRI;
1077 #endif /* ndef EPOLLPRI */
1078 #ifdef EPOLLRDBAND
1079 if ((x & EPOLLRDBAND) == EPOLLRDBAND)
1080 *r |= Mono_Posix_EpollEvents_EPOLLRDBAND;
1081 #endif /* ndef EPOLLRDBAND */
1082 #ifdef EPOLLRDHUP
1083 if ((x & EPOLLRDHUP) == EPOLLRDHUP)
1084 *r |= Mono_Posix_EpollEvents_EPOLLRDHUP;
1085 #endif /* ndef EPOLLRDHUP */
1086 #ifdef EPOLLRDNORM
1087 if ((x & EPOLLRDNORM) == EPOLLRDNORM)
1088 *r |= Mono_Posix_EpollEvents_EPOLLRDNORM;
1089 #endif /* ndef EPOLLRDNORM */
1090 #ifdef EPOLLWRBAND
1091 if ((x & EPOLLWRBAND) == EPOLLWRBAND)
1092 *r |= Mono_Posix_EpollEvents_EPOLLWRBAND;
1093 #endif /* ndef EPOLLWRBAND */
1094 #ifdef EPOLLWRNORM
1095 if ((x & EPOLLWRNORM) == EPOLLWRNORM)
1096 *r |= Mono_Posix_EpollEvents_EPOLLWRNORM;
1097 #endif /* ndef EPOLLWRNORM */
1098 return 0;
1101 int Mono_Posix_FromEpollFlags (int x, int *r)
1103 *r = 0;
1104 if ((x & Mono_Posix_EpollFlags_EPOLL_CLOEXEC) == Mono_Posix_EpollFlags_EPOLL_CLOEXEC)
1105 #ifdef EPOLL_CLOEXEC
1106 *r |= EPOLL_CLOEXEC;
1107 #else /* def EPOLL_CLOEXEC */
1108 {errno = EINVAL; return -1;}
1109 #endif /* ndef EPOLL_CLOEXEC */
1110 if ((x & Mono_Posix_EpollFlags_EPOLL_NONBLOCK) == Mono_Posix_EpollFlags_EPOLL_NONBLOCK)
1111 #ifdef EPOLL_NONBLOCK
1112 *r |= EPOLL_NONBLOCK;
1113 #else /* def EPOLL_NONBLOCK */
1114 {errno = EINVAL; return -1;}
1115 #endif /* ndef EPOLL_NONBLOCK */
1116 if (x == 0)
1117 return 0;
1118 return 0;
1121 int Mono_Posix_ToEpollFlags (int x, int *r)
1123 *r = 0;
1124 if (x == 0)
1125 return 0;
1126 #ifdef EPOLL_CLOEXEC
1127 if ((x & EPOLL_CLOEXEC) == EPOLL_CLOEXEC)
1128 *r |= Mono_Posix_EpollFlags_EPOLL_CLOEXEC;
1129 #endif /* ndef EPOLL_CLOEXEC */
1130 #ifdef EPOLL_NONBLOCK
1131 if ((x & EPOLL_NONBLOCK) == EPOLL_NONBLOCK)
1132 *r |= Mono_Posix_EpollFlags_EPOLL_NONBLOCK;
1133 #endif /* ndef EPOLL_NONBLOCK */
1134 return 0;
1137 int Mono_Posix_FromErrno (int x, int *r)
1139 *r = 0;
1140 if (x == Mono_Posix_Errno_E2BIG)
1141 #ifdef E2BIG
1142 {*r = E2BIG; return 0;}
1143 #else /* def E2BIG */
1144 {errno = EINVAL; return -1;}
1145 #endif /* ndef E2BIG */
1146 if (x == Mono_Posix_Errno_EACCES)
1147 #ifdef EACCES
1148 {*r = EACCES; return 0;}
1149 #else /* def EACCES */
1150 {errno = EINVAL; return -1;}
1151 #endif /* ndef EACCES */
1152 if (x == Mono_Posix_Errno_EADDRINUSE)
1153 #ifdef EADDRINUSE
1154 {*r = EADDRINUSE; return 0;}
1155 #else /* def EADDRINUSE */
1156 {errno = EINVAL; return -1;}
1157 #endif /* ndef EADDRINUSE */
1158 if (x == Mono_Posix_Errno_EADDRNOTAVAIL)
1159 #ifdef EADDRNOTAVAIL
1160 {*r = EADDRNOTAVAIL; return 0;}
1161 #else /* def EADDRNOTAVAIL */
1162 {errno = EINVAL; return -1;}
1163 #endif /* ndef EADDRNOTAVAIL */
1164 if (x == Mono_Posix_Errno_EADV)
1165 #ifdef EADV
1166 {*r = EADV; return 0;}
1167 #else /* def EADV */
1168 {errno = EINVAL; return -1;}
1169 #endif /* ndef EADV */
1170 if (x == Mono_Posix_Errno_EAFNOSUPPORT)
1171 #ifdef EAFNOSUPPORT
1172 {*r = EAFNOSUPPORT; return 0;}
1173 #else /* def EAFNOSUPPORT */
1174 {errno = EINVAL; return -1;}
1175 #endif /* ndef EAFNOSUPPORT */
1176 if (x == Mono_Posix_Errno_EAGAIN)
1177 #ifdef EAGAIN
1178 {*r = EAGAIN; return 0;}
1179 #else /* def EAGAIN */
1180 {errno = EINVAL; return -1;}
1181 #endif /* ndef EAGAIN */
1182 if (x == Mono_Posix_Errno_EALREADY)
1183 #ifdef EALREADY
1184 {*r = EALREADY; return 0;}
1185 #else /* def EALREADY */
1186 {errno = EINVAL; return -1;}
1187 #endif /* ndef EALREADY */
1188 if (x == Mono_Posix_Errno_EAUTH)
1189 #ifdef EAUTH
1190 {*r = EAUTH; return 0;}
1191 #else /* def EAUTH */
1192 {errno = EINVAL; return -1;}
1193 #endif /* ndef EAUTH */
1194 if (x == Mono_Posix_Errno_EBADARCH)
1195 #ifdef EBADARCH
1196 {*r = EBADARCH; return 0;}
1197 #else /* def EBADARCH */
1198 {errno = EINVAL; return -1;}
1199 #endif /* ndef EBADARCH */
1200 if (x == Mono_Posix_Errno_EBADE)
1201 #ifdef EBADE
1202 {*r = EBADE; return 0;}
1203 #else /* def EBADE */
1204 {errno = EINVAL; return -1;}
1205 #endif /* ndef EBADE */
1206 if (x == Mono_Posix_Errno_EBADEXEC)
1207 #ifdef EBADEXEC
1208 {*r = EBADEXEC; return 0;}
1209 #else /* def EBADEXEC */
1210 {errno = EINVAL; return -1;}
1211 #endif /* ndef EBADEXEC */
1212 if (x == Mono_Posix_Errno_EBADF)
1213 #ifdef EBADF
1214 {*r = EBADF; return 0;}
1215 #else /* def EBADF */
1216 {errno = EINVAL; return -1;}
1217 #endif /* ndef EBADF */
1218 if (x == Mono_Posix_Errno_EBADFD)
1219 #ifdef EBADFD
1220 {*r = EBADFD; return 0;}
1221 #else /* def EBADFD */
1222 {errno = EINVAL; return -1;}
1223 #endif /* ndef EBADFD */
1224 if (x == Mono_Posix_Errno_EBADMACHO)
1225 #ifdef EBADMACHO
1226 {*r = EBADMACHO; return 0;}
1227 #else /* def EBADMACHO */
1228 {errno = EINVAL; return -1;}
1229 #endif /* ndef EBADMACHO */
1230 if (x == Mono_Posix_Errno_EBADMSG)
1231 #ifdef EBADMSG
1232 {*r = EBADMSG; return 0;}
1233 #else /* def EBADMSG */
1234 {errno = EINVAL; return -1;}
1235 #endif /* ndef EBADMSG */
1236 if (x == Mono_Posix_Errno_EBADR)
1237 #ifdef EBADR
1238 {*r = EBADR; return 0;}
1239 #else /* def EBADR */
1240 {errno = EINVAL; return -1;}
1241 #endif /* ndef EBADR */
1242 if (x == Mono_Posix_Errno_EBADRPC)
1243 #ifdef EBADRPC
1244 {*r = EBADRPC; return 0;}
1245 #else /* def EBADRPC */
1246 {errno = EINVAL; return -1;}
1247 #endif /* ndef EBADRPC */
1248 if (x == Mono_Posix_Errno_EBADRQC)
1249 #ifdef EBADRQC
1250 {*r = EBADRQC; return 0;}
1251 #else /* def EBADRQC */
1252 {errno = EINVAL; return -1;}
1253 #endif /* ndef EBADRQC */
1254 if (x == Mono_Posix_Errno_EBADSLT)
1255 #ifdef EBADSLT
1256 {*r = EBADSLT; return 0;}
1257 #else /* def EBADSLT */
1258 {errno = EINVAL; return -1;}
1259 #endif /* ndef EBADSLT */
1260 if (x == Mono_Posix_Errno_EBFONT)
1261 #ifdef EBFONT
1262 {*r = EBFONT; return 0;}
1263 #else /* def EBFONT */
1264 {errno = EINVAL; return -1;}
1265 #endif /* ndef EBFONT */
1266 if (x == Mono_Posix_Errno_EBUSY)
1267 #ifdef EBUSY
1268 {*r = EBUSY; return 0;}
1269 #else /* def EBUSY */
1270 {errno = EINVAL; return -1;}
1271 #endif /* ndef EBUSY */
1272 if (x == Mono_Posix_Errno_ECANCELED)
1273 #ifdef ECANCELED
1274 {*r = ECANCELED; return 0;}
1275 #else /* def ECANCELED */
1276 {errno = EINVAL; return -1;}
1277 #endif /* ndef ECANCELED */
1278 if (x == Mono_Posix_Errno_ECHILD)
1279 #ifdef ECHILD
1280 {*r = ECHILD; return 0;}
1281 #else /* def ECHILD */
1282 {errno = EINVAL; return -1;}
1283 #endif /* ndef ECHILD */
1284 if (x == Mono_Posix_Errno_ECHRNG)
1285 #ifdef ECHRNG
1286 {*r = ECHRNG; return 0;}
1287 #else /* def ECHRNG */
1288 {errno = EINVAL; return -1;}
1289 #endif /* ndef ECHRNG */
1290 if (x == Mono_Posix_Errno_ECOMM)
1291 #ifdef ECOMM
1292 {*r = ECOMM; return 0;}
1293 #else /* def ECOMM */
1294 {errno = EINVAL; return -1;}
1295 #endif /* ndef ECOMM */
1296 if (x == Mono_Posix_Errno_ECONNABORTED)
1297 #ifdef ECONNABORTED
1298 {*r = ECONNABORTED; return 0;}
1299 #else /* def ECONNABORTED */
1300 {errno = EINVAL; return -1;}
1301 #endif /* ndef ECONNABORTED */
1302 if (x == Mono_Posix_Errno_ECONNREFUSED)
1303 #ifdef ECONNREFUSED
1304 {*r = ECONNREFUSED; return 0;}
1305 #else /* def ECONNREFUSED */
1306 {errno = EINVAL; return -1;}
1307 #endif /* ndef ECONNREFUSED */
1308 if (x == Mono_Posix_Errno_ECONNRESET)
1309 #ifdef ECONNRESET
1310 {*r = ECONNRESET; return 0;}
1311 #else /* def ECONNRESET */
1312 {errno = EINVAL; return -1;}
1313 #endif /* ndef ECONNRESET */
1314 if (x == Mono_Posix_Errno_EDEADLK)
1315 #ifdef EDEADLK
1316 {*r = EDEADLK; return 0;}
1317 #else /* def EDEADLK */
1318 {errno = EINVAL; return -1;}
1319 #endif /* ndef EDEADLK */
1320 if (x == Mono_Posix_Errno_EDEADLOCK)
1321 #ifdef EDEADLOCK
1322 {*r = EDEADLOCK; return 0;}
1323 #else /* def EDEADLOCK */
1324 {errno = EINVAL; return -1;}
1325 #endif /* ndef EDEADLOCK */
1326 if (x == Mono_Posix_Errno_EDESTADDRREQ)
1327 #ifdef EDESTADDRREQ
1328 {*r = EDESTADDRREQ; return 0;}
1329 #else /* def EDESTADDRREQ */
1330 {errno = EINVAL; return -1;}
1331 #endif /* ndef EDESTADDRREQ */
1332 if (x == Mono_Posix_Errno_EDEVERR)
1333 #ifdef EDEVERR
1334 {*r = EDEVERR; return 0;}
1335 #else /* def EDEVERR */
1336 {errno = EINVAL; return -1;}
1337 #endif /* ndef EDEVERR */
1338 if (x == Mono_Posix_Errno_EDOM)
1339 #ifdef EDOM
1340 {*r = EDOM; return 0;}
1341 #else /* def EDOM */
1342 {errno = EINVAL; return -1;}
1343 #endif /* ndef EDOM */
1344 if (x == Mono_Posix_Errno_EDOTDOT)
1345 #ifdef EDOTDOT
1346 {*r = EDOTDOT; return 0;}
1347 #else /* def EDOTDOT */
1348 {errno = EINVAL; return -1;}
1349 #endif /* ndef EDOTDOT */
1350 if (x == Mono_Posix_Errno_EDQUOT)
1351 #ifdef EDQUOT
1352 {*r = EDQUOT; return 0;}
1353 #else /* def EDQUOT */
1354 {errno = EINVAL; return -1;}
1355 #endif /* ndef EDQUOT */
1356 if (x == Mono_Posix_Errno_EEXIST)
1357 #ifdef EEXIST
1358 {*r = EEXIST; return 0;}
1359 #else /* def EEXIST */
1360 {errno = EINVAL; return -1;}
1361 #endif /* ndef EEXIST */
1362 if (x == Mono_Posix_Errno_EFAULT)
1363 #ifdef EFAULT
1364 {*r = EFAULT; return 0;}
1365 #else /* def EFAULT */
1366 {errno = EINVAL; return -1;}
1367 #endif /* ndef EFAULT */
1368 if (x == Mono_Posix_Errno_EFBIG)
1369 #ifdef EFBIG
1370 {*r = EFBIG; return 0;}
1371 #else /* def EFBIG */
1372 {errno = EINVAL; return -1;}
1373 #endif /* ndef EFBIG */
1374 if (x == Mono_Posix_Errno_EFTYPE)
1375 #ifdef EFTYPE
1376 {*r = EFTYPE; return 0;}
1377 #else /* def EFTYPE */
1378 {errno = EINVAL; return -1;}
1379 #endif /* ndef EFTYPE */
1380 if (x == Mono_Posix_Errno_EHOSTDOWN)
1381 #ifdef EHOSTDOWN
1382 {*r = EHOSTDOWN; return 0;}
1383 #else /* def EHOSTDOWN */
1384 {errno = EINVAL; return -1;}
1385 #endif /* ndef EHOSTDOWN */
1386 if (x == Mono_Posix_Errno_EHOSTUNREACH)
1387 #ifdef EHOSTUNREACH
1388 {*r = EHOSTUNREACH; return 0;}
1389 #else /* def EHOSTUNREACH */
1390 {errno = EINVAL; return -1;}
1391 #endif /* ndef EHOSTUNREACH */
1392 if (x == Mono_Posix_Errno_EIDRM)
1393 #ifdef EIDRM
1394 {*r = EIDRM; return 0;}
1395 #else /* def EIDRM */
1396 {errno = EINVAL; return -1;}
1397 #endif /* ndef EIDRM */
1398 if (x == Mono_Posix_Errno_EILSEQ)
1399 #ifdef EILSEQ
1400 {*r = EILSEQ; return 0;}
1401 #else /* def EILSEQ */
1402 {errno = EINVAL; return -1;}
1403 #endif /* ndef EILSEQ */
1404 if (x == Mono_Posix_Errno_EINPROGRESS)
1405 #ifdef EINPROGRESS
1406 {*r = EINPROGRESS; return 0;}
1407 #else /* def EINPROGRESS */
1408 {errno = EINVAL; return -1;}
1409 #endif /* ndef EINPROGRESS */
1410 if (x == Mono_Posix_Errno_EINTR)
1411 #ifdef EINTR
1412 {*r = EINTR; return 0;}
1413 #else /* def EINTR */
1414 {errno = EINVAL; return -1;}
1415 #endif /* ndef EINTR */
1416 if (x == Mono_Posix_Errno_EINVAL)
1417 #ifdef EINVAL
1418 {*r = EINVAL; return 0;}
1419 #else /* def EINVAL */
1420 {errno = EINVAL; return -1;}
1421 #endif /* ndef EINVAL */
1422 if (x == Mono_Posix_Errno_EIO)
1423 #ifdef EIO
1424 {*r = EIO; return 0;}
1425 #else /* def EIO */
1426 {errno = EINVAL; return -1;}
1427 #endif /* ndef EIO */
1428 if (x == Mono_Posix_Errno_EISCONN)
1429 #ifdef EISCONN
1430 {*r = EISCONN; return 0;}
1431 #else /* def EISCONN */
1432 {errno = EINVAL; return -1;}
1433 #endif /* ndef EISCONN */
1434 if (x == Mono_Posix_Errno_EISDIR)
1435 #ifdef EISDIR
1436 {*r = EISDIR; return 0;}
1437 #else /* def EISDIR */
1438 {errno = EINVAL; return -1;}
1439 #endif /* ndef EISDIR */
1440 if (x == Mono_Posix_Errno_EISNAM)
1441 #ifdef EISNAM
1442 {*r = EISNAM; return 0;}
1443 #else /* def EISNAM */
1444 {errno = EINVAL; return -1;}
1445 #endif /* ndef EISNAM */
1446 if (x == Mono_Posix_Errno_EKEYEXPIRED)
1447 #ifdef EKEYEXPIRED
1448 {*r = EKEYEXPIRED; return 0;}
1449 #else /* def EKEYEXPIRED */
1450 {errno = EINVAL; return -1;}
1451 #endif /* ndef EKEYEXPIRED */
1452 if (x == Mono_Posix_Errno_EKEYREJECTED)
1453 #ifdef EKEYREJECTED
1454 {*r = EKEYREJECTED; return 0;}
1455 #else /* def EKEYREJECTED */
1456 {errno = EINVAL; return -1;}
1457 #endif /* ndef EKEYREJECTED */
1458 if (x == Mono_Posix_Errno_EKEYREVOKED)
1459 #ifdef EKEYREVOKED
1460 {*r = EKEYREVOKED; return 0;}
1461 #else /* def EKEYREVOKED */
1462 {errno = EINVAL; return -1;}
1463 #endif /* ndef EKEYREVOKED */
1464 if (x == Mono_Posix_Errno_EL2HLT)
1465 #ifdef EL2HLT
1466 {*r = EL2HLT; return 0;}
1467 #else /* def EL2HLT */
1468 {errno = EINVAL; return -1;}
1469 #endif /* ndef EL2HLT */
1470 if (x == Mono_Posix_Errno_EL2NSYNC)
1471 #ifdef EL2NSYNC
1472 {*r = EL2NSYNC; return 0;}
1473 #else /* def EL2NSYNC */
1474 {errno = EINVAL; return -1;}
1475 #endif /* ndef EL2NSYNC */
1476 if (x == Mono_Posix_Errno_EL3HLT)
1477 #ifdef EL3HLT
1478 {*r = EL3HLT; return 0;}
1479 #else /* def EL3HLT */
1480 {errno = EINVAL; return -1;}
1481 #endif /* ndef EL3HLT */
1482 if (x == Mono_Posix_Errno_EL3RST)
1483 #ifdef EL3RST
1484 {*r = EL3RST; return 0;}
1485 #else /* def EL3RST */
1486 {errno = EINVAL; return -1;}
1487 #endif /* ndef EL3RST */
1488 if (x == Mono_Posix_Errno_ELIBACC)
1489 #ifdef ELIBACC
1490 {*r = ELIBACC; return 0;}
1491 #else /* def ELIBACC */
1492 {errno = EINVAL; return -1;}
1493 #endif /* ndef ELIBACC */
1494 if (x == Mono_Posix_Errno_ELIBBAD)
1495 #ifdef ELIBBAD
1496 {*r = ELIBBAD; return 0;}
1497 #else /* def ELIBBAD */
1498 {errno = EINVAL; return -1;}
1499 #endif /* ndef ELIBBAD */
1500 if (x == Mono_Posix_Errno_ELIBEXEC)
1501 #ifdef ELIBEXEC
1502 {*r = ELIBEXEC; return 0;}
1503 #else /* def ELIBEXEC */
1504 {errno = EINVAL; return -1;}
1505 #endif /* ndef ELIBEXEC */
1506 if (x == Mono_Posix_Errno_ELIBMAX)
1507 #ifdef ELIBMAX
1508 {*r = ELIBMAX; return 0;}
1509 #else /* def ELIBMAX */
1510 {errno = EINVAL; return -1;}
1511 #endif /* ndef ELIBMAX */
1512 if (x == Mono_Posix_Errno_ELIBSCN)
1513 #ifdef ELIBSCN
1514 {*r = ELIBSCN; return 0;}
1515 #else /* def ELIBSCN */
1516 {errno = EINVAL; return -1;}
1517 #endif /* ndef ELIBSCN */
1518 if (x == Mono_Posix_Errno_ELNRNG)
1519 #ifdef ELNRNG
1520 {*r = ELNRNG; return 0;}
1521 #else /* def ELNRNG */
1522 {errno = EINVAL; return -1;}
1523 #endif /* ndef ELNRNG */
1524 if (x == Mono_Posix_Errno_ELOOP)
1525 #ifdef ELOOP
1526 {*r = ELOOP; return 0;}
1527 #else /* def ELOOP */
1528 {errno = EINVAL; return -1;}
1529 #endif /* ndef ELOOP */
1530 if (x == Mono_Posix_Errno_EMEDIUMTYPE)
1531 #ifdef EMEDIUMTYPE
1532 {*r = EMEDIUMTYPE; return 0;}
1533 #else /* def EMEDIUMTYPE */
1534 {errno = EINVAL; return -1;}
1535 #endif /* ndef EMEDIUMTYPE */
1536 if (x == Mono_Posix_Errno_EMFILE)
1537 #ifdef EMFILE
1538 {*r = EMFILE; return 0;}
1539 #else /* def EMFILE */
1540 {errno = EINVAL; return -1;}
1541 #endif /* ndef EMFILE */
1542 if (x == Mono_Posix_Errno_EMLINK)
1543 #ifdef EMLINK
1544 {*r = EMLINK; return 0;}
1545 #else /* def EMLINK */
1546 {errno = EINVAL; return -1;}
1547 #endif /* ndef EMLINK */
1548 if (x == Mono_Posix_Errno_EMSGSIZE)
1549 #ifdef EMSGSIZE
1550 {*r = EMSGSIZE; return 0;}
1551 #else /* def EMSGSIZE */
1552 {errno = EINVAL; return -1;}
1553 #endif /* ndef EMSGSIZE */
1554 if (x == Mono_Posix_Errno_EMULTIHOP)
1555 #ifdef EMULTIHOP
1556 {*r = EMULTIHOP; return 0;}
1557 #else /* def EMULTIHOP */
1558 {errno = EINVAL; return -1;}
1559 #endif /* ndef EMULTIHOP */
1560 if (x == Mono_Posix_Errno_ENAMETOOLONG)
1561 #ifdef ENAMETOOLONG
1562 {*r = ENAMETOOLONG; return 0;}
1563 #else /* def ENAMETOOLONG */
1564 {errno = EINVAL; return -1;}
1565 #endif /* ndef ENAMETOOLONG */
1566 if (x == Mono_Posix_Errno_ENAVAIL)
1567 #ifdef ENAVAIL
1568 {*r = ENAVAIL; return 0;}
1569 #else /* def ENAVAIL */
1570 {errno = EINVAL; return -1;}
1571 #endif /* ndef ENAVAIL */
1572 if (x == Mono_Posix_Errno_ENEEDAUTH)
1573 #ifdef ENEEDAUTH
1574 {*r = ENEEDAUTH; return 0;}
1575 #else /* def ENEEDAUTH */
1576 {errno = EINVAL; return -1;}
1577 #endif /* ndef ENEEDAUTH */
1578 if (x == Mono_Posix_Errno_ENETDOWN)
1579 #ifdef ENETDOWN
1580 {*r = ENETDOWN; return 0;}
1581 #else /* def ENETDOWN */
1582 {errno = EINVAL; return -1;}
1583 #endif /* ndef ENETDOWN */
1584 if (x == Mono_Posix_Errno_ENETRESET)
1585 #ifdef ENETRESET
1586 {*r = ENETRESET; return 0;}
1587 #else /* def ENETRESET */
1588 {errno = EINVAL; return -1;}
1589 #endif /* ndef ENETRESET */
1590 if (x == Mono_Posix_Errno_ENETUNREACH)
1591 #ifdef ENETUNREACH
1592 {*r = ENETUNREACH; return 0;}
1593 #else /* def ENETUNREACH */
1594 {errno = EINVAL; return -1;}
1595 #endif /* ndef ENETUNREACH */
1596 if (x == Mono_Posix_Errno_ENFILE)
1597 #ifdef ENFILE
1598 {*r = ENFILE; return 0;}
1599 #else /* def ENFILE */
1600 {errno = EINVAL; return -1;}
1601 #endif /* ndef ENFILE */
1602 if (x == Mono_Posix_Errno_ENOANO)
1603 #ifdef ENOANO
1604 {*r = ENOANO; return 0;}
1605 #else /* def ENOANO */
1606 {errno = EINVAL; return -1;}
1607 #endif /* ndef ENOANO */
1608 if (x == Mono_Posix_Errno_ENOATTR)
1609 #ifdef ENOATTR
1610 {*r = ENOATTR; return 0;}
1611 #else /* def ENOATTR */
1612 {errno = EINVAL; return -1;}
1613 #endif /* ndef ENOATTR */
1614 if (x == Mono_Posix_Errno_ENOBUFS)
1615 #ifdef ENOBUFS
1616 {*r = ENOBUFS; return 0;}
1617 #else /* def ENOBUFS */
1618 {errno = EINVAL; return -1;}
1619 #endif /* ndef ENOBUFS */
1620 if (x == Mono_Posix_Errno_ENOCSI)
1621 #ifdef ENOCSI
1622 {*r = ENOCSI; return 0;}
1623 #else /* def ENOCSI */
1624 {errno = EINVAL; return -1;}
1625 #endif /* ndef ENOCSI */
1626 if (x == Mono_Posix_Errno_ENODATA)
1627 #ifdef ENODATA
1628 {*r = ENODATA; return 0;}
1629 #else /* def ENODATA */
1630 {errno = EINVAL; return -1;}
1631 #endif /* ndef ENODATA */
1632 if (x == Mono_Posix_Errno_ENODEV)
1633 #ifdef ENODEV
1634 {*r = ENODEV; return 0;}
1635 #else /* def ENODEV */
1636 {errno = EINVAL; return -1;}
1637 #endif /* ndef ENODEV */
1638 if (x == Mono_Posix_Errno_ENOENT)
1639 #ifdef ENOENT
1640 {*r = ENOENT; return 0;}
1641 #else /* def ENOENT */
1642 {errno = EINVAL; return -1;}
1643 #endif /* ndef ENOENT */
1644 if (x == Mono_Posix_Errno_ENOEXEC)
1645 #ifdef ENOEXEC
1646 {*r = ENOEXEC; return 0;}
1647 #else /* def ENOEXEC */
1648 {errno = EINVAL; return -1;}
1649 #endif /* ndef ENOEXEC */
1650 if (x == Mono_Posix_Errno_ENOKEY)
1651 #ifdef ENOKEY
1652 {*r = ENOKEY; return 0;}
1653 #else /* def ENOKEY */
1654 {errno = EINVAL; return -1;}
1655 #endif /* ndef ENOKEY */
1656 if (x == Mono_Posix_Errno_ENOLCK)
1657 #ifdef ENOLCK
1658 {*r = ENOLCK; return 0;}
1659 #else /* def ENOLCK */
1660 {errno = EINVAL; return -1;}
1661 #endif /* ndef ENOLCK */
1662 if (x == Mono_Posix_Errno_ENOLINK)
1663 #ifdef ENOLINK
1664 {*r = ENOLINK; return 0;}
1665 #else /* def ENOLINK */
1666 {errno = EINVAL; return -1;}
1667 #endif /* ndef ENOLINK */
1668 if (x == Mono_Posix_Errno_ENOMEDIUM)
1669 #ifdef ENOMEDIUM
1670 {*r = ENOMEDIUM; return 0;}
1671 #else /* def ENOMEDIUM */
1672 {errno = EINVAL; return -1;}
1673 #endif /* ndef ENOMEDIUM */
1674 if (x == Mono_Posix_Errno_ENOMEM)
1675 #ifdef ENOMEM
1676 {*r = ENOMEM; return 0;}
1677 #else /* def ENOMEM */
1678 {errno = EINVAL; return -1;}
1679 #endif /* ndef ENOMEM */
1680 if (x == Mono_Posix_Errno_ENOMSG)
1681 #ifdef ENOMSG
1682 {*r = ENOMSG; return 0;}
1683 #else /* def ENOMSG */
1684 {errno = EINVAL; return -1;}
1685 #endif /* ndef ENOMSG */
1686 if (x == Mono_Posix_Errno_ENONET)
1687 #ifdef ENONET
1688 {*r = ENONET; return 0;}
1689 #else /* def ENONET */
1690 {errno = EINVAL; return -1;}
1691 #endif /* ndef ENONET */
1692 if (x == Mono_Posix_Errno_ENOPKG)
1693 #ifdef ENOPKG
1694 {*r = ENOPKG; return 0;}
1695 #else /* def ENOPKG */
1696 {errno = EINVAL; return -1;}
1697 #endif /* ndef ENOPKG */
1698 if (x == Mono_Posix_Errno_ENOPOLICY)
1699 #ifdef ENOPOLICY
1700 {*r = ENOPOLICY; return 0;}
1701 #else /* def ENOPOLICY */
1702 {errno = EINVAL; return -1;}
1703 #endif /* ndef ENOPOLICY */
1704 if (x == Mono_Posix_Errno_ENOPROTOOPT)
1705 #ifdef ENOPROTOOPT
1706 {*r = ENOPROTOOPT; return 0;}
1707 #else /* def ENOPROTOOPT */
1708 {errno = EINVAL; return -1;}
1709 #endif /* ndef ENOPROTOOPT */
1710 if (x == Mono_Posix_Errno_ENOSPC)
1711 #ifdef ENOSPC
1712 {*r = ENOSPC; return 0;}
1713 #else /* def ENOSPC */
1714 {errno = EINVAL; return -1;}
1715 #endif /* ndef ENOSPC */
1716 if (x == Mono_Posix_Errno_ENOSR)
1717 #ifdef ENOSR
1718 {*r = ENOSR; return 0;}
1719 #else /* def ENOSR */
1720 {errno = EINVAL; return -1;}
1721 #endif /* ndef ENOSR */
1722 if (x == Mono_Posix_Errno_ENOSTR)
1723 #ifdef ENOSTR
1724 {*r = ENOSTR; return 0;}
1725 #else /* def ENOSTR */
1726 {errno = EINVAL; return -1;}
1727 #endif /* ndef ENOSTR */
1728 if (x == Mono_Posix_Errno_ENOSYS)
1729 #ifdef ENOSYS
1730 {*r = ENOSYS; return 0;}
1731 #else /* def ENOSYS */
1732 {errno = EINVAL; return -1;}
1733 #endif /* ndef ENOSYS */
1734 if (x == Mono_Posix_Errno_ENOTBLK)
1735 #ifdef ENOTBLK
1736 {*r = ENOTBLK; return 0;}
1737 #else /* def ENOTBLK */
1738 {errno = EINVAL; return -1;}
1739 #endif /* ndef ENOTBLK */
1740 if (x == Mono_Posix_Errno_ENOTCONN)
1741 #ifdef ENOTCONN
1742 {*r = ENOTCONN; return 0;}
1743 #else /* def ENOTCONN */
1744 {errno = EINVAL; return -1;}
1745 #endif /* ndef ENOTCONN */
1746 if (x == Mono_Posix_Errno_ENOTDIR)
1747 #ifdef ENOTDIR
1748 {*r = ENOTDIR; return 0;}
1749 #else /* def ENOTDIR */
1750 {errno = EINVAL; return -1;}
1751 #endif /* ndef ENOTDIR */
1752 if (x == Mono_Posix_Errno_ENOTEMPTY)
1753 #ifdef ENOTEMPTY
1754 {*r = ENOTEMPTY; return 0;}
1755 #else /* def ENOTEMPTY */
1756 {errno = EINVAL; return -1;}
1757 #endif /* ndef ENOTEMPTY */
1758 if (x == Mono_Posix_Errno_ENOTNAM)
1759 #ifdef ENOTNAM
1760 {*r = ENOTNAM; return 0;}
1761 #else /* def ENOTNAM */
1762 {errno = EINVAL; return -1;}
1763 #endif /* ndef ENOTNAM */
1764 if (x == Mono_Posix_Errno_ENOTRECOVERABLE)
1765 #ifdef ENOTRECOVERABLE
1766 {*r = ENOTRECOVERABLE; return 0;}
1767 #else /* def ENOTRECOVERABLE */
1768 {errno = EINVAL; return -1;}
1769 #endif /* ndef ENOTRECOVERABLE */
1770 if (x == Mono_Posix_Errno_ENOTSOCK)
1771 #ifdef ENOTSOCK
1772 {*r = ENOTSOCK; return 0;}
1773 #else /* def ENOTSOCK */
1774 {errno = EINVAL; return -1;}
1775 #endif /* ndef ENOTSOCK */
1776 if (x == Mono_Posix_Errno_ENOTTY)
1777 #ifdef ENOTTY
1778 {*r = ENOTTY; return 0;}
1779 #else /* def ENOTTY */
1780 {errno = EINVAL; return -1;}
1781 #endif /* ndef ENOTTY */
1782 if (x == Mono_Posix_Errno_ENOTUNIQ)
1783 #ifdef ENOTUNIQ
1784 {*r = ENOTUNIQ; return 0;}
1785 #else /* def ENOTUNIQ */
1786 {errno = EINVAL; return -1;}
1787 #endif /* ndef ENOTUNIQ */
1788 if (x == Mono_Posix_Errno_ENXIO)
1789 #ifdef ENXIO
1790 {*r = ENXIO; return 0;}
1791 #else /* def ENXIO */
1792 {errno = EINVAL; return -1;}
1793 #endif /* ndef ENXIO */
1794 if (x == Mono_Posix_Errno_EOPNOTSUPP)
1795 #ifdef EOPNOTSUPP
1796 {*r = EOPNOTSUPP; return 0;}
1797 #else /* def EOPNOTSUPP */
1798 {errno = EINVAL; return -1;}
1799 #endif /* ndef EOPNOTSUPP */
1800 if (x == Mono_Posix_Errno_EOVERFLOW)
1801 #ifdef EOVERFLOW
1802 {*r = EOVERFLOW; return 0;}
1803 #else /* def EOVERFLOW */
1804 {errno = EINVAL; return -1;}
1805 #endif /* ndef EOVERFLOW */
1806 if (x == Mono_Posix_Errno_EOWNERDEAD)
1807 #ifdef EOWNERDEAD
1808 {*r = EOWNERDEAD; return 0;}
1809 #else /* def EOWNERDEAD */
1810 {errno = EINVAL; return -1;}
1811 #endif /* ndef EOWNERDEAD */
1812 if (x == Mono_Posix_Errno_EPERM)
1813 #ifdef EPERM
1814 {*r = EPERM; return 0;}
1815 #else /* def EPERM */
1816 {errno = EINVAL; return -1;}
1817 #endif /* ndef EPERM */
1818 if (x == Mono_Posix_Errno_EPFNOSUPPORT)
1819 #ifdef EPFNOSUPPORT
1820 {*r = EPFNOSUPPORT; return 0;}
1821 #else /* def EPFNOSUPPORT */
1822 {errno = EINVAL; return -1;}
1823 #endif /* ndef EPFNOSUPPORT */
1824 if (x == Mono_Posix_Errno_EPIPE)
1825 #ifdef EPIPE
1826 {*r = EPIPE; return 0;}
1827 #else /* def EPIPE */
1828 {errno = EINVAL; return -1;}
1829 #endif /* ndef EPIPE */
1830 if (x == Mono_Posix_Errno_EPROCLIM)
1831 #ifdef EPROCLIM
1832 {*r = EPROCLIM; return 0;}
1833 #else /* def EPROCLIM */
1834 {errno = EINVAL; return -1;}
1835 #endif /* ndef EPROCLIM */
1836 if (x == Mono_Posix_Errno_EPROCUNAVAIL)
1837 #ifdef EPROCUNAVAIL
1838 {*r = EPROCUNAVAIL; return 0;}
1839 #else /* def EPROCUNAVAIL */
1840 {errno = EINVAL; return -1;}
1841 #endif /* ndef EPROCUNAVAIL */
1842 if (x == Mono_Posix_Errno_EPROGMISMATCH)
1843 #ifdef EPROGMISMATCH
1844 {*r = EPROGMISMATCH; return 0;}
1845 #else /* def EPROGMISMATCH */
1846 {errno = EINVAL; return -1;}
1847 #endif /* ndef EPROGMISMATCH */
1848 if (x == Mono_Posix_Errno_EPROGUNAVAIL)
1849 #ifdef EPROGUNAVAIL
1850 {*r = EPROGUNAVAIL; return 0;}
1851 #else /* def EPROGUNAVAIL */
1852 {errno = EINVAL; return -1;}
1853 #endif /* ndef EPROGUNAVAIL */
1854 if (x == Mono_Posix_Errno_EPROTO)
1855 #ifdef EPROTO
1856 {*r = EPROTO; return 0;}
1857 #else /* def EPROTO */
1858 {errno = EINVAL; return -1;}
1859 #endif /* ndef EPROTO */
1860 if (x == Mono_Posix_Errno_EPROTONOSUPPORT)
1861 #ifdef EPROTONOSUPPORT
1862 {*r = EPROTONOSUPPORT; return 0;}
1863 #else /* def EPROTONOSUPPORT */
1864 {errno = EINVAL; return -1;}
1865 #endif /* ndef EPROTONOSUPPORT */
1866 if (x == Mono_Posix_Errno_EPROTOTYPE)
1867 #ifdef EPROTOTYPE
1868 {*r = EPROTOTYPE; return 0;}
1869 #else /* def EPROTOTYPE */
1870 {errno = EINVAL; return -1;}
1871 #endif /* ndef EPROTOTYPE */
1872 if (x == Mono_Posix_Errno_EPWROFF)
1873 #ifdef EPWROFF
1874 {*r = EPWROFF; return 0;}
1875 #else /* def EPWROFF */
1876 {errno = EINVAL; return -1;}
1877 #endif /* ndef EPWROFF */
1878 if (x == Mono_Posix_Errno_ERANGE)
1879 #ifdef ERANGE
1880 {*r = ERANGE; return 0;}
1881 #else /* def ERANGE */
1882 {errno = EINVAL; return -1;}
1883 #endif /* ndef ERANGE */
1884 if (x == Mono_Posix_Errno_EREMCHG)
1885 #ifdef EREMCHG
1886 {*r = EREMCHG; return 0;}
1887 #else /* def EREMCHG */
1888 {errno = EINVAL; return -1;}
1889 #endif /* ndef EREMCHG */
1890 if (x == Mono_Posix_Errno_EREMOTE)
1891 #ifdef EREMOTE
1892 {*r = EREMOTE; return 0;}
1893 #else /* def EREMOTE */
1894 {errno = EINVAL; return -1;}
1895 #endif /* ndef EREMOTE */
1896 if (x == Mono_Posix_Errno_EREMOTEIO)
1897 #ifdef EREMOTEIO
1898 {*r = EREMOTEIO; return 0;}
1899 #else /* def EREMOTEIO */
1900 {errno = EINVAL; return -1;}
1901 #endif /* ndef EREMOTEIO */
1902 if (x == Mono_Posix_Errno_ERESTART)
1903 #ifdef ERESTART
1904 {*r = ERESTART; return 0;}
1905 #else /* def ERESTART */
1906 {errno = EINVAL; return -1;}
1907 #endif /* ndef ERESTART */
1908 if (x == Mono_Posix_Errno_EROFS)
1909 #ifdef EROFS
1910 {*r = EROFS; return 0;}
1911 #else /* def EROFS */
1912 {errno = EINVAL; return -1;}
1913 #endif /* ndef EROFS */
1914 if (x == Mono_Posix_Errno_ERPCMISMATCH)
1915 #ifdef ERPCMISMATCH
1916 {*r = ERPCMISMATCH; return 0;}
1917 #else /* def ERPCMISMATCH */
1918 {errno = EINVAL; return -1;}
1919 #endif /* ndef ERPCMISMATCH */
1920 if (x == Mono_Posix_Errno_ESHLIBVERS)
1921 #ifdef ESHLIBVERS
1922 {*r = ESHLIBVERS; return 0;}
1923 #else /* def ESHLIBVERS */
1924 {errno = EINVAL; return -1;}
1925 #endif /* ndef ESHLIBVERS */
1926 if (x == Mono_Posix_Errno_ESHUTDOWN)
1927 #ifdef ESHUTDOWN
1928 {*r = ESHUTDOWN; return 0;}
1929 #else /* def ESHUTDOWN */
1930 {errno = EINVAL; return -1;}
1931 #endif /* ndef ESHUTDOWN */
1932 if (x == Mono_Posix_Errno_ESOCKTNOSUPPORT)
1933 #ifdef ESOCKTNOSUPPORT
1934 {*r = ESOCKTNOSUPPORT; return 0;}
1935 #else /* def ESOCKTNOSUPPORT */
1936 {errno = EINVAL; return -1;}
1937 #endif /* ndef ESOCKTNOSUPPORT */
1938 if (x == Mono_Posix_Errno_ESPIPE)
1939 #ifdef ESPIPE
1940 {*r = ESPIPE; return 0;}
1941 #else /* def ESPIPE */
1942 {errno = EINVAL; return -1;}
1943 #endif /* ndef ESPIPE */
1944 if (x == Mono_Posix_Errno_ESRCH)
1945 #ifdef ESRCH
1946 {*r = ESRCH; return 0;}
1947 #else /* def ESRCH */
1948 {errno = EINVAL; return -1;}
1949 #endif /* ndef ESRCH */
1950 if (x == Mono_Posix_Errno_ESRMNT)
1951 #ifdef ESRMNT
1952 {*r = ESRMNT; return 0;}
1953 #else /* def ESRMNT */
1954 {errno = EINVAL; return -1;}
1955 #endif /* ndef ESRMNT */
1956 if (x == Mono_Posix_Errno_ESTALE)
1957 #ifdef ESTALE
1958 {*r = ESTALE; return 0;}
1959 #else /* def ESTALE */
1960 {errno = EINVAL; return -1;}
1961 #endif /* ndef ESTALE */
1962 if (x == Mono_Posix_Errno_ESTRPIPE)
1963 #ifdef ESTRPIPE
1964 {*r = ESTRPIPE; return 0;}
1965 #else /* def ESTRPIPE */
1966 {errno = EINVAL; return -1;}
1967 #endif /* ndef ESTRPIPE */
1968 if (x == Mono_Posix_Errno_ETIME)
1969 #ifdef ETIME
1970 {*r = ETIME; return 0;}
1971 #else /* def ETIME */
1972 {errno = EINVAL; return -1;}
1973 #endif /* ndef ETIME */
1974 if (x == Mono_Posix_Errno_ETIMEDOUT)
1975 #ifdef ETIMEDOUT
1976 {*r = ETIMEDOUT; return 0;}
1977 #else /* def ETIMEDOUT */
1978 {errno = EINVAL; return -1;}
1979 #endif /* ndef ETIMEDOUT */
1980 if (x == Mono_Posix_Errno_ETOOMANYREFS)
1981 #ifdef ETOOMANYREFS
1982 {*r = ETOOMANYREFS; return 0;}
1983 #else /* def ETOOMANYREFS */
1984 {errno = EINVAL; return -1;}
1985 #endif /* ndef ETOOMANYREFS */
1986 if (x == Mono_Posix_Errno_ETXTBSY)
1987 #ifdef ETXTBSY
1988 {*r = ETXTBSY; return 0;}
1989 #else /* def ETXTBSY */
1990 {errno = EINVAL; return -1;}
1991 #endif /* ndef ETXTBSY */
1992 if (x == Mono_Posix_Errno_EUCLEAN)
1993 #ifdef EUCLEAN
1994 {*r = EUCLEAN; return 0;}
1995 #else /* def EUCLEAN */
1996 {errno = EINVAL; return -1;}
1997 #endif /* ndef EUCLEAN */
1998 if (x == Mono_Posix_Errno_EUNATCH)
1999 #ifdef EUNATCH
2000 {*r = EUNATCH; return 0;}
2001 #else /* def EUNATCH */
2002 {errno = EINVAL; return -1;}
2003 #endif /* ndef EUNATCH */
2004 if (x == Mono_Posix_Errno_EUSERS)
2005 #ifdef EUSERS
2006 {*r = EUSERS; return 0;}
2007 #else /* def EUSERS */
2008 {errno = EINVAL; return -1;}
2009 #endif /* ndef EUSERS */
2010 if (x == Mono_Posix_Errno_EWOULDBLOCK)
2011 #ifdef EWOULDBLOCK
2012 {*r = EWOULDBLOCK; return 0;}
2013 #else /* def EWOULDBLOCK */
2014 {errno = EINVAL; return -1;}
2015 #endif /* ndef EWOULDBLOCK */
2016 if (x == Mono_Posix_Errno_EXDEV)
2017 #ifdef EXDEV
2018 {*r = EXDEV; return 0;}
2019 #else /* def EXDEV */
2020 {errno = EINVAL; return -1;}
2021 #endif /* ndef EXDEV */
2022 if (x == Mono_Posix_Errno_EXFULL)
2023 #ifdef EXFULL
2024 {*r = EXFULL; return 0;}
2025 #else /* def EXFULL */
2026 {errno = EINVAL; return -1;}
2027 #endif /* ndef EXFULL */
2028 if (x == 0)
2029 return 0;
2030 errno = EINVAL; return -1;
2033 int Mono_Posix_ToErrno (int x, int *r)
2035 *r = 0;
2036 if (x == 0)
2037 return 0;
2038 #ifdef E2BIG
2039 if (x == E2BIG)
2040 {*r = Mono_Posix_Errno_E2BIG; return 0;}
2041 #endif /* ndef E2BIG */
2042 #ifdef EACCES
2043 if (x == EACCES)
2044 {*r = Mono_Posix_Errno_EACCES; return 0;}
2045 #endif /* ndef EACCES */
2046 #ifdef EADDRINUSE
2047 if (x == EADDRINUSE)
2048 {*r = Mono_Posix_Errno_EADDRINUSE; return 0;}
2049 #endif /* ndef EADDRINUSE */
2050 #ifdef EADDRNOTAVAIL
2051 if (x == EADDRNOTAVAIL)
2052 {*r = Mono_Posix_Errno_EADDRNOTAVAIL; return 0;}
2053 #endif /* ndef EADDRNOTAVAIL */
2054 #ifdef EADV
2055 if (x == EADV)
2056 {*r = Mono_Posix_Errno_EADV; return 0;}
2057 #endif /* ndef EADV */
2058 #ifdef EAFNOSUPPORT
2059 if (x == EAFNOSUPPORT)
2060 {*r = Mono_Posix_Errno_EAFNOSUPPORT; return 0;}
2061 #endif /* ndef EAFNOSUPPORT */
2062 #ifdef EAGAIN
2063 if (x == EAGAIN)
2064 {*r = Mono_Posix_Errno_EAGAIN; return 0;}
2065 #endif /* ndef EAGAIN */
2066 #ifdef EALREADY
2067 if (x == EALREADY)
2068 {*r = Mono_Posix_Errno_EALREADY; return 0;}
2069 #endif /* ndef EALREADY */
2070 #ifdef EAUTH
2071 if (x == EAUTH)
2072 {*r = Mono_Posix_Errno_EAUTH; return 0;}
2073 #endif /* ndef EAUTH */
2074 #ifdef EBADARCH
2075 if (x == EBADARCH)
2076 {*r = Mono_Posix_Errno_EBADARCH; return 0;}
2077 #endif /* ndef EBADARCH */
2078 #ifdef EBADE
2079 if (x == EBADE)
2080 {*r = Mono_Posix_Errno_EBADE; return 0;}
2081 #endif /* ndef EBADE */
2082 #ifdef EBADEXEC
2083 if (x == EBADEXEC)
2084 {*r = Mono_Posix_Errno_EBADEXEC; return 0;}
2085 #endif /* ndef EBADEXEC */
2086 #ifdef EBADF
2087 if (x == EBADF)
2088 {*r = Mono_Posix_Errno_EBADF; return 0;}
2089 #endif /* ndef EBADF */
2090 #ifdef EBADFD
2091 if (x == EBADFD)
2092 {*r = Mono_Posix_Errno_EBADFD; return 0;}
2093 #endif /* ndef EBADFD */
2094 #ifdef EBADMACHO
2095 if (x == EBADMACHO)
2096 {*r = Mono_Posix_Errno_EBADMACHO; return 0;}
2097 #endif /* ndef EBADMACHO */
2098 #ifdef EBADMSG
2099 if (x == EBADMSG)
2100 {*r = Mono_Posix_Errno_EBADMSG; return 0;}
2101 #endif /* ndef EBADMSG */
2102 #ifdef EBADR
2103 if (x == EBADR)
2104 {*r = Mono_Posix_Errno_EBADR; return 0;}
2105 #endif /* ndef EBADR */
2106 #ifdef EBADRPC
2107 if (x == EBADRPC)
2108 {*r = Mono_Posix_Errno_EBADRPC; return 0;}
2109 #endif /* ndef EBADRPC */
2110 #ifdef EBADRQC
2111 if (x == EBADRQC)
2112 {*r = Mono_Posix_Errno_EBADRQC; return 0;}
2113 #endif /* ndef EBADRQC */
2114 #ifdef EBADSLT
2115 if (x == EBADSLT)
2116 {*r = Mono_Posix_Errno_EBADSLT; return 0;}
2117 #endif /* ndef EBADSLT */
2118 #ifdef EBFONT
2119 if (x == EBFONT)
2120 {*r = Mono_Posix_Errno_EBFONT; return 0;}
2121 #endif /* ndef EBFONT */
2122 #ifdef EBUSY
2123 if (x == EBUSY)
2124 {*r = Mono_Posix_Errno_EBUSY; return 0;}
2125 #endif /* ndef EBUSY */
2126 #ifdef ECANCELED
2127 if (x == ECANCELED)
2128 {*r = Mono_Posix_Errno_ECANCELED; return 0;}
2129 #endif /* ndef ECANCELED */
2130 #ifdef ECHILD
2131 if (x == ECHILD)
2132 {*r = Mono_Posix_Errno_ECHILD; return 0;}
2133 #endif /* ndef ECHILD */
2134 #ifdef ECHRNG
2135 if (x == ECHRNG)
2136 {*r = Mono_Posix_Errno_ECHRNG; return 0;}
2137 #endif /* ndef ECHRNG */
2138 #ifdef ECOMM
2139 if (x == ECOMM)
2140 {*r = Mono_Posix_Errno_ECOMM; return 0;}
2141 #endif /* ndef ECOMM */
2142 #ifdef ECONNABORTED
2143 if (x == ECONNABORTED)
2144 {*r = Mono_Posix_Errno_ECONNABORTED; return 0;}
2145 #endif /* ndef ECONNABORTED */
2146 #ifdef ECONNREFUSED
2147 if (x == ECONNREFUSED)
2148 {*r = Mono_Posix_Errno_ECONNREFUSED; return 0;}
2149 #endif /* ndef ECONNREFUSED */
2150 #ifdef ECONNRESET
2151 if (x == ECONNRESET)
2152 {*r = Mono_Posix_Errno_ECONNRESET; return 0;}
2153 #endif /* ndef ECONNRESET */
2154 #ifdef EDEADLK
2155 if (x == EDEADLK)
2156 {*r = Mono_Posix_Errno_EDEADLK; return 0;}
2157 #endif /* ndef EDEADLK */
2158 #ifdef EDEADLOCK
2159 if (x == EDEADLOCK)
2160 {*r = Mono_Posix_Errno_EDEADLOCK; return 0;}
2161 #endif /* ndef EDEADLOCK */
2162 #ifdef EDESTADDRREQ
2163 if (x == EDESTADDRREQ)
2164 {*r = Mono_Posix_Errno_EDESTADDRREQ; return 0;}
2165 #endif /* ndef EDESTADDRREQ */
2166 #ifdef EDEVERR
2167 if (x == EDEVERR)
2168 {*r = Mono_Posix_Errno_EDEVERR; return 0;}
2169 #endif /* ndef EDEVERR */
2170 #ifdef EDOM
2171 if (x == EDOM)
2172 {*r = Mono_Posix_Errno_EDOM; return 0;}
2173 #endif /* ndef EDOM */
2174 #ifdef EDOTDOT
2175 if (x == EDOTDOT)
2176 {*r = Mono_Posix_Errno_EDOTDOT; return 0;}
2177 #endif /* ndef EDOTDOT */
2178 #ifdef EDQUOT
2179 if (x == EDQUOT)
2180 {*r = Mono_Posix_Errno_EDQUOT; return 0;}
2181 #endif /* ndef EDQUOT */
2182 #ifdef EEXIST
2183 if (x == EEXIST)
2184 {*r = Mono_Posix_Errno_EEXIST; return 0;}
2185 #endif /* ndef EEXIST */
2186 #ifdef EFAULT
2187 if (x == EFAULT)
2188 {*r = Mono_Posix_Errno_EFAULT; return 0;}
2189 #endif /* ndef EFAULT */
2190 #ifdef EFBIG
2191 if (x == EFBIG)
2192 {*r = Mono_Posix_Errno_EFBIG; return 0;}
2193 #endif /* ndef EFBIG */
2194 #ifdef EFTYPE
2195 if (x == EFTYPE)
2196 {*r = Mono_Posix_Errno_EFTYPE; return 0;}
2197 #endif /* ndef EFTYPE */
2198 #ifdef EHOSTDOWN
2199 if (x == EHOSTDOWN)
2200 {*r = Mono_Posix_Errno_EHOSTDOWN; return 0;}
2201 #endif /* ndef EHOSTDOWN */
2202 #ifdef EHOSTUNREACH
2203 if (x == EHOSTUNREACH)
2204 {*r = Mono_Posix_Errno_EHOSTUNREACH; return 0;}
2205 #endif /* ndef EHOSTUNREACH */
2206 #ifdef EIDRM
2207 if (x == EIDRM)
2208 {*r = Mono_Posix_Errno_EIDRM; return 0;}
2209 #endif /* ndef EIDRM */
2210 #ifdef EILSEQ
2211 if (x == EILSEQ)
2212 {*r = Mono_Posix_Errno_EILSEQ; return 0;}
2213 #endif /* ndef EILSEQ */
2214 #ifdef EINPROGRESS
2215 if (x == EINPROGRESS)
2216 {*r = Mono_Posix_Errno_EINPROGRESS; return 0;}
2217 #endif /* ndef EINPROGRESS */
2218 #ifdef EINTR
2219 if (x == EINTR)
2220 {*r = Mono_Posix_Errno_EINTR; return 0;}
2221 #endif /* ndef EINTR */
2222 #ifdef EINVAL
2223 if (x == EINVAL)
2224 {*r = Mono_Posix_Errno_EINVAL; return 0;}
2225 #endif /* ndef EINVAL */
2226 #ifdef EIO
2227 if (x == EIO)
2228 {*r = Mono_Posix_Errno_EIO; return 0;}
2229 #endif /* ndef EIO */
2230 #ifdef EISCONN
2231 if (x == EISCONN)
2232 {*r = Mono_Posix_Errno_EISCONN; return 0;}
2233 #endif /* ndef EISCONN */
2234 #ifdef EISDIR
2235 if (x == EISDIR)
2236 {*r = Mono_Posix_Errno_EISDIR; return 0;}
2237 #endif /* ndef EISDIR */
2238 #ifdef EISNAM
2239 if (x == EISNAM)
2240 {*r = Mono_Posix_Errno_EISNAM; return 0;}
2241 #endif /* ndef EISNAM */
2242 #ifdef EKEYEXPIRED
2243 if (x == EKEYEXPIRED)
2244 {*r = Mono_Posix_Errno_EKEYEXPIRED; return 0;}
2245 #endif /* ndef EKEYEXPIRED */
2246 #ifdef EKEYREJECTED
2247 if (x == EKEYREJECTED)
2248 {*r = Mono_Posix_Errno_EKEYREJECTED; return 0;}
2249 #endif /* ndef EKEYREJECTED */
2250 #ifdef EKEYREVOKED
2251 if (x == EKEYREVOKED)
2252 {*r = Mono_Posix_Errno_EKEYREVOKED; return 0;}
2253 #endif /* ndef EKEYREVOKED */
2254 #ifdef EL2HLT
2255 if (x == EL2HLT)
2256 {*r = Mono_Posix_Errno_EL2HLT; return 0;}
2257 #endif /* ndef EL2HLT */
2258 #ifdef EL2NSYNC
2259 if (x == EL2NSYNC)
2260 {*r = Mono_Posix_Errno_EL2NSYNC; return 0;}
2261 #endif /* ndef EL2NSYNC */
2262 #ifdef EL3HLT
2263 if (x == EL3HLT)
2264 {*r = Mono_Posix_Errno_EL3HLT; return 0;}
2265 #endif /* ndef EL3HLT */
2266 #ifdef EL3RST
2267 if (x == EL3RST)
2268 {*r = Mono_Posix_Errno_EL3RST; return 0;}
2269 #endif /* ndef EL3RST */
2270 #ifdef ELIBACC
2271 if (x == ELIBACC)
2272 {*r = Mono_Posix_Errno_ELIBACC; return 0;}
2273 #endif /* ndef ELIBACC */
2274 #ifdef ELIBBAD
2275 if (x == ELIBBAD)
2276 {*r = Mono_Posix_Errno_ELIBBAD; return 0;}
2277 #endif /* ndef ELIBBAD */
2278 #ifdef ELIBEXEC
2279 if (x == ELIBEXEC)
2280 {*r = Mono_Posix_Errno_ELIBEXEC; return 0;}
2281 #endif /* ndef ELIBEXEC */
2282 #ifdef ELIBMAX
2283 if (x == ELIBMAX)
2284 {*r = Mono_Posix_Errno_ELIBMAX; return 0;}
2285 #endif /* ndef ELIBMAX */
2286 #ifdef ELIBSCN
2287 if (x == ELIBSCN)
2288 {*r = Mono_Posix_Errno_ELIBSCN; return 0;}
2289 #endif /* ndef ELIBSCN */
2290 #ifdef ELNRNG
2291 if (x == ELNRNG)
2292 {*r = Mono_Posix_Errno_ELNRNG; return 0;}
2293 #endif /* ndef ELNRNG */
2294 #ifdef ELOOP
2295 if (x == ELOOP)
2296 {*r = Mono_Posix_Errno_ELOOP; return 0;}
2297 #endif /* ndef ELOOP */
2298 #ifdef EMEDIUMTYPE
2299 if (x == EMEDIUMTYPE)
2300 {*r = Mono_Posix_Errno_EMEDIUMTYPE; return 0;}
2301 #endif /* ndef EMEDIUMTYPE */
2302 #ifdef EMFILE
2303 if (x == EMFILE)
2304 {*r = Mono_Posix_Errno_EMFILE; return 0;}
2305 #endif /* ndef EMFILE */
2306 #ifdef EMLINK
2307 if (x == EMLINK)
2308 {*r = Mono_Posix_Errno_EMLINK; return 0;}
2309 #endif /* ndef EMLINK */
2310 #ifdef EMSGSIZE
2311 if (x == EMSGSIZE)
2312 {*r = Mono_Posix_Errno_EMSGSIZE; return 0;}
2313 #endif /* ndef EMSGSIZE */
2314 #ifdef EMULTIHOP
2315 if (x == EMULTIHOP)
2316 {*r = Mono_Posix_Errno_EMULTIHOP; return 0;}
2317 #endif /* ndef EMULTIHOP */
2318 #ifdef ENAMETOOLONG
2319 if (x == ENAMETOOLONG)
2320 {*r = Mono_Posix_Errno_ENAMETOOLONG; return 0;}
2321 #endif /* ndef ENAMETOOLONG */
2322 #ifdef ENAVAIL
2323 if (x == ENAVAIL)
2324 {*r = Mono_Posix_Errno_ENAVAIL; return 0;}
2325 #endif /* ndef ENAVAIL */
2326 #ifdef ENEEDAUTH
2327 if (x == ENEEDAUTH)
2328 {*r = Mono_Posix_Errno_ENEEDAUTH; return 0;}
2329 #endif /* ndef ENEEDAUTH */
2330 #ifdef ENETDOWN
2331 if (x == ENETDOWN)
2332 {*r = Mono_Posix_Errno_ENETDOWN; return 0;}
2333 #endif /* ndef ENETDOWN */
2334 #ifdef ENETRESET
2335 if (x == ENETRESET)
2336 {*r = Mono_Posix_Errno_ENETRESET; return 0;}
2337 #endif /* ndef ENETRESET */
2338 #ifdef ENETUNREACH
2339 if (x == ENETUNREACH)
2340 {*r = Mono_Posix_Errno_ENETUNREACH; return 0;}
2341 #endif /* ndef ENETUNREACH */
2342 #ifdef ENFILE
2343 if (x == ENFILE)
2344 {*r = Mono_Posix_Errno_ENFILE; return 0;}
2345 #endif /* ndef ENFILE */
2346 #ifdef ENOANO
2347 if (x == ENOANO)
2348 {*r = Mono_Posix_Errno_ENOANO; return 0;}
2349 #endif /* ndef ENOANO */
2350 #ifdef ENOATTR
2351 if (x == ENOATTR)
2352 {*r = Mono_Posix_Errno_ENOATTR; return 0;}
2353 #endif /* ndef ENOATTR */
2354 #ifdef ENOBUFS
2355 if (x == ENOBUFS)
2356 {*r = Mono_Posix_Errno_ENOBUFS; return 0;}
2357 #endif /* ndef ENOBUFS */
2358 #ifdef ENOCSI
2359 if (x == ENOCSI)
2360 {*r = Mono_Posix_Errno_ENOCSI; return 0;}
2361 #endif /* ndef ENOCSI */
2362 #ifdef ENODATA
2363 if (x == ENODATA)
2364 {*r = Mono_Posix_Errno_ENODATA; return 0;}
2365 #endif /* ndef ENODATA */
2366 #ifdef ENODEV
2367 if (x == ENODEV)
2368 {*r = Mono_Posix_Errno_ENODEV; return 0;}
2369 #endif /* ndef ENODEV */
2370 #ifdef ENOENT
2371 if (x == ENOENT)
2372 {*r = Mono_Posix_Errno_ENOENT; return 0;}
2373 #endif /* ndef ENOENT */
2374 #ifdef ENOEXEC
2375 if (x == ENOEXEC)
2376 {*r = Mono_Posix_Errno_ENOEXEC; return 0;}
2377 #endif /* ndef ENOEXEC */
2378 #ifdef ENOKEY
2379 if (x == ENOKEY)
2380 {*r = Mono_Posix_Errno_ENOKEY; return 0;}
2381 #endif /* ndef ENOKEY */
2382 #ifdef ENOLCK
2383 if (x == ENOLCK)
2384 {*r = Mono_Posix_Errno_ENOLCK; return 0;}
2385 #endif /* ndef ENOLCK */
2386 #ifdef ENOLINK
2387 if (x == ENOLINK)
2388 {*r = Mono_Posix_Errno_ENOLINK; return 0;}
2389 #endif /* ndef ENOLINK */
2390 #ifdef ENOMEDIUM
2391 if (x == ENOMEDIUM)
2392 {*r = Mono_Posix_Errno_ENOMEDIUM; return 0;}
2393 #endif /* ndef ENOMEDIUM */
2394 #ifdef ENOMEM
2395 if (x == ENOMEM)
2396 {*r = Mono_Posix_Errno_ENOMEM; return 0;}
2397 #endif /* ndef ENOMEM */
2398 #ifdef ENOMSG
2399 if (x == ENOMSG)
2400 {*r = Mono_Posix_Errno_ENOMSG; return 0;}
2401 #endif /* ndef ENOMSG */
2402 #ifdef ENONET
2403 if (x == ENONET)
2404 {*r = Mono_Posix_Errno_ENONET; return 0;}
2405 #endif /* ndef ENONET */
2406 #ifdef ENOPKG
2407 if (x == ENOPKG)
2408 {*r = Mono_Posix_Errno_ENOPKG; return 0;}
2409 #endif /* ndef ENOPKG */
2410 #ifdef ENOPOLICY
2411 if (x == ENOPOLICY)
2412 {*r = Mono_Posix_Errno_ENOPOLICY; return 0;}
2413 #endif /* ndef ENOPOLICY */
2414 #ifdef ENOPROTOOPT
2415 if (x == ENOPROTOOPT)
2416 {*r = Mono_Posix_Errno_ENOPROTOOPT; return 0;}
2417 #endif /* ndef ENOPROTOOPT */
2418 #ifdef ENOSPC
2419 if (x == ENOSPC)
2420 {*r = Mono_Posix_Errno_ENOSPC; return 0;}
2421 #endif /* ndef ENOSPC */
2422 #ifdef ENOSR
2423 if (x == ENOSR)
2424 {*r = Mono_Posix_Errno_ENOSR; return 0;}
2425 #endif /* ndef ENOSR */
2426 #ifdef ENOSTR
2427 if (x == ENOSTR)
2428 {*r = Mono_Posix_Errno_ENOSTR; return 0;}
2429 #endif /* ndef ENOSTR */
2430 #ifdef ENOSYS
2431 if (x == ENOSYS)
2432 {*r = Mono_Posix_Errno_ENOSYS; return 0;}
2433 #endif /* ndef ENOSYS */
2434 #ifdef ENOTBLK
2435 if (x == ENOTBLK)
2436 {*r = Mono_Posix_Errno_ENOTBLK; return 0;}
2437 #endif /* ndef ENOTBLK */
2438 #ifdef ENOTCONN
2439 if (x == ENOTCONN)
2440 {*r = Mono_Posix_Errno_ENOTCONN; return 0;}
2441 #endif /* ndef ENOTCONN */
2442 #ifdef ENOTDIR
2443 if (x == ENOTDIR)
2444 {*r = Mono_Posix_Errno_ENOTDIR; return 0;}
2445 #endif /* ndef ENOTDIR */
2446 #ifdef ENOTEMPTY
2447 if (x == ENOTEMPTY)
2448 {*r = Mono_Posix_Errno_ENOTEMPTY; return 0;}
2449 #endif /* ndef ENOTEMPTY */
2450 #ifdef ENOTNAM
2451 if (x == ENOTNAM)
2452 {*r = Mono_Posix_Errno_ENOTNAM; return 0;}
2453 #endif /* ndef ENOTNAM */
2454 #ifdef ENOTRECOVERABLE
2455 if (x == ENOTRECOVERABLE)
2456 {*r = Mono_Posix_Errno_ENOTRECOVERABLE; return 0;}
2457 #endif /* ndef ENOTRECOVERABLE */
2458 #ifdef ENOTSOCK
2459 if (x == ENOTSOCK)
2460 {*r = Mono_Posix_Errno_ENOTSOCK; return 0;}
2461 #endif /* ndef ENOTSOCK */
2462 #ifdef ENOTTY
2463 if (x == ENOTTY)
2464 {*r = Mono_Posix_Errno_ENOTTY; return 0;}
2465 #endif /* ndef ENOTTY */
2466 #ifdef ENOTUNIQ
2467 if (x == ENOTUNIQ)
2468 {*r = Mono_Posix_Errno_ENOTUNIQ; return 0;}
2469 #endif /* ndef ENOTUNIQ */
2470 #ifdef ENXIO
2471 if (x == ENXIO)
2472 {*r = Mono_Posix_Errno_ENXIO; return 0;}
2473 #endif /* ndef ENXIO */
2474 #ifdef EOPNOTSUPP
2475 if (x == EOPNOTSUPP)
2476 {*r = Mono_Posix_Errno_EOPNOTSUPP; return 0;}
2477 #endif /* ndef EOPNOTSUPP */
2478 #ifdef EOVERFLOW
2479 if (x == EOVERFLOW)
2480 {*r = Mono_Posix_Errno_EOVERFLOW; return 0;}
2481 #endif /* ndef EOVERFLOW */
2482 #ifdef EOWNERDEAD
2483 if (x == EOWNERDEAD)
2484 {*r = Mono_Posix_Errno_EOWNERDEAD; return 0;}
2485 #endif /* ndef EOWNERDEAD */
2486 #ifdef EPERM
2487 if (x == EPERM)
2488 {*r = Mono_Posix_Errno_EPERM; return 0;}
2489 #endif /* ndef EPERM */
2490 #ifdef EPFNOSUPPORT
2491 if (x == EPFNOSUPPORT)
2492 {*r = Mono_Posix_Errno_EPFNOSUPPORT; return 0;}
2493 #endif /* ndef EPFNOSUPPORT */
2494 #ifdef EPIPE
2495 if (x == EPIPE)
2496 {*r = Mono_Posix_Errno_EPIPE; return 0;}
2497 #endif /* ndef EPIPE */
2498 #ifdef EPROCLIM
2499 if (x == EPROCLIM)
2500 {*r = Mono_Posix_Errno_EPROCLIM; return 0;}
2501 #endif /* ndef EPROCLIM */
2502 #ifdef EPROCUNAVAIL
2503 if (x == EPROCUNAVAIL)
2504 {*r = Mono_Posix_Errno_EPROCUNAVAIL; return 0;}
2505 #endif /* ndef EPROCUNAVAIL */
2506 #ifdef EPROGMISMATCH
2507 if (x == EPROGMISMATCH)
2508 {*r = Mono_Posix_Errno_EPROGMISMATCH; return 0;}
2509 #endif /* ndef EPROGMISMATCH */
2510 #ifdef EPROGUNAVAIL
2511 if (x == EPROGUNAVAIL)
2512 {*r = Mono_Posix_Errno_EPROGUNAVAIL; return 0;}
2513 #endif /* ndef EPROGUNAVAIL */
2514 #ifdef EPROTO
2515 if (x == EPROTO)
2516 {*r = Mono_Posix_Errno_EPROTO; return 0;}
2517 #endif /* ndef EPROTO */
2518 #ifdef EPROTONOSUPPORT
2519 if (x == EPROTONOSUPPORT)
2520 {*r = Mono_Posix_Errno_EPROTONOSUPPORT; return 0;}
2521 #endif /* ndef EPROTONOSUPPORT */
2522 #ifdef EPROTOTYPE
2523 if (x == EPROTOTYPE)
2524 {*r = Mono_Posix_Errno_EPROTOTYPE; return 0;}
2525 #endif /* ndef EPROTOTYPE */
2526 #ifdef EPWROFF
2527 if (x == EPWROFF)
2528 {*r = Mono_Posix_Errno_EPWROFF; return 0;}
2529 #endif /* ndef EPWROFF */
2530 #ifdef ERANGE
2531 if (x == ERANGE)
2532 {*r = Mono_Posix_Errno_ERANGE; return 0;}
2533 #endif /* ndef ERANGE */
2534 #ifdef EREMCHG
2535 if (x == EREMCHG)
2536 {*r = Mono_Posix_Errno_EREMCHG; return 0;}
2537 #endif /* ndef EREMCHG */
2538 #ifdef EREMOTE
2539 if (x == EREMOTE)
2540 {*r = Mono_Posix_Errno_EREMOTE; return 0;}
2541 #endif /* ndef EREMOTE */
2542 #ifdef EREMOTEIO
2543 if (x == EREMOTEIO)
2544 {*r = Mono_Posix_Errno_EREMOTEIO; return 0;}
2545 #endif /* ndef EREMOTEIO */
2546 #ifdef ERESTART
2547 if (x == ERESTART)
2548 {*r = Mono_Posix_Errno_ERESTART; return 0;}
2549 #endif /* ndef ERESTART */
2550 #ifdef EROFS
2551 if (x == EROFS)
2552 {*r = Mono_Posix_Errno_EROFS; return 0;}
2553 #endif /* ndef EROFS */
2554 #ifdef ERPCMISMATCH
2555 if (x == ERPCMISMATCH)
2556 {*r = Mono_Posix_Errno_ERPCMISMATCH; return 0;}
2557 #endif /* ndef ERPCMISMATCH */
2558 #ifdef ESHLIBVERS
2559 if (x == ESHLIBVERS)
2560 {*r = Mono_Posix_Errno_ESHLIBVERS; return 0;}
2561 #endif /* ndef ESHLIBVERS */
2562 #ifdef ESHUTDOWN
2563 if (x == ESHUTDOWN)
2564 {*r = Mono_Posix_Errno_ESHUTDOWN; return 0;}
2565 #endif /* ndef ESHUTDOWN */
2566 #ifdef ESOCKTNOSUPPORT
2567 if (x == ESOCKTNOSUPPORT)
2568 {*r = Mono_Posix_Errno_ESOCKTNOSUPPORT; return 0;}
2569 #endif /* ndef ESOCKTNOSUPPORT */
2570 #ifdef ESPIPE
2571 if (x == ESPIPE)
2572 {*r = Mono_Posix_Errno_ESPIPE; return 0;}
2573 #endif /* ndef ESPIPE */
2574 #ifdef ESRCH
2575 if (x == ESRCH)
2576 {*r = Mono_Posix_Errno_ESRCH; return 0;}
2577 #endif /* ndef ESRCH */
2578 #ifdef ESRMNT
2579 if (x == ESRMNT)
2580 {*r = Mono_Posix_Errno_ESRMNT; return 0;}
2581 #endif /* ndef ESRMNT */
2582 #ifdef ESTALE
2583 if (x == ESTALE)
2584 {*r = Mono_Posix_Errno_ESTALE; return 0;}
2585 #endif /* ndef ESTALE */
2586 #ifdef ESTRPIPE
2587 if (x == ESTRPIPE)
2588 {*r = Mono_Posix_Errno_ESTRPIPE; return 0;}
2589 #endif /* ndef ESTRPIPE */
2590 #ifdef ETIME
2591 if (x == ETIME)
2592 {*r = Mono_Posix_Errno_ETIME; return 0;}
2593 #endif /* ndef ETIME */
2594 #ifdef ETIMEDOUT
2595 if (x == ETIMEDOUT)
2596 {*r = Mono_Posix_Errno_ETIMEDOUT; return 0;}
2597 #endif /* ndef ETIMEDOUT */
2598 #ifdef ETOOMANYREFS
2599 if (x == ETOOMANYREFS)
2600 {*r = Mono_Posix_Errno_ETOOMANYREFS; return 0;}
2601 #endif /* ndef ETOOMANYREFS */
2602 #ifdef ETXTBSY
2603 if (x == ETXTBSY)
2604 {*r = Mono_Posix_Errno_ETXTBSY; return 0;}
2605 #endif /* ndef ETXTBSY */
2606 #ifdef EUCLEAN
2607 if (x == EUCLEAN)
2608 {*r = Mono_Posix_Errno_EUCLEAN; return 0;}
2609 #endif /* ndef EUCLEAN */
2610 #ifdef EUNATCH
2611 if (x == EUNATCH)
2612 {*r = Mono_Posix_Errno_EUNATCH; return 0;}
2613 #endif /* ndef EUNATCH */
2614 #ifdef EUSERS
2615 if (x == EUSERS)
2616 {*r = Mono_Posix_Errno_EUSERS; return 0;}
2617 #endif /* ndef EUSERS */
2618 #ifdef EWOULDBLOCK
2619 if (x == EWOULDBLOCK)
2620 {*r = Mono_Posix_Errno_EWOULDBLOCK; return 0;}
2621 #endif /* ndef EWOULDBLOCK */
2622 #ifdef EXDEV
2623 if (x == EXDEV)
2624 {*r = Mono_Posix_Errno_EXDEV; return 0;}
2625 #endif /* ndef EXDEV */
2626 #ifdef EXFULL
2627 if (x == EXFULL)
2628 {*r = Mono_Posix_Errno_EXFULL; return 0;}
2629 #endif /* ndef EXFULL */
2630 errno = EINVAL; return -1;
2633 int Mono_Posix_FromFcntlCommand (int x, int *r)
2635 *r = 0;
2636 if (x == Mono_Posix_FcntlCommand_F_ADD_SEALS)
2637 #ifdef F_ADD_SEALS
2638 {*r = F_ADD_SEALS; return 0;}
2639 #else /* def F_ADD_SEALS */
2640 {errno = EINVAL; return -1;}
2641 #endif /* ndef F_ADD_SEALS */
2642 if (x == Mono_Posix_FcntlCommand_F_DUPFD)
2643 #ifdef F_DUPFD
2644 {*r = F_DUPFD; return 0;}
2645 #else /* def F_DUPFD */
2646 {errno = EINVAL; return -1;}
2647 #endif /* ndef F_DUPFD */
2648 if (x == Mono_Posix_FcntlCommand_F_GETFD)
2649 #ifdef F_GETFD
2650 {*r = F_GETFD; return 0;}
2651 #else /* def F_GETFD */
2652 {errno = EINVAL; return -1;}
2653 #endif /* ndef F_GETFD */
2654 if (x == Mono_Posix_FcntlCommand_F_GETFL)
2655 #ifdef F_GETFL
2656 {*r = F_GETFL; return 0;}
2657 #else /* def F_GETFL */
2658 {errno = EINVAL; return -1;}
2659 #endif /* ndef F_GETFL */
2660 if (x == Mono_Posix_FcntlCommand_F_GETLEASE)
2661 #ifdef F_GETLEASE
2662 {*r = F_GETLEASE; return 0;}
2663 #else /* def F_GETLEASE */
2664 {errno = EINVAL; return -1;}
2665 #endif /* ndef F_GETLEASE */
2666 if (x == Mono_Posix_FcntlCommand_F_GETLK)
2667 #ifdef F_GETLK
2668 {*r = F_GETLK; return 0;}
2669 #else /* def F_GETLK */
2670 {errno = EINVAL; return -1;}
2671 #endif /* ndef F_GETLK */
2672 if (x == Mono_Posix_FcntlCommand_F_GETOWN)
2673 #ifdef F_GETOWN
2674 {*r = F_GETOWN; return 0;}
2675 #else /* def F_GETOWN */
2676 {errno = EINVAL; return -1;}
2677 #endif /* ndef F_GETOWN */
2678 if (x == Mono_Posix_FcntlCommand_F_GETSIG)
2679 #ifdef F_GETSIG
2680 {*r = F_GETSIG; return 0;}
2681 #else /* def F_GETSIG */
2682 {errno = EINVAL; return -1;}
2683 #endif /* ndef F_GETSIG */
2684 if (x == Mono_Posix_FcntlCommand_F_GET_SEALS)
2685 #ifdef F_GET_SEALS
2686 {*r = F_GET_SEALS; return 0;}
2687 #else /* def F_GET_SEALS */
2688 {errno = EINVAL; return -1;}
2689 #endif /* ndef F_GET_SEALS */
2690 if (x == Mono_Posix_FcntlCommand_F_NOCACHE)
2691 #ifdef F_NOCACHE
2692 {*r = F_NOCACHE; return 0;}
2693 #else /* def F_NOCACHE */
2694 {errno = EINVAL; return -1;}
2695 #endif /* ndef F_NOCACHE */
2696 if (x == Mono_Posix_FcntlCommand_F_NOTIFY)
2697 #ifdef F_NOTIFY
2698 {*r = F_NOTIFY; return 0;}
2699 #else /* def F_NOTIFY */
2700 {errno = EINVAL; return -1;}
2701 #endif /* ndef F_NOTIFY */
2702 if (x == Mono_Posix_FcntlCommand_F_OFD_GETLK)
2703 #ifdef F_OFD_GETLK
2704 {*r = F_OFD_GETLK; return 0;}
2705 #else /* def F_OFD_GETLK */
2706 {errno = EINVAL; return -1;}
2707 #endif /* ndef F_OFD_GETLK */
2708 if (x == Mono_Posix_FcntlCommand_F_OFD_SETLK)
2709 #ifdef F_OFD_SETLK
2710 {*r = F_OFD_SETLK; return 0;}
2711 #else /* def F_OFD_SETLK */
2712 {errno = EINVAL; return -1;}
2713 #endif /* ndef F_OFD_SETLK */
2714 if (x == Mono_Posix_FcntlCommand_F_OFD_SETLKW)
2715 #ifdef F_OFD_SETLKW
2716 {*r = F_OFD_SETLKW; return 0;}
2717 #else /* def F_OFD_SETLKW */
2718 {errno = EINVAL; return -1;}
2719 #endif /* ndef F_OFD_SETLKW */
2720 if (x == Mono_Posix_FcntlCommand_F_SETFD)
2721 #ifdef F_SETFD
2722 {*r = F_SETFD; return 0;}
2723 #else /* def F_SETFD */
2724 {errno = EINVAL; return -1;}
2725 #endif /* ndef F_SETFD */
2726 if (x == Mono_Posix_FcntlCommand_F_SETFL)
2727 #ifdef F_SETFL
2728 {*r = F_SETFL; return 0;}
2729 #else /* def F_SETFL */
2730 {errno = EINVAL; return -1;}
2731 #endif /* ndef F_SETFL */
2732 if (x == Mono_Posix_FcntlCommand_F_SETLEASE)
2733 #ifdef F_SETLEASE
2734 {*r = F_SETLEASE; return 0;}
2735 #else /* def F_SETLEASE */
2736 {errno = EINVAL; return -1;}
2737 #endif /* ndef F_SETLEASE */
2738 if (x == Mono_Posix_FcntlCommand_F_SETLK)
2739 #ifdef F_SETLK
2740 {*r = F_SETLK; return 0;}
2741 #else /* def F_SETLK */
2742 {errno = EINVAL; return -1;}
2743 #endif /* ndef F_SETLK */
2744 if (x == Mono_Posix_FcntlCommand_F_SETLKW)
2745 #ifdef F_SETLKW
2746 {*r = F_SETLKW; return 0;}
2747 #else /* def F_SETLKW */
2748 {errno = EINVAL; return -1;}
2749 #endif /* ndef F_SETLKW */
2750 if (x == Mono_Posix_FcntlCommand_F_SETOWN)
2751 #ifdef F_SETOWN
2752 {*r = F_SETOWN; return 0;}
2753 #else /* def F_SETOWN */
2754 {errno = EINVAL; return -1;}
2755 #endif /* ndef F_SETOWN */
2756 if (x == Mono_Posix_FcntlCommand_F_SETSIG)
2757 #ifdef F_SETSIG
2758 {*r = F_SETSIG; return 0;}
2759 #else /* def F_SETSIG */
2760 {errno = EINVAL; return -1;}
2761 #endif /* ndef F_SETSIG */
2762 if (x == 0)
2763 return 0;
2764 errno = EINVAL; return -1;
2767 int Mono_Posix_ToFcntlCommand (int x, int *r)
2769 *r = 0;
2770 if (x == 0)
2771 return 0;
2772 #ifdef F_ADD_SEALS
2773 if (x == F_ADD_SEALS)
2774 {*r = Mono_Posix_FcntlCommand_F_ADD_SEALS; return 0;}
2775 #endif /* ndef F_ADD_SEALS */
2776 #ifdef F_DUPFD
2777 if (x == F_DUPFD)
2778 {*r = Mono_Posix_FcntlCommand_F_DUPFD; return 0;}
2779 #endif /* ndef F_DUPFD */
2780 #ifdef F_GETFD
2781 if (x == F_GETFD)
2782 {*r = Mono_Posix_FcntlCommand_F_GETFD; return 0;}
2783 #endif /* ndef F_GETFD */
2784 #ifdef F_GETFL
2785 if (x == F_GETFL)
2786 {*r = Mono_Posix_FcntlCommand_F_GETFL; return 0;}
2787 #endif /* ndef F_GETFL */
2788 #ifdef F_GETLEASE
2789 if (x == F_GETLEASE)
2790 {*r = Mono_Posix_FcntlCommand_F_GETLEASE; return 0;}
2791 #endif /* ndef F_GETLEASE */
2792 #ifdef F_GETLK
2793 if (x == F_GETLK)
2794 {*r = Mono_Posix_FcntlCommand_F_GETLK; return 0;}
2795 #endif /* ndef F_GETLK */
2796 #ifdef F_GETOWN
2797 if (x == F_GETOWN)
2798 {*r = Mono_Posix_FcntlCommand_F_GETOWN; return 0;}
2799 #endif /* ndef F_GETOWN */
2800 #ifdef F_GETSIG
2801 if (x == F_GETSIG)
2802 {*r = Mono_Posix_FcntlCommand_F_GETSIG; return 0;}
2803 #endif /* ndef F_GETSIG */
2804 #ifdef F_GET_SEALS
2805 if (x == F_GET_SEALS)
2806 {*r = Mono_Posix_FcntlCommand_F_GET_SEALS; return 0;}
2807 #endif /* ndef F_GET_SEALS */
2808 #ifdef F_NOCACHE
2809 if (x == F_NOCACHE)
2810 {*r = Mono_Posix_FcntlCommand_F_NOCACHE; return 0;}
2811 #endif /* ndef F_NOCACHE */
2812 #ifdef F_NOTIFY
2813 if (x == F_NOTIFY)
2814 {*r = Mono_Posix_FcntlCommand_F_NOTIFY; return 0;}
2815 #endif /* ndef F_NOTIFY */
2816 #ifdef F_OFD_GETLK
2817 if (x == F_OFD_GETLK)
2818 {*r = Mono_Posix_FcntlCommand_F_OFD_GETLK; return 0;}
2819 #endif /* ndef F_OFD_GETLK */
2820 #ifdef F_OFD_SETLK
2821 if (x == F_OFD_SETLK)
2822 {*r = Mono_Posix_FcntlCommand_F_OFD_SETLK; return 0;}
2823 #endif /* ndef F_OFD_SETLK */
2824 #ifdef F_OFD_SETLKW
2825 if (x == F_OFD_SETLKW)
2826 {*r = Mono_Posix_FcntlCommand_F_OFD_SETLKW; return 0;}
2827 #endif /* ndef F_OFD_SETLKW */
2828 #ifdef F_SETFD
2829 if (x == F_SETFD)
2830 {*r = Mono_Posix_FcntlCommand_F_SETFD; return 0;}
2831 #endif /* ndef F_SETFD */
2832 #ifdef F_SETFL
2833 if (x == F_SETFL)
2834 {*r = Mono_Posix_FcntlCommand_F_SETFL; return 0;}
2835 #endif /* ndef F_SETFL */
2836 #ifdef F_SETLEASE
2837 if (x == F_SETLEASE)
2838 {*r = Mono_Posix_FcntlCommand_F_SETLEASE; return 0;}
2839 #endif /* ndef F_SETLEASE */
2840 #ifdef F_SETLK
2841 if (x == F_SETLK)
2842 {*r = Mono_Posix_FcntlCommand_F_SETLK; return 0;}
2843 #endif /* ndef F_SETLK */
2844 #ifdef F_SETLKW
2845 if (x == F_SETLKW)
2846 {*r = Mono_Posix_FcntlCommand_F_SETLKW; return 0;}
2847 #endif /* ndef F_SETLKW */
2848 #ifdef F_SETOWN
2849 if (x == F_SETOWN)
2850 {*r = Mono_Posix_FcntlCommand_F_SETOWN; return 0;}
2851 #endif /* ndef F_SETOWN */
2852 #ifdef F_SETSIG
2853 if (x == F_SETSIG)
2854 {*r = Mono_Posix_FcntlCommand_F_SETSIG; return 0;}
2855 #endif /* ndef F_SETSIG */
2856 errno = EINVAL; return -1;
2859 int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r)
2861 *r = 0;
2862 if ((x & Mono_Posix_FilePermissions_ACCESSPERMS) == Mono_Posix_FilePermissions_ACCESSPERMS)
2863 #ifdef ACCESSPERMS
2864 *r |= ACCESSPERMS;
2865 #else /* def ACCESSPERMS */
2866 {/* Ignoring Mono_Posix_FilePermissions_ACCESSPERMS, as it is constructed from other values */}
2867 #endif /* ndef ACCESSPERMS */
2868 if ((x & Mono_Posix_FilePermissions_ALLPERMS) == Mono_Posix_FilePermissions_ALLPERMS)
2869 #ifdef ALLPERMS
2870 *r |= ALLPERMS;
2871 #else /* def ALLPERMS */
2872 {/* Ignoring Mono_Posix_FilePermissions_ALLPERMS, as it is constructed from other values */}
2873 #endif /* ndef ALLPERMS */
2874 if ((x & Mono_Posix_FilePermissions_DEFFILEMODE) == Mono_Posix_FilePermissions_DEFFILEMODE)
2875 #ifdef DEFFILEMODE
2876 *r |= DEFFILEMODE;
2877 #else /* def DEFFILEMODE */
2878 {/* Ignoring Mono_Posix_FilePermissions_DEFFILEMODE, as it is constructed from other values */}
2879 #endif /* ndef DEFFILEMODE */
2880 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFBLK)
2881 #ifdef S_IFBLK
2882 *r |= S_IFBLK;
2883 #else /* def S_IFBLK */
2884 {errno = EINVAL; return -1;}
2885 #endif /* ndef S_IFBLK */
2886 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFCHR)
2887 #ifdef S_IFCHR
2888 *r |= S_IFCHR;
2889 #else /* def S_IFCHR */
2890 {errno = EINVAL; return -1;}
2891 #endif /* ndef S_IFCHR */
2892 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFDIR)
2893 #ifdef S_IFDIR
2894 *r |= S_IFDIR;
2895 #else /* def S_IFDIR */
2896 {errno = EINVAL; return -1;}
2897 #endif /* ndef S_IFDIR */
2898 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFIFO)
2899 #ifdef S_IFIFO
2900 *r |= S_IFIFO;
2901 #else /* def S_IFIFO */
2902 {errno = EINVAL; return -1;}
2903 #endif /* ndef S_IFIFO */
2904 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFLNK)
2905 #ifdef S_IFLNK
2906 *r |= S_IFLNK;
2907 #else /* def S_IFLNK */
2908 {errno = EINVAL; return -1;}
2909 #endif /* ndef S_IFLNK */
2910 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFMT)
2911 #ifdef S_IFMT
2912 *r |= S_IFMT;
2913 #else /* def S_IFMT */
2914 {/* Ignoring Mono_Posix_FilePermissions_S_IFMT, as it is constructed from other values */}
2915 #endif /* ndef S_IFMT */
2916 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFREG)
2917 #ifdef S_IFREG
2918 *r |= S_IFREG;
2919 #else /* def S_IFREG */
2920 {errno = EINVAL; return -1;}
2921 #endif /* ndef S_IFREG */
2922 if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFSOCK)
2923 #ifdef S_IFSOCK
2924 *r |= S_IFSOCK;
2925 #else /* def S_IFSOCK */
2926 {errno = EINVAL; return -1;}
2927 #endif /* ndef S_IFSOCK */
2928 if ((x & Mono_Posix_FilePermissions_S_IRGRP) == Mono_Posix_FilePermissions_S_IRGRP)
2929 #ifdef S_IRGRP
2930 *r |= S_IRGRP;
2931 #else /* def S_IRGRP */
2932 {errno = EINVAL; return -1;}
2933 #endif /* ndef S_IRGRP */
2934 if ((x & Mono_Posix_FilePermissions_S_IROTH) == Mono_Posix_FilePermissions_S_IROTH)
2935 #ifdef S_IROTH
2936 *r |= S_IROTH;
2937 #else /* def S_IROTH */
2938 {errno = EINVAL; return -1;}
2939 #endif /* ndef S_IROTH */
2940 if ((x & Mono_Posix_FilePermissions_S_IRUSR) == Mono_Posix_FilePermissions_S_IRUSR)
2941 #ifdef S_IRUSR
2942 *r |= S_IRUSR;
2943 #else /* def S_IRUSR */
2944 {errno = EINVAL; return -1;}
2945 #endif /* ndef S_IRUSR */
2946 if ((x & Mono_Posix_FilePermissions_S_IRWXG) == Mono_Posix_FilePermissions_S_IRWXG)
2947 #ifdef S_IRWXG
2948 *r |= S_IRWXG;
2949 #else /* def S_IRWXG */
2950 {/* Ignoring Mono_Posix_FilePermissions_S_IRWXG, as it is constructed from other values */}
2951 #endif /* ndef S_IRWXG */
2952 if ((x & Mono_Posix_FilePermissions_S_IRWXO) == Mono_Posix_FilePermissions_S_IRWXO)
2953 #ifdef S_IRWXO
2954 *r |= S_IRWXO;
2955 #else /* def S_IRWXO */
2956 {/* Ignoring Mono_Posix_FilePermissions_S_IRWXO, as it is constructed from other values */}
2957 #endif /* ndef S_IRWXO */
2958 if ((x & Mono_Posix_FilePermissions_S_IRWXU) == Mono_Posix_FilePermissions_S_IRWXU)
2959 #ifdef S_IRWXU
2960 *r |= S_IRWXU;
2961 #else /* def S_IRWXU */
2962 {/* Ignoring Mono_Posix_FilePermissions_S_IRWXU, as it is constructed from other values */}
2963 #endif /* ndef S_IRWXU */
2964 if ((x & Mono_Posix_FilePermissions_S_ISGID) == Mono_Posix_FilePermissions_S_ISGID)
2965 #ifdef S_ISGID
2966 *r |= S_ISGID;
2967 #else /* def S_ISGID */
2968 {errno = EINVAL; return -1;}
2969 #endif /* ndef S_ISGID */
2970 if ((x & Mono_Posix_FilePermissions_S_ISUID) == Mono_Posix_FilePermissions_S_ISUID)
2971 #ifdef S_ISUID
2972 *r |= S_ISUID;
2973 #else /* def S_ISUID */
2974 {errno = EINVAL; return -1;}
2975 #endif /* ndef S_ISUID */
2976 if ((x & Mono_Posix_FilePermissions_S_ISVTX) == Mono_Posix_FilePermissions_S_ISVTX)
2977 #ifdef S_ISVTX
2978 *r |= S_ISVTX;
2979 #else /* def S_ISVTX */
2980 {errno = EINVAL; return -1;}
2981 #endif /* ndef S_ISVTX */
2982 if ((x & Mono_Posix_FilePermissions_S_IWGRP) == Mono_Posix_FilePermissions_S_IWGRP)
2983 #ifdef S_IWGRP
2984 *r |= S_IWGRP;
2985 #else /* def S_IWGRP */
2986 {errno = EINVAL; return -1;}
2987 #endif /* ndef S_IWGRP */
2988 if ((x & Mono_Posix_FilePermissions_S_IWOTH) == Mono_Posix_FilePermissions_S_IWOTH)
2989 #ifdef S_IWOTH
2990 *r |= S_IWOTH;
2991 #else /* def S_IWOTH */
2992 {errno = EINVAL; return -1;}
2993 #endif /* ndef S_IWOTH */
2994 if ((x & Mono_Posix_FilePermissions_S_IWUSR) == Mono_Posix_FilePermissions_S_IWUSR)
2995 #ifdef S_IWUSR
2996 *r |= S_IWUSR;
2997 #else /* def S_IWUSR */
2998 {errno = EINVAL; return -1;}
2999 #endif /* ndef S_IWUSR */
3000 if ((x & Mono_Posix_FilePermissions_S_IXGRP) == Mono_Posix_FilePermissions_S_IXGRP)
3001 #ifdef S_IXGRP
3002 *r |= S_IXGRP;
3003 #else /* def S_IXGRP */
3004 {errno = EINVAL; return -1;}
3005 #endif /* ndef S_IXGRP */
3006 if ((x & Mono_Posix_FilePermissions_S_IXOTH) == Mono_Posix_FilePermissions_S_IXOTH)
3007 #ifdef S_IXOTH
3008 *r |= S_IXOTH;
3009 #else /* def S_IXOTH */
3010 {errno = EINVAL; return -1;}
3011 #endif /* ndef S_IXOTH */
3012 if ((x & Mono_Posix_FilePermissions_S_IXUSR) == Mono_Posix_FilePermissions_S_IXUSR)
3013 #ifdef S_IXUSR
3014 *r |= S_IXUSR;
3015 #else /* def S_IXUSR */
3016 {errno = EINVAL; return -1;}
3017 #endif /* ndef S_IXUSR */
3018 if (x == 0)
3019 return 0;
3020 return 0;
3023 int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r)
3025 *r = 0;
3026 if (x == 0)
3027 return 0;
3028 #ifdef ACCESSPERMS
3029 if ((x & ACCESSPERMS) == ACCESSPERMS)
3030 *r |= Mono_Posix_FilePermissions_ACCESSPERMS;
3031 #endif /* ndef ACCESSPERMS */
3032 #ifdef ALLPERMS
3033 if ((x & ALLPERMS) == ALLPERMS)
3034 *r |= Mono_Posix_FilePermissions_ALLPERMS;
3035 #endif /* ndef ALLPERMS */
3036 #ifdef DEFFILEMODE
3037 if ((x & DEFFILEMODE) == DEFFILEMODE)
3038 *r |= Mono_Posix_FilePermissions_DEFFILEMODE;
3039 #endif /* ndef DEFFILEMODE */
3040 #ifdef S_IFBLK
3041 if ((x & S_IFMT) == S_IFBLK)
3042 *r |= Mono_Posix_FilePermissions_S_IFBLK;
3043 #endif /* ndef S_IFBLK */
3044 #ifdef S_IFCHR
3045 if ((x & S_IFMT) == S_IFCHR)
3046 *r |= Mono_Posix_FilePermissions_S_IFCHR;
3047 #endif /* ndef S_IFCHR */
3048 #ifdef S_IFDIR
3049 if ((x & S_IFMT) == S_IFDIR)
3050 *r |= Mono_Posix_FilePermissions_S_IFDIR;
3051 #endif /* ndef S_IFDIR */
3052 #ifdef S_IFIFO
3053 if ((x & S_IFMT) == S_IFIFO)
3054 *r |= Mono_Posix_FilePermissions_S_IFIFO;
3055 #endif /* ndef S_IFIFO */
3056 #ifdef S_IFLNK
3057 if ((x & S_IFMT) == S_IFLNK)
3058 *r |= Mono_Posix_FilePermissions_S_IFLNK;
3059 #endif /* ndef S_IFLNK */
3060 #ifdef S_IFMT
3061 if ((x & S_IFMT) == S_IFMT)
3062 *r |= Mono_Posix_FilePermissions_S_IFMT;
3063 #endif /* ndef S_IFMT */
3064 #ifdef S_IFREG
3065 if ((x & S_IFMT) == S_IFREG)
3066 *r |= Mono_Posix_FilePermissions_S_IFREG;
3067 #endif /* ndef S_IFREG */
3068 #ifdef S_IFSOCK
3069 if ((x & S_IFMT) == S_IFSOCK)
3070 *r |= Mono_Posix_FilePermissions_S_IFSOCK;
3071 #endif /* ndef S_IFSOCK */
3072 #ifdef S_IRGRP
3073 if ((x & S_IRGRP) == S_IRGRP)
3074 *r |= Mono_Posix_FilePermissions_S_IRGRP;
3075 #endif /* ndef S_IRGRP */
3076 #ifdef S_IROTH
3077 if ((x & S_IROTH) == S_IROTH)
3078 *r |= Mono_Posix_FilePermissions_S_IROTH;
3079 #endif /* ndef S_IROTH */
3080 #ifdef S_IRUSR
3081 if ((x & S_IRUSR) == S_IRUSR)
3082 *r |= Mono_Posix_FilePermissions_S_IRUSR;
3083 #endif /* ndef S_IRUSR */
3084 #ifdef S_IRWXG
3085 if ((x & S_IRWXG) == S_IRWXG)
3086 *r |= Mono_Posix_FilePermissions_S_IRWXG;
3087 #endif /* ndef S_IRWXG */
3088 #ifdef S_IRWXO
3089 if ((x & S_IRWXO) == S_IRWXO)
3090 *r |= Mono_Posix_FilePermissions_S_IRWXO;
3091 #endif /* ndef S_IRWXO */
3092 #ifdef S_IRWXU
3093 if ((x & S_IRWXU) == S_IRWXU)
3094 *r |= Mono_Posix_FilePermissions_S_IRWXU;
3095 #endif /* ndef S_IRWXU */
3096 #ifdef S_ISGID
3097 if ((x & S_ISGID) == S_ISGID)
3098 *r |= Mono_Posix_FilePermissions_S_ISGID;
3099 #endif /* ndef S_ISGID */
3100 #ifdef S_ISUID
3101 if ((x & S_ISUID) == S_ISUID)
3102 *r |= Mono_Posix_FilePermissions_S_ISUID;
3103 #endif /* ndef S_ISUID */
3104 #ifdef S_ISVTX
3105 if ((x & S_ISVTX) == S_ISVTX)
3106 *r |= Mono_Posix_FilePermissions_S_ISVTX;
3107 #endif /* ndef S_ISVTX */
3108 #ifdef S_IWGRP
3109 if ((x & S_IWGRP) == S_IWGRP)
3110 *r |= Mono_Posix_FilePermissions_S_IWGRP;
3111 #endif /* ndef S_IWGRP */
3112 #ifdef S_IWOTH
3113 if ((x & S_IWOTH) == S_IWOTH)
3114 *r |= Mono_Posix_FilePermissions_S_IWOTH;
3115 #endif /* ndef S_IWOTH */
3116 #ifdef S_IWUSR
3117 if ((x & S_IWUSR) == S_IWUSR)
3118 *r |= Mono_Posix_FilePermissions_S_IWUSR;
3119 #endif /* ndef S_IWUSR */
3120 #ifdef S_IXGRP
3121 if ((x & S_IXGRP) == S_IXGRP)
3122 *r |= Mono_Posix_FilePermissions_S_IXGRP;
3123 #endif /* ndef S_IXGRP */
3124 #ifdef S_IXOTH
3125 if ((x & S_IXOTH) == S_IXOTH)
3126 *r |= Mono_Posix_FilePermissions_S_IXOTH;
3127 #endif /* ndef S_IXOTH */
3128 #ifdef S_IXUSR
3129 if ((x & S_IXUSR) == S_IXUSR)
3130 *r |= Mono_Posix_FilePermissions_S_IXUSR;
3131 #endif /* ndef S_IXUSR */
3132 return 0;
3135 #ifdef HAVE_STRUCT_FLOCK
3137 Mono_Posix_FromFlock (struct Mono_Posix_Flock *from, struct flock *to)
3139 _cnm_return_val_if_overflow (off_t, from->l_start, -1);
3140 _cnm_return_val_if_overflow (off_t, from->l_len, -1);
3141 _cnm_return_val_if_overflow (pid_t, from->l_pid, -1);
3143 memset (to, 0, sizeof(*to));
3145 if (Mono_Posix_FromLockType (from->l_type, &to->l_type) != 0) {
3146 return -1;
3148 if (Mono_Posix_FromSeekFlags (from->l_whence, &to->l_whence) != 0) {
3149 return -1;
3151 to->l_start = from->l_start;
3152 to->l_len = from->l_len;
3153 to->l_pid = from->l_pid;
3155 return 0;
3157 #endif /* ndef HAVE_STRUCT_FLOCK */
3160 #ifdef HAVE_STRUCT_FLOCK
3162 Mono_Posix_ToFlock (struct flock *from, struct Mono_Posix_Flock *to)
3164 _cnm_return_val_if_overflow (gint64, from->l_start, -1);
3165 _cnm_return_val_if_overflow (gint64, from->l_len, -1);
3166 _cnm_return_val_if_overflow (int, from->l_pid, -1);
3168 memset (to, 0, sizeof(*to));
3170 if (Mono_Posix_ToLockType (from->l_type, &to->l_type) != 0) {
3171 return -1;
3173 if (Mono_Posix_ToSeekFlags (from->l_whence, &to->l_whence) != 0) {
3174 return -1;
3176 to->l_start = from->l_start;
3177 to->l_len = from->l_len;
3178 to->l_pid = from->l_pid;
3180 return 0;
3182 #endif /* ndef HAVE_STRUCT_FLOCK */
3185 #ifdef HAVE_STRUCT_IOVEC
3187 Mono_Posix_FromIovec (struct Mono_Posix_Iovec *from, struct iovec *to)
3189 _cnm_return_val_if_overflow (guint64, from->iov_len, -1);
3191 memset (to, 0, sizeof(*to));
3193 to->iov_base = from->iov_base;
3194 to->iov_len = from->iov_len;
3196 return 0;
3198 #endif /* ndef HAVE_STRUCT_IOVEC */
3201 #ifdef HAVE_STRUCT_IOVEC
3203 Mono_Posix_ToIovec (struct iovec *from, struct Mono_Posix_Iovec *to)
3205 _cnm_return_val_if_overflow (guint64, from->iov_len, -1);
3207 memset (to, 0, sizeof(*to));
3209 to->iov_base = from->iov_base;
3210 to->iov_len = from->iov_len;
3212 return 0;
3214 #endif /* ndef HAVE_STRUCT_IOVEC */
3217 #ifdef HAVE_STRUCT_LINGER
3219 Mono_Posix_FromLinger (struct Mono_Posix_Linger *from, struct linger *to)
3221 _cnm_return_val_if_overflow (int, from->l_onoff, -1);
3222 _cnm_return_val_if_overflow (int, from->l_linger, -1);
3224 memset (to, 0, sizeof(*to));
3226 to->l_onoff = from->l_onoff;
3227 to->l_linger = from->l_linger;
3229 return 0;
3231 #endif /* ndef HAVE_STRUCT_LINGER */
3234 #ifdef HAVE_STRUCT_LINGER
3236 Mono_Posix_ToLinger (struct linger *from, struct Mono_Posix_Linger *to)
3238 _cnm_return_val_if_overflow (int, from->l_onoff, -1);
3239 _cnm_return_val_if_overflow (int, from->l_linger, -1);
3241 memset (to, 0, sizeof(*to));
3243 to->l_onoff = from->l_onoff;
3244 to->l_linger = from->l_linger;
3246 return 0;
3248 #endif /* ndef HAVE_STRUCT_LINGER */
3251 int Mono_Posix_FromLockType (short x, short *r)
3253 *r = 0;
3254 if (x == Mono_Posix_LockType_F_RDLCK)
3255 #ifdef F_RDLCK
3256 {*r = F_RDLCK; return 0;}
3257 #else /* def F_RDLCK */
3258 {errno = EINVAL; return -1;}
3259 #endif /* ndef F_RDLCK */
3260 if (x == Mono_Posix_LockType_F_UNLCK)
3261 #ifdef F_UNLCK
3262 {*r = F_UNLCK; return 0;}
3263 #else /* def F_UNLCK */
3264 {errno = EINVAL; return -1;}
3265 #endif /* ndef F_UNLCK */
3266 if (x == Mono_Posix_LockType_F_WRLCK)
3267 #ifdef F_WRLCK
3268 {*r = F_WRLCK; return 0;}
3269 #else /* def F_WRLCK */
3270 {errno = EINVAL; return -1;}
3271 #endif /* ndef F_WRLCK */
3272 if (x == 0)
3273 return 0;
3274 errno = EINVAL; return -1;
3277 int Mono_Posix_ToLockType (short x, short *r)
3279 *r = 0;
3280 if (x == 0)
3281 return 0;
3282 #ifdef F_RDLCK
3283 if (x == F_RDLCK)
3284 {*r = Mono_Posix_LockType_F_RDLCK; return 0;}
3285 #endif /* ndef F_RDLCK */
3286 #ifdef F_UNLCK
3287 if (x == F_UNLCK)
3288 {*r = Mono_Posix_LockType_F_UNLCK; return 0;}
3289 #endif /* ndef F_UNLCK */
3290 #ifdef F_WRLCK
3291 if (x == F_WRLCK)
3292 {*r = Mono_Posix_LockType_F_WRLCK; return 0;}
3293 #endif /* ndef F_WRLCK */
3294 errno = EINVAL; return -1;
3297 int Mono_Posix_FromLockfCommand (int x, int *r)
3299 *r = 0;
3300 if (x == Mono_Posix_LockfCommand_F_LOCK)
3301 #ifdef F_LOCK
3302 {*r = F_LOCK; return 0;}
3303 #else /* def F_LOCK */
3304 {errno = EINVAL; return -1;}
3305 #endif /* ndef F_LOCK */
3306 if (x == Mono_Posix_LockfCommand_F_TEST)
3307 #ifdef F_TEST
3308 {*r = F_TEST; return 0;}
3309 #else /* def F_TEST */
3310 {errno = EINVAL; return -1;}
3311 #endif /* ndef F_TEST */
3312 if (x == Mono_Posix_LockfCommand_F_TLOCK)
3313 #ifdef F_TLOCK
3314 {*r = F_TLOCK; return 0;}
3315 #else /* def F_TLOCK */
3316 {errno = EINVAL; return -1;}
3317 #endif /* ndef F_TLOCK */
3318 if (x == Mono_Posix_LockfCommand_F_ULOCK)
3319 #ifdef F_ULOCK
3320 {*r = F_ULOCK; return 0;}
3321 #else /* def F_ULOCK */
3322 {errno = EINVAL; return -1;}
3323 #endif /* ndef F_ULOCK */
3324 if (x == 0)
3325 return 0;
3326 errno = EINVAL; return -1;
3329 int Mono_Posix_ToLockfCommand (int x, int *r)
3331 *r = 0;
3332 if (x == 0)
3333 return 0;
3334 #ifdef F_LOCK
3335 if (x == F_LOCK)
3336 {*r = Mono_Posix_LockfCommand_F_LOCK; return 0;}
3337 #endif /* ndef F_LOCK */
3338 #ifdef F_TEST
3339 if (x == F_TEST)
3340 {*r = Mono_Posix_LockfCommand_F_TEST; return 0;}
3341 #endif /* ndef F_TEST */
3342 #ifdef F_TLOCK
3343 if (x == F_TLOCK)
3344 {*r = Mono_Posix_LockfCommand_F_TLOCK; return 0;}
3345 #endif /* ndef F_TLOCK */
3346 #ifdef F_ULOCK
3347 if (x == F_ULOCK)
3348 {*r = Mono_Posix_LockfCommand_F_ULOCK; return 0;}
3349 #endif /* ndef F_ULOCK */
3350 errno = EINVAL; return -1;
3353 int Mono_Posix_FromMemfdFlags (unsigned int x, unsigned int *r)
3355 *r = 0;
3356 if ((x & Mono_Posix_MemfdFlags_MFD_ALLOW_SEALING) == Mono_Posix_MemfdFlags_MFD_ALLOW_SEALING)
3357 #ifdef MFD_ALLOW_SEALING
3358 *r |= MFD_ALLOW_SEALING;
3359 #else /* def MFD_ALLOW_SEALING */
3360 {errno = EINVAL; return -1;}
3361 #endif /* ndef MFD_ALLOW_SEALING */
3362 if ((x & Mono_Posix_MemfdFlags_MFD_CLOEXEC) == Mono_Posix_MemfdFlags_MFD_CLOEXEC)
3363 #ifdef MFD_CLOEXEC
3364 *r |= MFD_CLOEXEC;
3365 #else /* def MFD_CLOEXEC */
3366 {errno = EINVAL; return -1;}
3367 #endif /* ndef MFD_CLOEXEC */
3368 if ((x & Mono_Posix_MemfdFlags_MFD_HUGETLB) == Mono_Posix_MemfdFlags_MFD_HUGETLB)
3369 #ifdef MFD_HUGETLB
3370 *r |= MFD_HUGETLB;
3371 #else /* def MFD_HUGETLB */
3372 {errno = EINVAL; return -1;}
3373 #endif /* ndef MFD_HUGETLB */
3374 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_16GB) == Mono_Posix_MemfdFlags_MFD_HUGE_16GB)
3375 #ifdef MFD_HUGE_16GB
3376 *r |= MFD_HUGE_16GB;
3377 #else /* def MFD_HUGE_16GB */
3378 {errno = EINVAL; return -1;}
3379 #endif /* ndef MFD_HUGE_16GB */
3380 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_16MB) == Mono_Posix_MemfdFlags_MFD_HUGE_16MB)
3381 #ifdef MFD_HUGE_16MB
3382 *r |= MFD_HUGE_16MB;
3383 #else /* def MFD_HUGE_16MB */
3384 {errno = EINVAL; return -1;}
3385 #endif /* ndef MFD_HUGE_16MB */
3386 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_1GB) == Mono_Posix_MemfdFlags_MFD_HUGE_1GB)
3387 #ifdef MFD_HUGE_1GB
3388 *r |= MFD_HUGE_1GB;
3389 #else /* def MFD_HUGE_1GB */
3390 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_1GB, as it is constructed from other values */}
3391 #endif /* ndef MFD_HUGE_1GB */
3392 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_1MB) == Mono_Posix_MemfdFlags_MFD_HUGE_1MB)
3393 #ifdef MFD_HUGE_1MB
3394 *r |= MFD_HUGE_1MB;
3395 #else /* def MFD_HUGE_1MB */
3396 {errno = EINVAL; return -1;}
3397 #endif /* ndef MFD_HUGE_1MB */
3398 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_256MB) == Mono_Posix_MemfdFlags_MFD_HUGE_256MB)
3399 #ifdef MFD_HUGE_256MB
3400 *r |= MFD_HUGE_256MB;
3401 #else /* def MFD_HUGE_256MB */
3402 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_256MB, as it is constructed from other values */}
3403 #endif /* ndef MFD_HUGE_256MB */
3404 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_2GB) == Mono_Posix_MemfdFlags_MFD_HUGE_2GB)
3405 #ifdef MFD_HUGE_2GB
3406 *r |= MFD_HUGE_2GB;
3407 #else /* def MFD_HUGE_2GB */
3408 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_2GB, as it is constructed from other values */}
3409 #endif /* ndef MFD_HUGE_2GB */
3410 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_2MB) == Mono_Posix_MemfdFlags_MFD_HUGE_2MB)
3411 #ifdef MFD_HUGE_2MB
3412 *r |= MFD_HUGE_2MB;
3413 #else /* def MFD_HUGE_2MB */
3414 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_2MB, as it is constructed from other values */}
3415 #endif /* ndef MFD_HUGE_2MB */
3416 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_32MB) == Mono_Posix_MemfdFlags_MFD_HUGE_32MB)
3417 #ifdef MFD_HUGE_32MB
3418 *r |= MFD_HUGE_32MB;
3419 #else /* def MFD_HUGE_32MB */
3420 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_32MB, as it is constructed from other values */}
3421 #endif /* ndef MFD_HUGE_32MB */
3422 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_512KB) == Mono_Posix_MemfdFlags_MFD_HUGE_512KB)
3423 #ifdef MFD_HUGE_512KB
3424 *r |= MFD_HUGE_512KB;
3425 #else /* def MFD_HUGE_512KB */
3426 {errno = EINVAL; return -1;}
3427 #endif /* ndef MFD_HUGE_512KB */
3428 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_512MB) == Mono_Posix_MemfdFlags_MFD_HUGE_512MB)
3429 #ifdef MFD_HUGE_512MB
3430 *r |= MFD_HUGE_512MB;
3431 #else /* def MFD_HUGE_512MB */
3432 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_512MB, as it is constructed from other values */}
3433 #endif /* ndef MFD_HUGE_512MB */
3434 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_64KB) == Mono_Posix_MemfdFlags_MFD_HUGE_64KB)
3435 #ifdef MFD_HUGE_64KB
3436 *r |= MFD_HUGE_64KB;
3437 #else /* def MFD_HUGE_64KB */
3438 {errno = EINVAL; return -1;}
3439 #endif /* ndef MFD_HUGE_64KB */
3440 if ((x & Mono_Posix_MemfdFlags_MFD_HUGE_8MB) == Mono_Posix_MemfdFlags_MFD_HUGE_8MB)
3441 #ifdef MFD_HUGE_8MB
3442 *r |= MFD_HUGE_8MB;
3443 #else /* def MFD_HUGE_8MB */
3444 {/* Ignoring Mono_Posix_MemfdFlags_MFD_HUGE_8MB, as it is constructed from other values */}
3445 #endif /* ndef MFD_HUGE_8MB */
3446 if (x == 0)
3447 return 0;
3448 return 0;
3451 int Mono_Posix_ToMemfdFlags (unsigned int x, unsigned int *r)
3453 *r = 0;
3454 if (x == 0)
3455 return 0;
3456 #ifdef MFD_ALLOW_SEALING
3457 if ((x & MFD_ALLOW_SEALING) == MFD_ALLOW_SEALING)
3458 *r |= Mono_Posix_MemfdFlags_MFD_ALLOW_SEALING;
3459 #endif /* ndef MFD_ALLOW_SEALING */
3460 #ifdef MFD_CLOEXEC
3461 if ((x & MFD_CLOEXEC) == MFD_CLOEXEC)
3462 *r |= Mono_Posix_MemfdFlags_MFD_CLOEXEC;
3463 #endif /* ndef MFD_CLOEXEC */
3464 #ifdef MFD_HUGETLB
3465 if ((x & MFD_HUGETLB) == MFD_HUGETLB)
3466 *r |= Mono_Posix_MemfdFlags_MFD_HUGETLB;
3467 #endif /* ndef MFD_HUGETLB */
3468 #ifdef MFD_HUGE_16GB
3469 if ((x & MFD_HUGE_16GB) == MFD_HUGE_16GB)
3470 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_16GB;
3471 #endif /* ndef MFD_HUGE_16GB */
3472 #ifdef MFD_HUGE_16MB
3473 if ((x & MFD_HUGE_16MB) == MFD_HUGE_16MB)
3474 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_16MB;
3475 #endif /* ndef MFD_HUGE_16MB */
3476 #ifdef MFD_HUGE_1GB
3477 if ((x & MFD_HUGE_1GB) == MFD_HUGE_1GB)
3478 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_1GB;
3479 #endif /* ndef MFD_HUGE_1GB */
3480 #ifdef MFD_HUGE_1MB
3481 if ((x & MFD_HUGE_1MB) == MFD_HUGE_1MB)
3482 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_1MB;
3483 #endif /* ndef MFD_HUGE_1MB */
3484 #ifdef MFD_HUGE_256MB
3485 if ((x & MFD_HUGE_256MB) == MFD_HUGE_256MB)
3486 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_256MB;
3487 #endif /* ndef MFD_HUGE_256MB */
3488 #ifdef MFD_HUGE_2GB
3489 if ((x & MFD_HUGE_2GB) == MFD_HUGE_2GB)
3490 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_2GB;
3491 #endif /* ndef MFD_HUGE_2GB */
3492 #ifdef MFD_HUGE_2MB
3493 if ((x & MFD_HUGE_2MB) == MFD_HUGE_2MB)
3494 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_2MB;
3495 #endif /* ndef MFD_HUGE_2MB */
3496 #ifdef MFD_HUGE_32MB
3497 if ((x & MFD_HUGE_32MB) == MFD_HUGE_32MB)
3498 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_32MB;
3499 #endif /* ndef MFD_HUGE_32MB */
3500 #ifdef MFD_HUGE_512KB
3501 if ((x & MFD_HUGE_512KB) == MFD_HUGE_512KB)
3502 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_512KB;
3503 #endif /* ndef MFD_HUGE_512KB */
3504 #ifdef MFD_HUGE_512MB
3505 if ((x & MFD_HUGE_512MB) == MFD_HUGE_512MB)
3506 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_512MB;
3507 #endif /* ndef MFD_HUGE_512MB */
3508 #ifdef MFD_HUGE_64KB
3509 if ((x & MFD_HUGE_64KB) == MFD_HUGE_64KB)
3510 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_64KB;
3511 #endif /* ndef MFD_HUGE_64KB */
3512 #ifdef MFD_HUGE_8MB
3513 if ((x & MFD_HUGE_8MB) == MFD_HUGE_8MB)
3514 *r |= Mono_Posix_MemfdFlags_MFD_HUGE_8MB;
3515 #endif /* ndef MFD_HUGE_8MB */
3516 return 0;
3519 int Mono_Posix_FromMessageFlags (int x, int *r)
3521 *r = 0;
3522 if ((x & Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC) == Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC)
3523 #ifdef MSG_CMSG_CLOEXEC
3524 *r |= MSG_CMSG_CLOEXEC;
3525 #else /* def MSG_CMSG_CLOEXEC */
3526 {errno = EINVAL; return -1;}
3527 #endif /* ndef MSG_CMSG_CLOEXEC */
3528 if ((x & Mono_Posix_MessageFlags_MSG_CONFIRM) == Mono_Posix_MessageFlags_MSG_CONFIRM)
3529 #ifdef MSG_CONFIRM
3530 *r |= MSG_CONFIRM;
3531 #else /* def MSG_CONFIRM */
3532 {errno = EINVAL; return -1;}
3533 #endif /* ndef MSG_CONFIRM */
3534 if ((x & Mono_Posix_MessageFlags_MSG_CTRUNC) == Mono_Posix_MessageFlags_MSG_CTRUNC)
3535 #ifdef MSG_CTRUNC
3536 *r |= MSG_CTRUNC;
3537 #else /* def MSG_CTRUNC */
3538 {errno = EINVAL; return -1;}
3539 #endif /* ndef MSG_CTRUNC */
3540 if ((x & Mono_Posix_MessageFlags_MSG_DONTROUTE) == Mono_Posix_MessageFlags_MSG_DONTROUTE)
3541 #ifdef MSG_DONTROUTE
3542 *r |= MSG_DONTROUTE;
3543 #else /* def MSG_DONTROUTE */
3544 {errno = EINVAL; return -1;}
3545 #endif /* ndef MSG_DONTROUTE */
3546 if ((x & Mono_Posix_MessageFlags_MSG_DONTWAIT) == Mono_Posix_MessageFlags_MSG_DONTWAIT)
3547 #ifdef MSG_DONTWAIT
3548 *r |= MSG_DONTWAIT;
3549 #else /* def MSG_DONTWAIT */
3550 {errno = EINVAL; return -1;}
3551 #endif /* ndef MSG_DONTWAIT */
3552 if ((x & Mono_Posix_MessageFlags_MSG_EOR) == Mono_Posix_MessageFlags_MSG_EOR)
3553 #ifdef MSG_EOR
3554 *r |= MSG_EOR;
3555 #else /* def MSG_EOR */
3556 {errno = EINVAL; return -1;}
3557 #endif /* ndef MSG_EOR */
3558 if ((x & Mono_Posix_MessageFlags_MSG_ERRQUEUE) == Mono_Posix_MessageFlags_MSG_ERRQUEUE)
3559 #ifdef MSG_ERRQUEUE
3560 *r |= MSG_ERRQUEUE;
3561 #else /* def MSG_ERRQUEUE */
3562 {errno = EINVAL; return -1;}
3563 #endif /* ndef MSG_ERRQUEUE */
3564 if ((x & Mono_Posix_MessageFlags_MSG_FASTOPEN) == Mono_Posix_MessageFlags_MSG_FASTOPEN)
3565 #ifdef MSG_FASTOPEN
3566 *r |= MSG_FASTOPEN;
3567 #else /* def MSG_FASTOPEN */
3568 {errno = EINVAL; return -1;}
3569 #endif /* ndef MSG_FASTOPEN */
3570 if ((x & Mono_Posix_MessageFlags_MSG_FIN) == Mono_Posix_MessageFlags_MSG_FIN)
3571 #ifdef MSG_FIN
3572 *r |= MSG_FIN;
3573 #else /* def MSG_FIN */
3574 {errno = EINVAL; return -1;}
3575 #endif /* ndef MSG_FIN */
3576 if ((x & Mono_Posix_MessageFlags_MSG_MORE) == Mono_Posix_MessageFlags_MSG_MORE)
3577 #ifdef MSG_MORE
3578 *r |= MSG_MORE;
3579 #else /* def MSG_MORE */
3580 {errno = EINVAL; return -1;}
3581 #endif /* ndef MSG_MORE */
3582 if ((x & Mono_Posix_MessageFlags_MSG_NOSIGNAL) == Mono_Posix_MessageFlags_MSG_NOSIGNAL)
3583 #ifdef MSG_NOSIGNAL
3584 *r |= MSG_NOSIGNAL;
3585 #else /* def MSG_NOSIGNAL */
3586 {errno = EINVAL; return -1;}
3587 #endif /* ndef MSG_NOSIGNAL */
3588 if ((x & Mono_Posix_MessageFlags_MSG_OOB) == Mono_Posix_MessageFlags_MSG_OOB)
3589 #ifdef MSG_OOB
3590 *r |= MSG_OOB;
3591 #else /* def MSG_OOB */
3592 {errno = EINVAL; return -1;}
3593 #endif /* ndef MSG_OOB */
3594 if ((x & Mono_Posix_MessageFlags_MSG_PEEK) == Mono_Posix_MessageFlags_MSG_PEEK)
3595 #ifdef MSG_PEEK
3596 *r |= MSG_PEEK;
3597 #else /* def MSG_PEEK */
3598 {errno = EINVAL; return -1;}
3599 #endif /* ndef MSG_PEEK */
3600 if ((x & Mono_Posix_MessageFlags_MSG_PROXY) == Mono_Posix_MessageFlags_MSG_PROXY)
3601 #ifdef MSG_PROXY
3602 *r |= MSG_PROXY;
3603 #else /* def MSG_PROXY */
3604 {errno = EINVAL; return -1;}
3605 #endif /* ndef MSG_PROXY */
3606 if ((x & Mono_Posix_MessageFlags_MSG_RST) == Mono_Posix_MessageFlags_MSG_RST)
3607 #ifdef MSG_RST
3608 *r |= MSG_RST;
3609 #else /* def MSG_RST */
3610 {errno = EINVAL; return -1;}
3611 #endif /* ndef MSG_RST */
3612 if ((x & Mono_Posix_MessageFlags_MSG_SYN) == Mono_Posix_MessageFlags_MSG_SYN)
3613 #ifdef MSG_SYN
3614 *r |= MSG_SYN;
3615 #else /* def MSG_SYN */
3616 {errno = EINVAL; return -1;}
3617 #endif /* ndef MSG_SYN */
3618 if ((x & Mono_Posix_MessageFlags_MSG_TRUNC) == Mono_Posix_MessageFlags_MSG_TRUNC)
3619 #ifdef MSG_TRUNC
3620 *r |= MSG_TRUNC;
3621 #else /* def MSG_TRUNC */
3622 {errno = EINVAL; return -1;}
3623 #endif /* ndef MSG_TRUNC */
3624 if ((x & Mono_Posix_MessageFlags_MSG_WAITALL) == Mono_Posix_MessageFlags_MSG_WAITALL)
3625 #ifdef MSG_WAITALL
3626 *r |= MSG_WAITALL;
3627 #else /* def MSG_WAITALL */
3628 {errno = EINVAL; return -1;}
3629 #endif /* ndef MSG_WAITALL */
3630 if ((x & Mono_Posix_MessageFlags_MSG_WAITFORONE) == Mono_Posix_MessageFlags_MSG_WAITFORONE)
3631 #ifdef MSG_WAITFORONE
3632 *r |= MSG_WAITFORONE;
3633 #else /* def MSG_WAITFORONE */
3634 {errno = EINVAL; return -1;}
3635 #endif /* ndef MSG_WAITFORONE */
3636 if (x == 0)
3637 return 0;
3638 return 0;
3641 int Mono_Posix_ToMessageFlags (int x, int *r)
3643 *r = 0;
3644 if (x == 0)
3645 return 0;
3646 #ifdef MSG_CMSG_CLOEXEC
3647 if ((x & MSG_CMSG_CLOEXEC) == MSG_CMSG_CLOEXEC)
3648 *r |= Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC;
3649 #endif /* ndef MSG_CMSG_CLOEXEC */
3650 #ifdef MSG_CONFIRM
3651 if ((x & MSG_CONFIRM) == MSG_CONFIRM)
3652 *r |= Mono_Posix_MessageFlags_MSG_CONFIRM;
3653 #endif /* ndef MSG_CONFIRM */
3654 #ifdef MSG_CTRUNC
3655 if ((x & MSG_CTRUNC) == MSG_CTRUNC)
3656 *r |= Mono_Posix_MessageFlags_MSG_CTRUNC;
3657 #endif /* ndef MSG_CTRUNC */
3658 #ifdef MSG_DONTROUTE
3659 if ((x & MSG_DONTROUTE) == MSG_DONTROUTE)
3660 *r |= Mono_Posix_MessageFlags_MSG_DONTROUTE;
3661 #endif /* ndef MSG_DONTROUTE */
3662 #ifdef MSG_DONTWAIT
3663 if ((x & MSG_DONTWAIT) == MSG_DONTWAIT)
3664 *r |= Mono_Posix_MessageFlags_MSG_DONTWAIT;
3665 #endif /* ndef MSG_DONTWAIT */
3666 #ifdef MSG_EOR
3667 if ((x & MSG_EOR) == MSG_EOR)
3668 *r |= Mono_Posix_MessageFlags_MSG_EOR;
3669 #endif /* ndef MSG_EOR */
3670 #ifdef MSG_ERRQUEUE
3671 if ((x & MSG_ERRQUEUE) == MSG_ERRQUEUE)
3672 *r |= Mono_Posix_MessageFlags_MSG_ERRQUEUE;
3673 #endif /* ndef MSG_ERRQUEUE */
3674 #ifdef MSG_FASTOPEN
3675 if ((x & MSG_FASTOPEN) == MSG_FASTOPEN)
3676 *r |= Mono_Posix_MessageFlags_MSG_FASTOPEN;
3677 #endif /* ndef MSG_FASTOPEN */
3678 #ifdef MSG_FIN
3679 if ((x & MSG_FIN) == MSG_FIN)
3680 *r |= Mono_Posix_MessageFlags_MSG_FIN;
3681 #endif /* ndef MSG_FIN */
3682 #ifdef MSG_MORE
3683 if ((x & MSG_MORE) == MSG_MORE)
3684 *r |= Mono_Posix_MessageFlags_MSG_MORE;
3685 #endif /* ndef MSG_MORE */
3686 #ifdef MSG_NOSIGNAL
3687 if ((x & MSG_NOSIGNAL) == MSG_NOSIGNAL)
3688 *r |= Mono_Posix_MessageFlags_MSG_NOSIGNAL;
3689 #endif /* ndef MSG_NOSIGNAL */
3690 #ifdef MSG_OOB
3691 if ((x & MSG_OOB) == MSG_OOB)
3692 *r |= Mono_Posix_MessageFlags_MSG_OOB;
3693 #endif /* ndef MSG_OOB */
3694 #ifdef MSG_PEEK
3695 if ((x & MSG_PEEK) == MSG_PEEK)
3696 *r |= Mono_Posix_MessageFlags_MSG_PEEK;
3697 #endif /* ndef MSG_PEEK */
3698 #ifdef MSG_PROXY
3699 if ((x & MSG_PROXY) == MSG_PROXY)
3700 *r |= Mono_Posix_MessageFlags_MSG_PROXY;
3701 #endif /* ndef MSG_PROXY */
3702 #ifdef MSG_RST
3703 if ((x & MSG_RST) == MSG_RST)
3704 *r |= Mono_Posix_MessageFlags_MSG_RST;
3705 #endif /* ndef MSG_RST */
3706 #ifdef MSG_SYN
3707 if ((x & MSG_SYN) == MSG_SYN)
3708 *r |= Mono_Posix_MessageFlags_MSG_SYN;
3709 #endif /* ndef MSG_SYN */
3710 #ifdef MSG_TRUNC
3711 if ((x & MSG_TRUNC) == MSG_TRUNC)
3712 *r |= Mono_Posix_MessageFlags_MSG_TRUNC;
3713 #endif /* ndef MSG_TRUNC */
3714 #ifdef MSG_WAITALL
3715 if ((x & MSG_WAITALL) == MSG_WAITALL)
3716 *r |= Mono_Posix_MessageFlags_MSG_WAITALL;
3717 #endif /* ndef MSG_WAITALL */
3718 #ifdef MSG_WAITFORONE
3719 if ((x & MSG_WAITFORONE) == MSG_WAITFORONE)
3720 *r |= Mono_Posix_MessageFlags_MSG_WAITFORONE;
3721 #endif /* ndef MSG_WAITFORONE */
3722 return 0;
3725 int Mono_Posix_FromMlockallFlags (int x, int *r)
3727 *r = 0;
3728 if ((x & Mono_Posix_MlockallFlags_MCL_CURRENT) == Mono_Posix_MlockallFlags_MCL_CURRENT)
3729 #ifdef MCL_CURRENT
3730 *r |= MCL_CURRENT;
3731 #else /* def MCL_CURRENT */
3732 {errno = EINVAL; return -1;}
3733 #endif /* ndef MCL_CURRENT */
3734 if ((x & Mono_Posix_MlockallFlags_MCL_FUTURE) == Mono_Posix_MlockallFlags_MCL_FUTURE)
3735 #ifdef MCL_FUTURE
3736 *r |= MCL_FUTURE;
3737 #else /* def MCL_FUTURE */
3738 {errno = EINVAL; return -1;}
3739 #endif /* ndef MCL_FUTURE */
3740 if (x == 0)
3741 return 0;
3742 return 0;
3745 int Mono_Posix_ToMlockallFlags (int x, int *r)
3747 *r = 0;
3748 if (x == 0)
3749 return 0;
3750 #ifdef MCL_CURRENT
3751 if ((x & MCL_CURRENT) == MCL_CURRENT)
3752 *r |= Mono_Posix_MlockallFlags_MCL_CURRENT;
3753 #endif /* ndef MCL_CURRENT */
3754 #ifdef MCL_FUTURE
3755 if ((x & MCL_FUTURE) == MCL_FUTURE)
3756 *r |= Mono_Posix_MlockallFlags_MCL_FUTURE;
3757 #endif /* ndef MCL_FUTURE */
3758 return 0;
3761 int Mono_Posix_FromMmapFlags (int x, int *r)
3763 *r = 0;
3764 if ((x & Mono_Posix_MmapFlags_MAP_ANON) == Mono_Posix_MmapFlags_MAP_ANON)
3765 #ifdef MAP_ANON
3766 *r |= MAP_ANON;
3767 #else /* def MAP_ANON */
3768 {errno = EINVAL; return -1;}
3769 #endif /* ndef MAP_ANON */
3770 if ((x & Mono_Posix_MmapFlags_MAP_ANONYMOUS) == Mono_Posix_MmapFlags_MAP_ANONYMOUS)
3771 #ifdef MAP_ANONYMOUS
3772 *r |= MAP_ANONYMOUS;
3773 #else /* def MAP_ANONYMOUS */
3774 {errno = EINVAL; return -1;}
3775 #endif /* ndef MAP_ANONYMOUS */
3776 if ((x & Mono_Posix_MmapFlags_MAP_DENYWRITE) == Mono_Posix_MmapFlags_MAP_DENYWRITE)
3777 #ifdef MAP_DENYWRITE
3778 *r |= MAP_DENYWRITE;
3779 #else /* def MAP_DENYWRITE */
3780 {errno = EINVAL; return -1;}
3781 #endif /* ndef MAP_DENYWRITE */
3782 if ((x & Mono_Posix_MmapFlags_MAP_EXECUTABLE) == Mono_Posix_MmapFlags_MAP_EXECUTABLE)
3783 #ifdef MAP_EXECUTABLE
3784 *r |= MAP_EXECUTABLE;
3785 #else /* def MAP_EXECUTABLE */
3786 {errno = EINVAL; return -1;}
3787 #endif /* ndef MAP_EXECUTABLE */
3788 if ((x & Mono_Posix_MmapFlags_MAP_FILE) == Mono_Posix_MmapFlags_MAP_FILE)
3789 #ifdef MAP_FILE
3790 *r |= MAP_FILE;
3791 #else /* def MAP_FILE */
3792 {errno = EINVAL; return -1;}
3793 #endif /* ndef MAP_FILE */
3794 if ((x & Mono_Posix_MmapFlags_MAP_FIXED) == Mono_Posix_MmapFlags_MAP_FIXED)
3795 #ifdef MAP_FIXED
3796 *r |= MAP_FIXED;
3797 #else /* def MAP_FIXED */
3798 {errno = EINVAL; return -1;}
3799 #endif /* ndef MAP_FIXED */
3800 if ((x & Mono_Posix_MmapFlags_MAP_GROWSDOWN) == Mono_Posix_MmapFlags_MAP_GROWSDOWN)
3801 #ifdef MAP_GROWSDOWN
3802 *r |= MAP_GROWSDOWN;
3803 #else /* def MAP_GROWSDOWN */
3804 {errno = EINVAL; return -1;}
3805 #endif /* ndef MAP_GROWSDOWN */
3806 if ((x & Mono_Posix_MmapFlags_MAP_LOCKED) == Mono_Posix_MmapFlags_MAP_LOCKED)
3807 #ifdef MAP_LOCKED
3808 *r |= MAP_LOCKED;
3809 #else /* def MAP_LOCKED */
3810 {errno = EINVAL; return -1;}
3811 #endif /* ndef MAP_LOCKED */
3812 if ((x & Mono_Posix_MmapFlags_MAP_NONBLOCK) == Mono_Posix_MmapFlags_MAP_NONBLOCK)
3813 #ifdef MAP_NONBLOCK
3814 *r |= MAP_NONBLOCK;
3815 #else /* def MAP_NONBLOCK */
3816 {errno = EINVAL; return -1;}
3817 #endif /* ndef MAP_NONBLOCK */
3818 if ((x & Mono_Posix_MmapFlags_MAP_NORESERVE) == Mono_Posix_MmapFlags_MAP_NORESERVE)
3819 #ifdef MAP_NORESERVE
3820 *r |= MAP_NORESERVE;
3821 #else /* def MAP_NORESERVE */
3822 {errno = EINVAL; return -1;}
3823 #endif /* ndef MAP_NORESERVE */
3824 if ((x & Mono_Posix_MmapFlags_MAP_POPULATE) == Mono_Posix_MmapFlags_MAP_POPULATE)
3825 #ifdef MAP_POPULATE
3826 *r |= MAP_POPULATE;
3827 #else /* def MAP_POPULATE */
3828 {errno = EINVAL; return -1;}
3829 #endif /* ndef MAP_POPULATE */
3830 if ((x & Mono_Posix_MmapFlags_MAP_PRIVATE) == Mono_Posix_MmapFlags_MAP_PRIVATE)
3831 #ifdef MAP_PRIVATE
3832 *r |= MAP_PRIVATE;
3833 #else /* def MAP_PRIVATE */
3834 {errno = EINVAL; return -1;}
3835 #endif /* ndef MAP_PRIVATE */
3836 if ((x & Mono_Posix_MmapFlags_MAP_SHARED) == Mono_Posix_MmapFlags_MAP_SHARED)
3837 #ifdef MAP_SHARED
3838 *r |= MAP_SHARED;
3839 #else /* def MAP_SHARED */
3840 {errno = EINVAL; return -1;}
3841 #endif /* ndef MAP_SHARED */
3842 if ((x & Mono_Posix_MmapFlags_MAP_TYPE) == Mono_Posix_MmapFlags_MAP_TYPE)
3843 #ifdef MAP_TYPE
3844 *r |= MAP_TYPE;
3845 #else /* def MAP_TYPE */
3846 {errno = EINVAL; return -1;}
3847 #endif /* ndef MAP_TYPE */
3848 if (x == 0)
3849 return 0;
3850 return 0;
3853 int Mono_Posix_ToMmapFlags (int x, int *r)
3855 *r = 0;
3856 if (x == 0)
3857 return 0;
3858 #ifdef MAP_ANON
3859 if ((x & MAP_ANON) == MAP_ANON)
3860 *r |= Mono_Posix_MmapFlags_MAP_ANON;
3861 #endif /* ndef MAP_ANON */
3862 #ifdef MAP_ANONYMOUS
3863 if ((x & MAP_ANONYMOUS) == MAP_ANONYMOUS)
3864 *r |= Mono_Posix_MmapFlags_MAP_ANONYMOUS;
3865 #endif /* ndef MAP_ANONYMOUS */
3866 #ifdef MAP_DENYWRITE
3867 if ((x & MAP_DENYWRITE) == MAP_DENYWRITE)
3868 *r |= Mono_Posix_MmapFlags_MAP_DENYWRITE;
3869 #endif /* ndef MAP_DENYWRITE */
3870 #ifdef MAP_EXECUTABLE
3871 if ((x & MAP_EXECUTABLE) == MAP_EXECUTABLE)
3872 *r |= Mono_Posix_MmapFlags_MAP_EXECUTABLE;
3873 #endif /* ndef MAP_EXECUTABLE */
3874 #ifdef MAP_FILE
3875 if ((x & MAP_FILE) == MAP_FILE)
3876 *r |= Mono_Posix_MmapFlags_MAP_FILE;
3877 #endif /* ndef MAP_FILE */
3878 #ifdef MAP_FIXED
3879 if ((x & MAP_FIXED) == MAP_FIXED)
3880 *r |= Mono_Posix_MmapFlags_MAP_FIXED;
3881 #endif /* ndef MAP_FIXED */
3882 #ifdef MAP_GROWSDOWN
3883 if ((x & MAP_GROWSDOWN) == MAP_GROWSDOWN)
3884 *r |= Mono_Posix_MmapFlags_MAP_GROWSDOWN;
3885 #endif /* ndef MAP_GROWSDOWN */
3886 #ifdef MAP_LOCKED
3887 if ((x & MAP_LOCKED) == MAP_LOCKED)
3888 *r |= Mono_Posix_MmapFlags_MAP_LOCKED;
3889 #endif /* ndef MAP_LOCKED */
3890 #ifdef MAP_NONBLOCK
3891 if ((x & MAP_NONBLOCK) == MAP_NONBLOCK)
3892 *r |= Mono_Posix_MmapFlags_MAP_NONBLOCK;
3893 #endif /* ndef MAP_NONBLOCK */
3894 #ifdef MAP_NORESERVE
3895 if ((x & MAP_NORESERVE) == MAP_NORESERVE)
3896 *r |= Mono_Posix_MmapFlags_MAP_NORESERVE;
3897 #endif /* ndef MAP_NORESERVE */
3898 #ifdef MAP_POPULATE
3899 if ((x & MAP_POPULATE) == MAP_POPULATE)
3900 *r |= Mono_Posix_MmapFlags_MAP_POPULATE;
3901 #endif /* ndef MAP_POPULATE */
3902 #ifdef MAP_PRIVATE
3903 if ((x & MAP_PRIVATE) == MAP_PRIVATE)
3904 *r |= Mono_Posix_MmapFlags_MAP_PRIVATE;
3905 #endif /* ndef MAP_PRIVATE */
3906 #ifdef MAP_SHARED
3907 if ((x & MAP_SHARED) == MAP_SHARED)
3908 *r |= Mono_Posix_MmapFlags_MAP_SHARED;
3909 #endif /* ndef MAP_SHARED */
3910 #ifdef MAP_TYPE
3911 if ((x & MAP_TYPE) == MAP_TYPE)
3912 *r |= Mono_Posix_MmapFlags_MAP_TYPE;
3913 #endif /* ndef MAP_TYPE */
3914 return 0;
3917 int Mono_Posix_FromMmapProts (int x, int *r)
3919 *r = 0;
3920 if ((x & Mono_Posix_MmapProts_PROT_EXEC) == Mono_Posix_MmapProts_PROT_EXEC)
3921 #ifdef PROT_EXEC
3922 *r |= PROT_EXEC;
3923 #else /* def PROT_EXEC */
3924 {errno = EINVAL; return -1;}
3925 #endif /* ndef PROT_EXEC */
3926 if ((x & Mono_Posix_MmapProts_PROT_GROWSDOWN) == Mono_Posix_MmapProts_PROT_GROWSDOWN)
3927 #ifdef PROT_GROWSDOWN
3928 *r |= PROT_GROWSDOWN;
3929 #else /* def PROT_GROWSDOWN */
3930 {errno = EINVAL; return -1;}
3931 #endif /* ndef PROT_GROWSDOWN */
3932 if ((x & Mono_Posix_MmapProts_PROT_GROWSUP) == Mono_Posix_MmapProts_PROT_GROWSUP)
3933 #ifdef PROT_GROWSUP
3934 *r |= PROT_GROWSUP;
3935 #else /* def PROT_GROWSUP */
3936 {errno = EINVAL; return -1;}
3937 #endif /* ndef PROT_GROWSUP */
3938 if ((x & Mono_Posix_MmapProts_PROT_NONE) == Mono_Posix_MmapProts_PROT_NONE)
3939 #ifdef PROT_NONE
3940 *r |= PROT_NONE;
3941 #else /* def PROT_NONE */
3942 {errno = EINVAL; return -1;}
3943 #endif /* ndef PROT_NONE */
3944 if ((x & Mono_Posix_MmapProts_PROT_READ) == Mono_Posix_MmapProts_PROT_READ)
3945 #ifdef PROT_READ
3946 *r |= PROT_READ;
3947 #else /* def PROT_READ */
3948 {errno = EINVAL; return -1;}
3949 #endif /* ndef PROT_READ */
3950 if ((x & Mono_Posix_MmapProts_PROT_WRITE) == Mono_Posix_MmapProts_PROT_WRITE)
3951 #ifdef PROT_WRITE
3952 *r |= PROT_WRITE;
3953 #else /* def PROT_WRITE */
3954 {errno = EINVAL; return -1;}
3955 #endif /* ndef PROT_WRITE */
3956 if (x == 0)
3957 return 0;
3958 return 0;
3961 int Mono_Posix_ToMmapProts (int x, int *r)
3963 *r = 0;
3964 if (x == 0)
3965 return 0;
3966 #ifdef PROT_EXEC
3967 if ((x & PROT_EXEC) == PROT_EXEC)
3968 *r |= Mono_Posix_MmapProts_PROT_EXEC;
3969 #endif /* ndef PROT_EXEC */
3970 #ifdef PROT_GROWSDOWN
3971 if ((x & PROT_GROWSDOWN) == PROT_GROWSDOWN)
3972 *r |= Mono_Posix_MmapProts_PROT_GROWSDOWN;
3973 #endif /* ndef PROT_GROWSDOWN */
3974 #ifdef PROT_GROWSUP
3975 if ((x & PROT_GROWSUP) == PROT_GROWSUP)
3976 *r |= Mono_Posix_MmapProts_PROT_GROWSUP;
3977 #endif /* ndef PROT_GROWSUP */
3978 #ifdef PROT_NONE
3979 if ((x & PROT_NONE) == PROT_NONE)
3980 *r |= Mono_Posix_MmapProts_PROT_NONE;
3981 #endif /* ndef PROT_NONE */
3982 #ifdef PROT_READ
3983 if ((x & PROT_READ) == PROT_READ)
3984 *r |= Mono_Posix_MmapProts_PROT_READ;
3985 #endif /* ndef PROT_READ */
3986 #ifdef PROT_WRITE
3987 if ((x & PROT_WRITE) == PROT_WRITE)
3988 *r |= Mono_Posix_MmapProts_PROT_WRITE;
3989 #endif /* ndef PROT_WRITE */
3990 return 0;
3993 int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
3995 *r = 0;
3996 if ((x & Mono_Posix_MountFlags_ST_APPEND) == Mono_Posix_MountFlags_ST_APPEND)
3997 #ifdef ST_APPEND
3998 *r |= ST_APPEND;
3999 #else /* def ST_APPEND */
4000 {errno = EINVAL; return -1;}
4001 #endif /* ndef ST_APPEND */
4002 if ((x & Mono_Posix_MountFlags_ST_BIND) == Mono_Posix_MountFlags_ST_BIND)
4003 #ifdef ST_BIND
4004 *r |= ST_BIND;
4005 #else /* def ST_BIND */
4006 {errno = EINVAL; return -1;}
4007 #endif /* ndef ST_BIND */
4008 if ((x & Mono_Posix_MountFlags_ST_IMMUTABLE) == Mono_Posix_MountFlags_ST_IMMUTABLE)
4009 #ifdef ST_IMMUTABLE
4010 *r |= ST_IMMUTABLE;
4011 #else /* def ST_IMMUTABLE */
4012 {errno = EINVAL; return -1;}
4013 #endif /* ndef ST_IMMUTABLE */
4014 if ((x & Mono_Posix_MountFlags_ST_MANDLOCK) == Mono_Posix_MountFlags_ST_MANDLOCK)
4015 #ifdef ST_MANDLOCK
4016 *r |= ST_MANDLOCK;
4017 #else /* def ST_MANDLOCK */
4018 {errno = EINVAL; return -1;}
4019 #endif /* ndef ST_MANDLOCK */
4020 if ((x & Mono_Posix_MountFlags_ST_NOATIME) == Mono_Posix_MountFlags_ST_NOATIME)
4021 #ifdef ST_NOATIME
4022 *r |= ST_NOATIME;
4023 #else /* def ST_NOATIME */
4024 {errno = EINVAL; return -1;}
4025 #endif /* ndef ST_NOATIME */
4026 if ((x & Mono_Posix_MountFlags_ST_NODEV) == Mono_Posix_MountFlags_ST_NODEV)
4027 #ifdef ST_NODEV
4028 *r |= ST_NODEV;
4029 #else /* def ST_NODEV */
4030 {errno = EINVAL; return -1;}
4031 #endif /* ndef ST_NODEV */
4032 if ((x & Mono_Posix_MountFlags_ST_NODIRATIME) == Mono_Posix_MountFlags_ST_NODIRATIME)
4033 #ifdef ST_NODIRATIME
4034 *r |= ST_NODIRATIME;
4035 #else /* def ST_NODIRATIME */
4036 {errno = EINVAL; return -1;}
4037 #endif /* ndef ST_NODIRATIME */
4038 if ((x & Mono_Posix_MountFlags_ST_NOEXEC) == Mono_Posix_MountFlags_ST_NOEXEC)
4039 #ifdef ST_NOEXEC
4040 *r |= ST_NOEXEC;
4041 #else /* def ST_NOEXEC */
4042 {errno = EINVAL; return -1;}
4043 #endif /* ndef ST_NOEXEC */
4044 if ((x & Mono_Posix_MountFlags_ST_NOSUID) == Mono_Posix_MountFlags_ST_NOSUID)
4045 #ifdef ST_NOSUID
4046 *r |= ST_NOSUID;
4047 #else /* def ST_NOSUID */
4048 {errno = EINVAL; return -1;}
4049 #endif /* ndef ST_NOSUID */
4050 if ((x & Mono_Posix_MountFlags_ST_RDONLY) == Mono_Posix_MountFlags_ST_RDONLY)
4051 #ifdef ST_RDONLY
4052 *r |= ST_RDONLY;
4053 #else /* def ST_RDONLY */
4054 {errno = EINVAL; return -1;}
4055 #endif /* ndef ST_RDONLY */
4056 if ((x & Mono_Posix_MountFlags_ST_REMOUNT) == Mono_Posix_MountFlags_ST_REMOUNT)
4057 #ifdef ST_REMOUNT
4058 *r |= ST_REMOUNT;
4059 #else /* def ST_REMOUNT */
4060 {errno = EINVAL; return -1;}
4061 #endif /* ndef ST_REMOUNT */
4062 if ((x & Mono_Posix_MountFlags_ST_SYNCHRONOUS) == Mono_Posix_MountFlags_ST_SYNCHRONOUS)
4063 #ifdef ST_SYNCHRONOUS
4064 *r |= ST_SYNCHRONOUS;
4065 #else /* def ST_SYNCHRONOUS */
4066 {errno = EINVAL; return -1;}
4067 #endif /* ndef ST_SYNCHRONOUS */
4068 if ((x & Mono_Posix_MountFlags_ST_WRITE) == Mono_Posix_MountFlags_ST_WRITE)
4069 #ifdef ST_WRITE
4070 *r |= ST_WRITE;
4071 #else /* def ST_WRITE */
4072 {errno = EINVAL; return -1;}
4073 #endif /* ndef ST_WRITE */
4074 if (x == 0)
4075 return 0;
4076 return 0;
4079 int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
4081 *r = 0;
4082 if (x == 0)
4083 return 0;
4084 #ifdef ST_APPEND
4085 if ((x & ST_APPEND) == ST_APPEND)
4086 *r |= Mono_Posix_MountFlags_ST_APPEND;
4087 #endif /* ndef ST_APPEND */
4088 #ifdef ST_BIND
4089 if ((x & ST_BIND) == ST_BIND)
4090 *r |= Mono_Posix_MountFlags_ST_BIND;
4091 #endif /* ndef ST_BIND */
4092 #ifdef ST_IMMUTABLE
4093 if ((x & ST_IMMUTABLE) == ST_IMMUTABLE)
4094 *r |= Mono_Posix_MountFlags_ST_IMMUTABLE;
4095 #endif /* ndef ST_IMMUTABLE */
4096 #ifdef ST_MANDLOCK
4097 if ((x & ST_MANDLOCK) == ST_MANDLOCK)
4098 *r |= Mono_Posix_MountFlags_ST_MANDLOCK;
4099 #endif /* ndef ST_MANDLOCK */
4100 #ifdef ST_NOATIME
4101 if ((x & ST_NOATIME) == ST_NOATIME)
4102 *r |= Mono_Posix_MountFlags_ST_NOATIME;
4103 #endif /* ndef ST_NOATIME */
4104 #ifdef ST_NODEV
4105 if ((x & ST_NODEV) == ST_NODEV)
4106 *r |= Mono_Posix_MountFlags_ST_NODEV;
4107 #endif /* ndef ST_NODEV */
4108 #ifdef ST_NODIRATIME
4109 if ((x & ST_NODIRATIME) == ST_NODIRATIME)
4110 *r |= Mono_Posix_MountFlags_ST_NODIRATIME;
4111 #endif /* ndef ST_NODIRATIME */
4112 #ifdef ST_NOEXEC
4113 if ((x & ST_NOEXEC) == ST_NOEXEC)
4114 *r |= Mono_Posix_MountFlags_ST_NOEXEC;
4115 #endif /* ndef ST_NOEXEC */
4116 #ifdef ST_NOSUID
4117 if ((x & ST_NOSUID) == ST_NOSUID)
4118 *r |= Mono_Posix_MountFlags_ST_NOSUID;
4119 #endif /* ndef ST_NOSUID */
4120 #ifdef ST_RDONLY
4121 if ((x & ST_RDONLY) == ST_RDONLY)
4122 *r |= Mono_Posix_MountFlags_ST_RDONLY;
4123 #endif /* ndef ST_RDONLY */
4124 #ifdef ST_REMOUNT
4125 if ((x & ST_REMOUNT) == ST_REMOUNT)
4126 *r |= Mono_Posix_MountFlags_ST_REMOUNT;
4127 #endif /* ndef ST_REMOUNT */
4128 #ifdef ST_SYNCHRONOUS
4129 if ((x & ST_SYNCHRONOUS) == ST_SYNCHRONOUS)
4130 *r |= Mono_Posix_MountFlags_ST_SYNCHRONOUS;
4131 #endif /* ndef ST_SYNCHRONOUS */
4132 #ifdef ST_WRITE
4133 if ((x & ST_WRITE) == ST_WRITE)
4134 *r |= Mono_Posix_MountFlags_ST_WRITE;
4135 #endif /* ndef ST_WRITE */
4136 return 0;
4139 int Mono_Posix_FromMsyncFlags (int x, int *r)
4141 *r = 0;
4142 if ((x & Mono_Posix_MsyncFlags_MS_ASYNC) == Mono_Posix_MsyncFlags_MS_ASYNC)
4143 #ifdef MS_ASYNC
4144 *r |= MS_ASYNC;
4145 #else /* def MS_ASYNC */
4146 {errno = EINVAL; return -1;}
4147 #endif /* ndef MS_ASYNC */
4148 if ((x & Mono_Posix_MsyncFlags_MS_INVALIDATE) == Mono_Posix_MsyncFlags_MS_INVALIDATE)
4149 #ifdef MS_INVALIDATE
4150 *r |= MS_INVALIDATE;
4151 #else /* def MS_INVALIDATE */
4152 {errno = EINVAL; return -1;}
4153 #endif /* ndef MS_INVALIDATE */
4154 if ((x & Mono_Posix_MsyncFlags_MS_SYNC) == Mono_Posix_MsyncFlags_MS_SYNC)
4155 #ifdef MS_SYNC
4156 *r |= MS_SYNC;
4157 #else /* def MS_SYNC */
4158 {errno = EINVAL; return -1;}
4159 #endif /* ndef MS_SYNC */
4160 if (x == 0)
4161 return 0;
4162 return 0;
4165 int Mono_Posix_ToMsyncFlags (int x, int *r)
4167 *r = 0;
4168 if (x == 0)
4169 return 0;
4170 #ifdef MS_ASYNC
4171 if ((x & MS_ASYNC) == MS_ASYNC)
4172 *r |= Mono_Posix_MsyncFlags_MS_ASYNC;
4173 #endif /* ndef MS_ASYNC */
4174 #ifdef MS_INVALIDATE
4175 if ((x & MS_INVALIDATE) == MS_INVALIDATE)
4176 *r |= Mono_Posix_MsyncFlags_MS_INVALIDATE;
4177 #endif /* ndef MS_INVALIDATE */
4178 #ifdef MS_SYNC
4179 if ((x & MS_SYNC) == MS_SYNC)
4180 *r |= Mono_Posix_MsyncFlags_MS_SYNC;
4181 #endif /* ndef MS_SYNC */
4182 return 0;
4185 int Mono_Posix_FromOpenFlags (int x, int *r)
4187 *r = 0;
4188 if ((x & Mono_Posix_OpenFlags_O_APPEND) == Mono_Posix_OpenFlags_O_APPEND)
4189 #ifdef O_APPEND
4190 *r |= O_APPEND;
4191 #else /* def O_APPEND */
4192 {errno = EINVAL; return -1;}
4193 #endif /* ndef O_APPEND */
4194 if ((x & Mono_Posix_OpenFlags_O_ASYNC) == Mono_Posix_OpenFlags_O_ASYNC)
4195 #ifdef O_ASYNC
4196 *r |= O_ASYNC;
4197 #else /* def O_ASYNC */
4198 {errno = EINVAL; return -1;}
4199 #endif /* ndef O_ASYNC */
4200 if ((x & Mono_Posix_OpenFlags_O_CLOEXEC) == Mono_Posix_OpenFlags_O_CLOEXEC)
4201 #ifdef O_CLOEXEC
4202 *r |= O_CLOEXEC;
4203 #else /* def O_CLOEXEC */
4204 {errno = EINVAL; return -1;}
4205 #endif /* ndef O_CLOEXEC */
4206 if ((x & Mono_Posix_OpenFlags_O_CREAT) == Mono_Posix_OpenFlags_O_CREAT)
4207 #ifdef O_CREAT
4208 *r |= O_CREAT;
4209 #else /* def O_CREAT */
4210 {errno = EINVAL; return -1;}
4211 #endif /* ndef O_CREAT */
4212 if ((x & Mono_Posix_OpenFlags_O_DIRECT) == Mono_Posix_OpenFlags_O_DIRECT)
4213 #ifdef O_DIRECT
4214 *r |= O_DIRECT;
4215 #else /* def O_DIRECT */
4216 {errno = EINVAL; return -1;}
4217 #endif /* ndef O_DIRECT */
4218 if ((x & Mono_Posix_OpenFlags_O_DIRECTORY) == Mono_Posix_OpenFlags_O_DIRECTORY)
4219 #ifdef O_DIRECTORY
4220 *r |= O_DIRECTORY;
4221 #else /* def O_DIRECTORY */
4222 {errno = EINVAL; return -1;}
4223 #endif /* ndef O_DIRECTORY */
4224 if ((x & Mono_Posix_OpenFlags_O_EXCL) == Mono_Posix_OpenFlags_O_EXCL)
4225 #ifdef O_EXCL
4226 *r |= O_EXCL;
4227 #else /* def O_EXCL */
4228 {errno = EINVAL; return -1;}
4229 #endif /* ndef O_EXCL */
4230 if ((x & Mono_Posix_OpenFlags_O_LARGEFILE) == Mono_Posix_OpenFlags_O_LARGEFILE)
4231 #ifdef O_LARGEFILE
4232 *r |= O_LARGEFILE;
4233 #else /* def O_LARGEFILE */
4234 {errno = EINVAL; return -1;}
4235 #endif /* ndef O_LARGEFILE */
4236 if ((x & Mono_Posix_OpenFlags_O_NOATIME) == Mono_Posix_OpenFlags_O_NOATIME)
4237 #ifdef O_NOATIME
4238 *r |= O_NOATIME;
4239 #else /* def O_NOATIME */
4240 {errno = EINVAL; return -1;}
4241 #endif /* ndef O_NOATIME */
4242 if ((x & Mono_Posix_OpenFlags_O_NOCTTY) == Mono_Posix_OpenFlags_O_NOCTTY)
4243 #ifdef O_NOCTTY
4244 *r |= O_NOCTTY;
4245 #else /* def O_NOCTTY */
4246 {errno = EINVAL; return -1;}
4247 #endif /* ndef O_NOCTTY */
4248 if ((x & Mono_Posix_OpenFlags_O_NOFOLLOW) == Mono_Posix_OpenFlags_O_NOFOLLOW)
4249 #ifdef O_NOFOLLOW
4250 *r |= O_NOFOLLOW;
4251 #else /* def O_NOFOLLOW */
4252 {errno = EINVAL; return -1;}
4253 #endif /* ndef O_NOFOLLOW */
4254 if ((x & Mono_Posix_OpenFlags_O_NONBLOCK) == Mono_Posix_OpenFlags_O_NONBLOCK)
4255 #ifdef O_NONBLOCK
4256 *r |= O_NONBLOCK;
4257 #else /* def O_NONBLOCK */
4258 {errno = EINVAL; return -1;}
4259 #endif /* ndef O_NONBLOCK */
4260 if ((x & Mono_Posix_OpenFlags_O_PATH) == Mono_Posix_OpenFlags_O_PATH)
4261 #ifdef O_PATH
4262 *r |= O_PATH;
4263 #else /* def O_PATH */
4264 {errno = EINVAL; return -1;}
4265 #endif /* ndef O_PATH */
4266 if ((x & Mono_Posix_OpenFlags_O_RDONLY) == Mono_Posix_OpenFlags_O_RDONLY)
4267 #ifdef O_RDONLY
4268 *r |= O_RDONLY;
4269 #else /* def O_RDONLY */
4270 {errno = EINVAL; return -1;}
4271 #endif /* ndef O_RDONLY */
4272 if ((x & Mono_Posix_OpenFlags_O_RDWR) == Mono_Posix_OpenFlags_O_RDWR)
4273 #ifdef O_RDWR
4274 *r |= O_RDWR;
4275 #else /* def O_RDWR */
4276 {errno = EINVAL; return -1;}
4277 #endif /* ndef O_RDWR */
4278 if ((x & Mono_Posix_OpenFlags_O_SYNC) == Mono_Posix_OpenFlags_O_SYNC)
4279 #ifdef O_SYNC
4280 *r |= O_SYNC;
4281 #else /* def O_SYNC */
4282 {errno = EINVAL; return -1;}
4283 #endif /* ndef O_SYNC */
4284 if ((x & Mono_Posix_OpenFlags_O_TRUNC) == Mono_Posix_OpenFlags_O_TRUNC)
4285 #ifdef O_TRUNC
4286 *r |= O_TRUNC;
4287 #else /* def O_TRUNC */
4288 {errno = EINVAL; return -1;}
4289 #endif /* ndef O_TRUNC */
4290 if ((x & Mono_Posix_OpenFlags_O_WRONLY) == Mono_Posix_OpenFlags_O_WRONLY)
4291 #ifdef O_WRONLY
4292 *r |= O_WRONLY;
4293 #else /* def O_WRONLY */
4294 {errno = EINVAL; return -1;}
4295 #endif /* ndef O_WRONLY */
4296 if (x == 0)
4297 return 0;
4298 return 0;
4301 int Mono_Posix_ToOpenFlags (int x, int *r)
4303 *r = 0;
4304 if (x == 0)
4305 return 0;
4306 #ifdef O_APPEND
4307 if ((x & O_APPEND) == O_APPEND)
4308 *r |= Mono_Posix_OpenFlags_O_APPEND;
4309 #endif /* ndef O_APPEND */
4310 #ifdef O_ASYNC
4311 if ((x & O_ASYNC) == O_ASYNC)
4312 *r |= Mono_Posix_OpenFlags_O_ASYNC;
4313 #endif /* ndef O_ASYNC */
4314 #ifdef O_CLOEXEC
4315 if ((x & O_CLOEXEC) == O_CLOEXEC)
4316 *r |= Mono_Posix_OpenFlags_O_CLOEXEC;
4317 #endif /* ndef O_CLOEXEC */
4318 #ifdef O_CREAT
4319 if ((x & O_CREAT) == O_CREAT)
4320 *r |= Mono_Posix_OpenFlags_O_CREAT;
4321 #endif /* ndef O_CREAT */
4322 #ifdef O_DIRECT
4323 if ((x & O_DIRECT) == O_DIRECT)
4324 *r |= Mono_Posix_OpenFlags_O_DIRECT;
4325 #endif /* ndef O_DIRECT */
4326 #ifdef O_DIRECTORY
4327 if ((x & O_DIRECTORY) == O_DIRECTORY)
4328 *r |= Mono_Posix_OpenFlags_O_DIRECTORY;
4329 #endif /* ndef O_DIRECTORY */
4330 #ifdef O_EXCL
4331 if ((x & O_EXCL) == O_EXCL)
4332 *r |= Mono_Posix_OpenFlags_O_EXCL;
4333 #endif /* ndef O_EXCL */
4334 #ifdef O_LARGEFILE
4335 if ((x & O_LARGEFILE) == O_LARGEFILE)
4336 *r |= Mono_Posix_OpenFlags_O_LARGEFILE;
4337 #endif /* ndef O_LARGEFILE */
4338 #ifdef O_NOATIME
4339 if ((x & O_NOATIME) == O_NOATIME)
4340 *r |= Mono_Posix_OpenFlags_O_NOATIME;
4341 #endif /* ndef O_NOATIME */
4342 #ifdef O_NOCTTY
4343 if ((x & O_NOCTTY) == O_NOCTTY)
4344 *r |= Mono_Posix_OpenFlags_O_NOCTTY;
4345 #endif /* ndef O_NOCTTY */
4346 #ifdef O_NOFOLLOW
4347 if ((x & O_NOFOLLOW) == O_NOFOLLOW)
4348 *r |= Mono_Posix_OpenFlags_O_NOFOLLOW;
4349 #endif /* ndef O_NOFOLLOW */
4350 #ifdef O_NONBLOCK
4351 if ((x & O_NONBLOCK) == O_NONBLOCK)
4352 *r |= Mono_Posix_OpenFlags_O_NONBLOCK;
4353 #endif /* ndef O_NONBLOCK */
4354 #ifdef O_PATH
4355 if ((x & O_PATH) == O_PATH)
4356 *r |= Mono_Posix_OpenFlags_O_PATH;
4357 #endif /* ndef O_PATH */
4358 #ifdef O_RDONLY
4359 if ((x & O_RDONLY) == O_RDONLY)
4360 *r |= Mono_Posix_OpenFlags_O_RDONLY;
4361 #endif /* ndef O_RDONLY */
4362 #ifdef O_RDWR
4363 if ((x & O_RDWR) == O_RDWR)
4364 *r |= Mono_Posix_OpenFlags_O_RDWR;
4365 #endif /* ndef O_RDWR */
4366 #ifdef O_SYNC
4367 if ((x & O_SYNC) == O_SYNC)
4368 *r |= Mono_Posix_OpenFlags_O_SYNC;
4369 #endif /* ndef O_SYNC */
4370 #ifdef O_TRUNC
4371 if ((x & O_TRUNC) == O_TRUNC)
4372 *r |= Mono_Posix_OpenFlags_O_TRUNC;
4373 #endif /* ndef O_TRUNC */
4374 #ifdef O_WRONLY
4375 if ((x & O_WRONLY) == O_WRONLY)
4376 *r |= Mono_Posix_OpenFlags_O_WRONLY;
4377 #endif /* ndef O_WRONLY */
4378 return 0;
4381 int Mono_Posix_FromPathconfName (int x, int *r)
4383 *r = 0;
4384 if (x == Mono_Posix_PathconfName__PC_2_SYMLINKS)
4385 #ifdef _PC_2_SYMLINKS
4386 {*r = _PC_2_SYMLINKS; return 0;}
4387 #else /* def _PC_2_SYMLINKS */
4388 {errno = EINVAL; return -1;}
4389 #endif /* ndef _PC_2_SYMLINKS */
4390 if (x == Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN)
4391 #ifdef _PC_ALLOC_SIZE_MIN
4392 {*r = _PC_ALLOC_SIZE_MIN; return 0;}
4393 #else /* def _PC_ALLOC_SIZE_MIN */
4394 {errno = EINVAL; return -1;}
4395 #endif /* ndef _PC_ALLOC_SIZE_MIN */
4396 if (x == Mono_Posix_PathconfName__PC_ASYNC_IO)
4397 #ifdef _PC_ASYNC_IO
4398 {*r = _PC_ASYNC_IO; return 0;}
4399 #else /* def _PC_ASYNC_IO */
4400 {errno = EINVAL; return -1;}
4401 #endif /* ndef _PC_ASYNC_IO */
4402 if (x == Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED)
4403 #ifdef _PC_CHOWN_RESTRICTED
4404 {*r = _PC_CHOWN_RESTRICTED; return 0;}
4405 #else /* def _PC_CHOWN_RESTRICTED */
4406 {errno = EINVAL; return -1;}
4407 #endif /* ndef _PC_CHOWN_RESTRICTED */
4408 if (x == Mono_Posix_PathconfName__PC_FILESIZEBITS)
4409 #ifdef _PC_FILESIZEBITS
4410 {*r = _PC_FILESIZEBITS; return 0;}
4411 #else /* def _PC_FILESIZEBITS */
4412 {errno = EINVAL; return -1;}
4413 #endif /* ndef _PC_FILESIZEBITS */
4414 if (x == Mono_Posix_PathconfName__PC_LINK_MAX)
4415 #ifdef _PC_LINK_MAX
4416 {*r = _PC_LINK_MAX; return 0;}
4417 #else /* def _PC_LINK_MAX */
4418 {errno = EINVAL; return -1;}
4419 #endif /* ndef _PC_LINK_MAX */
4420 if (x == Mono_Posix_PathconfName__PC_MAX_CANON)
4421 #ifdef _PC_MAX_CANON
4422 {*r = _PC_MAX_CANON; return 0;}
4423 #else /* def _PC_MAX_CANON */
4424 {errno = EINVAL; return -1;}
4425 #endif /* ndef _PC_MAX_CANON */
4426 if (x == Mono_Posix_PathconfName__PC_MAX_INPUT)
4427 #ifdef _PC_MAX_INPUT
4428 {*r = _PC_MAX_INPUT; return 0;}
4429 #else /* def _PC_MAX_INPUT */
4430 {errno = EINVAL; return -1;}
4431 #endif /* ndef _PC_MAX_INPUT */
4432 if (x == Mono_Posix_PathconfName__PC_NAME_MAX)
4433 #ifdef _PC_NAME_MAX
4434 {*r = _PC_NAME_MAX; return 0;}
4435 #else /* def _PC_NAME_MAX */
4436 {errno = EINVAL; return -1;}
4437 #endif /* ndef _PC_NAME_MAX */
4438 if (x == Mono_Posix_PathconfName__PC_NO_TRUNC)
4439 #ifdef _PC_NO_TRUNC
4440 {*r = _PC_NO_TRUNC; return 0;}
4441 #else /* def _PC_NO_TRUNC */
4442 {errno = EINVAL; return -1;}
4443 #endif /* ndef _PC_NO_TRUNC */
4444 if (x == Mono_Posix_PathconfName__PC_PATH_MAX)
4445 #ifdef _PC_PATH_MAX
4446 {*r = _PC_PATH_MAX; return 0;}
4447 #else /* def _PC_PATH_MAX */
4448 {errno = EINVAL; return -1;}
4449 #endif /* ndef _PC_PATH_MAX */
4450 if (x == Mono_Posix_PathconfName__PC_PIPE_BUF)
4451 #ifdef _PC_PIPE_BUF
4452 {*r = _PC_PIPE_BUF; return 0;}
4453 #else /* def _PC_PIPE_BUF */
4454 {errno = EINVAL; return -1;}
4455 #endif /* ndef _PC_PIPE_BUF */
4456 if (x == Mono_Posix_PathconfName__PC_PRIO_IO)
4457 #ifdef _PC_PRIO_IO
4458 {*r = _PC_PRIO_IO; return 0;}
4459 #else /* def _PC_PRIO_IO */
4460 {errno = EINVAL; return -1;}
4461 #endif /* ndef _PC_PRIO_IO */
4462 if (x == Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE)
4463 #ifdef _PC_REC_INCR_XFER_SIZE
4464 {*r = _PC_REC_INCR_XFER_SIZE; return 0;}
4465 #else /* def _PC_REC_INCR_XFER_SIZE */
4466 {errno = EINVAL; return -1;}
4467 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
4468 if (x == Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE)
4469 #ifdef _PC_REC_MAX_XFER_SIZE
4470 {*r = _PC_REC_MAX_XFER_SIZE; return 0;}
4471 #else /* def _PC_REC_MAX_XFER_SIZE */
4472 {errno = EINVAL; return -1;}
4473 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
4474 if (x == Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE)
4475 #ifdef _PC_REC_MIN_XFER_SIZE
4476 {*r = _PC_REC_MIN_XFER_SIZE; return 0;}
4477 #else /* def _PC_REC_MIN_XFER_SIZE */
4478 {errno = EINVAL; return -1;}
4479 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
4480 if (x == Mono_Posix_PathconfName__PC_REC_XFER_ALIGN)
4481 #ifdef _PC_REC_XFER_ALIGN
4482 {*r = _PC_REC_XFER_ALIGN; return 0;}
4483 #else /* def _PC_REC_XFER_ALIGN */
4484 {errno = EINVAL; return -1;}
4485 #endif /* ndef _PC_REC_XFER_ALIGN */
4486 if (x == Mono_Posix_PathconfName__PC_SOCK_MAXBUF)
4487 #ifdef _PC_SOCK_MAXBUF
4488 {*r = _PC_SOCK_MAXBUF; return 0;}
4489 #else /* def _PC_SOCK_MAXBUF */
4490 {errno = EINVAL; return -1;}
4491 #endif /* ndef _PC_SOCK_MAXBUF */
4492 if (x == Mono_Posix_PathconfName__PC_SYMLINK_MAX)
4493 #ifdef _PC_SYMLINK_MAX
4494 {*r = _PC_SYMLINK_MAX; return 0;}
4495 #else /* def _PC_SYMLINK_MAX */
4496 {errno = EINVAL; return -1;}
4497 #endif /* ndef _PC_SYMLINK_MAX */
4498 if (x == Mono_Posix_PathconfName__PC_SYNC_IO)
4499 #ifdef _PC_SYNC_IO
4500 {*r = _PC_SYNC_IO; return 0;}
4501 #else /* def _PC_SYNC_IO */
4502 {errno = EINVAL; return -1;}
4503 #endif /* ndef _PC_SYNC_IO */
4504 if (x == Mono_Posix_PathconfName__PC_VDISABLE)
4505 #ifdef _PC_VDISABLE
4506 {*r = _PC_VDISABLE; return 0;}
4507 #else /* def _PC_VDISABLE */
4508 {errno = EINVAL; return -1;}
4509 #endif /* ndef _PC_VDISABLE */
4510 if (x == 0)
4511 return 0;
4512 errno = EINVAL; return -1;
4515 int Mono_Posix_ToPathconfName (int x, int *r)
4517 *r = 0;
4518 if (x == 0)
4519 return 0;
4520 #ifdef _PC_2_SYMLINKS
4521 if (x == _PC_2_SYMLINKS)
4522 {*r = Mono_Posix_PathconfName__PC_2_SYMLINKS; return 0;}
4523 #endif /* ndef _PC_2_SYMLINKS */
4524 #ifdef _PC_ALLOC_SIZE_MIN
4525 if (x == _PC_ALLOC_SIZE_MIN)
4526 {*r = Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN; return 0;}
4527 #endif /* ndef _PC_ALLOC_SIZE_MIN */
4528 #ifdef _PC_ASYNC_IO
4529 if (x == _PC_ASYNC_IO)
4530 {*r = Mono_Posix_PathconfName__PC_ASYNC_IO; return 0;}
4531 #endif /* ndef _PC_ASYNC_IO */
4532 #ifdef _PC_CHOWN_RESTRICTED
4533 if (x == _PC_CHOWN_RESTRICTED)
4534 {*r = Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED; return 0;}
4535 #endif /* ndef _PC_CHOWN_RESTRICTED */
4536 #ifdef _PC_FILESIZEBITS
4537 if (x == _PC_FILESIZEBITS)
4538 {*r = Mono_Posix_PathconfName__PC_FILESIZEBITS; return 0;}
4539 #endif /* ndef _PC_FILESIZEBITS */
4540 #ifdef _PC_LINK_MAX
4541 if (x == _PC_LINK_MAX)
4542 {*r = Mono_Posix_PathconfName__PC_LINK_MAX; return 0;}
4543 #endif /* ndef _PC_LINK_MAX */
4544 #ifdef _PC_MAX_CANON
4545 if (x == _PC_MAX_CANON)
4546 {*r = Mono_Posix_PathconfName__PC_MAX_CANON; return 0;}
4547 #endif /* ndef _PC_MAX_CANON */
4548 #ifdef _PC_MAX_INPUT
4549 if (x == _PC_MAX_INPUT)
4550 {*r = Mono_Posix_PathconfName__PC_MAX_INPUT; return 0;}
4551 #endif /* ndef _PC_MAX_INPUT */
4552 #ifdef _PC_NAME_MAX
4553 if (x == _PC_NAME_MAX)
4554 {*r = Mono_Posix_PathconfName__PC_NAME_MAX; return 0;}
4555 #endif /* ndef _PC_NAME_MAX */
4556 #ifdef _PC_NO_TRUNC
4557 if (x == _PC_NO_TRUNC)
4558 {*r = Mono_Posix_PathconfName__PC_NO_TRUNC; return 0;}
4559 #endif /* ndef _PC_NO_TRUNC */
4560 #ifdef _PC_PATH_MAX
4561 if (x == _PC_PATH_MAX)
4562 {*r = Mono_Posix_PathconfName__PC_PATH_MAX; return 0;}
4563 #endif /* ndef _PC_PATH_MAX */
4564 #ifdef _PC_PIPE_BUF
4565 if (x == _PC_PIPE_BUF)
4566 {*r = Mono_Posix_PathconfName__PC_PIPE_BUF; return 0;}
4567 #endif /* ndef _PC_PIPE_BUF */
4568 #ifdef _PC_PRIO_IO
4569 if (x == _PC_PRIO_IO)
4570 {*r = Mono_Posix_PathconfName__PC_PRIO_IO; return 0;}
4571 #endif /* ndef _PC_PRIO_IO */
4572 #ifdef _PC_REC_INCR_XFER_SIZE
4573 if (x == _PC_REC_INCR_XFER_SIZE)
4574 {*r = Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE; return 0;}
4575 #endif /* ndef _PC_REC_INCR_XFER_SIZE */
4576 #ifdef _PC_REC_MAX_XFER_SIZE
4577 if (x == _PC_REC_MAX_XFER_SIZE)
4578 {*r = Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE; return 0;}
4579 #endif /* ndef _PC_REC_MAX_XFER_SIZE */
4580 #ifdef _PC_REC_MIN_XFER_SIZE
4581 if (x == _PC_REC_MIN_XFER_SIZE)
4582 {*r = Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE; return 0;}
4583 #endif /* ndef _PC_REC_MIN_XFER_SIZE */
4584 #ifdef _PC_REC_XFER_ALIGN
4585 if (x == _PC_REC_XFER_ALIGN)
4586 {*r = Mono_Posix_PathconfName__PC_REC_XFER_ALIGN; return 0;}
4587 #endif /* ndef _PC_REC_XFER_ALIGN */
4588 #ifdef _PC_SOCK_MAXBUF
4589 if (x == _PC_SOCK_MAXBUF)
4590 {*r = Mono_Posix_PathconfName__PC_SOCK_MAXBUF; return 0;}
4591 #endif /* ndef _PC_SOCK_MAXBUF */
4592 #ifdef _PC_SYMLINK_MAX
4593 if (x == _PC_SYMLINK_MAX)
4594 {*r = Mono_Posix_PathconfName__PC_SYMLINK_MAX; return 0;}
4595 #endif /* ndef _PC_SYMLINK_MAX */
4596 #ifdef _PC_SYNC_IO
4597 if (x == _PC_SYNC_IO)
4598 {*r = Mono_Posix_PathconfName__PC_SYNC_IO; return 0;}
4599 #endif /* ndef _PC_SYNC_IO */
4600 #ifdef _PC_VDISABLE
4601 if (x == _PC_VDISABLE)
4602 {*r = Mono_Posix_PathconfName__PC_VDISABLE; return 0;}
4603 #endif /* ndef _PC_VDISABLE */
4604 errno = EINVAL; return -1;
4607 int Mono_Posix_FromPollEvents (short x, short *r)
4609 *r = 0;
4610 if ((x & Mono_Posix_PollEvents_POLLERR) == Mono_Posix_PollEvents_POLLERR)
4611 #ifdef POLLERR
4612 *r |= POLLERR;
4613 #else /* def POLLERR */
4614 {errno = EINVAL; return -1;}
4615 #endif /* ndef POLLERR */
4616 if ((x & Mono_Posix_PollEvents_POLLHUP) == Mono_Posix_PollEvents_POLLHUP)
4617 #ifdef POLLHUP
4618 *r |= POLLHUP;
4619 #else /* def POLLHUP */
4620 {errno = EINVAL; return -1;}
4621 #endif /* ndef POLLHUP */
4622 if ((x & Mono_Posix_PollEvents_POLLIN) == Mono_Posix_PollEvents_POLLIN)
4623 #ifdef POLLIN
4624 *r |= POLLIN;
4625 #else /* def POLLIN */
4626 {errno = EINVAL; return -1;}
4627 #endif /* ndef POLLIN */
4628 if ((x & Mono_Posix_PollEvents_POLLNVAL) == Mono_Posix_PollEvents_POLLNVAL)
4629 #ifdef POLLNVAL
4630 *r |= POLLNVAL;
4631 #else /* def POLLNVAL */
4632 {errno = EINVAL; return -1;}
4633 #endif /* ndef POLLNVAL */
4634 if ((x & Mono_Posix_PollEvents_POLLOUT) == Mono_Posix_PollEvents_POLLOUT)
4635 #ifdef POLLOUT
4636 *r |= POLLOUT;
4637 #else /* def POLLOUT */
4638 {errno = EINVAL; return -1;}
4639 #endif /* ndef POLLOUT */
4640 if ((x & Mono_Posix_PollEvents_POLLPRI) == Mono_Posix_PollEvents_POLLPRI)
4641 #ifdef POLLPRI
4642 *r |= POLLPRI;
4643 #else /* def POLLPRI */
4644 {errno = EINVAL; return -1;}
4645 #endif /* ndef POLLPRI */
4646 if ((x & Mono_Posix_PollEvents_POLLRDBAND) == Mono_Posix_PollEvents_POLLRDBAND)
4647 #ifdef POLLRDBAND
4648 *r |= POLLRDBAND;
4649 #else /* def POLLRDBAND */
4650 {errno = EINVAL; return -1;}
4651 #endif /* ndef POLLRDBAND */
4652 if ((x & Mono_Posix_PollEvents_POLLRDNORM) == Mono_Posix_PollEvents_POLLRDNORM)
4653 #ifdef POLLRDNORM
4654 *r |= POLLRDNORM;
4655 #else /* def POLLRDNORM */
4656 {errno = EINVAL; return -1;}
4657 #endif /* ndef POLLRDNORM */
4658 if ((x & Mono_Posix_PollEvents_POLLWRBAND) == Mono_Posix_PollEvents_POLLWRBAND)
4659 #ifdef POLLWRBAND
4660 *r |= POLLWRBAND;
4661 #else /* def POLLWRBAND */
4662 {errno = EINVAL; return -1;}
4663 #endif /* ndef POLLWRBAND */
4664 if ((x & Mono_Posix_PollEvents_POLLWRNORM) == Mono_Posix_PollEvents_POLLWRNORM)
4665 #ifdef POLLWRNORM
4666 *r |= POLLWRNORM;
4667 #else /* def POLLWRNORM */
4668 {errno = EINVAL; return -1;}
4669 #endif /* ndef POLLWRNORM */
4670 if (x == 0)
4671 return 0;
4672 return 0;
4675 int Mono_Posix_ToPollEvents (short x, short *r)
4677 *r = 0;
4678 if (x == 0)
4679 return 0;
4680 #ifdef POLLERR
4681 if ((x & POLLERR) == POLLERR)
4682 *r |= Mono_Posix_PollEvents_POLLERR;
4683 #endif /* ndef POLLERR */
4684 #ifdef POLLHUP
4685 if ((x & POLLHUP) == POLLHUP)
4686 *r |= Mono_Posix_PollEvents_POLLHUP;
4687 #endif /* ndef POLLHUP */
4688 #ifdef POLLIN
4689 if ((x & POLLIN) == POLLIN)
4690 *r |= Mono_Posix_PollEvents_POLLIN;
4691 #endif /* ndef POLLIN */
4692 #ifdef POLLNVAL
4693 if ((x & POLLNVAL) == POLLNVAL)
4694 *r |= Mono_Posix_PollEvents_POLLNVAL;
4695 #endif /* ndef POLLNVAL */
4696 #ifdef POLLOUT
4697 if ((x & POLLOUT) == POLLOUT)
4698 *r |= Mono_Posix_PollEvents_POLLOUT;
4699 #endif /* ndef POLLOUT */
4700 #ifdef POLLPRI
4701 if ((x & POLLPRI) == POLLPRI)
4702 *r |= Mono_Posix_PollEvents_POLLPRI;
4703 #endif /* ndef POLLPRI */
4704 #ifdef POLLRDBAND
4705 if ((x & POLLRDBAND) == POLLRDBAND)
4706 *r |= Mono_Posix_PollEvents_POLLRDBAND;
4707 #endif /* ndef POLLRDBAND */
4708 #ifdef POLLRDNORM
4709 if ((x & POLLRDNORM) == POLLRDNORM)
4710 *r |= Mono_Posix_PollEvents_POLLRDNORM;
4711 #endif /* ndef POLLRDNORM */
4712 #ifdef POLLWRBAND
4713 if ((x & POLLWRBAND) == POLLWRBAND)
4714 *r |= Mono_Posix_PollEvents_POLLWRBAND;
4715 #endif /* ndef POLLWRBAND */
4716 #ifdef POLLWRNORM
4717 if ((x & POLLWRNORM) == POLLWRNORM)
4718 *r |= Mono_Posix_PollEvents_POLLWRNORM;
4719 #endif /* ndef POLLWRNORM */
4720 return 0;
4723 #ifdef HAVE_STRUCT_POLLFD
4725 Mono_Posix_FromPollfd (struct Mono_Posix_Pollfd *from, struct pollfd *to)
4727 _cnm_return_val_if_overflow (int, from->fd, -1);
4729 memset (to, 0, sizeof(*to));
4731 to->fd = from->fd;
4732 if (Mono_Posix_FromPollEvents (from->events, &to->events) != 0) {
4733 return -1;
4735 if (Mono_Posix_FromPollEvents (from->revents, &to->revents) != 0) {
4736 return -1;
4739 return 0;
4741 #endif /* ndef HAVE_STRUCT_POLLFD */
4744 #ifdef HAVE_STRUCT_POLLFD
4746 Mono_Posix_ToPollfd (struct pollfd *from, struct Mono_Posix_Pollfd *to)
4748 _cnm_return_val_if_overflow (int, from->fd, -1);
4750 memset (to, 0, sizeof(*to));
4752 to->fd = from->fd;
4753 if (Mono_Posix_ToPollEvents (from->events, &to->events) != 0) {
4754 return -1;
4756 if (Mono_Posix_ToPollEvents (from->revents, &to->revents) != 0) {
4757 return -1;
4760 return 0;
4762 #endif /* ndef HAVE_STRUCT_POLLFD */
4765 int Mono_Posix_FromPosixFadviseAdvice (int x, int *r)
4767 *r = 0;
4768 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED)
4769 #ifdef POSIX_FADV_DONTNEED
4770 {*r = POSIX_FADV_DONTNEED; return 0;}
4771 #else /* def POSIX_FADV_DONTNEED */
4772 {errno = EINVAL; return -1;}
4773 #endif /* ndef POSIX_FADV_DONTNEED */
4774 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE)
4775 #ifdef POSIX_FADV_NOREUSE
4776 {*r = POSIX_FADV_NOREUSE; return 0;}
4777 #else /* def POSIX_FADV_NOREUSE */
4778 {errno = EINVAL; return -1;}
4779 #endif /* ndef POSIX_FADV_NOREUSE */
4780 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL)
4781 #ifdef POSIX_FADV_NORMAL
4782 {*r = POSIX_FADV_NORMAL; return 0;}
4783 #else /* def POSIX_FADV_NORMAL */
4784 {errno = EINVAL; return -1;}
4785 #endif /* ndef POSIX_FADV_NORMAL */
4786 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM)
4787 #ifdef POSIX_FADV_RANDOM
4788 {*r = POSIX_FADV_RANDOM; return 0;}
4789 #else /* def POSIX_FADV_RANDOM */
4790 {errno = EINVAL; return -1;}
4791 #endif /* ndef POSIX_FADV_RANDOM */
4792 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL)
4793 #ifdef POSIX_FADV_SEQUENTIAL
4794 {*r = POSIX_FADV_SEQUENTIAL; return 0;}
4795 #else /* def POSIX_FADV_SEQUENTIAL */
4796 {errno = EINVAL; return -1;}
4797 #endif /* ndef POSIX_FADV_SEQUENTIAL */
4798 if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED)
4799 #ifdef POSIX_FADV_WILLNEED
4800 {*r = POSIX_FADV_WILLNEED; return 0;}
4801 #else /* def POSIX_FADV_WILLNEED */
4802 {errno = EINVAL; return -1;}
4803 #endif /* ndef POSIX_FADV_WILLNEED */
4804 if (x == 0)
4805 return 0;
4806 errno = EINVAL; return -1;
4809 int Mono_Posix_ToPosixFadviseAdvice (int x, int *r)
4811 *r = 0;
4812 if (x == 0)
4813 return 0;
4814 #ifdef POSIX_FADV_DONTNEED
4815 if (x == POSIX_FADV_DONTNEED)
4816 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED; return 0;}
4817 #endif /* ndef POSIX_FADV_DONTNEED */
4818 #ifdef POSIX_FADV_NOREUSE
4819 if (x == POSIX_FADV_NOREUSE)
4820 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE; return 0;}
4821 #endif /* ndef POSIX_FADV_NOREUSE */
4822 #ifdef POSIX_FADV_NORMAL
4823 if (x == POSIX_FADV_NORMAL)
4824 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL; return 0;}
4825 #endif /* ndef POSIX_FADV_NORMAL */
4826 #ifdef POSIX_FADV_RANDOM
4827 if (x == POSIX_FADV_RANDOM)
4828 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM; return 0;}
4829 #endif /* ndef POSIX_FADV_RANDOM */
4830 #ifdef POSIX_FADV_SEQUENTIAL
4831 if (x == POSIX_FADV_SEQUENTIAL)
4832 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL; return 0;}
4833 #endif /* ndef POSIX_FADV_SEQUENTIAL */
4834 #ifdef POSIX_FADV_WILLNEED
4835 if (x == POSIX_FADV_WILLNEED)
4836 {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED; return 0;}
4837 #endif /* ndef POSIX_FADV_WILLNEED */
4838 errno = EINVAL; return -1;
4841 int Mono_Posix_FromPosixMadviseAdvice (int x, int *r)
4843 *r = 0;
4844 if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED)
4845 #ifdef POSIX_MADV_DONTNEED
4846 {*r = POSIX_MADV_DONTNEED; return 0;}
4847 #else /* def POSIX_MADV_DONTNEED */
4848 {errno = EINVAL; return -1;}
4849 #endif /* ndef POSIX_MADV_DONTNEED */
4850 if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL)
4851 #ifdef POSIX_MADV_NORMAL
4852 {*r = POSIX_MADV_NORMAL; return 0;}
4853 #else /* def POSIX_MADV_NORMAL */
4854 {errno = EINVAL; return -1;}
4855 #endif /* ndef POSIX_MADV_NORMAL */
4856 if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM)
4857 #ifdef POSIX_MADV_RANDOM
4858 {*r = POSIX_MADV_RANDOM; return 0;}
4859 #else /* def POSIX_MADV_RANDOM */
4860 {errno = EINVAL; return -1;}
4861 #endif /* ndef POSIX_MADV_RANDOM */
4862 if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL)
4863 #ifdef POSIX_MADV_SEQUENTIAL
4864 {*r = POSIX_MADV_SEQUENTIAL; return 0;}
4865 #else /* def POSIX_MADV_SEQUENTIAL */
4866 {errno = EINVAL; return -1;}
4867 #endif /* ndef POSIX_MADV_SEQUENTIAL */
4868 if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED)
4869 #ifdef POSIX_MADV_WILLNEED
4870 {*r = POSIX_MADV_WILLNEED; return 0;}
4871 #else /* def POSIX_MADV_WILLNEED */
4872 {errno = EINVAL; return -1;}
4873 #endif /* ndef POSIX_MADV_WILLNEED */
4874 if (x == 0)
4875 return 0;
4876 errno = EINVAL; return -1;
4879 int Mono_Posix_ToPosixMadviseAdvice (int x, int *r)
4881 *r = 0;
4882 if (x == 0)
4883 return 0;
4884 #ifdef POSIX_MADV_DONTNEED
4885 if (x == POSIX_MADV_DONTNEED)
4886 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED; return 0;}
4887 #endif /* ndef POSIX_MADV_DONTNEED */
4888 #ifdef POSIX_MADV_NORMAL
4889 if (x == POSIX_MADV_NORMAL)
4890 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL; return 0;}
4891 #endif /* ndef POSIX_MADV_NORMAL */
4892 #ifdef POSIX_MADV_RANDOM
4893 if (x == POSIX_MADV_RANDOM)
4894 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM; return 0;}
4895 #endif /* ndef POSIX_MADV_RANDOM */
4896 #ifdef POSIX_MADV_SEQUENTIAL
4897 if (x == POSIX_MADV_SEQUENTIAL)
4898 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL; return 0;}
4899 #endif /* ndef POSIX_MADV_SEQUENTIAL */
4900 #ifdef POSIX_MADV_WILLNEED
4901 if (x == POSIX_MADV_WILLNEED)
4902 {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED; return 0;}
4903 #endif /* ndef POSIX_MADV_WILLNEED */
4904 errno = EINVAL; return -1;
4907 int Mono_Posix_FromSealType (int x, int *r)
4909 *r = 0;
4910 if ((x & Mono_Posix_SealType_F_SEAL_FUTURE_WRITE) == Mono_Posix_SealType_F_SEAL_FUTURE_WRITE)
4911 #ifdef F_SEAL_FUTURE_WRITE
4912 *r |= F_SEAL_FUTURE_WRITE;
4913 #else /* def F_SEAL_FUTURE_WRITE */
4914 {errno = EINVAL; return -1;}
4915 #endif /* ndef F_SEAL_FUTURE_WRITE */
4916 if ((x & Mono_Posix_SealType_F_SEAL_GROW) == Mono_Posix_SealType_F_SEAL_GROW)
4917 #ifdef F_SEAL_GROW
4918 *r |= F_SEAL_GROW;
4919 #else /* def F_SEAL_GROW */
4920 {errno = EINVAL; return -1;}
4921 #endif /* ndef F_SEAL_GROW */
4922 if ((x & Mono_Posix_SealType_F_SEAL_SEAL) == Mono_Posix_SealType_F_SEAL_SEAL)
4923 #ifdef F_SEAL_SEAL
4924 *r |= F_SEAL_SEAL;
4925 #else /* def F_SEAL_SEAL */
4926 {errno = EINVAL; return -1;}
4927 #endif /* ndef F_SEAL_SEAL */
4928 if ((x & Mono_Posix_SealType_F_SEAL_SHRINK) == Mono_Posix_SealType_F_SEAL_SHRINK)
4929 #ifdef F_SEAL_SHRINK
4930 *r |= F_SEAL_SHRINK;
4931 #else /* def F_SEAL_SHRINK */
4932 {errno = EINVAL; return -1;}
4933 #endif /* ndef F_SEAL_SHRINK */
4934 if ((x & Mono_Posix_SealType_F_SEAL_WRITE) == Mono_Posix_SealType_F_SEAL_WRITE)
4935 #ifdef F_SEAL_WRITE
4936 *r |= F_SEAL_WRITE;
4937 #else /* def F_SEAL_WRITE */
4938 {errno = EINVAL; return -1;}
4939 #endif /* ndef F_SEAL_WRITE */
4940 if (x == 0)
4941 return 0;
4942 return 0;
4945 int Mono_Posix_ToSealType (int x, int *r)
4947 *r = 0;
4948 if (x == 0)
4949 return 0;
4950 #ifdef F_SEAL_FUTURE_WRITE
4951 if ((x & F_SEAL_FUTURE_WRITE) == F_SEAL_FUTURE_WRITE)
4952 *r |= Mono_Posix_SealType_F_SEAL_FUTURE_WRITE;
4953 #endif /* ndef F_SEAL_FUTURE_WRITE */
4954 #ifdef F_SEAL_GROW
4955 if ((x & F_SEAL_GROW) == F_SEAL_GROW)
4956 *r |= Mono_Posix_SealType_F_SEAL_GROW;
4957 #endif /* ndef F_SEAL_GROW */
4958 #ifdef F_SEAL_SEAL
4959 if ((x & F_SEAL_SEAL) == F_SEAL_SEAL)
4960 *r |= Mono_Posix_SealType_F_SEAL_SEAL;
4961 #endif /* ndef F_SEAL_SEAL */
4962 #ifdef F_SEAL_SHRINK
4963 if ((x & F_SEAL_SHRINK) == F_SEAL_SHRINK)
4964 *r |= Mono_Posix_SealType_F_SEAL_SHRINK;
4965 #endif /* ndef F_SEAL_SHRINK */
4966 #ifdef F_SEAL_WRITE
4967 if ((x & F_SEAL_WRITE) == F_SEAL_WRITE)
4968 *r |= Mono_Posix_SealType_F_SEAL_WRITE;
4969 #endif /* ndef F_SEAL_WRITE */
4970 return 0;
4973 int Mono_Posix_FromSeekFlags (short x, short *r)
4975 *r = 0;
4976 if (x == Mono_Posix_SeekFlags_L_INCR)
4977 #ifdef L_INCR
4978 {*r = L_INCR; return 0;}
4979 #else /* def L_INCR */
4980 {errno = EINVAL; return -1;}
4981 #endif /* ndef L_INCR */
4982 if (x == Mono_Posix_SeekFlags_L_SET)
4983 #ifdef L_SET
4984 {*r = L_SET; return 0;}
4985 #else /* def L_SET */
4986 {errno = EINVAL; return -1;}
4987 #endif /* ndef L_SET */
4988 if (x == Mono_Posix_SeekFlags_L_XTND)
4989 #ifdef L_XTND
4990 {*r = L_XTND; return 0;}
4991 #else /* def L_XTND */
4992 {errno = EINVAL; return -1;}
4993 #endif /* ndef L_XTND */
4994 if (x == Mono_Posix_SeekFlags_SEEK_CUR)
4995 #ifdef SEEK_CUR
4996 {*r = SEEK_CUR; return 0;}
4997 #else /* def SEEK_CUR */
4998 {errno = EINVAL; return -1;}
4999 #endif /* ndef SEEK_CUR */
5000 if (x == Mono_Posix_SeekFlags_SEEK_END)
5001 #ifdef SEEK_END
5002 {*r = SEEK_END; return 0;}
5003 #else /* def SEEK_END */
5004 {errno = EINVAL; return -1;}
5005 #endif /* ndef SEEK_END */
5006 if (x == Mono_Posix_SeekFlags_SEEK_SET)
5007 #ifdef SEEK_SET
5008 {*r = SEEK_SET; return 0;}
5009 #else /* def SEEK_SET */
5010 {errno = EINVAL; return -1;}
5011 #endif /* ndef SEEK_SET */
5012 if (x == 0)
5013 return 0;
5014 errno = EINVAL; return -1;
5017 int Mono_Posix_ToSeekFlags (short x, short *r)
5019 *r = 0;
5020 if (x == 0)
5021 return 0;
5022 #ifdef L_INCR
5023 if (x == L_INCR)
5024 {*r = Mono_Posix_SeekFlags_L_INCR; return 0;}
5025 #endif /* ndef L_INCR */
5026 #ifdef L_SET
5027 if (x == L_SET)
5028 {*r = Mono_Posix_SeekFlags_L_SET; return 0;}
5029 #endif /* ndef L_SET */
5030 #ifdef L_XTND
5031 if (x == L_XTND)
5032 {*r = Mono_Posix_SeekFlags_L_XTND; return 0;}
5033 #endif /* ndef L_XTND */
5034 #ifdef SEEK_CUR
5035 if (x == SEEK_CUR)
5036 {*r = Mono_Posix_SeekFlags_SEEK_CUR; return 0;}
5037 #endif /* ndef SEEK_CUR */
5038 #ifdef SEEK_END
5039 if (x == SEEK_END)
5040 {*r = Mono_Posix_SeekFlags_SEEK_END; return 0;}
5041 #endif /* ndef SEEK_END */
5042 #ifdef SEEK_SET
5043 if (x == SEEK_SET)
5044 {*r = Mono_Posix_SeekFlags_SEEK_SET; return 0;}
5045 #endif /* ndef SEEK_SET */
5046 errno = EINVAL; return -1;
5049 int Mono_Posix_FromShutdownOption (int x, int *r)
5051 *r = 0;
5052 if (x == Mono_Posix_ShutdownOption_SHUT_RD)
5053 #ifdef SHUT_RD
5054 {*r = SHUT_RD; return 0;}
5055 #else /* def SHUT_RD */
5056 {errno = EINVAL; return -1;}
5057 #endif /* ndef SHUT_RD */
5058 if (x == Mono_Posix_ShutdownOption_SHUT_RDWR)
5059 #ifdef SHUT_RDWR
5060 {*r = SHUT_RDWR; return 0;}
5061 #else /* def SHUT_RDWR */
5062 {errno = EINVAL; return -1;}
5063 #endif /* ndef SHUT_RDWR */
5064 if (x == Mono_Posix_ShutdownOption_SHUT_WR)
5065 #ifdef SHUT_WR
5066 {*r = SHUT_WR; return 0;}
5067 #else /* def SHUT_WR */
5068 {errno = EINVAL; return -1;}
5069 #endif /* ndef SHUT_WR */
5070 if (x == 0)
5071 return 0;
5072 errno = EINVAL; return -1;
5075 int Mono_Posix_ToShutdownOption (int x, int *r)
5077 *r = 0;
5078 if (x == 0)
5079 return 0;
5080 #ifdef SHUT_RD
5081 if (x == SHUT_RD)
5082 {*r = Mono_Posix_ShutdownOption_SHUT_RD; return 0;}
5083 #endif /* ndef SHUT_RD */
5084 #ifdef SHUT_RDWR
5085 if (x == SHUT_RDWR)
5086 {*r = Mono_Posix_ShutdownOption_SHUT_RDWR; return 0;}
5087 #endif /* ndef SHUT_RDWR */
5088 #ifdef SHUT_WR
5089 if (x == SHUT_WR)
5090 {*r = Mono_Posix_ShutdownOption_SHUT_WR; return 0;}
5091 #endif /* ndef SHUT_WR */
5092 errno = EINVAL; return -1;
5095 int Mono_Posix_FromSignum (int x, int *r)
5097 *r = 0;
5098 if (x == Mono_Posix_Signum_SIGABRT)
5099 #ifdef SIGABRT
5100 {*r = SIGABRT; return 0;}
5101 #else /* def SIGABRT */
5102 {errno = EINVAL; return -1;}
5103 #endif /* ndef SIGABRT */
5104 if (x == Mono_Posix_Signum_SIGALRM)
5105 #ifdef SIGALRM
5106 {*r = SIGALRM; return 0;}
5107 #else /* def SIGALRM */
5108 {errno = EINVAL; return -1;}
5109 #endif /* ndef SIGALRM */
5110 if (x == Mono_Posix_Signum_SIGBUS)
5111 #ifdef SIGBUS
5112 {*r = SIGBUS; return 0;}
5113 #else /* def SIGBUS */
5114 {errno = EINVAL; return -1;}
5115 #endif /* ndef SIGBUS */
5116 if (x == Mono_Posix_Signum_SIGCHLD)
5117 #ifdef SIGCHLD
5118 {*r = SIGCHLD; return 0;}
5119 #else /* def SIGCHLD */
5120 {errno = EINVAL; return -1;}
5121 #endif /* ndef SIGCHLD */
5122 if (x == Mono_Posix_Signum_SIGCLD)
5123 #ifdef SIGCLD
5124 {*r = SIGCLD; return 0;}
5125 #else /* def SIGCLD */
5126 {errno = EINVAL; return -1;}
5127 #endif /* ndef SIGCLD */
5128 if (x == Mono_Posix_Signum_SIGCONT)
5129 #ifdef SIGCONT
5130 {*r = SIGCONT; return 0;}
5131 #else /* def SIGCONT */
5132 {errno = EINVAL; return -1;}
5133 #endif /* ndef SIGCONT */
5134 if (x == Mono_Posix_Signum_SIGFPE)
5135 #ifdef SIGFPE
5136 {*r = SIGFPE; return 0;}
5137 #else /* def SIGFPE */
5138 {errno = EINVAL; return -1;}
5139 #endif /* ndef SIGFPE */
5140 if (x == Mono_Posix_Signum_SIGHUP)
5141 #ifdef SIGHUP
5142 {*r = SIGHUP; return 0;}
5143 #else /* def SIGHUP */
5144 {errno = EINVAL; return -1;}
5145 #endif /* ndef SIGHUP */
5146 if (x == Mono_Posix_Signum_SIGILL)
5147 #ifdef SIGILL
5148 {*r = SIGILL; return 0;}
5149 #else /* def SIGILL */
5150 {errno = EINVAL; return -1;}
5151 #endif /* ndef SIGILL */
5152 if (x == Mono_Posix_Signum_SIGINT)
5153 #ifdef SIGINT
5154 {*r = SIGINT; return 0;}
5155 #else /* def SIGINT */
5156 {errno = EINVAL; return -1;}
5157 #endif /* ndef SIGINT */
5158 if (x == Mono_Posix_Signum_SIGIO)
5159 #ifdef SIGIO
5160 {*r = SIGIO; return 0;}
5161 #else /* def SIGIO */
5162 {errno = EINVAL; return -1;}
5163 #endif /* ndef SIGIO */
5164 if (x == Mono_Posix_Signum_SIGIOT)
5165 #ifdef SIGIOT
5166 {*r = SIGIOT; return 0;}
5167 #else /* def SIGIOT */
5168 {errno = EINVAL; return -1;}
5169 #endif /* ndef SIGIOT */
5170 if (x == Mono_Posix_Signum_SIGKILL)
5171 #ifdef SIGKILL
5172 {*r = SIGKILL; return 0;}
5173 #else /* def SIGKILL */
5174 {errno = EINVAL; return -1;}
5175 #endif /* ndef SIGKILL */
5176 if (x == Mono_Posix_Signum_SIGPIPE)
5177 #ifdef SIGPIPE
5178 {*r = SIGPIPE; return 0;}
5179 #else /* def SIGPIPE */
5180 {errno = EINVAL; return -1;}
5181 #endif /* ndef SIGPIPE */
5182 if (x == Mono_Posix_Signum_SIGPOLL)
5183 #ifdef SIGPOLL
5184 {*r = SIGPOLL; return 0;}
5185 #else /* def SIGPOLL */
5186 {errno = EINVAL; return -1;}
5187 #endif /* ndef SIGPOLL */
5188 if (x == Mono_Posix_Signum_SIGPROF)
5189 #ifdef SIGPROF
5190 {*r = SIGPROF; return 0;}
5191 #else /* def SIGPROF */
5192 {errno = EINVAL; return -1;}
5193 #endif /* ndef SIGPROF */
5194 if (x == Mono_Posix_Signum_SIGPWR)
5195 #ifdef SIGPWR
5196 {*r = SIGPWR; return 0;}
5197 #else /* def SIGPWR */
5198 {errno = EINVAL; return -1;}
5199 #endif /* ndef SIGPWR */
5200 if (x == Mono_Posix_Signum_SIGQUIT)
5201 #ifdef SIGQUIT
5202 {*r = SIGQUIT; return 0;}
5203 #else /* def SIGQUIT */
5204 {errno = EINVAL; return -1;}
5205 #endif /* ndef SIGQUIT */
5206 if (x == Mono_Posix_Signum_SIGSEGV)
5207 #ifdef SIGSEGV
5208 {*r = SIGSEGV; return 0;}
5209 #else /* def SIGSEGV */
5210 {errno = EINVAL; return -1;}
5211 #endif /* ndef SIGSEGV */
5212 if (x == Mono_Posix_Signum_SIGSTKFLT)
5213 #ifdef SIGSTKFLT
5214 {*r = SIGSTKFLT; return 0;}
5215 #else /* def SIGSTKFLT */
5216 {errno = EINVAL; return -1;}
5217 #endif /* ndef SIGSTKFLT */
5218 if (x == Mono_Posix_Signum_SIGSTOP)
5219 #ifdef SIGSTOP
5220 {*r = SIGSTOP; return 0;}
5221 #else /* def SIGSTOP */
5222 {errno = EINVAL; return -1;}
5223 #endif /* ndef SIGSTOP */
5224 if (x == Mono_Posix_Signum_SIGSYS)
5225 #ifdef SIGSYS
5226 {*r = SIGSYS; return 0;}
5227 #else /* def SIGSYS */
5228 {errno = EINVAL; return -1;}
5229 #endif /* ndef SIGSYS */
5230 if (x == Mono_Posix_Signum_SIGTERM)
5231 #ifdef SIGTERM
5232 {*r = SIGTERM; return 0;}
5233 #else /* def SIGTERM */
5234 {errno = EINVAL; return -1;}
5235 #endif /* ndef SIGTERM */
5236 if (x == Mono_Posix_Signum_SIGTRAP)
5237 #ifdef SIGTRAP
5238 {*r = SIGTRAP; return 0;}
5239 #else /* def SIGTRAP */
5240 {errno = EINVAL; return -1;}
5241 #endif /* ndef SIGTRAP */
5242 if (x == Mono_Posix_Signum_SIGTSTP)
5243 #ifdef SIGTSTP
5244 {*r = SIGTSTP; return 0;}
5245 #else /* def SIGTSTP */
5246 {errno = EINVAL; return -1;}
5247 #endif /* ndef SIGTSTP */
5248 if (x == Mono_Posix_Signum_SIGTTIN)
5249 #ifdef SIGTTIN
5250 {*r = SIGTTIN; return 0;}
5251 #else /* def SIGTTIN */
5252 {errno = EINVAL; return -1;}
5253 #endif /* ndef SIGTTIN */
5254 if (x == Mono_Posix_Signum_SIGTTOU)
5255 #ifdef SIGTTOU
5256 {*r = SIGTTOU; return 0;}
5257 #else /* def SIGTTOU */
5258 {errno = EINVAL; return -1;}
5259 #endif /* ndef SIGTTOU */
5260 if (x == Mono_Posix_Signum_SIGUNUSED)
5261 #ifdef SIGUNUSED
5262 {*r = SIGUNUSED; return 0;}
5263 #else /* def SIGUNUSED */
5264 {errno = EINVAL; return -1;}
5265 #endif /* ndef SIGUNUSED */
5266 if (x == Mono_Posix_Signum_SIGURG)
5267 #ifdef SIGURG
5268 {*r = SIGURG; return 0;}
5269 #else /* def SIGURG */
5270 {errno = EINVAL; return -1;}
5271 #endif /* ndef SIGURG */
5272 if (x == Mono_Posix_Signum_SIGUSR1)
5273 #ifdef SIGUSR1
5274 {*r = SIGUSR1; return 0;}
5275 #else /* def SIGUSR1 */
5276 {errno = EINVAL; return -1;}
5277 #endif /* ndef SIGUSR1 */
5278 if (x == Mono_Posix_Signum_SIGUSR2)
5279 #ifdef SIGUSR2
5280 {*r = SIGUSR2; return 0;}
5281 #else /* def SIGUSR2 */
5282 {errno = EINVAL; return -1;}
5283 #endif /* ndef SIGUSR2 */
5284 if (x == Mono_Posix_Signum_SIGVTALRM)
5285 #ifdef SIGVTALRM
5286 {*r = SIGVTALRM; return 0;}
5287 #else /* def SIGVTALRM */
5288 {errno = EINVAL; return -1;}
5289 #endif /* ndef SIGVTALRM */
5290 if (x == Mono_Posix_Signum_SIGWINCH)
5291 #ifdef SIGWINCH
5292 {*r = SIGWINCH; return 0;}
5293 #else /* def SIGWINCH */
5294 {errno = EINVAL; return -1;}
5295 #endif /* ndef SIGWINCH */
5296 if (x == Mono_Posix_Signum_SIGXCPU)
5297 #ifdef SIGXCPU
5298 {*r = SIGXCPU; return 0;}
5299 #else /* def SIGXCPU */
5300 {errno = EINVAL; return -1;}
5301 #endif /* ndef SIGXCPU */
5302 if (x == Mono_Posix_Signum_SIGXFSZ)
5303 #ifdef SIGXFSZ
5304 {*r = SIGXFSZ; return 0;}
5305 #else /* def SIGXFSZ */
5306 {errno = EINVAL; return -1;}
5307 #endif /* ndef SIGXFSZ */
5308 if (x == 0)
5309 return 0;
5310 errno = EINVAL; return -1;
5313 int Mono_Posix_ToSignum (int x, int *r)
5315 *r = 0;
5316 if (x == 0)
5317 return 0;
5318 #ifdef SIGABRT
5319 if (x == SIGABRT)
5320 {*r = Mono_Posix_Signum_SIGABRT; return 0;}
5321 #endif /* ndef SIGABRT */
5322 #ifdef SIGALRM
5323 if (x == SIGALRM)
5324 {*r = Mono_Posix_Signum_SIGALRM; return 0;}
5325 #endif /* ndef SIGALRM */
5326 #ifdef SIGBUS
5327 if (x == SIGBUS)
5328 {*r = Mono_Posix_Signum_SIGBUS; return 0;}
5329 #endif /* ndef SIGBUS */
5330 #ifdef SIGCHLD
5331 if (x == SIGCHLD)
5332 {*r = Mono_Posix_Signum_SIGCHLD; return 0;}
5333 #endif /* ndef SIGCHLD */
5334 #ifdef SIGCLD
5335 if (x == SIGCLD)
5336 {*r = Mono_Posix_Signum_SIGCLD; return 0;}
5337 #endif /* ndef SIGCLD */
5338 #ifdef SIGCONT
5339 if (x == SIGCONT)
5340 {*r = Mono_Posix_Signum_SIGCONT; return 0;}
5341 #endif /* ndef SIGCONT */
5342 #ifdef SIGFPE
5343 if (x == SIGFPE)
5344 {*r = Mono_Posix_Signum_SIGFPE; return 0;}
5345 #endif /* ndef SIGFPE */
5346 #ifdef SIGHUP
5347 if (x == SIGHUP)
5348 {*r = Mono_Posix_Signum_SIGHUP; return 0;}
5349 #endif /* ndef SIGHUP */
5350 #ifdef SIGILL
5351 if (x == SIGILL)
5352 {*r = Mono_Posix_Signum_SIGILL; return 0;}
5353 #endif /* ndef SIGILL */
5354 #ifdef SIGINT
5355 if (x == SIGINT)
5356 {*r = Mono_Posix_Signum_SIGINT; return 0;}
5357 #endif /* ndef SIGINT */
5358 #ifdef SIGIO
5359 if (x == SIGIO)
5360 {*r = Mono_Posix_Signum_SIGIO; return 0;}
5361 #endif /* ndef SIGIO */
5362 #ifdef SIGIOT
5363 if (x == SIGIOT)
5364 {*r = Mono_Posix_Signum_SIGIOT; return 0;}
5365 #endif /* ndef SIGIOT */
5366 #ifdef SIGKILL
5367 if (x == SIGKILL)
5368 {*r = Mono_Posix_Signum_SIGKILL; return 0;}
5369 #endif /* ndef SIGKILL */
5370 #ifdef SIGPIPE
5371 if (x == SIGPIPE)
5372 {*r = Mono_Posix_Signum_SIGPIPE; return 0;}
5373 #endif /* ndef SIGPIPE */
5374 #ifdef SIGPOLL
5375 if (x == SIGPOLL)
5376 {*r = Mono_Posix_Signum_SIGPOLL; return 0;}
5377 #endif /* ndef SIGPOLL */
5378 #ifdef SIGPROF
5379 if (x == SIGPROF)
5380 {*r = Mono_Posix_Signum_SIGPROF; return 0;}
5381 #endif /* ndef SIGPROF */
5382 #ifdef SIGPWR
5383 if (x == SIGPWR)
5384 {*r = Mono_Posix_Signum_SIGPWR; return 0;}
5385 #endif /* ndef SIGPWR */
5386 #ifdef SIGQUIT
5387 if (x == SIGQUIT)
5388 {*r = Mono_Posix_Signum_SIGQUIT; return 0;}
5389 #endif /* ndef SIGQUIT */
5390 #ifdef SIGSEGV
5391 if (x == SIGSEGV)
5392 {*r = Mono_Posix_Signum_SIGSEGV; return 0;}
5393 #endif /* ndef SIGSEGV */
5394 #ifdef SIGSTKFLT
5395 if (x == SIGSTKFLT)
5396 {*r = Mono_Posix_Signum_SIGSTKFLT; return 0;}
5397 #endif /* ndef SIGSTKFLT */
5398 #ifdef SIGSTOP
5399 if (x == SIGSTOP)
5400 {*r = Mono_Posix_Signum_SIGSTOP; return 0;}
5401 #endif /* ndef SIGSTOP */
5402 #ifdef SIGSYS
5403 if (x == SIGSYS)
5404 {*r = Mono_Posix_Signum_SIGSYS; return 0;}
5405 #endif /* ndef SIGSYS */
5406 #ifdef SIGTERM
5407 if (x == SIGTERM)
5408 {*r = Mono_Posix_Signum_SIGTERM; return 0;}
5409 #endif /* ndef SIGTERM */
5410 #ifdef SIGTRAP
5411 if (x == SIGTRAP)
5412 {*r = Mono_Posix_Signum_SIGTRAP; return 0;}
5413 #endif /* ndef SIGTRAP */
5414 #ifdef SIGTSTP
5415 if (x == SIGTSTP)
5416 {*r = Mono_Posix_Signum_SIGTSTP; return 0;}
5417 #endif /* ndef SIGTSTP */
5418 #ifdef SIGTTIN
5419 if (x == SIGTTIN)
5420 {*r = Mono_Posix_Signum_SIGTTIN; return 0;}
5421 #endif /* ndef SIGTTIN */
5422 #ifdef SIGTTOU
5423 if (x == SIGTTOU)
5424 {*r = Mono_Posix_Signum_SIGTTOU; return 0;}
5425 #endif /* ndef SIGTTOU */
5426 #ifdef SIGUNUSED
5427 if (x == SIGUNUSED)
5428 {*r = Mono_Posix_Signum_SIGUNUSED; return 0;}
5429 #endif /* ndef SIGUNUSED */
5430 #ifdef SIGURG
5431 if (x == SIGURG)
5432 {*r = Mono_Posix_Signum_SIGURG; return 0;}
5433 #endif /* ndef SIGURG */
5434 #ifdef SIGUSR1
5435 if (x == SIGUSR1)
5436 {*r = Mono_Posix_Signum_SIGUSR1; return 0;}
5437 #endif /* ndef SIGUSR1 */
5438 #ifdef SIGUSR2
5439 if (x == SIGUSR2)
5440 {*r = Mono_Posix_Signum_SIGUSR2; return 0;}
5441 #endif /* ndef SIGUSR2 */
5442 #ifdef SIGVTALRM
5443 if (x == SIGVTALRM)
5444 {*r = Mono_Posix_Signum_SIGVTALRM; return 0;}
5445 #endif /* ndef SIGVTALRM */
5446 #ifdef SIGWINCH
5447 if (x == SIGWINCH)
5448 {*r = Mono_Posix_Signum_SIGWINCH; return 0;}
5449 #endif /* ndef SIGWINCH */
5450 #ifdef SIGXCPU
5451 if (x == SIGXCPU)
5452 {*r = Mono_Posix_Signum_SIGXCPU; return 0;}
5453 #endif /* ndef SIGXCPU */
5454 #ifdef SIGXFSZ
5455 if (x == SIGXFSZ)
5456 {*r = Mono_Posix_Signum_SIGXFSZ; return 0;}
5457 #endif /* ndef SIGXFSZ */
5458 errno = EINVAL; return -1;
5461 #ifdef HAVE_STRUCT_SOCKADDR_IN
5463 Mono_Posix_FromSockaddrIn (struct Mono_Posix_SockaddrIn *from, struct sockaddr_in *to)
5465 _cnm_return_val_if_overflow (unsigned short, from->sin_port, -1);
5467 memset (to, 0, sizeof(*to));
5469 to->sin_port = from->sin_port;
5470 if (Mono_Posix_FromInAddr (&from->sin_addr, &to->sin_addr) != 0) {
5471 return -1;
5474 return 0;
5476 #endif /* ndef HAVE_STRUCT_SOCKADDR_IN */
5479 #ifdef HAVE_STRUCT_SOCKADDR_IN
5481 Mono_Posix_ToSockaddrIn (struct sockaddr_in *from, struct Mono_Posix_SockaddrIn *to)
5483 _cnm_return_val_if_overflow (unsigned short, from->sin_port, -1);
5485 memset (to, 0, sizeof(*to));
5487 to->sin_port = from->sin_port;
5488 if (Mono_Posix_ToInAddr (&from->sin_addr, &to->sin_addr) != 0) {
5489 return -1;
5492 return 0;
5494 #endif /* ndef HAVE_STRUCT_SOCKADDR_IN */
5497 #ifdef HAVE_STRUCT_SOCKADDR_IN6
5499 Mono_Posix_FromSockaddrIn6 (struct Mono_Posix_SockaddrIn6 *from, struct sockaddr_in6 *to)
5501 _cnm_return_val_if_overflow (unsigned short, from->sin6_port, -1);
5502 _cnm_return_val_if_overflow (unsigned int, from->sin6_flowinfo, -1);
5503 _cnm_return_val_if_overflow (unsigned int, from->sin6_scope_id, -1);
5505 memset (to, 0, sizeof(*to));
5507 to->sin6_port = from->sin6_port;
5508 to->sin6_flowinfo = from->sin6_flowinfo;
5509 if (Mono_Posix_FromIn6Addr (&from->sin6_addr, &to->sin6_addr) != 0) {
5510 return -1;
5512 to->sin6_scope_id = from->sin6_scope_id;
5514 return 0;
5516 #endif /* ndef HAVE_STRUCT_SOCKADDR_IN6 */
5519 #ifdef HAVE_STRUCT_SOCKADDR_IN6
5521 Mono_Posix_ToSockaddrIn6 (struct sockaddr_in6 *from, struct Mono_Posix_SockaddrIn6 *to)
5523 _cnm_return_val_if_overflow (unsigned short, from->sin6_port, -1);
5524 _cnm_return_val_if_overflow (unsigned int, from->sin6_flowinfo, -1);
5525 _cnm_return_val_if_overflow (unsigned int, from->sin6_scope_id, -1);
5527 memset (to, 0, sizeof(*to));
5529 to->sin6_port = from->sin6_port;
5530 to->sin6_flowinfo = from->sin6_flowinfo;
5531 if (Mono_Posix_ToIn6Addr (&from->sin6_addr, &to->sin6_addr) != 0) {
5532 return -1;
5534 to->sin6_scope_id = from->sin6_scope_id;
5536 return 0;
5538 #endif /* ndef HAVE_STRUCT_SOCKADDR_IN6 */
5541 int Mono_Posix_FromSockaddrType (int x, int *r)
5543 *r = 0;
5544 if (x == Mono_Posix_SockaddrType_Invalid)
5545 #ifdef Invalid
5546 {*r = Invalid; return 0;}
5547 #else /* def Invalid */
5548 {errno = EINVAL; return -1;}
5549 #endif /* ndef Invalid */
5550 if (x == Mono_Posix_SockaddrType_MustBeWrapped)
5551 #ifdef MustBeWrapped
5552 {*r = MustBeWrapped; return 0;}
5553 #else /* def MustBeWrapped */
5554 {errno = EINVAL; return -1;}
5555 #endif /* ndef MustBeWrapped */
5556 if (x == Mono_Posix_SockaddrType_Sockaddr)
5557 #ifdef Sockaddr
5558 {*r = Sockaddr; return 0;}
5559 #else /* def Sockaddr */
5560 {errno = EINVAL; return -1;}
5561 #endif /* ndef Sockaddr */
5562 if (x == Mono_Posix_SockaddrType_SockaddrIn)
5563 #ifdef SockaddrIn
5564 {*r = SockaddrIn; return 0;}
5565 #else /* def SockaddrIn */
5566 {errno = EINVAL; return -1;}
5567 #endif /* ndef SockaddrIn */
5568 if (x == Mono_Posix_SockaddrType_SockaddrIn6)
5569 #ifdef SockaddrIn6
5570 {*r = SockaddrIn6; return 0;}
5571 #else /* def SockaddrIn6 */
5572 {errno = EINVAL; return -1;}
5573 #endif /* ndef SockaddrIn6 */
5574 if (x == Mono_Posix_SockaddrType_SockaddrStorage)
5575 #ifdef SockaddrStorage
5576 {*r = SockaddrStorage; return 0;}
5577 #else /* def SockaddrStorage */
5578 {errno = EINVAL; return -1;}
5579 #endif /* ndef SockaddrStorage */
5580 if (x == Mono_Posix_SockaddrType_SockaddrUn)
5581 #ifdef SockaddrUn
5582 {*r = SockaddrUn; return 0;}
5583 #else /* def SockaddrUn */
5584 {errno = EINVAL; return -1;}
5585 #endif /* ndef SockaddrUn */
5586 if (x == 0)
5587 return 0;
5588 errno = EINVAL; return -1;
5591 int Mono_Posix_ToSockaddrType (int x, int *r)
5593 *r = 0;
5594 if (x == 0)
5595 return 0;
5596 #ifdef Invalid
5597 if (x == Invalid)
5598 {*r = Mono_Posix_SockaddrType_Invalid; return 0;}
5599 #endif /* ndef Invalid */
5600 #ifdef MustBeWrapped
5601 if (x == MustBeWrapped)
5602 {*r = Mono_Posix_SockaddrType_MustBeWrapped; return 0;}
5603 #endif /* ndef MustBeWrapped */
5604 #ifdef Sockaddr
5605 if (x == Sockaddr)
5606 {*r = Mono_Posix_SockaddrType_Sockaddr; return 0;}
5607 #endif /* ndef Sockaddr */
5608 #ifdef SockaddrIn
5609 if (x == SockaddrIn)
5610 {*r = Mono_Posix_SockaddrType_SockaddrIn; return 0;}
5611 #endif /* ndef SockaddrIn */
5612 #ifdef SockaddrIn6
5613 if (x == SockaddrIn6)
5614 {*r = Mono_Posix_SockaddrType_SockaddrIn6; return 0;}
5615 #endif /* ndef SockaddrIn6 */
5616 #ifdef SockaddrStorage
5617 if (x == SockaddrStorage)
5618 {*r = Mono_Posix_SockaddrType_SockaddrStorage; return 0;}
5619 #endif /* ndef SockaddrStorage */
5620 #ifdef SockaddrUn
5621 if (x == SockaddrUn)
5622 {*r = Mono_Posix_SockaddrType_SockaddrUn; return 0;}
5623 #endif /* ndef SockaddrUn */
5624 errno = EINVAL; return -1;
5627 int Mono_Posix_FromSysconfName (int x, int *r)
5629 *r = 0;
5630 if (x == Mono_Posix_SysconfName__SC_2_CHAR_TERM)
5631 #ifdef _SC_2_CHAR_TERM
5632 {*r = _SC_2_CHAR_TERM; return 0;}
5633 #else /* def _SC_2_CHAR_TERM */
5634 {errno = EINVAL; return -1;}
5635 #endif /* ndef _SC_2_CHAR_TERM */
5636 if (x == Mono_Posix_SysconfName__SC_2_C_BIND)
5637 #ifdef _SC_2_C_BIND
5638 {*r = _SC_2_C_BIND; return 0;}
5639 #else /* def _SC_2_C_BIND */
5640 {errno = EINVAL; return -1;}
5641 #endif /* ndef _SC_2_C_BIND */
5642 if (x == Mono_Posix_SysconfName__SC_2_C_DEV)
5643 #ifdef _SC_2_C_DEV
5644 {*r = _SC_2_C_DEV; return 0;}
5645 #else /* def _SC_2_C_DEV */
5646 {errno = EINVAL; return -1;}
5647 #endif /* ndef _SC_2_C_DEV */
5648 if (x == Mono_Posix_SysconfName__SC_2_C_VERSION)
5649 #ifdef _SC_2_C_VERSION
5650 {*r = _SC_2_C_VERSION; return 0;}
5651 #else /* def _SC_2_C_VERSION */
5652 {errno = EINVAL; return -1;}
5653 #endif /* ndef _SC_2_C_VERSION */
5654 if (x == Mono_Posix_SysconfName__SC_2_FORT_DEV)
5655 #ifdef _SC_2_FORT_DEV
5656 {*r = _SC_2_FORT_DEV; return 0;}
5657 #else /* def _SC_2_FORT_DEV */
5658 {errno = EINVAL; return -1;}
5659 #endif /* ndef _SC_2_FORT_DEV */
5660 if (x == Mono_Posix_SysconfName__SC_2_FORT_RUN)
5661 #ifdef _SC_2_FORT_RUN
5662 {*r = _SC_2_FORT_RUN; return 0;}
5663 #else /* def _SC_2_FORT_RUN */
5664 {errno = EINVAL; return -1;}
5665 #endif /* ndef _SC_2_FORT_RUN */
5666 if (x == Mono_Posix_SysconfName__SC_2_LOCALEDEF)
5667 #ifdef _SC_2_LOCALEDEF
5668 {*r = _SC_2_LOCALEDEF; return 0;}
5669 #else /* def _SC_2_LOCALEDEF */
5670 {errno = EINVAL; return -1;}
5671 #endif /* ndef _SC_2_LOCALEDEF */
5672 if (x == Mono_Posix_SysconfName__SC_2_PBS)
5673 #ifdef _SC_2_PBS
5674 {*r = _SC_2_PBS; return 0;}
5675 #else /* def _SC_2_PBS */
5676 {errno = EINVAL; return -1;}
5677 #endif /* ndef _SC_2_PBS */
5678 if (x == Mono_Posix_SysconfName__SC_2_PBS_ACCOUNTING)
5679 #ifdef _SC_2_PBS_ACCOUNTING
5680 {*r = _SC_2_PBS_ACCOUNTING; return 0;}
5681 #else /* def _SC_2_PBS_ACCOUNTING */
5682 {errno = EINVAL; return -1;}
5683 #endif /* ndef _SC_2_PBS_ACCOUNTING */
5684 if (x == Mono_Posix_SysconfName__SC_2_PBS_CHECKPOINT)
5685 #ifdef _SC_2_PBS_CHECKPOINT
5686 {*r = _SC_2_PBS_CHECKPOINT; return 0;}
5687 #else /* def _SC_2_PBS_CHECKPOINT */
5688 {errno = EINVAL; return -1;}
5689 #endif /* ndef _SC_2_PBS_CHECKPOINT */
5690 if (x == Mono_Posix_SysconfName__SC_2_PBS_LOCATE)
5691 #ifdef _SC_2_PBS_LOCATE
5692 {*r = _SC_2_PBS_LOCATE; return 0;}
5693 #else /* def _SC_2_PBS_LOCATE */
5694 {errno = EINVAL; return -1;}
5695 #endif /* ndef _SC_2_PBS_LOCATE */
5696 if (x == Mono_Posix_SysconfName__SC_2_PBS_MESSAGE)
5697 #ifdef _SC_2_PBS_MESSAGE
5698 {*r = _SC_2_PBS_MESSAGE; return 0;}
5699 #else /* def _SC_2_PBS_MESSAGE */
5700 {errno = EINVAL; return -1;}
5701 #endif /* ndef _SC_2_PBS_MESSAGE */
5702 if (x == Mono_Posix_SysconfName__SC_2_PBS_TRACK)
5703 #ifdef _SC_2_PBS_TRACK
5704 {*r = _SC_2_PBS_TRACK; return 0;}
5705 #else /* def _SC_2_PBS_TRACK */
5706 {errno = EINVAL; return -1;}
5707 #endif /* ndef _SC_2_PBS_TRACK */
5708 if (x == Mono_Posix_SysconfName__SC_2_SW_DEV)
5709 #ifdef _SC_2_SW_DEV
5710 {*r = _SC_2_SW_DEV; return 0;}
5711 #else /* def _SC_2_SW_DEV */
5712 {errno = EINVAL; return -1;}
5713 #endif /* ndef _SC_2_SW_DEV */
5714 if (x == Mono_Posix_SysconfName__SC_2_UPE)
5715 #ifdef _SC_2_UPE
5716 {*r = _SC_2_UPE; return 0;}
5717 #else /* def _SC_2_UPE */
5718 {errno = EINVAL; return -1;}
5719 #endif /* ndef _SC_2_UPE */
5720 if (x == Mono_Posix_SysconfName__SC_2_VERSION)
5721 #ifdef _SC_2_VERSION
5722 {*r = _SC_2_VERSION; return 0;}
5723 #else /* def _SC_2_VERSION */
5724 {errno = EINVAL; return -1;}
5725 #endif /* ndef _SC_2_VERSION */
5726 if (x == Mono_Posix_SysconfName__SC_ADVISORY_INFO)
5727 #ifdef _SC_ADVISORY_INFO
5728 {*r = _SC_ADVISORY_INFO; return 0;}
5729 #else /* def _SC_ADVISORY_INFO */
5730 {errno = EINVAL; return -1;}
5731 #endif /* ndef _SC_ADVISORY_INFO */
5732 if (x == Mono_Posix_SysconfName__SC_AIO_LISTIO_MAX)
5733 #ifdef _SC_AIO_LISTIO_MAX
5734 {*r = _SC_AIO_LISTIO_MAX; return 0;}
5735 #else /* def _SC_AIO_LISTIO_MAX */
5736 {errno = EINVAL; return -1;}
5737 #endif /* ndef _SC_AIO_LISTIO_MAX */
5738 if (x == Mono_Posix_SysconfName__SC_AIO_MAX)
5739 #ifdef _SC_AIO_MAX
5740 {*r = _SC_AIO_MAX; return 0;}
5741 #else /* def _SC_AIO_MAX */
5742 {errno = EINVAL; return -1;}
5743 #endif /* ndef _SC_AIO_MAX */
5744 if (x == Mono_Posix_SysconfName__SC_AIO_PRIO_DELTA_MAX)
5745 #ifdef _SC_AIO_PRIO_DELTA_MAX
5746 {*r = _SC_AIO_PRIO_DELTA_MAX; return 0;}
5747 #else /* def _SC_AIO_PRIO_DELTA_MAX */
5748 {errno = EINVAL; return -1;}
5749 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
5750 if (x == Mono_Posix_SysconfName__SC_ARG_MAX)
5751 #ifdef _SC_ARG_MAX
5752 {*r = _SC_ARG_MAX; return 0;}
5753 #else /* def _SC_ARG_MAX */
5754 {errno = EINVAL; return -1;}
5755 #endif /* ndef _SC_ARG_MAX */
5756 if (x == Mono_Posix_SysconfName__SC_ASYNCHRONOUS_IO)
5757 #ifdef _SC_ASYNCHRONOUS_IO
5758 {*r = _SC_ASYNCHRONOUS_IO; return 0;}
5759 #else /* def _SC_ASYNCHRONOUS_IO */
5760 {errno = EINVAL; return -1;}
5761 #endif /* ndef _SC_ASYNCHRONOUS_IO */
5762 if (x == Mono_Posix_SysconfName__SC_ATEXIT_MAX)
5763 #ifdef _SC_ATEXIT_MAX
5764 {*r = _SC_ATEXIT_MAX; return 0;}
5765 #else /* def _SC_ATEXIT_MAX */
5766 {errno = EINVAL; return -1;}
5767 #endif /* ndef _SC_ATEXIT_MAX */
5768 if (x == Mono_Posix_SysconfName__SC_AVPHYS_PAGES)
5769 #ifdef _SC_AVPHYS_PAGES
5770 {*r = _SC_AVPHYS_PAGES; return 0;}
5771 #else /* def _SC_AVPHYS_PAGES */
5772 {errno = EINVAL; return -1;}
5773 #endif /* ndef _SC_AVPHYS_PAGES */
5774 if (x == Mono_Posix_SysconfName__SC_BARRIERS)
5775 #ifdef _SC_BARRIERS
5776 {*r = _SC_BARRIERS; return 0;}
5777 #else /* def _SC_BARRIERS */
5778 {errno = EINVAL; return -1;}
5779 #endif /* ndef _SC_BARRIERS */
5780 if (x == Mono_Posix_SysconfName__SC_BASE)
5781 #ifdef _SC_BASE
5782 {*r = _SC_BASE; return 0;}
5783 #else /* def _SC_BASE */
5784 {errno = EINVAL; return -1;}
5785 #endif /* ndef _SC_BASE */
5786 if (x == Mono_Posix_SysconfName__SC_BC_BASE_MAX)
5787 #ifdef _SC_BC_BASE_MAX
5788 {*r = _SC_BC_BASE_MAX; return 0;}
5789 #else /* def _SC_BC_BASE_MAX */
5790 {errno = EINVAL; return -1;}
5791 #endif /* ndef _SC_BC_BASE_MAX */
5792 if (x == Mono_Posix_SysconfName__SC_BC_DIM_MAX)
5793 #ifdef _SC_BC_DIM_MAX
5794 {*r = _SC_BC_DIM_MAX; return 0;}
5795 #else /* def _SC_BC_DIM_MAX */
5796 {errno = EINVAL; return -1;}
5797 #endif /* ndef _SC_BC_DIM_MAX */
5798 if (x == Mono_Posix_SysconfName__SC_BC_SCALE_MAX)
5799 #ifdef _SC_BC_SCALE_MAX
5800 {*r = _SC_BC_SCALE_MAX; return 0;}
5801 #else /* def _SC_BC_SCALE_MAX */
5802 {errno = EINVAL; return -1;}
5803 #endif /* ndef _SC_BC_SCALE_MAX */
5804 if (x == Mono_Posix_SysconfName__SC_BC_STRING_MAX)
5805 #ifdef _SC_BC_STRING_MAX
5806 {*r = _SC_BC_STRING_MAX; return 0;}
5807 #else /* def _SC_BC_STRING_MAX */
5808 {errno = EINVAL; return -1;}
5809 #endif /* ndef _SC_BC_STRING_MAX */
5810 if (x == Mono_Posix_SysconfName__SC_CHARCLASS_NAME_MAX)
5811 #ifdef _SC_CHARCLASS_NAME_MAX
5812 {*r = _SC_CHARCLASS_NAME_MAX; return 0;}
5813 #else /* def _SC_CHARCLASS_NAME_MAX */
5814 {errno = EINVAL; return -1;}
5815 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
5816 if (x == Mono_Posix_SysconfName__SC_CHAR_BIT)
5817 #ifdef _SC_CHAR_BIT
5818 {*r = _SC_CHAR_BIT; return 0;}
5819 #else /* def _SC_CHAR_BIT */
5820 {errno = EINVAL; return -1;}
5821 #endif /* ndef _SC_CHAR_BIT */
5822 if (x == Mono_Posix_SysconfName__SC_CHAR_MAX)
5823 #ifdef _SC_CHAR_MAX
5824 {*r = _SC_CHAR_MAX; return 0;}
5825 #else /* def _SC_CHAR_MAX */
5826 {errno = EINVAL; return -1;}
5827 #endif /* ndef _SC_CHAR_MAX */
5828 if (x == Mono_Posix_SysconfName__SC_CHAR_MIN)
5829 #ifdef _SC_CHAR_MIN
5830 {*r = _SC_CHAR_MIN; return 0;}
5831 #else /* def _SC_CHAR_MIN */
5832 {errno = EINVAL; return -1;}
5833 #endif /* ndef _SC_CHAR_MIN */
5834 if (x == Mono_Posix_SysconfName__SC_CHILD_MAX)
5835 #ifdef _SC_CHILD_MAX
5836 {*r = _SC_CHILD_MAX; return 0;}
5837 #else /* def _SC_CHILD_MAX */
5838 {errno = EINVAL; return -1;}
5839 #endif /* ndef _SC_CHILD_MAX */
5840 if (x == Mono_Posix_SysconfName__SC_CLK_TCK)
5841 #ifdef _SC_CLK_TCK
5842 {*r = _SC_CLK_TCK; return 0;}
5843 #else /* def _SC_CLK_TCK */
5844 {errno = EINVAL; return -1;}
5845 #endif /* ndef _SC_CLK_TCK */
5846 if (x == Mono_Posix_SysconfName__SC_CLOCK_SELECTION)
5847 #ifdef _SC_CLOCK_SELECTION
5848 {*r = _SC_CLOCK_SELECTION; return 0;}
5849 #else /* def _SC_CLOCK_SELECTION */
5850 {errno = EINVAL; return -1;}
5851 #endif /* ndef _SC_CLOCK_SELECTION */
5852 if (x == Mono_Posix_SysconfName__SC_COLL_WEIGHTS_MAX)
5853 #ifdef _SC_COLL_WEIGHTS_MAX
5854 {*r = _SC_COLL_WEIGHTS_MAX; return 0;}
5855 #else /* def _SC_COLL_WEIGHTS_MAX */
5856 {errno = EINVAL; return -1;}
5857 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
5858 if (x == Mono_Posix_SysconfName__SC_CPUTIME)
5859 #ifdef _SC_CPUTIME
5860 {*r = _SC_CPUTIME; return 0;}
5861 #else /* def _SC_CPUTIME */
5862 {errno = EINVAL; return -1;}
5863 #endif /* ndef _SC_CPUTIME */
5864 if (x == Mono_Posix_SysconfName__SC_C_LANG_SUPPORT)
5865 #ifdef _SC_C_LANG_SUPPORT
5866 {*r = _SC_C_LANG_SUPPORT; return 0;}
5867 #else /* def _SC_C_LANG_SUPPORT */
5868 {errno = EINVAL; return -1;}
5869 #endif /* ndef _SC_C_LANG_SUPPORT */
5870 if (x == Mono_Posix_SysconfName__SC_C_LANG_SUPPORT_R)
5871 #ifdef _SC_C_LANG_SUPPORT_R
5872 {*r = _SC_C_LANG_SUPPORT_R; return 0;}
5873 #else /* def _SC_C_LANG_SUPPORT_R */
5874 {errno = EINVAL; return -1;}
5875 #endif /* ndef _SC_C_LANG_SUPPORT_R */
5876 if (x == Mono_Posix_SysconfName__SC_DELAYTIMER_MAX)
5877 #ifdef _SC_DELAYTIMER_MAX
5878 {*r = _SC_DELAYTIMER_MAX; return 0;}
5879 #else /* def _SC_DELAYTIMER_MAX */
5880 {errno = EINVAL; return -1;}
5881 #endif /* ndef _SC_DELAYTIMER_MAX */
5882 if (x == Mono_Posix_SysconfName__SC_DEVICE_IO)
5883 #ifdef _SC_DEVICE_IO
5884 {*r = _SC_DEVICE_IO; return 0;}
5885 #else /* def _SC_DEVICE_IO */
5886 {errno = EINVAL; return -1;}
5887 #endif /* ndef _SC_DEVICE_IO */
5888 if (x == Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC)
5889 #ifdef _SC_DEVICE_SPECIFIC
5890 {*r = _SC_DEVICE_SPECIFIC; return 0;}
5891 #else /* def _SC_DEVICE_SPECIFIC */
5892 {errno = EINVAL; return -1;}
5893 #endif /* ndef _SC_DEVICE_SPECIFIC */
5894 if (x == Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC_R)
5895 #ifdef _SC_DEVICE_SPECIFIC_R
5896 {*r = _SC_DEVICE_SPECIFIC_R; return 0;}
5897 #else /* def _SC_DEVICE_SPECIFIC_R */
5898 {errno = EINVAL; return -1;}
5899 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
5900 if (x == Mono_Posix_SysconfName__SC_EQUIV_CLASS_MAX)
5901 #ifdef _SC_EQUIV_CLASS_MAX
5902 {*r = _SC_EQUIV_CLASS_MAX; return 0;}
5903 #else /* def _SC_EQUIV_CLASS_MAX */
5904 {errno = EINVAL; return -1;}
5905 #endif /* ndef _SC_EQUIV_CLASS_MAX */
5906 if (x == Mono_Posix_SysconfName__SC_EXPR_NEST_MAX)
5907 #ifdef _SC_EXPR_NEST_MAX
5908 {*r = _SC_EXPR_NEST_MAX; return 0;}
5909 #else /* def _SC_EXPR_NEST_MAX */
5910 {errno = EINVAL; return -1;}
5911 #endif /* ndef _SC_EXPR_NEST_MAX */
5912 if (x == Mono_Posix_SysconfName__SC_FD_MGMT)
5913 #ifdef _SC_FD_MGMT
5914 {*r = _SC_FD_MGMT; return 0;}
5915 #else /* def _SC_FD_MGMT */
5916 {errno = EINVAL; return -1;}
5917 #endif /* ndef _SC_FD_MGMT */
5918 if (x == Mono_Posix_SysconfName__SC_FIFO)
5919 #ifdef _SC_FIFO
5920 {*r = _SC_FIFO; return 0;}
5921 #else /* def _SC_FIFO */
5922 {errno = EINVAL; return -1;}
5923 #endif /* ndef _SC_FIFO */
5924 if (x == Mono_Posix_SysconfName__SC_FILE_ATTRIBUTES)
5925 #ifdef _SC_FILE_ATTRIBUTES
5926 {*r = _SC_FILE_ATTRIBUTES; return 0;}
5927 #else /* def _SC_FILE_ATTRIBUTES */
5928 {errno = EINVAL; return -1;}
5929 #endif /* ndef _SC_FILE_ATTRIBUTES */
5930 if (x == Mono_Posix_SysconfName__SC_FILE_LOCKING)
5931 #ifdef _SC_FILE_LOCKING
5932 {*r = _SC_FILE_LOCKING; return 0;}
5933 #else /* def _SC_FILE_LOCKING */
5934 {errno = EINVAL; return -1;}
5935 #endif /* ndef _SC_FILE_LOCKING */
5936 if (x == Mono_Posix_SysconfName__SC_FILE_SYSTEM)
5937 #ifdef _SC_FILE_SYSTEM
5938 {*r = _SC_FILE_SYSTEM; return 0;}
5939 #else /* def _SC_FILE_SYSTEM */
5940 {errno = EINVAL; return -1;}
5941 #endif /* ndef _SC_FILE_SYSTEM */
5942 if (x == Mono_Posix_SysconfName__SC_FSYNC)
5943 #ifdef _SC_FSYNC
5944 {*r = _SC_FSYNC; return 0;}
5945 #else /* def _SC_FSYNC */
5946 {errno = EINVAL; return -1;}
5947 #endif /* ndef _SC_FSYNC */
5948 if (x == Mono_Posix_SysconfName__SC_GETGR_R_SIZE_MAX)
5949 #ifdef _SC_GETGR_R_SIZE_MAX
5950 {*r = _SC_GETGR_R_SIZE_MAX; return 0;}
5951 #else /* def _SC_GETGR_R_SIZE_MAX */
5952 {errno = EINVAL; return -1;}
5953 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
5954 if (x == Mono_Posix_SysconfName__SC_GETPW_R_SIZE_MAX)
5955 #ifdef _SC_GETPW_R_SIZE_MAX
5956 {*r = _SC_GETPW_R_SIZE_MAX; return 0;}
5957 #else /* def _SC_GETPW_R_SIZE_MAX */
5958 {errno = EINVAL; return -1;}
5959 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
5960 if (x == Mono_Posix_SysconfName__SC_HOST_NAME_MAX)
5961 #ifdef _SC_HOST_NAME_MAX
5962 {*r = _SC_HOST_NAME_MAX; return 0;}
5963 #else /* def _SC_HOST_NAME_MAX */
5964 {errno = EINVAL; return -1;}
5965 #endif /* ndef _SC_HOST_NAME_MAX */
5966 if (x == Mono_Posix_SysconfName__SC_INT_MAX)
5967 #ifdef _SC_INT_MAX
5968 {*r = _SC_INT_MAX; return 0;}
5969 #else /* def _SC_INT_MAX */
5970 {errno = EINVAL; return -1;}
5971 #endif /* ndef _SC_INT_MAX */
5972 if (x == Mono_Posix_SysconfName__SC_INT_MIN)
5973 #ifdef _SC_INT_MIN
5974 {*r = _SC_INT_MIN; return 0;}
5975 #else /* def _SC_INT_MIN */
5976 {errno = EINVAL; return -1;}
5977 #endif /* ndef _SC_INT_MIN */
5978 if (x == Mono_Posix_SysconfName__SC_IOV_MAX)
5979 #ifdef _SC_IOV_MAX
5980 {*r = _SC_IOV_MAX; return 0;}
5981 #else /* def _SC_IOV_MAX */
5982 {errno = EINVAL; return -1;}
5983 #endif /* ndef _SC_IOV_MAX */
5984 if (x == Mono_Posix_SysconfName__SC_JOB_CONTROL)
5985 #ifdef _SC_JOB_CONTROL
5986 {*r = _SC_JOB_CONTROL; return 0;}
5987 #else /* def _SC_JOB_CONTROL */
5988 {errno = EINVAL; return -1;}
5989 #endif /* ndef _SC_JOB_CONTROL */
5990 if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_ASSOC)
5991 #ifdef _SC_LEVEL1_DCACHE_ASSOC
5992 {*r = _SC_LEVEL1_DCACHE_ASSOC; return 0;}
5993 #else /* def _SC_LEVEL1_DCACHE_ASSOC */
5994 {errno = EINVAL; return -1;}
5995 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
5996 if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_LINESIZE)
5997 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
5998 {*r = _SC_LEVEL1_DCACHE_LINESIZE; return 0;}
5999 #else /* def _SC_LEVEL1_DCACHE_LINESIZE */
6000 {errno = EINVAL; return -1;}
6001 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
6002 if (x == Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_SIZE)
6003 #ifdef _SC_LEVEL1_DCACHE_SIZE
6004 {*r = _SC_LEVEL1_DCACHE_SIZE; return 0;}
6005 #else /* def _SC_LEVEL1_DCACHE_SIZE */
6006 {errno = EINVAL; return -1;}
6007 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
6008 if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_ASSOC)
6009 #ifdef _SC_LEVEL1_ICACHE_ASSOC
6010 {*r = _SC_LEVEL1_ICACHE_ASSOC; return 0;}
6011 #else /* def _SC_LEVEL1_ICACHE_ASSOC */
6012 {errno = EINVAL; return -1;}
6013 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
6014 if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_LINESIZE)
6015 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
6016 {*r = _SC_LEVEL1_ICACHE_LINESIZE; return 0;}
6017 #else /* def _SC_LEVEL1_ICACHE_LINESIZE */
6018 {errno = EINVAL; return -1;}
6019 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
6020 if (x == Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_SIZE)
6021 #ifdef _SC_LEVEL1_ICACHE_SIZE
6022 {*r = _SC_LEVEL1_ICACHE_SIZE; return 0;}
6023 #else /* def _SC_LEVEL1_ICACHE_SIZE */
6024 {errno = EINVAL; return -1;}
6025 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
6026 if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_ASSOC)
6027 #ifdef _SC_LEVEL2_CACHE_ASSOC
6028 {*r = _SC_LEVEL2_CACHE_ASSOC; return 0;}
6029 #else /* def _SC_LEVEL2_CACHE_ASSOC */
6030 {errno = EINVAL; return -1;}
6031 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
6032 if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_LINESIZE)
6033 #ifdef _SC_LEVEL2_CACHE_LINESIZE
6034 {*r = _SC_LEVEL2_CACHE_LINESIZE; return 0;}
6035 #else /* def _SC_LEVEL2_CACHE_LINESIZE */
6036 {errno = EINVAL; return -1;}
6037 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
6038 if (x == Mono_Posix_SysconfName__SC_LEVEL2_CACHE_SIZE)
6039 #ifdef _SC_LEVEL2_CACHE_SIZE
6040 {*r = _SC_LEVEL2_CACHE_SIZE; return 0;}
6041 #else /* def _SC_LEVEL2_CACHE_SIZE */
6042 {errno = EINVAL; return -1;}
6043 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
6044 if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_ASSOC)
6045 #ifdef _SC_LEVEL3_CACHE_ASSOC
6046 {*r = _SC_LEVEL3_CACHE_ASSOC; return 0;}
6047 #else /* def _SC_LEVEL3_CACHE_ASSOC */
6048 {errno = EINVAL; return -1;}
6049 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
6050 if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_LINESIZE)
6051 #ifdef _SC_LEVEL3_CACHE_LINESIZE
6052 {*r = _SC_LEVEL3_CACHE_LINESIZE; return 0;}
6053 #else /* def _SC_LEVEL3_CACHE_LINESIZE */
6054 {errno = EINVAL; return -1;}
6055 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
6056 if (x == Mono_Posix_SysconfName__SC_LEVEL3_CACHE_SIZE)
6057 #ifdef _SC_LEVEL3_CACHE_SIZE
6058 {*r = _SC_LEVEL3_CACHE_SIZE; return 0;}
6059 #else /* def _SC_LEVEL3_CACHE_SIZE */
6060 {errno = EINVAL; return -1;}
6061 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
6062 if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_ASSOC)
6063 #ifdef _SC_LEVEL4_CACHE_ASSOC
6064 {*r = _SC_LEVEL4_CACHE_ASSOC; return 0;}
6065 #else /* def _SC_LEVEL4_CACHE_ASSOC */
6066 {errno = EINVAL; return -1;}
6067 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
6068 if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_LINESIZE)
6069 #ifdef _SC_LEVEL4_CACHE_LINESIZE
6070 {*r = _SC_LEVEL4_CACHE_LINESIZE; return 0;}
6071 #else /* def _SC_LEVEL4_CACHE_LINESIZE */
6072 {errno = EINVAL; return -1;}
6073 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
6074 if (x == Mono_Posix_SysconfName__SC_LEVEL4_CACHE_SIZE)
6075 #ifdef _SC_LEVEL4_CACHE_SIZE
6076 {*r = _SC_LEVEL4_CACHE_SIZE; return 0;}
6077 #else /* def _SC_LEVEL4_CACHE_SIZE */
6078 {errno = EINVAL; return -1;}
6079 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
6080 if (x == Mono_Posix_SysconfName__SC_LINE_MAX)
6081 #ifdef _SC_LINE_MAX
6082 {*r = _SC_LINE_MAX; return 0;}
6083 #else /* def _SC_LINE_MAX */
6084 {errno = EINVAL; return -1;}
6085 #endif /* ndef _SC_LINE_MAX */
6086 if (x == Mono_Posix_SysconfName__SC_LOGIN_NAME_MAX)
6087 #ifdef _SC_LOGIN_NAME_MAX
6088 {*r = _SC_LOGIN_NAME_MAX; return 0;}
6089 #else /* def _SC_LOGIN_NAME_MAX */
6090 {errno = EINVAL; return -1;}
6091 #endif /* ndef _SC_LOGIN_NAME_MAX */
6092 if (x == Mono_Posix_SysconfName__SC_LONG_BIT)
6093 #ifdef _SC_LONG_BIT
6094 {*r = _SC_LONG_BIT; return 0;}
6095 #else /* def _SC_LONG_BIT */
6096 {errno = EINVAL; return -1;}
6097 #endif /* ndef _SC_LONG_BIT */
6098 if (x == Mono_Posix_SysconfName__SC_MAPPED_FILES)
6099 #ifdef _SC_MAPPED_FILES
6100 {*r = _SC_MAPPED_FILES; return 0;}
6101 #else /* def _SC_MAPPED_FILES */
6102 {errno = EINVAL; return -1;}
6103 #endif /* ndef _SC_MAPPED_FILES */
6104 if (x == Mono_Posix_SysconfName__SC_MB_LEN_MAX)
6105 #ifdef _SC_MB_LEN_MAX
6106 {*r = _SC_MB_LEN_MAX; return 0;}
6107 #else /* def _SC_MB_LEN_MAX */
6108 {errno = EINVAL; return -1;}
6109 #endif /* ndef _SC_MB_LEN_MAX */
6110 if (x == Mono_Posix_SysconfName__SC_MEMLOCK)
6111 #ifdef _SC_MEMLOCK
6112 {*r = _SC_MEMLOCK; return 0;}
6113 #else /* def _SC_MEMLOCK */
6114 {errno = EINVAL; return -1;}
6115 #endif /* ndef _SC_MEMLOCK */
6116 if (x == Mono_Posix_SysconfName__SC_MEMLOCK_RANGE)
6117 #ifdef _SC_MEMLOCK_RANGE
6118 {*r = _SC_MEMLOCK_RANGE; return 0;}
6119 #else /* def _SC_MEMLOCK_RANGE */
6120 {errno = EINVAL; return -1;}
6121 #endif /* ndef _SC_MEMLOCK_RANGE */
6122 if (x == Mono_Posix_SysconfName__SC_MEMORY_PROTECTION)
6123 #ifdef _SC_MEMORY_PROTECTION
6124 {*r = _SC_MEMORY_PROTECTION; return 0;}
6125 #else /* def _SC_MEMORY_PROTECTION */
6126 {errno = EINVAL; return -1;}
6127 #endif /* ndef _SC_MEMORY_PROTECTION */
6128 if (x == Mono_Posix_SysconfName__SC_MESSAGE_PASSING)
6129 #ifdef _SC_MESSAGE_PASSING
6130 {*r = _SC_MESSAGE_PASSING; return 0;}
6131 #else /* def _SC_MESSAGE_PASSING */
6132 {errno = EINVAL; return -1;}
6133 #endif /* ndef _SC_MESSAGE_PASSING */
6134 if (x == Mono_Posix_SysconfName__SC_MONOTONIC_CLOCK)
6135 #ifdef _SC_MONOTONIC_CLOCK
6136 {*r = _SC_MONOTONIC_CLOCK; return 0;}
6137 #else /* def _SC_MONOTONIC_CLOCK */
6138 {errno = EINVAL; return -1;}
6139 #endif /* ndef _SC_MONOTONIC_CLOCK */
6140 if (x == Mono_Posix_SysconfName__SC_MQ_OPEN_MAX)
6141 #ifdef _SC_MQ_OPEN_MAX
6142 {*r = _SC_MQ_OPEN_MAX; return 0;}
6143 #else /* def _SC_MQ_OPEN_MAX */
6144 {errno = EINVAL; return -1;}
6145 #endif /* ndef _SC_MQ_OPEN_MAX */
6146 if (x == Mono_Posix_SysconfName__SC_MQ_PRIO_MAX)
6147 #ifdef _SC_MQ_PRIO_MAX
6148 {*r = _SC_MQ_PRIO_MAX; return 0;}
6149 #else /* def _SC_MQ_PRIO_MAX */
6150 {errno = EINVAL; return -1;}
6151 #endif /* ndef _SC_MQ_PRIO_MAX */
6152 if (x == Mono_Posix_SysconfName__SC_MULTI_PROCESS)
6153 #ifdef _SC_MULTI_PROCESS
6154 {*r = _SC_MULTI_PROCESS; return 0;}
6155 #else /* def _SC_MULTI_PROCESS */
6156 {errno = EINVAL; return -1;}
6157 #endif /* ndef _SC_MULTI_PROCESS */
6158 if (x == Mono_Posix_SysconfName__SC_NETWORKING)
6159 #ifdef _SC_NETWORKING
6160 {*r = _SC_NETWORKING; return 0;}
6161 #else /* def _SC_NETWORKING */
6162 {errno = EINVAL; return -1;}
6163 #endif /* ndef _SC_NETWORKING */
6164 if (x == Mono_Posix_SysconfName__SC_NGROUPS_MAX)
6165 #ifdef _SC_NGROUPS_MAX
6166 {*r = _SC_NGROUPS_MAX; return 0;}
6167 #else /* def _SC_NGROUPS_MAX */
6168 {errno = EINVAL; return -1;}
6169 #endif /* ndef _SC_NGROUPS_MAX */
6170 if (x == Mono_Posix_SysconfName__SC_NL_ARGMAX)
6171 #ifdef _SC_NL_ARGMAX
6172 {*r = _SC_NL_ARGMAX; return 0;}
6173 #else /* def _SC_NL_ARGMAX */
6174 {errno = EINVAL; return -1;}
6175 #endif /* ndef _SC_NL_ARGMAX */
6176 if (x == Mono_Posix_SysconfName__SC_NL_LANGMAX)
6177 #ifdef _SC_NL_LANGMAX
6178 {*r = _SC_NL_LANGMAX; return 0;}
6179 #else /* def _SC_NL_LANGMAX */
6180 {errno = EINVAL; return -1;}
6181 #endif /* ndef _SC_NL_LANGMAX */
6182 if (x == Mono_Posix_SysconfName__SC_NL_MSGMAX)
6183 #ifdef _SC_NL_MSGMAX
6184 {*r = _SC_NL_MSGMAX; return 0;}
6185 #else /* def _SC_NL_MSGMAX */
6186 {errno = EINVAL; return -1;}
6187 #endif /* ndef _SC_NL_MSGMAX */
6188 if (x == Mono_Posix_SysconfName__SC_NL_NMAX)
6189 #ifdef _SC_NL_NMAX
6190 {*r = _SC_NL_NMAX; return 0;}
6191 #else /* def _SC_NL_NMAX */
6192 {errno = EINVAL; return -1;}
6193 #endif /* ndef _SC_NL_NMAX */
6194 if (x == Mono_Posix_SysconfName__SC_NL_SETMAX)
6195 #ifdef _SC_NL_SETMAX
6196 {*r = _SC_NL_SETMAX; return 0;}
6197 #else /* def _SC_NL_SETMAX */
6198 {errno = EINVAL; return -1;}
6199 #endif /* ndef _SC_NL_SETMAX */
6200 if (x == Mono_Posix_SysconfName__SC_NL_TEXTMAX)
6201 #ifdef _SC_NL_TEXTMAX
6202 {*r = _SC_NL_TEXTMAX; return 0;}
6203 #else /* def _SC_NL_TEXTMAX */
6204 {errno = EINVAL; return -1;}
6205 #endif /* ndef _SC_NL_TEXTMAX */
6206 if (x == Mono_Posix_SysconfName__SC_NPROCESSORS_CONF)
6207 #ifdef _SC_NPROCESSORS_CONF
6208 {*r = _SC_NPROCESSORS_CONF; return 0;}
6209 #else /* def _SC_NPROCESSORS_CONF */
6210 {errno = EINVAL; return -1;}
6211 #endif /* ndef _SC_NPROCESSORS_CONF */
6212 if (x == Mono_Posix_SysconfName__SC_NPROCESSORS_ONLN)
6213 #ifdef _SC_NPROCESSORS_ONLN
6214 {*r = _SC_NPROCESSORS_ONLN; return 0;}
6215 #else /* def _SC_NPROCESSORS_ONLN */
6216 {errno = EINVAL; return -1;}
6217 #endif /* ndef _SC_NPROCESSORS_ONLN */
6218 if (x == Mono_Posix_SysconfName__SC_NZERO)
6219 #ifdef _SC_NZERO
6220 {*r = _SC_NZERO; return 0;}
6221 #else /* def _SC_NZERO */
6222 {errno = EINVAL; return -1;}
6223 #endif /* ndef _SC_NZERO */
6224 if (x == Mono_Posix_SysconfName__SC_OPEN_MAX)
6225 #ifdef _SC_OPEN_MAX
6226 {*r = _SC_OPEN_MAX; return 0;}
6227 #else /* def _SC_OPEN_MAX */
6228 {errno = EINVAL; return -1;}
6229 #endif /* ndef _SC_OPEN_MAX */
6230 if (x == Mono_Posix_SysconfName__SC_PAGESIZE)
6231 #ifdef _SC_PAGESIZE
6232 {*r = _SC_PAGESIZE; return 0;}
6233 #else /* def _SC_PAGESIZE */
6234 {errno = EINVAL; return -1;}
6235 #endif /* ndef _SC_PAGESIZE */
6236 if (x == Mono_Posix_SysconfName__SC_PASS_MAX)
6237 #ifdef _SC_PASS_MAX
6238 {*r = _SC_PASS_MAX; return 0;}
6239 #else /* def _SC_PASS_MAX */
6240 {errno = EINVAL; return -1;}
6241 #endif /* ndef _SC_PASS_MAX */
6242 if (x == Mono_Posix_SysconfName__SC_PHYS_PAGES)
6243 #ifdef _SC_PHYS_PAGES
6244 {*r = _SC_PHYS_PAGES; return 0;}
6245 #else /* def _SC_PHYS_PAGES */
6246 {errno = EINVAL; return -1;}
6247 #endif /* ndef _SC_PHYS_PAGES */
6248 if (x == Mono_Posix_SysconfName__SC_PII)
6249 #ifdef _SC_PII
6250 {*r = _SC_PII; return 0;}
6251 #else /* def _SC_PII */
6252 {errno = EINVAL; return -1;}
6253 #endif /* ndef _SC_PII */
6254 if (x == Mono_Posix_SysconfName__SC_PII_INTERNET)
6255 #ifdef _SC_PII_INTERNET
6256 {*r = _SC_PII_INTERNET; return 0;}
6257 #else /* def _SC_PII_INTERNET */
6258 {errno = EINVAL; return -1;}
6259 #endif /* ndef _SC_PII_INTERNET */
6260 if (x == Mono_Posix_SysconfName__SC_PII_INTERNET_DGRAM)
6261 #ifdef _SC_PII_INTERNET_DGRAM
6262 {*r = _SC_PII_INTERNET_DGRAM; return 0;}
6263 #else /* def _SC_PII_INTERNET_DGRAM */
6264 {errno = EINVAL; return -1;}
6265 #endif /* ndef _SC_PII_INTERNET_DGRAM */
6266 if (x == Mono_Posix_SysconfName__SC_PII_INTERNET_STREAM)
6267 #ifdef _SC_PII_INTERNET_STREAM
6268 {*r = _SC_PII_INTERNET_STREAM; return 0;}
6269 #else /* def _SC_PII_INTERNET_STREAM */
6270 {errno = EINVAL; return -1;}
6271 #endif /* ndef _SC_PII_INTERNET_STREAM */
6272 if (x == Mono_Posix_SysconfName__SC_PII_OSI)
6273 #ifdef _SC_PII_OSI
6274 {*r = _SC_PII_OSI; return 0;}
6275 #else /* def _SC_PII_OSI */
6276 {errno = EINVAL; return -1;}
6277 #endif /* ndef _SC_PII_OSI */
6278 if (x == Mono_Posix_SysconfName__SC_PII_OSI_CLTS)
6279 #ifdef _SC_PII_OSI_CLTS
6280 {*r = _SC_PII_OSI_CLTS; return 0;}
6281 #else /* def _SC_PII_OSI_CLTS */
6282 {errno = EINVAL; return -1;}
6283 #endif /* ndef _SC_PII_OSI_CLTS */
6284 if (x == Mono_Posix_SysconfName__SC_PII_OSI_COTS)
6285 #ifdef _SC_PII_OSI_COTS
6286 {*r = _SC_PII_OSI_COTS; return 0;}
6287 #else /* def _SC_PII_OSI_COTS */
6288 {errno = EINVAL; return -1;}
6289 #endif /* ndef _SC_PII_OSI_COTS */
6290 if (x == Mono_Posix_SysconfName__SC_PII_OSI_M)
6291 #ifdef _SC_PII_OSI_M
6292 {*r = _SC_PII_OSI_M; return 0;}
6293 #else /* def _SC_PII_OSI_M */
6294 {errno = EINVAL; return -1;}
6295 #endif /* ndef _SC_PII_OSI_M */
6296 if (x == Mono_Posix_SysconfName__SC_PII_SOCKET)
6297 #ifdef _SC_PII_SOCKET
6298 {*r = _SC_PII_SOCKET; return 0;}
6299 #else /* def _SC_PII_SOCKET */
6300 {errno = EINVAL; return -1;}
6301 #endif /* ndef _SC_PII_SOCKET */
6302 if (x == Mono_Posix_SysconfName__SC_PII_XTI)
6303 #ifdef _SC_PII_XTI
6304 {*r = _SC_PII_XTI; return 0;}
6305 #else /* def _SC_PII_XTI */
6306 {errno = EINVAL; return -1;}
6307 #endif /* ndef _SC_PII_XTI */
6308 if (x == Mono_Posix_SysconfName__SC_PIPE)
6309 #ifdef _SC_PIPE
6310 {*r = _SC_PIPE; return 0;}
6311 #else /* def _SC_PIPE */
6312 {errno = EINVAL; return -1;}
6313 #endif /* ndef _SC_PIPE */
6314 if (x == Mono_Posix_SysconfName__SC_POLL)
6315 #ifdef _SC_POLL
6316 {*r = _SC_POLL; return 0;}
6317 #else /* def _SC_POLL */
6318 {errno = EINVAL; return -1;}
6319 #endif /* ndef _SC_POLL */
6320 if (x == Mono_Posix_SysconfName__SC_PRIORITIZED_IO)
6321 #ifdef _SC_PRIORITIZED_IO
6322 {*r = _SC_PRIORITIZED_IO; return 0;}
6323 #else /* def _SC_PRIORITIZED_IO */
6324 {errno = EINVAL; return -1;}
6325 #endif /* ndef _SC_PRIORITIZED_IO */
6326 if (x == Mono_Posix_SysconfName__SC_PRIORITY_SCHEDULING)
6327 #ifdef _SC_PRIORITY_SCHEDULING
6328 {*r = _SC_PRIORITY_SCHEDULING; return 0;}
6329 #else /* def _SC_PRIORITY_SCHEDULING */
6330 {errno = EINVAL; return -1;}
6331 #endif /* ndef _SC_PRIORITY_SCHEDULING */
6332 if (x == Mono_Posix_SysconfName__SC_READER_WRITER_LOCKS)
6333 #ifdef _SC_READER_WRITER_LOCKS
6334 {*r = _SC_READER_WRITER_LOCKS; return 0;}
6335 #else /* def _SC_READER_WRITER_LOCKS */
6336 {errno = EINVAL; return -1;}
6337 #endif /* ndef _SC_READER_WRITER_LOCKS */
6338 if (x == Mono_Posix_SysconfName__SC_REALTIME_SIGNALS)
6339 #ifdef _SC_REALTIME_SIGNALS
6340 {*r = _SC_REALTIME_SIGNALS; return 0;}
6341 #else /* def _SC_REALTIME_SIGNALS */
6342 {errno = EINVAL; return -1;}
6343 #endif /* ndef _SC_REALTIME_SIGNALS */
6344 if (x == Mono_Posix_SysconfName__SC_REGEXP)
6345 #ifdef _SC_REGEXP
6346 {*r = _SC_REGEXP; return 0;}
6347 #else /* def _SC_REGEXP */
6348 {errno = EINVAL; return -1;}
6349 #endif /* ndef _SC_REGEXP */
6350 if (x == Mono_Posix_SysconfName__SC_REGEX_VERSION)
6351 #ifdef _SC_REGEX_VERSION
6352 {*r = _SC_REGEX_VERSION; return 0;}
6353 #else /* def _SC_REGEX_VERSION */
6354 {errno = EINVAL; return -1;}
6355 #endif /* ndef _SC_REGEX_VERSION */
6356 if (x == Mono_Posix_SysconfName__SC_RE_DUP_MAX)
6357 #ifdef _SC_RE_DUP_MAX
6358 {*r = _SC_RE_DUP_MAX; return 0;}
6359 #else /* def _SC_RE_DUP_MAX */
6360 {errno = EINVAL; return -1;}
6361 #endif /* ndef _SC_RE_DUP_MAX */
6362 if (x == Mono_Posix_SysconfName__SC_RTSIG_MAX)
6363 #ifdef _SC_RTSIG_MAX
6364 {*r = _SC_RTSIG_MAX; return 0;}
6365 #else /* def _SC_RTSIG_MAX */
6366 {errno = EINVAL; return -1;}
6367 #endif /* ndef _SC_RTSIG_MAX */
6368 if (x == Mono_Posix_SysconfName__SC_SAVED_IDS)
6369 #ifdef _SC_SAVED_IDS
6370 {*r = _SC_SAVED_IDS; return 0;}
6371 #else /* def _SC_SAVED_IDS */
6372 {errno = EINVAL; return -1;}
6373 #endif /* ndef _SC_SAVED_IDS */
6374 if (x == Mono_Posix_SysconfName__SC_SCHAR_MAX)
6375 #ifdef _SC_SCHAR_MAX
6376 {*r = _SC_SCHAR_MAX; return 0;}
6377 #else /* def _SC_SCHAR_MAX */
6378 {errno = EINVAL; return -1;}
6379 #endif /* ndef _SC_SCHAR_MAX */
6380 if (x == Mono_Posix_SysconfName__SC_SCHAR_MIN)
6381 #ifdef _SC_SCHAR_MIN
6382 {*r = _SC_SCHAR_MIN; return 0;}
6383 #else /* def _SC_SCHAR_MIN */
6384 {errno = EINVAL; return -1;}
6385 #endif /* ndef _SC_SCHAR_MIN */
6386 if (x == Mono_Posix_SysconfName__SC_SELECT)
6387 #ifdef _SC_SELECT
6388 {*r = _SC_SELECT; return 0;}
6389 #else /* def _SC_SELECT */
6390 {errno = EINVAL; return -1;}
6391 #endif /* ndef _SC_SELECT */
6392 if (x == Mono_Posix_SysconfName__SC_SEMAPHORES)
6393 #ifdef _SC_SEMAPHORES
6394 {*r = _SC_SEMAPHORES; return 0;}
6395 #else /* def _SC_SEMAPHORES */
6396 {errno = EINVAL; return -1;}
6397 #endif /* ndef _SC_SEMAPHORES */
6398 if (x == Mono_Posix_SysconfName__SC_SEM_NSEMS_MAX)
6399 #ifdef _SC_SEM_NSEMS_MAX
6400 {*r = _SC_SEM_NSEMS_MAX; return 0;}
6401 #else /* def _SC_SEM_NSEMS_MAX */
6402 {errno = EINVAL; return -1;}
6403 #endif /* ndef _SC_SEM_NSEMS_MAX */
6404 if (x == Mono_Posix_SysconfName__SC_SEM_VALUE_MAX)
6405 #ifdef _SC_SEM_VALUE_MAX
6406 {*r = _SC_SEM_VALUE_MAX; return 0;}
6407 #else /* def _SC_SEM_VALUE_MAX */
6408 {errno = EINVAL; return -1;}
6409 #endif /* ndef _SC_SEM_VALUE_MAX */
6410 if (x == Mono_Posix_SysconfName__SC_SHARED_MEMORY_OBJECTS)
6411 #ifdef _SC_SHARED_MEMORY_OBJECTS
6412 {*r = _SC_SHARED_MEMORY_OBJECTS; return 0;}
6413 #else /* def _SC_SHARED_MEMORY_OBJECTS */
6414 {errno = EINVAL; return -1;}
6415 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
6416 if (x == Mono_Posix_SysconfName__SC_SHELL)
6417 #ifdef _SC_SHELL
6418 {*r = _SC_SHELL; return 0;}
6419 #else /* def _SC_SHELL */
6420 {errno = EINVAL; return -1;}
6421 #endif /* ndef _SC_SHELL */
6422 if (x == Mono_Posix_SysconfName__SC_SHRT_MAX)
6423 #ifdef _SC_SHRT_MAX
6424 {*r = _SC_SHRT_MAX; return 0;}
6425 #else /* def _SC_SHRT_MAX */
6426 {errno = EINVAL; return -1;}
6427 #endif /* ndef _SC_SHRT_MAX */
6428 if (x == Mono_Posix_SysconfName__SC_SHRT_MIN)
6429 #ifdef _SC_SHRT_MIN
6430 {*r = _SC_SHRT_MIN; return 0;}
6431 #else /* def _SC_SHRT_MIN */
6432 {errno = EINVAL; return -1;}
6433 #endif /* ndef _SC_SHRT_MIN */
6434 if (x == Mono_Posix_SysconfName__SC_SIGNALS)
6435 #ifdef _SC_SIGNALS
6436 {*r = _SC_SIGNALS; return 0;}
6437 #else /* def _SC_SIGNALS */
6438 {errno = EINVAL; return -1;}
6439 #endif /* ndef _SC_SIGNALS */
6440 if (x == Mono_Posix_SysconfName__SC_SIGQUEUE_MAX)
6441 #ifdef _SC_SIGQUEUE_MAX
6442 {*r = _SC_SIGQUEUE_MAX; return 0;}
6443 #else /* def _SC_SIGQUEUE_MAX */
6444 {errno = EINVAL; return -1;}
6445 #endif /* ndef _SC_SIGQUEUE_MAX */
6446 if (x == Mono_Posix_SysconfName__SC_SINGLE_PROCESS)
6447 #ifdef _SC_SINGLE_PROCESS
6448 {*r = _SC_SINGLE_PROCESS; return 0;}
6449 #else /* def _SC_SINGLE_PROCESS */
6450 {errno = EINVAL; return -1;}
6451 #endif /* ndef _SC_SINGLE_PROCESS */
6452 if (x == Mono_Posix_SysconfName__SC_SPAWN)
6453 #ifdef _SC_SPAWN
6454 {*r = _SC_SPAWN; return 0;}
6455 #else /* def _SC_SPAWN */
6456 {errno = EINVAL; return -1;}
6457 #endif /* ndef _SC_SPAWN */
6458 if (x == Mono_Posix_SysconfName__SC_SPIN_LOCKS)
6459 #ifdef _SC_SPIN_LOCKS
6460 {*r = _SC_SPIN_LOCKS; return 0;}
6461 #else /* def _SC_SPIN_LOCKS */
6462 {errno = EINVAL; return -1;}
6463 #endif /* ndef _SC_SPIN_LOCKS */
6464 if (x == Mono_Posix_SysconfName__SC_SPORADIC_SERVER)
6465 #ifdef _SC_SPORADIC_SERVER
6466 {*r = _SC_SPORADIC_SERVER; return 0;}
6467 #else /* def _SC_SPORADIC_SERVER */
6468 {errno = EINVAL; return -1;}
6469 #endif /* ndef _SC_SPORADIC_SERVER */
6470 if (x == Mono_Posix_SysconfName__SC_SSIZE_MAX)
6471 #ifdef _SC_SSIZE_MAX
6472 {*r = _SC_SSIZE_MAX; return 0;}
6473 #else /* def _SC_SSIZE_MAX */
6474 {errno = EINVAL; return -1;}
6475 #endif /* ndef _SC_SSIZE_MAX */
6476 if (x == Mono_Posix_SysconfName__SC_STREAMS)
6477 #ifdef _SC_STREAMS
6478 {*r = _SC_STREAMS; return 0;}
6479 #else /* def _SC_STREAMS */
6480 {errno = EINVAL; return -1;}
6481 #endif /* ndef _SC_STREAMS */
6482 if (x == Mono_Posix_SysconfName__SC_STREAM_MAX)
6483 #ifdef _SC_STREAM_MAX
6484 {*r = _SC_STREAM_MAX; return 0;}
6485 #else /* def _SC_STREAM_MAX */
6486 {errno = EINVAL; return -1;}
6487 #endif /* ndef _SC_STREAM_MAX */
6488 if (x == Mono_Posix_SysconfName__SC_SYMLOOP_MAX)
6489 #ifdef _SC_SYMLOOP_MAX
6490 {*r = _SC_SYMLOOP_MAX; return 0;}
6491 #else /* def _SC_SYMLOOP_MAX */
6492 {errno = EINVAL; return -1;}
6493 #endif /* ndef _SC_SYMLOOP_MAX */
6494 if (x == Mono_Posix_SysconfName__SC_SYNCHRONIZED_IO)
6495 #ifdef _SC_SYNCHRONIZED_IO
6496 {*r = _SC_SYNCHRONIZED_IO; return 0;}
6497 #else /* def _SC_SYNCHRONIZED_IO */
6498 {errno = EINVAL; return -1;}
6499 #endif /* ndef _SC_SYNCHRONIZED_IO */
6500 if (x == Mono_Posix_SysconfName__SC_SYSTEM_DATABASE)
6501 #ifdef _SC_SYSTEM_DATABASE
6502 {*r = _SC_SYSTEM_DATABASE; return 0;}
6503 #else /* def _SC_SYSTEM_DATABASE */
6504 {errno = EINVAL; return -1;}
6505 #endif /* ndef _SC_SYSTEM_DATABASE */
6506 if (x == Mono_Posix_SysconfName__SC_SYSTEM_DATABASE_R)
6507 #ifdef _SC_SYSTEM_DATABASE_R
6508 {*r = _SC_SYSTEM_DATABASE_R; return 0;}
6509 #else /* def _SC_SYSTEM_DATABASE_R */
6510 {errno = EINVAL; return -1;}
6511 #endif /* ndef _SC_SYSTEM_DATABASE_R */
6512 if (x == Mono_Posix_SysconfName__SC_THREADS)
6513 #ifdef _SC_THREADS
6514 {*r = _SC_THREADS; return 0;}
6515 #else /* def _SC_THREADS */
6516 {errno = EINVAL; return -1;}
6517 #endif /* ndef _SC_THREADS */
6518 if (x == Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKADDR)
6519 #ifdef _SC_THREAD_ATTR_STACKADDR
6520 {*r = _SC_THREAD_ATTR_STACKADDR; return 0;}
6521 #else /* def _SC_THREAD_ATTR_STACKADDR */
6522 {errno = EINVAL; return -1;}
6523 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
6524 if (x == Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKSIZE)
6525 #ifdef _SC_THREAD_ATTR_STACKSIZE
6526 {*r = _SC_THREAD_ATTR_STACKSIZE; return 0;}
6527 #else /* def _SC_THREAD_ATTR_STACKSIZE */
6528 {errno = EINVAL; return -1;}
6529 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
6530 if (x == Mono_Posix_SysconfName__SC_THREAD_CPUTIME)
6531 #ifdef _SC_THREAD_CPUTIME
6532 {*r = _SC_THREAD_CPUTIME; return 0;}
6533 #else /* def _SC_THREAD_CPUTIME */
6534 {errno = EINVAL; return -1;}
6535 #endif /* ndef _SC_THREAD_CPUTIME */
6536 if (x == Mono_Posix_SysconfName__SC_THREAD_DESTRUCTOR_ITERATIONS)
6537 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
6538 {*r = _SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
6539 #else /* def _SC_THREAD_DESTRUCTOR_ITERATIONS */
6540 {errno = EINVAL; return -1;}
6541 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
6542 if (x == Mono_Posix_SysconfName__SC_THREAD_KEYS_MAX)
6543 #ifdef _SC_THREAD_KEYS_MAX
6544 {*r = _SC_THREAD_KEYS_MAX; return 0;}
6545 #else /* def _SC_THREAD_KEYS_MAX */
6546 {errno = EINVAL; return -1;}
6547 #endif /* ndef _SC_THREAD_KEYS_MAX */
6548 if (x == Mono_Posix_SysconfName__SC_THREAD_PRIORITY_SCHEDULING)
6549 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
6550 {*r = _SC_THREAD_PRIORITY_SCHEDULING; return 0;}
6551 #else /* def _SC_THREAD_PRIORITY_SCHEDULING */
6552 {errno = EINVAL; return -1;}
6553 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
6554 if (x == Mono_Posix_SysconfName__SC_THREAD_PRIO_INHERIT)
6555 #ifdef _SC_THREAD_PRIO_INHERIT
6556 {*r = _SC_THREAD_PRIO_INHERIT; return 0;}
6557 #else /* def _SC_THREAD_PRIO_INHERIT */
6558 {errno = EINVAL; return -1;}
6559 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
6560 if (x == Mono_Posix_SysconfName__SC_THREAD_PRIO_PROTECT)
6561 #ifdef _SC_THREAD_PRIO_PROTECT
6562 {*r = _SC_THREAD_PRIO_PROTECT; return 0;}
6563 #else /* def _SC_THREAD_PRIO_PROTECT */
6564 {errno = EINVAL; return -1;}
6565 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
6566 if (x == Mono_Posix_SysconfName__SC_THREAD_PROCESS_SHARED)
6567 #ifdef _SC_THREAD_PROCESS_SHARED
6568 {*r = _SC_THREAD_PROCESS_SHARED; return 0;}
6569 #else /* def _SC_THREAD_PROCESS_SHARED */
6570 {errno = EINVAL; return -1;}
6571 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
6572 if (x == Mono_Posix_SysconfName__SC_THREAD_SAFE_FUNCTIONS)
6573 #ifdef _SC_THREAD_SAFE_FUNCTIONS
6574 {*r = _SC_THREAD_SAFE_FUNCTIONS; return 0;}
6575 #else /* def _SC_THREAD_SAFE_FUNCTIONS */
6576 {errno = EINVAL; return -1;}
6577 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
6578 if (x == Mono_Posix_SysconfName__SC_THREAD_SPORADIC_SERVER)
6579 #ifdef _SC_THREAD_SPORADIC_SERVER
6580 {*r = _SC_THREAD_SPORADIC_SERVER; return 0;}
6581 #else /* def _SC_THREAD_SPORADIC_SERVER */
6582 {errno = EINVAL; return -1;}
6583 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
6584 if (x == Mono_Posix_SysconfName__SC_THREAD_STACK_MIN)
6585 #ifdef _SC_THREAD_STACK_MIN
6586 {*r = _SC_THREAD_STACK_MIN; return 0;}
6587 #else /* def _SC_THREAD_STACK_MIN */
6588 {errno = EINVAL; return -1;}
6589 #endif /* ndef _SC_THREAD_STACK_MIN */
6590 if (x == Mono_Posix_SysconfName__SC_THREAD_THREADS_MAX)
6591 #ifdef _SC_THREAD_THREADS_MAX
6592 {*r = _SC_THREAD_THREADS_MAX; return 0;}
6593 #else /* def _SC_THREAD_THREADS_MAX */
6594 {errno = EINVAL; return -1;}
6595 #endif /* ndef _SC_THREAD_THREADS_MAX */
6596 if (x == Mono_Posix_SysconfName__SC_TIMEOUTS)
6597 #ifdef _SC_TIMEOUTS
6598 {*r = _SC_TIMEOUTS; return 0;}
6599 #else /* def _SC_TIMEOUTS */
6600 {errno = EINVAL; return -1;}
6601 #endif /* ndef _SC_TIMEOUTS */
6602 if (x == Mono_Posix_SysconfName__SC_TIMERS)
6603 #ifdef _SC_TIMERS
6604 {*r = _SC_TIMERS; return 0;}
6605 #else /* def _SC_TIMERS */
6606 {errno = EINVAL; return -1;}
6607 #endif /* ndef _SC_TIMERS */
6608 if (x == Mono_Posix_SysconfName__SC_TIMER_MAX)
6609 #ifdef _SC_TIMER_MAX
6610 {*r = _SC_TIMER_MAX; return 0;}
6611 #else /* def _SC_TIMER_MAX */
6612 {errno = EINVAL; return -1;}
6613 #endif /* ndef _SC_TIMER_MAX */
6614 if (x == Mono_Posix_SysconfName__SC_TRACE)
6615 #ifdef _SC_TRACE
6616 {*r = _SC_TRACE; return 0;}
6617 #else /* def _SC_TRACE */
6618 {errno = EINVAL; return -1;}
6619 #endif /* ndef _SC_TRACE */
6620 if (x == Mono_Posix_SysconfName__SC_TRACE_EVENT_FILTER)
6621 #ifdef _SC_TRACE_EVENT_FILTER
6622 {*r = _SC_TRACE_EVENT_FILTER; return 0;}
6623 #else /* def _SC_TRACE_EVENT_FILTER */
6624 {errno = EINVAL; return -1;}
6625 #endif /* ndef _SC_TRACE_EVENT_FILTER */
6626 if (x == Mono_Posix_SysconfName__SC_TRACE_INHERIT)
6627 #ifdef _SC_TRACE_INHERIT
6628 {*r = _SC_TRACE_INHERIT; return 0;}
6629 #else /* def _SC_TRACE_INHERIT */
6630 {errno = EINVAL; return -1;}
6631 #endif /* ndef _SC_TRACE_INHERIT */
6632 if (x == Mono_Posix_SysconfName__SC_TRACE_LOG)
6633 #ifdef _SC_TRACE_LOG
6634 {*r = _SC_TRACE_LOG; return 0;}
6635 #else /* def _SC_TRACE_LOG */
6636 {errno = EINVAL; return -1;}
6637 #endif /* ndef _SC_TRACE_LOG */
6638 if (x == Mono_Posix_SysconfName__SC_TTY_NAME_MAX)
6639 #ifdef _SC_TTY_NAME_MAX
6640 {*r = _SC_TTY_NAME_MAX; return 0;}
6641 #else /* def _SC_TTY_NAME_MAX */
6642 {errno = EINVAL; return -1;}
6643 #endif /* ndef _SC_TTY_NAME_MAX */
6644 if (x == Mono_Posix_SysconfName__SC_TYPED_MEMORY_OBJECTS)
6645 #ifdef _SC_TYPED_MEMORY_OBJECTS
6646 {*r = _SC_TYPED_MEMORY_OBJECTS; return 0;}
6647 #else /* def _SC_TYPED_MEMORY_OBJECTS */
6648 {errno = EINVAL; return -1;}
6649 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
6650 if (x == Mono_Posix_SysconfName__SC_TZNAME_MAX)
6651 #ifdef _SC_TZNAME_MAX
6652 {*r = _SC_TZNAME_MAX; return 0;}
6653 #else /* def _SC_TZNAME_MAX */
6654 {errno = EINVAL; return -1;}
6655 #endif /* ndef _SC_TZNAME_MAX */
6656 if (x == Mono_Posix_SysconfName__SC_T_IOV_MAX)
6657 #ifdef _SC_T_IOV_MAX
6658 {*r = _SC_T_IOV_MAX; return 0;}
6659 #else /* def _SC_T_IOV_MAX */
6660 {errno = EINVAL; return -1;}
6661 #endif /* ndef _SC_T_IOV_MAX */
6662 if (x == Mono_Posix_SysconfName__SC_UCHAR_MAX)
6663 #ifdef _SC_UCHAR_MAX
6664 {*r = _SC_UCHAR_MAX; return 0;}
6665 #else /* def _SC_UCHAR_MAX */
6666 {errno = EINVAL; return -1;}
6667 #endif /* ndef _SC_UCHAR_MAX */
6668 if (x == Mono_Posix_SysconfName__SC_UINT_MAX)
6669 #ifdef _SC_UINT_MAX
6670 {*r = _SC_UINT_MAX; return 0;}
6671 #else /* def _SC_UINT_MAX */
6672 {errno = EINVAL; return -1;}
6673 #endif /* ndef _SC_UINT_MAX */
6674 if (x == Mono_Posix_SysconfName__SC_UIO_MAXIOV)
6675 #ifdef _SC_UIO_MAXIOV
6676 {*r = _SC_UIO_MAXIOV; return 0;}
6677 #else /* def _SC_UIO_MAXIOV */
6678 {errno = EINVAL; return -1;}
6679 #endif /* ndef _SC_UIO_MAXIOV */
6680 if (x == Mono_Posix_SysconfName__SC_ULONG_MAX)
6681 #ifdef _SC_ULONG_MAX
6682 {*r = _SC_ULONG_MAX; return 0;}
6683 #else /* def _SC_ULONG_MAX */
6684 {errno = EINVAL; return -1;}
6685 #endif /* ndef _SC_ULONG_MAX */
6686 if (x == Mono_Posix_SysconfName__SC_USER_GROUPS)
6687 #ifdef _SC_USER_GROUPS
6688 {*r = _SC_USER_GROUPS; return 0;}
6689 #else /* def _SC_USER_GROUPS */
6690 {errno = EINVAL; return -1;}
6691 #endif /* ndef _SC_USER_GROUPS */
6692 if (x == Mono_Posix_SysconfName__SC_USER_GROUPS_R)
6693 #ifdef _SC_USER_GROUPS_R
6694 {*r = _SC_USER_GROUPS_R; return 0;}
6695 #else /* def _SC_USER_GROUPS_R */
6696 {errno = EINVAL; return -1;}
6697 #endif /* ndef _SC_USER_GROUPS_R */
6698 if (x == Mono_Posix_SysconfName__SC_USHRT_MAX)
6699 #ifdef _SC_USHRT_MAX
6700 {*r = _SC_USHRT_MAX; return 0;}
6701 #else /* def _SC_USHRT_MAX */
6702 {errno = EINVAL; return -1;}
6703 #endif /* ndef _SC_USHRT_MAX */
6704 if (x == Mono_Posix_SysconfName__SC_V6_ILP32_OFF32)
6705 #ifdef _SC_V6_ILP32_OFF32
6706 {*r = _SC_V6_ILP32_OFF32; return 0;}
6707 #else /* def _SC_V6_ILP32_OFF32 */
6708 {errno = EINVAL; return -1;}
6709 #endif /* ndef _SC_V6_ILP32_OFF32 */
6710 if (x == Mono_Posix_SysconfName__SC_V6_ILP32_OFFBIG)
6711 #ifdef _SC_V6_ILP32_OFFBIG
6712 {*r = _SC_V6_ILP32_OFFBIG; return 0;}
6713 #else /* def _SC_V6_ILP32_OFFBIG */
6714 {errno = EINVAL; return -1;}
6715 #endif /* ndef _SC_V6_ILP32_OFFBIG */
6716 if (x == Mono_Posix_SysconfName__SC_V6_LP64_OFF64)
6717 #ifdef _SC_V6_LP64_OFF64
6718 {*r = _SC_V6_LP64_OFF64; return 0;}
6719 #else /* def _SC_V6_LP64_OFF64 */
6720 {errno = EINVAL; return -1;}
6721 #endif /* ndef _SC_V6_LP64_OFF64 */
6722 if (x == Mono_Posix_SysconfName__SC_V6_LPBIG_OFFBIG)
6723 #ifdef _SC_V6_LPBIG_OFFBIG
6724 {*r = _SC_V6_LPBIG_OFFBIG; return 0;}
6725 #else /* def _SC_V6_LPBIG_OFFBIG */
6726 {errno = EINVAL; return -1;}
6727 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
6728 if (x == Mono_Posix_SysconfName__SC_VERSION)
6729 #ifdef _SC_VERSION
6730 {*r = _SC_VERSION; return 0;}
6731 #else /* def _SC_VERSION */
6732 {errno = EINVAL; return -1;}
6733 #endif /* ndef _SC_VERSION */
6734 if (x == Mono_Posix_SysconfName__SC_WORD_BIT)
6735 #ifdef _SC_WORD_BIT
6736 {*r = _SC_WORD_BIT; return 0;}
6737 #else /* def _SC_WORD_BIT */
6738 {errno = EINVAL; return -1;}
6739 #endif /* ndef _SC_WORD_BIT */
6740 if (x == Mono_Posix_SysconfName__SC_XBS5_ILP32_OFF32)
6741 #ifdef _SC_XBS5_ILP32_OFF32
6742 {*r = _SC_XBS5_ILP32_OFF32; return 0;}
6743 #else /* def _SC_XBS5_ILP32_OFF32 */
6744 {errno = EINVAL; return -1;}
6745 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
6746 if (x == Mono_Posix_SysconfName__SC_XBS5_ILP32_OFFBIG)
6747 #ifdef _SC_XBS5_ILP32_OFFBIG
6748 {*r = _SC_XBS5_ILP32_OFFBIG; return 0;}
6749 #else /* def _SC_XBS5_ILP32_OFFBIG */
6750 {errno = EINVAL; return -1;}
6751 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
6752 if (x == Mono_Posix_SysconfName__SC_XBS5_LP64_OFF64)
6753 #ifdef _SC_XBS5_LP64_OFF64
6754 {*r = _SC_XBS5_LP64_OFF64; return 0;}
6755 #else /* def _SC_XBS5_LP64_OFF64 */
6756 {errno = EINVAL; return -1;}
6757 #endif /* ndef _SC_XBS5_LP64_OFF64 */
6758 if (x == Mono_Posix_SysconfName__SC_XBS5_LPBIG_OFFBIG)
6759 #ifdef _SC_XBS5_LPBIG_OFFBIG
6760 {*r = _SC_XBS5_LPBIG_OFFBIG; return 0;}
6761 #else /* def _SC_XBS5_LPBIG_OFFBIG */
6762 {errno = EINVAL; return -1;}
6763 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
6764 if (x == Mono_Posix_SysconfName__SC_XOPEN_CRYPT)
6765 #ifdef _SC_XOPEN_CRYPT
6766 {*r = _SC_XOPEN_CRYPT; return 0;}
6767 #else /* def _SC_XOPEN_CRYPT */
6768 {errno = EINVAL; return -1;}
6769 #endif /* ndef _SC_XOPEN_CRYPT */
6770 if (x == Mono_Posix_SysconfName__SC_XOPEN_ENH_I18N)
6771 #ifdef _SC_XOPEN_ENH_I18N
6772 {*r = _SC_XOPEN_ENH_I18N; return 0;}
6773 #else /* def _SC_XOPEN_ENH_I18N */
6774 {errno = EINVAL; return -1;}
6775 #endif /* ndef _SC_XOPEN_ENH_I18N */
6776 if (x == Mono_Posix_SysconfName__SC_XOPEN_LEGACY)
6777 #ifdef _SC_XOPEN_LEGACY
6778 {*r = _SC_XOPEN_LEGACY; return 0;}
6779 #else /* def _SC_XOPEN_LEGACY */
6780 {errno = EINVAL; return -1;}
6781 #endif /* ndef _SC_XOPEN_LEGACY */
6782 if (x == Mono_Posix_SysconfName__SC_XOPEN_REALTIME)
6783 #ifdef _SC_XOPEN_REALTIME
6784 {*r = _SC_XOPEN_REALTIME; return 0;}
6785 #else /* def _SC_XOPEN_REALTIME */
6786 {errno = EINVAL; return -1;}
6787 #endif /* ndef _SC_XOPEN_REALTIME */
6788 if (x == Mono_Posix_SysconfName__SC_XOPEN_REALTIME_THREADS)
6789 #ifdef _SC_XOPEN_REALTIME_THREADS
6790 {*r = _SC_XOPEN_REALTIME_THREADS; return 0;}
6791 #else /* def _SC_XOPEN_REALTIME_THREADS */
6792 {errno = EINVAL; return -1;}
6793 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
6794 if (x == Mono_Posix_SysconfName__SC_XOPEN_SHM)
6795 #ifdef _SC_XOPEN_SHM
6796 {*r = _SC_XOPEN_SHM; return 0;}
6797 #else /* def _SC_XOPEN_SHM */
6798 {errno = EINVAL; return -1;}
6799 #endif /* ndef _SC_XOPEN_SHM */
6800 if (x == Mono_Posix_SysconfName__SC_XOPEN_UNIX)
6801 #ifdef _SC_XOPEN_UNIX
6802 {*r = _SC_XOPEN_UNIX; return 0;}
6803 #else /* def _SC_XOPEN_UNIX */
6804 {errno = EINVAL; return -1;}
6805 #endif /* ndef _SC_XOPEN_UNIX */
6806 if (x == Mono_Posix_SysconfName__SC_XOPEN_VERSION)
6807 #ifdef _SC_XOPEN_VERSION
6808 {*r = _SC_XOPEN_VERSION; return 0;}
6809 #else /* def _SC_XOPEN_VERSION */
6810 {errno = EINVAL; return -1;}
6811 #endif /* ndef _SC_XOPEN_VERSION */
6812 if (x == Mono_Posix_SysconfName__SC_XOPEN_XCU_VERSION)
6813 #ifdef _SC_XOPEN_XCU_VERSION
6814 {*r = _SC_XOPEN_XCU_VERSION; return 0;}
6815 #else /* def _SC_XOPEN_XCU_VERSION */
6816 {errno = EINVAL; return -1;}
6817 #endif /* ndef _SC_XOPEN_XCU_VERSION */
6818 if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG2)
6819 #ifdef _SC_XOPEN_XPG2
6820 {*r = _SC_XOPEN_XPG2; return 0;}
6821 #else /* def _SC_XOPEN_XPG2 */
6822 {errno = EINVAL; return -1;}
6823 #endif /* ndef _SC_XOPEN_XPG2 */
6824 if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG3)
6825 #ifdef _SC_XOPEN_XPG3
6826 {*r = _SC_XOPEN_XPG3; return 0;}
6827 #else /* def _SC_XOPEN_XPG3 */
6828 {errno = EINVAL; return -1;}
6829 #endif /* ndef _SC_XOPEN_XPG3 */
6830 if (x == Mono_Posix_SysconfName__SC_XOPEN_XPG4)
6831 #ifdef _SC_XOPEN_XPG4
6832 {*r = _SC_XOPEN_XPG4; return 0;}
6833 #else /* def _SC_XOPEN_XPG4 */
6834 {errno = EINVAL; return -1;}
6835 #endif /* ndef _SC_XOPEN_XPG4 */
6836 if (x == 0)
6837 return 0;
6838 errno = EINVAL; return -1;
6841 int Mono_Posix_ToSysconfName (int x, int *r)
6843 *r = 0;
6844 if (x == 0)
6845 return 0;
6846 #ifdef _SC_2_CHAR_TERM
6847 if (x == _SC_2_CHAR_TERM)
6848 {*r = Mono_Posix_SysconfName__SC_2_CHAR_TERM; return 0;}
6849 #endif /* ndef _SC_2_CHAR_TERM */
6850 #ifdef _SC_2_C_BIND
6851 if (x == _SC_2_C_BIND)
6852 {*r = Mono_Posix_SysconfName__SC_2_C_BIND; return 0;}
6853 #endif /* ndef _SC_2_C_BIND */
6854 #ifdef _SC_2_C_DEV
6855 if (x == _SC_2_C_DEV)
6856 {*r = Mono_Posix_SysconfName__SC_2_C_DEV; return 0;}
6857 #endif /* ndef _SC_2_C_DEV */
6858 #ifdef _SC_2_C_VERSION
6859 if (x == _SC_2_C_VERSION)
6860 {*r = Mono_Posix_SysconfName__SC_2_C_VERSION; return 0;}
6861 #endif /* ndef _SC_2_C_VERSION */
6862 #ifdef _SC_2_FORT_DEV
6863 if (x == _SC_2_FORT_DEV)
6864 {*r = Mono_Posix_SysconfName__SC_2_FORT_DEV; return 0;}
6865 #endif /* ndef _SC_2_FORT_DEV */
6866 #ifdef _SC_2_FORT_RUN
6867 if (x == _SC_2_FORT_RUN)
6868 {*r = Mono_Posix_SysconfName__SC_2_FORT_RUN; return 0;}
6869 #endif /* ndef _SC_2_FORT_RUN */
6870 #ifdef _SC_2_LOCALEDEF
6871 if (x == _SC_2_LOCALEDEF)
6872 {*r = Mono_Posix_SysconfName__SC_2_LOCALEDEF; return 0;}
6873 #endif /* ndef _SC_2_LOCALEDEF */
6874 #ifdef _SC_2_PBS
6875 if (x == _SC_2_PBS)
6876 {*r = Mono_Posix_SysconfName__SC_2_PBS; return 0;}
6877 #endif /* ndef _SC_2_PBS */
6878 #ifdef _SC_2_PBS_ACCOUNTING
6879 if (x == _SC_2_PBS_ACCOUNTING)
6880 {*r = Mono_Posix_SysconfName__SC_2_PBS_ACCOUNTING; return 0;}
6881 #endif /* ndef _SC_2_PBS_ACCOUNTING */
6882 #ifdef _SC_2_PBS_CHECKPOINT
6883 if (x == _SC_2_PBS_CHECKPOINT)
6884 {*r = Mono_Posix_SysconfName__SC_2_PBS_CHECKPOINT; return 0;}
6885 #endif /* ndef _SC_2_PBS_CHECKPOINT */
6886 #ifdef _SC_2_PBS_LOCATE
6887 if (x == _SC_2_PBS_LOCATE)
6888 {*r = Mono_Posix_SysconfName__SC_2_PBS_LOCATE; return 0;}
6889 #endif /* ndef _SC_2_PBS_LOCATE */
6890 #ifdef _SC_2_PBS_MESSAGE
6891 if (x == _SC_2_PBS_MESSAGE)
6892 {*r = Mono_Posix_SysconfName__SC_2_PBS_MESSAGE; return 0;}
6893 #endif /* ndef _SC_2_PBS_MESSAGE */
6894 #ifdef _SC_2_PBS_TRACK
6895 if (x == _SC_2_PBS_TRACK)
6896 {*r = Mono_Posix_SysconfName__SC_2_PBS_TRACK; return 0;}
6897 #endif /* ndef _SC_2_PBS_TRACK */
6898 #ifdef _SC_2_SW_DEV
6899 if (x == _SC_2_SW_DEV)
6900 {*r = Mono_Posix_SysconfName__SC_2_SW_DEV; return 0;}
6901 #endif /* ndef _SC_2_SW_DEV */
6902 #ifdef _SC_2_UPE
6903 if (x == _SC_2_UPE)
6904 {*r = Mono_Posix_SysconfName__SC_2_UPE; return 0;}
6905 #endif /* ndef _SC_2_UPE */
6906 #ifdef _SC_2_VERSION
6907 if (x == _SC_2_VERSION)
6908 {*r = Mono_Posix_SysconfName__SC_2_VERSION; return 0;}
6909 #endif /* ndef _SC_2_VERSION */
6910 #ifdef _SC_ADVISORY_INFO
6911 if (x == _SC_ADVISORY_INFO)
6912 {*r = Mono_Posix_SysconfName__SC_ADVISORY_INFO; return 0;}
6913 #endif /* ndef _SC_ADVISORY_INFO */
6914 #ifdef _SC_AIO_LISTIO_MAX
6915 if (x == _SC_AIO_LISTIO_MAX)
6916 {*r = Mono_Posix_SysconfName__SC_AIO_LISTIO_MAX; return 0;}
6917 #endif /* ndef _SC_AIO_LISTIO_MAX */
6918 #ifdef _SC_AIO_MAX
6919 if (x == _SC_AIO_MAX)
6920 {*r = Mono_Posix_SysconfName__SC_AIO_MAX; return 0;}
6921 #endif /* ndef _SC_AIO_MAX */
6922 #ifdef _SC_AIO_PRIO_DELTA_MAX
6923 if (x == _SC_AIO_PRIO_DELTA_MAX)
6924 {*r = Mono_Posix_SysconfName__SC_AIO_PRIO_DELTA_MAX; return 0;}
6925 #endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
6926 #ifdef _SC_ARG_MAX
6927 if (x == _SC_ARG_MAX)
6928 {*r = Mono_Posix_SysconfName__SC_ARG_MAX; return 0;}
6929 #endif /* ndef _SC_ARG_MAX */
6930 #ifdef _SC_ASYNCHRONOUS_IO
6931 if (x == _SC_ASYNCHRONOUS_IO)
6932 {*r = Mono_Posix_SysconfName__SC_ASYNCHRONOUS_IO; return 0;}
6933 #endif /* ndef _SC_ASYNCHRONOUS_IO */
6934 #ifdef _SC_ATEXIT_MAX
6935 if (x == _SC_ATEXIT_MAX)
6936 {*r = Mono_Posix_SysconfName__SC_ATEXIT_MAX; return 0;}
6937 #endif /* ndef _SC_ATEXIT_MAX */
6938 #ifdef _SC_AVPHYS_PAGES
6939 if (x == _SC_AVPHYS_PAGES)
6940 {*r = Mono_Posix_SysconfName__SC_AVPHYS_PAGES; return 0;}
6941 #endif /* ndef _SC_AVPHYS_PAGES */
6942 #ifdef _SC_BARRIERS
6943 if (x == _SC_BARRIERS)
6944 {*r = Mono_Posix_SysconfName__SC_BARRIERS; return 0;}
6945 #endif /* ndef _SC_BARRIERS */
6946 #ifdef _SC_BASE
6947 if (x == _SC_BASE)
6948 {*r = Mono_Posix_SysconfName__SC_BASE; return 0;}
6949 #endif /* ndef _SC_BASE */
6950 #ifdef _SC_BC_BASE_MAX
6951 if (x == _SC_BC_BASE_MAX)
6952 {*r = Mono_Posix_SysconfName__SC_BC_BASE_MAX; return 0;}
6953 #endif /* ndef _SC_BC_BASE_MAX */
6954 #ifdef _SC_BC_DIM_MAX
6955 if (x == _SC_BC_DIM_MAX)
6956 {*r = Mono_Posix_SysconfName__SC_BC_DIM_MAX; return 0;}
6957 #endif /* ndef _SC_BC_DIM_MAX */
6958 #ifdef _SC_BC_SCALE_MAX
6959 if (x == _SC_BC_SCALE_MAX)
6960 {*r = Mono_Posix_SysconfName__SC_BC_SCALE_MAX; return 0;}
6961 #endif /* ndef _SC_BC_SCALE_MAX */
6962 #ifdef _SC_BC_STRING_MAX
6963 if (x == _SC_BC_STRING_MAX)
6964 {*r = Mono_Posix_SysconfName__SC_BC_STRING_MAX; return 0;}
6965 #endif /* ndef _SC_BC_STRING_MAX */
6966 #ifdef _SC_CHARCLASS_NAME_MAX
6967 if (x == _SC_CHARCLASS_NAME_MAX)
6968 {*r = Mono_Posix_SysconfName__SC_CHARCLASS_NAME_MAX; return 0;}
6969 #endif /* ndef _SC_CHARCLASS_NAME_MAX */
6970 #ifdef _SC_CHAR_BIT
6971 if (x == _SC_CHAR_BIT)
6972 {*r = Mono_Posix_SysconfName__SC_CHAR_BIT; return 0;}
6973 #endif /* ndef _SC_CHAR_BIT */
6974 #ifdef _SC_CHAR_MAX
6975 if (x == _SC_CHAR_MAX)
6976 {*r = Mono_Posix_SysconfName__SC_CHAR_MAX; return 0;}
6977 #endif /* ndef _SC_CHAR_MAX */
6978 #ifdef _SC_CHAR_MIN
6979 if (x == _SC_CHAR_MIN)
6980 {*r = Mono_Posix_SysconfName__SC_CHAR_MIN; return 0;}
6981 #endif /* ndef _SC_CHAR_MIN */
6982 #ifdef _SC_CHILD_MAX
6983 if (x == _SC_CHILD_MAX)
6984 {*r = Mono_Posix_SysconfName__SC_CHILD_MAX; return 0;}
6985 #endif /* ndef _SC_CHILD_MAX */
6986 #ifdef _SC_CLK_TCK
6987 if (x == _SC_CLK_TCK)
6988 {*r = Mono_Posix_SysconfName__SC_CLK_TCK; return 0;}
6989 #endif /* ndef _SC_CLK_TCK */
6990 #ifdef _SC_CLOCK_SELECTION
6991 if (x == _SC_CLOCK_SELECTION)
6992 {*r = Mono_Posix_SysconfName__SC_CLOCK_SELECTION; return 0;}
6993 #endif /* ndef _SC_CLOCK_SELECTION */
6994 #ifdef _SC_COLL_WEIGHTS_MAX
6995 if (x == _SC_COLL_WEIGHTS_MAX)
6996 {*r = Mono_Posix_SysconfName__SC_COLL_WEIGHTS_MAX; return 0;}
6997 #endif /* ndef _SC_COLL_WEIGHTS_MAX */
6998 #ifdef _SC_CPUTIME
6999 if (x == _SC_CPUTIME)
7000 {*r = Mono_Posix_SysconfName__SC_CPUTIME; return 0;}
7001 #endif /* ndef _SC_CPUTIME */
7002 #ifdef _SC_C_LANG_SUPPORT
7003 if (x == _SC_C_LANG_SUPPORT)
7004 {*r = Mono_Posix_SysconfName__SC_C_LANG_SUPPORT; return 0;}
7005 #endif /* ndef _SC_C_LANG_SUPPORT */
7006 #ifdef _SC_C_LANG_SUPPORT_R
7007 if (x == _SC_C_LANG_SUPPORT_R)
7008 {*r = Mono_Posix_SysconfName__SC_C_LANG_SUPPORT_R; return 0;}
7009 #endif /* ndef _SC_C_LANG_SUPPORT_R */
7010 #ifdef _SC_DELAYTIMER_MAX
7011 if (x == _SC_DELAYTIMER_MAX)
7012 {*r = Mono_Posix_SysconfName__SC_DELAYTIMER_MAX; return 0;}
7013 #endif /* ndef _SC_DELAYTIMER_MAX */
7014 #ifdef _SC_DEVICE_IO
7015 if (x == _SC_DEVICE_IO)
7016 {*r = Mono_Posix_SysconfName__SC_DEVICE_IO; return 0;}
7017 #endif /* ndef _SC_DEVICE_IO */
7018 #ifdef _SC_DEVICE_SPECIFIC
7019 if (x == _SC_DEVICE_SPECIFIC)
7020 {*r = Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC; return 0;}
7021 #endif /* ndef _SC_DEVICE_SPECIFIC */
7022 #ifdef _SC_DEVICE_SPECIFIC_R
7023 if (x == _SC_DEVICE_SPECIFIC_R)
7024 {*r = Mono_Posix_SysconfName__SC_DEVICE_SPECIFIC_R; return 0;}
7025 #endif /* ndef _SC_DEVICE_SPECIFIC_R */
7026 #ifdef _SC_EQUIV_CLASS_MAX
7027 if (x == _SC_EQUIV_CLASS_MAX)
7028 {*r = Mono_Posix_SysconfName__SC_EQUIV_CLASS_MAX; return 0;}
7029 #endif /* ndef _SC_EQUIV_CLASS_MAX */
7030 #ifdef _SC_EXPR_NEST_MAX
7031 if (x == _SC_EXPR_NEST_MAX)
7032 {*r = Mono_Posix_SysconfName__SC_EXPR_NEST_MAX; return 0;}
7033 #endif /* ndef _SC_EXPR_NEST_MAX */
7034 #ifdef _SC_FD_MGMT
7035 if (x == _SC_FD_MGMT)
7036 {*r = Mono_Posix_SysconfName__SC_FD_MGMT; return 0;}
7037 #endif /* ndef _SC_FD_MGMT */
7038 #ifdef _SC_FIFO
7039 if (x == _SC_FIFO)
7040 {*r = Mono_Posix_SysconfName__SC_FIFO; return 0;}
7041 #endif /* ndef _SC_FIFO */
7042 #ifdef _SC_FILE_ATTRIBUTES
7043 if (x == _SC_FILE_ATTRIBUTES)
7044 {*r = Mono_Posix_SysconfName__SC_FILE_ATTRIBUTES; return 0;}
7045 #endif /* ndef _SC_FILE_ATTRIBUTES */
7046 #ifdef _SC_FILE_LOCKING
7047 if (x == _SC_FILE_LOCKING)
7048 {*r = Mono_Posix_SysconfName__SC_FILE_LOCKING; return 0;}
7049 #endif /* ndef _SC_FILE_LOCKING */
7050 #ifdef _SC_FILE_SYSTEM
7051 if (x == _SC_FILE_SYSTEM)
7052 {*r = Mono_Posix_SysconfName__SC_FILE_SYSTEM; return 0;}
7053 #endif /* ndef _SC_FILE_SYSTEM */
7054 #ifdef _SC_FSYNC
7055 if (x == _SC_FSYNC)
7056 {*r = Mono_Posix_SysconfName__SC_FSYNC; return 0;}
7057 #endif /* ndef _SC_FSYNC */
7058 #ifdef _SC_GETGR_R_SIZE_MAX
7059 if (x == _SC_GETGR_R_SIZE_MAX)
7060 {*r = Mono_Posix_SysconfName__SC_GETGR_R_SIZE_MAX; return 0;}
7061 #endif /* ndef _SC_GETGR_R_SIZE_MAX */
7062 #ifdef _SC_GETPW_R_SIZE_MAX
7063 if (x == _SC_GETPW_R_SIZE_MAX)
7064 {*r = Mono_Posix_SysconfName__SC_GETPW_R_SIZE_MAX; return 0;}
7065 #endif /* ndef _SC_GETPW_R_SIZE_MAX */
7066 #ifdef _SC_HOST_NAME_MAX
7067 if (x == _SC_HOST_NAME_MAX)
7068 {*r = Mono_Posix_SysconfName__SC_HOST_NAME_MAX; return 0;}
7069 #endif /* ndef _SC_HOST_NAME_MAX */
7070 #ifdef _SC_INT_MAX
7071 if (x == _SC_INT_MAX)
7072 {*r = Mono_Posix_SysconfName__SC_INT_MAX; return 0;}
7073 #endif /* ndef _SC_INT_MAX */
7074 #ifdef _SC_INT_MIN
7075 if (x == _SC_INT_MIN)
7076 {*r = Mono_Posix_SysconfName__SC_INT_MIN; return 0;}
7077 #endif /* ndef _SC_INT_MIN */
7078 #ifdef _SC_IOV_MAX
7079 if (x == _SC_IOV_MAX)
7080 {*r = Mono_Posix_SysconfName__SC_IOV_MAX; return 0;}
7081 #endif /* ndef _SC_IOV_MAX */
7082 #ifdef _SC_JOB_CONTROL
7083 if (x == _SC_JOB_CONTROL)
7084 {*r = Mono_Posix_SysconfName__SC_JOB_CONTROL; return 0;}
7085 #endif /* ndef _SC_JOB_CONTROL */
7086 #ifdef _SC_LEVEL1_DCACHE_ASSOC
7087 if (x == _SC_LEVEL1_DCACHE_ASSOC)
7088 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_ASSOC; return 0;}
7089 #endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
7090 #ifdef _SC_LEVEL1_DCACHE_LINESIZE
7091 if (x == _SC_LEVEL1_DCACHE_LINESIZE)
7092 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_LINESIZE; return 0;}
7093 #endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
7094 #ifdef _SC_LEVEL1_DCACHE_SIZE
7095 if (x == _SC_LEVEL1_DCACHE_SIZE)
7096 {*r = Mono_Posix_SysconfName__SC_LEVEL1_DCACHE_SIZE; return 0;}
7097 #endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
7098 #ifdef _SC_LEVEL1_ICACHE_ASSOC
7099 if (x == _SC_LEVEL1_ICACHE_ASSOC)
7100 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_ASSOC; return 0;}
7101 #endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
7102 #ifdef _SC_LEVEL1_ICACHE_LINESIZE
7103 if (x == _SC_LEVEL1_ICACHE_LINESIZE)
7104 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_LINESIZE; return 0;}
7105 #endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
7106 #ifdef _SC_LEVEL1_ICACHE_SIZE
7107 if (x == _SC_LEVEL1_ICACHE_SIZE)
7108 {*r = Mono_Posix_SysconfName__SC_LEVEL1_ICACHE_SIZE; return 0;}
7109 #endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
7110 #ifdef _SC_LEVEL2_CACHE_ASSOC
7111 if (x == _SC_LEVEL2_CACHE_ASSOC)
7112 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_ASSOC; return 0;}
7113 #endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
7114 #ifdef _SC_LEVEL2_CACHE_LINESIZE
7115 if (x == _SC_LEVEL2_CACHE_LINESIZE)
7116 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_LINESIZE; return 0;}
7117 #endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
7118 #ifdef _SC_LEVEL2_CACHE_SIZE
7119 if (x == _SC_LEVEL2_CACHE_SIZE)
7120 {*r = Mono_Posix_SysconfName__SC_LEVEL2_CACHE_SIZE; return 0;}
7121 #endif /* ndef _SC_LEVEL2_CACHE_SIZE */
7122 #ifdef _SC_LEVEL3_CACHE_ASSOC
7123 if (x == _SC_LEVEL3_CACHE_ASSOC)
7124 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_ASSOC; return 0;}
7125 #endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
7126 #ifdef _SC_LEVEL3_CACHE_LINESIZE
7127 if (x == _SC_LEVEL3_CACHE_LINESIZE)
7128 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_LINESIZE; return 0;}
7129 #endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
7130 #ifdef _SC_LEVEL3_CACHE_SIZE
7131 if (x == _SC_LEVEL3_CACHE_SIZE)
7132 {*r = Mono_Posix_SysconfName__SC_LEVEL3_CACHE_SIZE; return 0;}
7133 #endif /* ndef _SC_LEVEL3_CACHE_SIZE */
7134 #ifdef _SC_LEVEL4_CACHE_ASSOC
7135 if (x == _SC_LEVEL4_CACHE_ASSOC)
7136 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_ASSOC; return 0;}
7137 #endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
7138 #ifdef _SC_LEVEL4_CACHE_LINESIZE
7139 if (x == _SC_LEVEL4_CACHE_LINESIZE)
7140 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_LINESIZE; return 0;}
7141 #endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
7142 #ifdef _SC_LEVEL4_CACHE_SIZE
7143 if (x == _SC_LEVEL4_CACHE_SIZE)
7144 {*r = Mono_Posix_SysconfName__SC_LEVEL4_CACHE_SIZE; return 0;}
7145 #endif /* ndef _SC_LEVEL4_CACHE_SIZE */
7146 #ifdef _SC_LINE_MAX
7147 if (x == _SC_LINE_MAX)
7148 {*r = Mono_Posix_SysconfName__SC_LINE_MAX; return 0;}
7149 #endif /* ndef _SC_LINE_MAX */
7150 #ifdef _SC_LOGIN_NAME_MAX
7151 if (x == _SC_LOGIN_NAME_MAX)
7152 {*r = Mono_Posix_SysconfName__SC_LOGIN_NAME_MAX; return 0;}
7153 #endif /* ndef _SC_LOGIN_NAME_MAX */
7154 #ifdef _SC_LONG_BIT
7155 if (x == _SC_LONG_BIT)
7156 {*r = Mono_Posix_SysconfName__SC_LONG_BIT; return 0;}
7157 #endif /* ndef _SC_LONG_BIT */
7158 #ifdef _SC_MAPPED_FILES
7159 if (x == _SC_MAPPED_FILES)
7160 {*r = Mono_Posix_SysconfName__SC_MAPPED_FILES; return 0;}
7161 #endif /* ndef _SC_MAPPED_FILES */
7162 #ifdef _SC_MB_LEN_MAX
7163 if (x == _SC_MB_LEN_MAX)
7164 {*r = Mono_Posix_SysconfName__SC_MB_LEN_MAX; return 0;}
7165 #endif /* ndef _SC_MB_LEN_MAX */
7166 #ifdef _SC_MEMLOCK
7167 if (x == _SC_MEMLOCK)
7168 {*r = Mono_Posix_SysconfName__SC_MEMLOCK; return 0;}
7169 #endif /* ndef _SC_MEMLOCK */
7170 #ifdef _SC_MEMLOCK_RANGE
7171 if (x == _SC_MEMLOCK_RANGE)
7172 {*r = Mono_Posix_SysconfName__SC_MEMLOCK_RANGE; return 0;}
7173 #endif /* ndef _SC_MEMLOCK_RANGE */
7174 #ifdef _SC_MEMORY_PROTECTION
7175 if (x == _SC_MEMORY_PROTECTION)
7176 {*r = Mono_Posix_SysconfName__SC_MEMORY_PROTECTION; return 0;}
7177 #endif /* ndef _SC_MEMORY_PROTECTION */
7178 #ifdef _SC_MESSAGE_PASSING
7179 if (x == _SC_MESSAGE_PASSING)
7180 {*r = Mono_Posix_SysconfName__SC_MESSAGE_PASSING; return 0;}
7181 #endif /* ndef _SC_MESSAGE_PASSING */
7182 #ifdef _SC_MONOTONIC_CLOCK
7183 if (x == _SC_MONOTONIC_CLOCK)
7184 {*r = Mono_Posix_SysconfName__SC_MONOTONIC_CLOCK; return 0;}
7185 #endif /* ndef _SC_MONOTONIC_CLOCK */
7186 #ifdef _SC_MQ_OPEN_MAX
7187 if (x == _SC_MQ_OPEN_MAX)
7188 {*r = Mono_Posix_SysconfName__SC_MQ_OPEN_MAX; return 0;}
7189 #endif /* ndef _SC_MQ_OPEN_MAX */
7190 #ifdef _SC_MQ_PRIO_MAX
7191 if (x == _SC_MQ_PRIO_MAX)
7192 {*r = Mono_Posix_SysconfName__SC_MQ_PRIO_MAX; return 0;}
7193 #endif /* ndef _SC_MQ_PRIO_MAX */
7194 #ifdef _SC_MULTI_PROCESS
7195 if (x == _SC_MULTI_PROCESS)
7196 {*r = Mono_Posix_SysconfName__SC_MULTI_PROCESS; return 0;}
7197 #endif /* ndef _SC_MULTI_PROCESS */
7198 #ifdef _SC_NETWORKING
7199 if (x == _SC_NETWORKING)
7200 {*r = Mono_Posix_SysconfName__SC_NETWORKING; return 0;}
7201 #endif /* ndef _SC_NETWORKING */
7202 #ifdef _SC_NGROUPS_MAX
7203 if (x == _SC_NGROUPS_MAX)
7204 {*r = Mono_Posix_SysconfName__SC_NGROUPS_MAX; return 0;}
7205 #endif /* ndef _SC_NGROUPS_MAX */
7206 #ifdef _SC_NL_ARGMAX
7207 if (x == _SC_NL_ARGMAX)
7208 {*r = Mono_Posix_SysconfName__SC_NL_ARGMAX; return 0;}
7209 #endif /* ndef _SC_NL_ARGMAX */
7210 #ifdef _SC_NL_LANGMAX
7211 if (x == _SC_NL_LANGMAX)
7212 {*r = Mono_Posix_SysconfName__SC_NL_LANGMAX; return 0;}
7213 #endif /* ndef _SC_NL_LANGMAX */
7214 #ifdef _SC_NL_MSGMAX
7215 if (x == _SC_NL_MSGMAX)
7216 {*r = Mono_Posix_SysconfName__SC_NL_MSGMAX; return 0;}
7217 #endif /* ndef _SC_NL_MSGMAX */
7218 #ifdef _SC_NL_NMAX
7219 if (x == _SC_NL_NMAX)
7220 {*r = Mono_Posix_SysconfName__SC_NL_NMAX; return 0;}
7221 #endif /* ndef _SC_NL_NMAX */
7222 #ifdef _SC_NL_SETMAX
7223 if (x == _SC_NL_SETMAX)
7224 {*r = Mono_Posix_SysconfName__SC_NL_SETMAX; return 0;}
7225 #endif /* ndef _SC_NL_SETMAX */
7226 #ifdef _SC_NL_TEXTMAX
7227 if (x == _SC_NL_TEXTMAX)
7228 {*r = Mono_Posix_SysconfName__SC_NL_TEXTMAX; return 0;}
7229 #endif /* ndef _SC_NL_TEXTMAX */
7230 #ifdef _SC_NPROCESSORS_CONF
7231 if (x == _SC_NPROCESSORS_CONF)
7232 {*r = Mono_Posix_SysconfName__SC_NPROCESSORS_CONF; return 0;}
7233 #endif /* ndef _SC_NPROCESSORS_CONF */
7234 #ifdef _SC_NPROCESSORS_ONLN
7235 if (x == _SC_NPROCESSORS_ONLN)
7236 {*r = Mono_Posix_SysconfName__SC_NPROCESSORS_ONLN; return 0;}
7237 #endif /* ndef _SC_NPROCESSORS_ONLN */
7238 #ifdef _SC_NZERO
7239 if (x == _SC_NZERO)
7240 {*r = Mono_Posix_SysconfName__SC_NZERO; return 0;}
7241 #endif /* ndef _SC_NZERO */
7242 #ifdef _SC_OPEN_MAX
7243 if (x == _SC_OPEN_MAX)
7244 {*r = Mono_Posix_SysconfName__SC_OPEN_MAX; return 0;}
7245 #endif /* ndef _SC_OPEN_MAX */
7246 #ifdef _SC_PAGESIZE
7247 if (x == _SC_PAGESIZE)
7248 {*r = Mono_Posix_SysconfName__SC_PAGESIZE; return 0;}
7249 #endif /* ndef _SC_PAGESIZE */
7250 #ifdef _SC_PASS_MAX
7251 if (x == _SC_PASS_MAX)
7252 {*r = Mono_Posix_SysconfName__SC_PASS_MAX; return 0;}
7253 #endif /* ndef _SC_PASS_MAX */
7254 #ifdef _SC_PHYS_PAGES
7255 if (x == _SC_PHYS_PAGES)
7256 {*r = Mono_Posix_SysconfName__SC_PHYS_PAGES; return 0;}
7257 #endif /* ndef _SC_PHYS_PAGES */
7258 #ifdef _SC_PII
7259 if (x == _SC_PII)
7260 {*r = Mono_Posix_SysconfName__SC_PII; return 0;}
7261 #endif /* ndef _SC_PII */
7262 #ifdef _SC_PII_INTERNET
7263 if (x == _SC_PII_INTERNET)
7264 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET; return 0;}
7265 #endif /* ndef _SC_PII_INTERNET */
7266 #ifdef _SC_PII_INTERNET_DGRAM
7267 if (x == _SC_PII_INTERNET_DGRAM)
7268 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET_DGRAM; return 0;}
7269 #endif /* ndef _SC_PII_INTERNET_DGRAM */
7270 #ifdef _SC_PII_INTERNET_STREAM
7271 if (x == _SC_PII_INTERNET_STREAM)
7272 {*r = Mono_Posix_SysconfName__SC_PII_INTERNET_STREAM; return 0;}
7273 #endif /* ndef _SC_PII_INTERNET_STREAM */
7274 #ifdef _SC_PII_OSI
7275 if (x == _SC_PII_OSI)
7276 {*r = Mono_Posix_SysconfName__SC_PII_OSI; return 0;}
7277 #endif /* ndef _SC_PII_OSI */
7278 #ifdef _SC_PII_OSI_CLTS
7279 if (x == _SC_PII_OSI_CLTS)
7280 {*r = Mono_Posix_SysconfName__SC_PII_OSI_CLTS; return 0;}
7281 #endif /* ndef _SC_PII_OSI_CLTS */
7282 #ifdef _SC_PII_OSI_COTS
7283 if (x == _SC_PII_OSI_COTS)
7284 {*r = Mono_Posix_SysconfName__SC_PII_OSI_COTS; return 0;}
7285 #endif /* ndef _SC_PII_OSI_COTS */
7286 #ifdef _SC_PII_OSI_M
7287 if (x == _SC_PII_OSI_M)
7288 {*r = Mono_Posix_SysconfName__SC_PII_OSI_M; return 0;}
7289 #endif /* ndef _SC_PII_OSI_M */
7290 #ifdef _SC_PII_SOCKET
7291 if (x == _SC_PII_SOCKET)
7292 {*r = Mono_Posix_SysconfName__SC_PII_SOCKET; return 0;}
7293 #endif /* ndef _SC_PII_SOCKET */
7294 #ifdef _SC_PII_XTI
7295 if (x == _SC_PII_XTI)
7296 {*r = Mono_Posix_SysconfName__SC_PII_XTI; return 0;}
7297 #endif /* ndef _SC_PII_XTI */
7298 #ifdef _SC_PIPE
7299 if (x == _SC_PIPE)
7300 {*r = Mono_Posix_SysconfName__SC_PIPE; return 0;}
7301 #endif /* ndef _SC_PIPE */
7302 #ifdef _SC_POLL
7303 if (x == _SC_POLL)
7304 {*r = Mono_Posix_SysconfName__SC_POLL; return 0;}
7305 #endif /* ndef _SC_POLL */
7306 #ifdef _SC_PRIORITIZED_IO
7307 if (x == _SC_PRIORITIZED_IO)
7308 {*r = Mono_Posix_SysconfName__SC_PRIORITIZED_IO; return 0;}
7309 #endif /* ndef _SC_PRIORITIZED_IO */
7310 #ifdef _SC_PRIORITY_SCHEDULING
7311 if (x == _SC_PRIORITY_SCHEDULING)
7312 {*r = Mono_Posix_SysconfName__SC_PRIORITY_SCHEDULING; return 0;}
7313 #endif /* ndef _SC_PRIORITY_SCHEDULING */
7314 #ifdef _SC_READER_WRITER_LOCKS
7315 if (x == _SC_READER_WRITER_LOCKS)
7316 {*r = Mono_Posix_SysconfName__SC_READER_WRITER_LOCKS; return 0;}
7317 #endif /* ndef _SC_READER_WRITER_LOCKS */
7318 #ifdef _SC_REALTIME_SIGNALS
7319 if (x == _SC_REALTIME_SIGNALS)
7320 {*r = Mono_Posix_SysconfName__SC_REALTIME_SIGNALS; return 0;}
7321 #endif /* ndef _SC_REALTIME_SIGNALS */
7322 #ifdef _SC_REGEXP
7323 if (x == _SC_REGEXP)
7324 {*r = Mono_Posix_SysconfName__SC_REGEXP; return 0;}
7325 #endif /* ndef _SC_REGEXP */
7326 #ifdef _SC_REGEX_VERSION
7327 if (x == _SC_REGEX_VERSION)
7328 {*r = Mono_Posix_SysconfName__SC_REGEX_VERSION; return 0;}
7329 #endif /* ndef _SC_REGEX_VERSION */
7330 #ifdef _SC_RE_DUP_MAX
7331 if (x == _SC_RE_DUP_MAX)
7332 {*r = Mono_Posix_SysconfName__SC_RE_DUP_MAX; return 0;}
7333 #endif /* ndef _SC_RE_DUP_MAX */
7334 #ifdef _SC_RTSIG_MAX
7335 if (x == _SC_RTSIG_MAX)
7336 {*r = Mono_Posix_SysconfName__SC_RTSIG_MAX; return 0;}
7337 #endif /* ndef _SC_RTSIG_MAX */
7338 #ifdef _SC_SAVED_IDS
7339 if (x == _SC_SAVED_IDS)
7340 {*r = Mono_Posix_SysconfName__SC_SAVED_IDS; return 0;}
7341 #endif /* ndef _SC_SAVED_IDS */
7342 #ifdef _SC_SCHAR_MAX
7343 if (x == _SC_SCHAR_MAX)
7344 {*r = Mono_Posix_SysconfName__SC_SCHAR_MAX; return 0;}
7345 #endif /* ndef _SC_SCHAR_MAX */
7346 #ifdef _SC_SCHAR_MIN
7347 if (x == _SC_SCHAR_MIN)
7348 {*r = Mono_Posix_SysconfName__SC_SCHAR_MIN; return 0;}
7349 #endif /* ndef _SC_SCHAR_MIN */
7350 #ifdef _SC_SELECT
7351 if (x == _SC_SELECT)
7352 {*r = Mono_Posix_SysconfName__SC_SELECT; return 0;}
7353 #endif /* ndef _SC_SELECT */
7354 #ifdef _SC_SEMAPHORES
7355 if (x == _SC_SEMAPHORES)
7356 {*r = Mono_Posix_SysconfName__SC_SEMAPHORES; return 0;}
7357 #endif /* ndef _SC_SEMAPHORES */
7358 #ifdef _SC_SEM_NSEMS_MAX
7359 if (x == _SC_SEM_NSEMS_MAX)
7360 {*r = Mono_Posix_SysconfName__SC_SEM_NSEMS_MAX; return 0;}
7361 #endif /* ndef _SC_SEM_NSEMS_MAX */
7362 #ifdef _SC_SEM_VALUE_MAX
7363 if (x == _SC_SEM_VALUE_MAX)
7364 {*r = Mono_Posix_SysconfName__SC_SEM_VALUE_MAX; return 0;}
7365 #endif /* ndef _SC_SEM_VALUE_MAX */
7366 #ifdef _SC_SHARED_MEMORY_OBJECTS
7367 if (x == _SC_SHARED_MEMORY_OBJECTS)
7368 {*r = Mono_Posix_SysconfName__SC_SHARED_MEMORY_OBJECTS; return 0;}
7369 #endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
7370 #ifdef _SC_SHELL
7371 if (x == _SC_SHELL)
7372 {*r = Mono_Posix_SysconfName__SC_SHELL; return 0;}
7373 #endif /* ndef _SC_SHELL */
7374 #ifdef _SC_SHRT_MAX
7375 if (x == _SC_SHRT_MAX)
7376 {*r = Mono_Posix_SysconfName__SC_SHRT_MAX; return 0;}
7377 #endif /* ndef _SC_SHRT_MAX */
7378 #ifdef _SC_SHRT_MIN
7379 if (x == _SC_SHRT_MIN)
7380 {*r = Mono_Posix_SysconfName__SC_SHRT_MIN; return 0;}
7381 #endif /* ndef _SC_SHRT_MIN */
7382 #ifdef _SC_SIGNALS
7383 if (x == _SC_SIGNALS)
7384 {*r = Mono_Posix_SysconfName__SC_SIGNALS; return 0;}
7385 #endif /* ndef _SC_SIGNALS */
7386 #ifdef _SC_SIGQUEUE_MAX
7387 if (x == _SC_SIGQUEUE_MAX)
7388 {*r = Mono_Posix_SysconfName__SC_SIGQUEUE_MAX; return 0;}
7389 #endif /* ndef _SC_SIGQUEUE_MAX */
7390 #ifdef _SC_SINGLE_PROCESS
7391 if (x == _SC_SINGLE_PROCESS)
7392 {*r = Mono_Posix_SysconfName__SC_SINGLE_PROCESS; return 0;}
7393 #endif /* ndef _SC_SINGLE_PROCESS */
7394 #ifdef _SC_SPAWN
7395 if (x == _SC_SPAWN)
7396 {*r = Mono_Posix_SysconfName__SC_SPAWN; return 0;}
7397 #endif /* ndef _SC_SPAWN */
7398 #ifdef _SC_SPIN_LOCKS
7399 if (x == _SC_SPIN_LOCKS)
7400 {*r = Mono_Posix_SysconfName__SC_SPIN_LOCKS; return 0;}
7401 #endif /* ndef _SC_SPIN_LOCKS */
7402 #ifdef _SC_SPORADIC_SERVER
7403 if (x == _SC_SPORADIC_SERVER)
7404 {*r = Mono_Posix_SysconfName__SC_SPORADIC_SERVER; return 0;}
7405 #endif /* ndef _SC_SPORADIC_SERVER */
7406 #ifdef _SC_SSIZE_MAX
7407 if (x == _SC_SSIZE_MAX)
7408 {*r = Mono_Posix_SysconfName__SC_SSIZE_MAX; return 0;}
7409 #endif /* ndef _SC_SSIZE_MAX */
7410 #ifdef _SC_STREAMS
7411 if (x == _SC_STREAMS)
7412 {*r = Mono_Posix_SysconfName__SC_STREAMS; return 0;}
7413 #endif /* ndef _SC_STREAMS */
7414 #ifdef _SC_STREAM_MAX
7415 if (x == _SC_STREAM_MAX)
7416 {*r = Mono_Posix_SysconfName__SC_STREAM_MAX; return 0;}
7417 #endif /* ndef _SC_STREAM_MAX */
7418 #ifdef _SC_SYMLOOP_MAX
7419 if (x == _SC_SYMLOOP_MAX)
7420 {*r = Mono_Posix_SysconfName__SC_SYMLOOP_MAX; return 0;}
7421 #endif /* ndef _SC_SYMLOOP_MAX */
7422 #ifdef _SC_SYNCHRONIZED_IO
7423 if (x == _SC_SYNCHRONIZED_IO)
7424 {*r = Mono_Posix_SysconfName__SC_SYNCHRONIZED_IO; return 0;}
7425 #endif /* ndef _SC_SYNCHRONIZED_IO */
7426 #ifdef _SC_SYSTEM_DATABASE
7427 if (x == _SC_SYSTEM_DATABASE)
7428 {*r = Mono_Posix_SysconfName__SC_SYSTEM_DATABASE; return 0;}
7429 #endif /* ndef _SC_SYSTEM_DATABASE */
7430 #ifdef _SC_SYSTEM_DATABASE_R
7431 if (x == _SC_SYSTEM_DATABASE_R)
7432 {*r = Mono_Posix_SysconfName__SC_SYSTEM_DATABASE_R; return 0;}
7433 #endif /* ndef _SC_SYSTEM_DATABASE_R */
7434 #ifdef _SC_THREADS
7435 if (x == _SC_THREADS)
7436 {*r = Mono_Posix_SysconfName__SC_THREADS; return 0;}
7437 #endif /* ndef _SC_THREADS */
7438 #ifdef _SC_THREAD_ATTR_STACKADDR
7439 if (x == _SC_THREAD_ATTR_STACKADDR)
7440 {*r = Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKADDR; return 0;}
7441 #endif /* ndef _SC_THREAD_ATTR_STACKADDR */
7442 #ifdef _SC_THREAD_ATTR_STACKSIZE
7443 if (x == _SC_THREAD_ATTR_STACKSIZE)
7444 {*r = Mono_Posix_SysconfName__SC_THREAD_ATTR_STACKSIZE; return 0;}
7445 #endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
7446 #ifdef _SC_THREAD_CPUTIME
7447 if (x == _SC_THREAD_CPUTIME)
7448 {*r = Mono_Posix_SysconfName__SC_THREAD_CPUTIME; return 0;}
7449 #endif /* ndef _SC_THREAD_CPUTIME */
7450 #ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
7451 if (x == _SC_THREAD_DESTRUCTOR_ITERATIONS)
7452 {*r = Mono_Posix_SysconfName__SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
7453 #endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
7454 #ifdef _SC_THREAD_KEYS_MAX
7455 if (x == _SC_THREAD_KEYS_MAX)
7456 {*r = Mono_Posix_SysconfName__SC_THREAD_KEYS_MAX; return 0;}
7457 #endif /* ndef _SC_THREAD_KEYS_MAX */
7458 #ifdef _SC_THREAD_PRIORITY_SCHEDULING
7459 if (x == _SC_THREAD_PRIORITY_SCHEDULING)
7460 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIORITY_SCHEDULING; return 0;}
7461 #endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
7462 #ifdef _SC_THREAD_PRIO_INHERIT
7463 if (x == _SC_THREAD_PRIO_INHERIT)
7464 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIO_INHERIT; return 0;}
7465 #endif /* ndef _SC_THREAD_PRIO_INHERIT */
7466 #ifdef _SC_THREAD_PRIO_PROTECT
7467 if (x == _SC_THREAD_PRIO_PROTECT)
7468 {*r = Mono_Posix_SysconfName__SC_THREAD_PRIO_PROTECT; return 0;}
7469 #endif /* ndef _SC_THREAD_PRIO_PROTECT */
7470 #ifdef _SC_THREAD_PROCESS_SHARED
7471 if (x == _SC_THREAD_PROCESS_SHARED)
7472 {*r = Mono_Posix_SysconfName__SC_THREAD_PROCESS_SHARED; return 0;}
7473 #endif /* ndef _SC_THREAD_PROCESS_SHARED */
7474 #ifdef _SC_THREAD_SAFE_FUNCTIONS
7475 if (x == _SC_THREAD_SAFE_FUNCTIONS)
7476 {*r = Mono_Posix_SysconfName__SC_THREAD_SAFE_FUNCTIONS; return 0;}
7477 #endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
7478 #ifdef _SC_THREAD_SPORADIC_SERVER
7479 if (x == _SC_THREAD_SPORADIC_SERVER)
7480 {*r = Mono_Posix_SysconfName__SC_THREAD_SPORADIC_SERVER; return 0;}
7481 #endif /* ndef _SC_THREAD_SPORADIC_SERVER */
7482 #ifdef _SC_THREAD_STACK_MIN
7483 if (x == _SC_THREAD_STACK_MIN)
7484 {*r = Mono_Posix_SysconfName__SC_THREAD_STACK_MIN; return 0;}
7485 #endif /* ndef _SC_THREAD_STACK_MIN */
7486 #ifdef _SC_THREAD_THREADS_MAX
7487 if (x == _SC_THREAD_THREADS_MAX)
7488 {*r = Mono_Posix_SysconfName__SC_THREAD_THREADS_MAX; return 0;}
7489 #endif /* ndef _SC_THREAD_THREADS_MAX */
7490 #ifdef _SC_TIMEOUTS
7491 if (x == _SC_TIMEOUTS)
7492 {*r = Mono_Posix_SysconfName__SC_TIMEOUTS; return 0;}
7493 #endif /* ndef _SC_TIMEOUTS */
7494 #ifdef _SC_TIMERS
7495 if (x == _SC_TIMERS)
7496 {*r = Mono_Posix_SysconfName__SC_TIMERS; return 0;}
7497 #endif /* ndef _SC_TIMERS */
7498 #ifdef _SC_TIMER_MAX
7499 if (x == _SC_TIMER_MAX)
7500 {*r = Mono_Posix_SysconfName__SC_TIMER_MAX; return 0;}
7501 #endif /* ndef _SC_TIMER_MAX */
7502 #ifdef _SC_TRACE
7503 if (x == _SC_TRACE)
7504 {*r = Mono_Posix_SysconfName__SC_TRACE; return 0;}
7505 #endif /* ndef _SC_TRACE */
7506 #ifdef _SC_TRACE_EVENT_FILTER
7507 if (x == _SC_TRACE_EVENT_FILTER)
7508 {*r = Mono_Posix_SysconfName__SC_TRACE_EVENT_FILTER; return 0;}
7509 #endif /* ndef _SC_TRACE_EVENT_FILTER */
7510 #ifdef _SC_TRACE_INHERIT
7511 if (x == _SC_TRACE_INHERIT)
7512 {*r = Mono_Posix_SysconfName__SC_TRACE_INHERIT; return 0;}
7513 #endif /* ndef _SC_TRACE_INHERIT */
7514 #ifdef _SC_TRACE_LOG
7515 if (x == _SC_TRACE_LOG)
7516 {*r = Mono_Posix_SysconfName__SC_TRACE_LOG; return 0;}
7517 #endif /* ndef _SC_TRACE_LOG */
7518 #ifdef _SC_TTY_NAME_MAX
7519 if (x == _SC_TTY_NAME_MAX)
7520 {*r = Mono_Posix_SysconfName__SC_TTY_NAME_MAX; return 0;}
7521 #endif /* ndef _SC_TTY_NAME_MAX */
7522 #ifdef _SC_TYPED_MEMORY_OBJECTS
7523 if (x == _SC_TYPED_MEMORY_OBJECTS)
7524 {*r = Mono_Posix_SysconfName__SC_TYPED_MEMORY_OBJECTS; return 0;}
7525 #endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
7526 #ifdef _SC_TZNAME_MAX
7527 if (x == _SC_TZNAME_MAX)
7528 {*r = Mono_Posix_SysconfName__SC_TZNAME_MAX; return 0;}
7529 #endif /* ndef _SC_TZNAME_MAX */
7530 #ifdef _SC_T_IOV_MAX
7531 if (x == _SC_T_IOV_MAX)
7532 {*r = Mono_Posix_SysconfName__SC_T_IOV_MAX; return 0;}
7533 #endif /* ndef _SC_T_IOV_MAX */
7534 #ifdef _SC_UCHAR_MAX
7535 if (x == _SC_UCHAR_MAX)
7536 {*r = Mono_Posix_SysconfName__SC_UCHAR_MAX; return 0;}
7537 #endif /* ndef _SC_UCHAR_MAX */
7538 #ifdef _SC_UINT_MAX
7539 if (x == _SC_UINT_MAX)
7540 {*r = Mono_Posix_SysconfName__SC_UINT_MAX; return 0;}
7541 #endif /* ndef _SC_UINT_MAX */
7542 #ifdef _SC_UIO_MAXIOV
7543 if (x == _SC_UIO_MAXIOV)
7544 {*r = Mono_Posix_SysconfName__SC_UIO_MAXIOV; return 0;}
7545 #endif /* ndef _SC_UIO_MAXIOV */
7546 #ifdef _SC_ULONG_MAX
7547 if (x == _SC_ULONG_MAX)
7548 {*r = Mono_Posix_SysconfName__SC_ULONG_MAX; return 0;}
7549 #endif /* ndef _SC_ULONG_MAX */
7550 #ifdef _SC_USER_GROUPS
7551 if (x == _SC_USER_GROUPS)
7552 {*r = Mono_Posix_SysconfName__SC_USER_GROUPS; return 0;}
7553 #endif /* ndef _SC_USER_GROUPS */
7554 #ifdef _SC_USER_GROUPS_R
7555 if (x == _SC_USER_GROUPS_R)
7556 {*r = Mono_Posix_SysconfName__SC_USER_GROUPS_R; return 0;}
7557 #endif /* ndef _SC_USER_GROUPS_R */
7558 #ifdef _SC_USHRT_MAX
7559 if (x == _SC_USHRT_MAX)
7560 {*r = Mono_Posix_SysconfName__SC_USHRT_MAX; return 0;}
7561 #endif /* ndef _SC_USHRT_MAX */
7562 #ifdef _SC_V6_ILP32_OFF32
7563 if (x == _SC_V6_ILP32_OFF32)
7564 {*r = Mono_Posix_SysconfName__SC_V6_ILP32_OFF32; return 0;}
7565 #endif /* ndef _SC_V6_ILP32_OFF32 */
7566 #ifdef _SC_V6_ILP32_OFFBIG
7567 if (x == _SC_V6_ILP32_OFFBIG)
7568 {*r = Mono_Posix_SysconfName__SC_V6_ILP32_OFFBIG; return 0;}
7569 #endif /* ndef _SC_V6_ILP32_OFFBIG */
7570 #ifdef _SC_V6_LP64_OFF64
7571 if (x == _SC_V6_LP64_OFF64)
7572 {*r = Mono_Posix_SysconfName__SC_V6_LP64_OFF64; return 0;}
7573 #endif /* ndef _SC_V6_LP64_OFF64 */
7574 #ifdef _SC_V6_LPBIG_OFFBIG
7575 if (x == _SC_V6_LPBIG_OFFBIG)
7576 {*r = Mono_Posix_SysconfName__SC_V6_LPBIG_OFFBIG; return 0;}
7577 #endif /* ndef _SC_V6_LPBIG_OFFBIG */
7578 #ifdef _SC_VERSION
7579 if (x == _SC_VERSION)
7580 {*r = Mono_Posix_SysconfName__SC_VERSION; return 0;}
7581 #endif /* ndef _SC_VERSION */
7582 #ifdef _SC_WORD_BIT
7583 if (x == _SC_WORD_BIT)
7584 {*r = Mono_Posix_SysconfName__SC_WORD_BIT; return 0;}
7585 #endif /* ndef _SC_WORD_BIT */
7586 #ifdef _SC_XBS5_ILP32_OFF32
7587 if (x == _SC_XBS5_ILP32_OFF32)
7588 {*r = Mono_Posix_SysconfName__SC_XBS5_ILP32_OFF32; return 0;}
7589 #endif /* ndef _SC_XBS5_ILP32_OFF32 */
7590 #ifdef _SC_XBS5_ILP32_OFFBIG
7591 if (x == _SC_XBS5_ILP32_OFFBIG)
7592 {*r = Mono_Posix_SysconfName__SC_XBS5_ILP32_OFFBIG; return 0;}
7593 #endif /* ndef _SC_XBS5_ILP32_OFFBIG */
7594 #ifdef _SC_XBS5_LP64_OFF64
7595 if (x == _SC_XBS5_LP64_OFF64)
7596 {*r = Mono_Posix_SysconfName__SC_XBS5_LP64_OFF64; return 0;}
7597 #endif /* ndef _SC_XBS5_LP64_OFF64 */
7598 #ifdef _SC_XBS5_LPBIG_OFFBIG
7599 if (x == _SC_XBS5_LPBIG_OFFBIG)
7600 {*r = Mono_Posix_SysconfName__SC_XBS5_LPBIG_OFFBIG; return 0;}
7601 #endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
7602 #ifdef _SC_XOPEN_CRYPT
7603 if (x == _SC_XOPEN_CRYPT)
7604 {*r = Mono_Posix_SysconfName__SC_XOPEN_CRYPT; return 0;}
7605 #endif /* ndef _SC_XOPEN_CRYPT */
7606 #ifdef _SC_XOPEN_ENH_I18N
7607 if (x == _SC_XOPEN_ENH_I18N)
7608 {*r = Mono_Posix_SysconfName__SC_XOPEN_ENH_I18N; return 0;}
7609 #endif /* ndef _SC_XOPEN_ENH_I18N */
7610 #ifdef _SC_XOPEN_LEGACY
7611 if (x == _SC_XOPEN_LEGACY)
7612 {*r = Mono_Posix_SysconfName__SC_XOPEN_LEGACY; return 0;}
7613 #endif /* ndef _SC_XOPEN_LEGACY */
7614 #ifdef _SC_XOPEN_REALTIME
7615 if (x == _SC_XOPEN_REALTIME)
7616 {*r = Mono_Posix_SysconfName__SC_XOPEN_REALTIME; return 0;}
7617 #endif /* ndef _SC_XOPEN_REALTIME */
7618 #ifdef _SC_XOPEN_REALTIME_THREADS
7619 if (x == _SC_XOPEN_REALTIME_THREADS)
7620 {*r = Mono_Posix_SysconfName__SC_XOPEN_REALTIME_THREADS; return 0;}
7621 #endif /* ndef _SC_XOPEN_REALTIME_THREADS */
7622 #ifdef _SC_XOPEN_SHM
7623 if (x == _SC_XOPEN_SHM)
7624 {*r = Mono_Posix_SysconfName__SC_XOPEN_SHM; return 0;}
7625 #endif /* ndef _SC_XOPEN_SHM */
7626 #ifdef _SC_XOPEN_UNIX
7627 if (x == _SC_XOPEN_UNIX)
7628 {*r = Mono_Posix_SysconfName__SC_XOPEN_UNIX; return 0;}
7629 #endif /* ndef _SC_XOPEN_UNIX */
7630 #ifdef _SC_XOPEN_VERSION
7631 if (x == _SC_XOPEN_VERSION)
7632 {*r = Mono_Posix_SysconfName__SC_XOPEN_VERSION; return 0;}
7633 #endif /* ndef _SC_XOPEN_VERSION */
7634 #ifdef _SC_XOPEN_XCU_VERSION
7635 if (x == _SC_XOPEN_XCU_VERSION)
7636 {*r = Mono_Posix_SysconfName__SC_XOPEN_XCU_VERSION; return 0;}
7637 #endif /* ndef _SC_XOPEN_XCU_VERSION */
7638 #ifdef _SC_XOPEN_XPG2
7639 if (x == _SC_XOPEN_XPG2)
7640 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG2; return 0;}
7641 #endif /* ndef _SC_XOPEN_XPG2 */
7642 #ifdef _SC_XOPEN_XPG3
7643 if (x == _SC_XOPEN_XPG3)
7644 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG3; return 0;}
7645 #endif /* ndef _SC_XOPEN_XPG3 */
7646 #ifdef _SC_XOPEN_XPG4
7647 if (x == _SC_XOPEN_XPG4)
7648 {*r = Mono_Posix_SysconfName__SC_XOPEN_XPG4; return 0;}
7649 #endif /* ndef _SC_XOPEN_XPG4 */
7650 errno = EINVAL; return -1;
7653 int Mono_Posix_FromSyslogFacility (int x, int *r)
7655 *r = 0;
7656 if (x == Mono_Posix_SyslogFacility_LOG_AUTH)
7657 #ifdef LOG_AUTH
7658 {*r = LOG_AUTH; return 0;}
7659 #else /* def LOG_AUTH */
7660 {errno = EINVAL; return -1;}
7661 #endif /* ndef LOG_AUTH */
7662 if (x == Mono_Posix_SyslogFacility_LOG_AUTHPRIV)
7663 #ifdef LOG_AUTHPRIV
7664 {*r = LOG_AUTHPRIV; return 0;}
7665 #else /* def LOG_AUTHPRIV */
7666 {errno = EINVAL; return -1;}
7667 #endif /* ndef LOG_AUTHPRIV */
7668 if (x == Mono_Posix_SyslogFacility_LOG_CRON)
7669 #ifdef LOG_CRON
7670 {*r = LOG_CRON; return 0;}
7671 #else /* def LOG_CRON */
7672 {errno = EINVAL; return -1;}
7673 #endif /* ndef LOG_CRON */
7674 if (x == Mono_Posix_SyslogFacility_LOG_DAEMON)
7675 #ifdef LOG_DAEMON
7676 {*r = LOG_DAEMON; return 0;}
7677 #else /* def LOG_DAEMON */
7678 {errno = EINVAL; return -1;}
7679 #endif /* ndef LOG_DAEMON */
7680 if (x == Mono_Posix_SyslogFacility_LOG_FTP)
7681 #ifdef LOG_FTP
7682 {*r = LOG_FTP; return 0;}
7683 #else /* def LOG_FTP */
7684 {errno = EINVAL; return -1;}
7685 #endif /* ndef LOG_FTP */
7686 if (x == Mono_Posix_SyslogFacility_LOG_KERN)
7687 #ifdef LOG_KERN
7688 {*r = LOG_KERN; return 0;}
7689 #else /* def LOG_KERN */
7690 {errno = EINVAL; return -1;}
7691 #endif /* ndef LOG_KERN */
7692 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL0)
7693 #ifdef LOG_LOCAL0
7694 {*r = LOG_LOCAL0; return 0;}
7695 #else /* def LOG_LOCAL0 */
7696 {errno = EINVAL; return -1;}
7697 #endif /* ndef LOG_LOCAL0 */
7698 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL1)
7699 #ifdef LOG_LOCAL1
7700 {*r = LOG_LOCAL1; return 0;}
7701 #else /* def LOG_LOCAL1 */
7702 {errno = EINVAL; return -1;}
7703 #endif /* ndef LOG_LOCAL1 */
7704 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL2)
7705 #ifdef LOG_LOCAL2
7706 {*r = LOG_LOCAL2; return 0;}
7707 #else /* def LOG_LOCAL2 */
7708 {errno = EINVAL; return -1;}
7709 #endif /* ndef LOG_LOCAL2 */
7710 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL3)
7711 #ifdef LOG_LOCAL3
7712 {*r = LOG_LOCAL3; return 0;}
7713 #else /* def LOG_LOCAL3 */
7714 {errno = EINVAL; return -1;}
7715 #endif /* ndef LOG_LOCAL3 */
7716 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL4)
7717 #ifdef LOG_LOCAL4
7718 {*r = LOG_LOCAL4; return 0;}
7719 #else /* def LOG_LOCAL4 */
7720 {errno = EINVAL; return -1;}
7721 #endif /* ndef LOG_LOCAL4 */
7722 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL5)
7723 #ifdef LOG_LOCAL5
7724 {*r = LOG_LOCAL5; return 0;}
7725 #else /* def LOG_LOCAL5 */
7726 {errno = EINVAL; return -1;}
7727 #endif /* ndef LOG_LOCAL5 */
7728 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL6)
7729 #ifdef LOG_LOCAL6
7730 {*r = LOG_LOCAL6; return 0;}
7731 #else /* def LOG_LOCAL6 */
7732 {errno = EINVAL; return -1;}
7733 #endif /* ndef LOG_LOCAL6 */
7734 if (x == Mono_Posix_SyslogFacility_LOG_LOCAL7)
7735 #ifdef LOG_LOCAL7
7736 {*r = LOG_LOCAL7; return 0;}
7737 #else /* def LOG_LOCAL7 */
7738 {errno = EINVAL; return -1;}
7739 #endif /* ndef LOG_LOCAL7 */
7740 if (x == Mono_Posix_SyslogFacility_LOG_LPR)
7741 #ifdef LOG_LPR
7742 {*r = LOG_LPR; return 0;}
7743 #else /* def LOG_LPR */
7744 {errno = EINVAL; return -1;}
7745 #endif /* ndef LOG_LPR */
7746 if (x == Mono_Posix_SyslogFacility_LOG_MAIL)
7747 #ifdef LOG_MAIL
7748 {*r = LOG_MAIL; return 0;}
7749 #else /* def LOG_MAIL */
7750 {errno = EINVAL; return -1;}
7751 #endif /* ndef LOG_MAIL */
7752 if (x == Mono_Posix_SyslogFacility_LOG_NEWS)
7753 #ifdef LOG_NEWS
7754 {*r = LOG_NEWS; return 0;}
7755 #else /* def LOG_NEWS */
7756 {errno = EINVAL; return -1;}
7757 #endif /* ndef LOG_NEWS */
7758 if (x == Mono_Posix_SyslogFacility_LOG_SYSLOG)
7759 #ifdef LOG_SYSLOG
7760 {*r = LOG_SYSLOG; return 0;}
7761 #else /* def LOG_SYSLOG */
7762 {errno = EINVAL; return -1;}
7763 #endif /* ndef LOG_SYSLOG */
7764 if (x == Mono_Posix_SyslogFacility_LOG_USER)
7765 #ifdef LOG_USER
7766 {*r = LOG_USER; return 0;}
7767 #else /* def LOG_USER */
7768 {errno = EINVAL; return -1;}
7769 #endif /* ndef LOG_USER */
7770 if (x == Mono_Posix_SyslogFacility_LOG_UUCP)
7771 #ifdef LOG_UUCP
7772 {*r = LOG_UUCP; return 0;}
7773 #else /* def LOG_UUCP */
7774 {errno = EINVAL; return -1;}
7775 #endif /* ndef LOG_UUCP */
7776 if (x == 0)
7777 return 0;
7778 errno = EINVAL; return -1;
7781 int Mono_Posix_ToSyslogFacility (int x, int *r)
7783 *r = 0;
7784 if (x == 0)
7785 return 0;
7786 #ifdef LOG_AUTH
7787 if (x == LOG_AUTH)
7788 {*r = Mono_Posix_SyslogFacility_LOG_AUTH; return 0;}
7789 #endif /* ndef LOG_AUTH */
7790 #ifdef LOG_AUTHPRIV
7791 if (x == LOG_AUTHPRIV)
7792 {*r = Mono_Posix_SyslogFacility_LOG_AUTHPRIV; return 0;}
7793 #endif /* ndef LOG_AUTHPRIV */
7794 #ifdef LOG_CRON
7795 if (x == LOG_CRON)
7796 {*r = Mono_Posix_SyslogFacility_LOG_CRON; return 0;}
7797 #endif /* ndef LOG_CRON */
7798 #ifdef LOG_DAEMON
7799 if (x == LOG_DAEMON)
7800 {*r = Mono_Posix_SyslogFacility_LOG_DAEMON; return 0;}
7801 #endif /* ndef LOG_DAEMON */
7802 #ifdef LOG_FTP
7803 if (x == LOG_FTP)
7804 {*r = Mono_Posix_SyslogFacility_LOG_FTP; return 0;}
7805 #endif /* ndef LOG_FTP */
7806 #ifdef LOG_KERN
7807 if (x == LOG_KERN)
7808 {*r = Mono_Posix_SyslogFacility_LOG_KERN; return 0;}
7809 #endif /* ndef LOG_KERN */
7810 #ifdef LOG_LOCAL0
7811 if (x == LOG_LOCAL0)
7812 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL0; return 0;}
7813 #endif /* ndef LOG_LOCAL0 */
7814 #ifdef LOG_LOCAL1
7815 if (x == LOG_LOCAL1)
7816 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL1; return 0;}
7817 #endif /* ndef LOG_LOCAL1 */
7818 #ifdef LOG_LOCAL2
7819 if (x == LOG_LOCAL2)
7820 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL2; return 0;}
7821 #endif /* ndef LOG_LOCAL2 */
7822 #ifdef LOG_LOCAL3
7823 if (x == LOG_LOCAL3)
7824 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL3; return 0;}
7825 #endif /* ndef LOG_LOCAL3 */
7826 #ifdef LOG_LOCAL4
7827 if (x == LOG_LOCAL4)
7828 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL4; return 0;}
7829 #endif /* ndef LOG_LOCAL4 */
7830 #ifdef LOG_LOCAL5
7831 if (x == LOG_LOCAL5)
7832 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL5; return 0;}
7833 #endif /* ndef LOG_LOCAL5 */
7834 #ifdef LOG_LOCAL6
7835 if (x == LOG_LOCAL6)
7836 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL6; return 0;}
7837 #endif /* ndef LOG_LOCAL6 */
7838 #ifdef LOG_LOCAL7
7839 if (x == LOG_LOCAL7)
7840 {*r = Mono_Posix_SyslogFacility_LOG_LOCAL7; return 0;}
7841 #endif /* ndef LOG_LOCAL7 */
7842 #ifdef LOG_LPR
7843 if (x == LOG_LPR)
7844 {*r = Mono_Posix_SyslogFacility_LOG_LPR; return 0;}
7845 #endif /* ndef LOG_LPR */
7846 #ifdef LOG_MAIL
7847 if (x == LOG_MAIL)
7848 {*r = Mono_Posix_SyslogFacility_LOG_MAIL; return 0;}
7849 #endif /* ndef LOG_MAIL */
7850 #ifdef LOG_NEWS
7851 if (x == LOG_NEWS)
7852 {*r = Mono_Posix_SyslogFacility_LOG_NEWS; return 0;}
7853 #endif /* ndef LOG_NEWS */
7854 #ifdef LOG_SYSLOG
7855 if (x == LOG_SYSLOG)
7856 {*r = Mono_Posix_SyslogFacility_LOG_SYSLOG; return 0;}
7857 #endif /* ndef LOG_SYSLOG */
7858 #ifdef LOG_USER
7859 if (x == LOG_USER)
7860 {*r = Mono_Posix_SyslogFacility_LOG_USER; return 0;}
7861 #endif /* ndef LOG_USER */
7862 #ifdef LOG_UUCP
7863 if (x == LOG_UUCP)
7864 {*r = Mono_Posix_SyslogFacility_LOG_UUCP; return 0;}
7865 #endif /* ndef LOG_UUCP */
7866 errno = EINVAL; return -1;
7869 int Mono_Posix_FromSyslogLevel (int x, int *r)
7871 *r = 0;
7872 if (x == Mono_Posix_SyslogLevel_LOG_ALERT)
7873 #ifdef LOG_ALERT
7874 {*r = LOG_ALERT; return 0;}
7875 #else /* def LOG_ALERT */
7876 {errno = EINVAL; return -1;}
7877 #endif /* ndef LOG_ALERT */
7878 if (x == Mono_Posix_SyslogLevel_LOG_CRIT)
7879 #ifdef LOG_CRIT
7880 {*r = LOG_CRIT; return 0;}
7881 #else /* def LOG_CRIT */
7882 {errno = EINVAL; return -1;}
7883 #endif /* ndef LOG_CRIT */
7884 if (x == Mono_Posix_SyslogLevel_LOG_DEBUG)
7885 #ifdef LOG_DEBUG
7886 {*r = LOG_DEBUG; return 0;}
7887 #else /* def LOG_DEBUG */
7888 {errno = EINVAL; return -1;}
7889 #endif /* ndef LOG_DEBUG */
7890 if (x == Mono_Posix_SyslogLevel_LOG_EMERG)
7891 #ifdef LOG_EMERG
7892 {*r = LOG_EMERG; return 0;}
7893 #else /* def LOG_EMERG */
7894 {errno = EINVAL; return -1;}
7895 #endif /* ndef LOG_EMERG */
7896 if (x == Mono_Posix_SyslogLevel_LOG_ERR)
7897 #ifdef LOG_ERR
7898 {*r = LOG_ERR; return 0;}
7899 #else /* def LOG_ERR */
7900 {errno = EINVAL; return -1;}
7901 #endif /* ndef LOG_ERR */
7902 if (x == Mono_Posix_SyslogLevel_LOG_INFO)
7903 #ifdef LOG_INFO
7904 {*r = LOG_INFO; return 0;}
7905 #else /* def LOG_INFO */
7906 {errno = EINVAL; return -1;}
7907 #endif /* ndef LOG_INFO */
7908 if (x == Mono_Posix_SyslogLevel_LOG_NOTICE)
7909 #ifdef LOG_NOTICE
7910 {*r = LOG_NOTICE; return 0;}
7911 #else /* def LOG_NOTICE */
7912 {errno = EINVAL; return -1;}
7913 #endif /* ndef LOG_NOTICE */
7914 if (x == Mono_Posix_SyslogLevel_LOG_WARNING)
7915 #ifdef LOG_WARNING
7916 {*r = LOG_WARNING; return 0;}
7917 #else /* def LOG_WARNING */
7918 {errno = EINVAL; return -1;}
7919 #endif /* ndef LOG_WARNING */
7920 if (x == 0)
7921 return 0;
7922 errno = EINVAL; return -1;
7925 int Mono_Posix_ToSyslogLevel (int x, int *r)
7927 *r = 0;
7928 if (x == 0)
7929 return 0;
7930 #ifdef LOG_ALERT
7931 if (x == LOG_ALERT)
7932 {*r = Mono_Posix_SyslogLevel_LOG_ALERT; return 0;}
7933 #endif /* ndef LOG_ALERT */
7934 #ifdef LOG_CRIT
7935 if (x == LOG_CRIT)
7936 {*r = Mono_Posix_SyslogLevel_LOG_CRIT; return 0;}
7937 #endif /* ndef LOG_CRIT */
7938 #ifdef LOG_DEBUG
7939 if (x == LOG_DEBUG)
7940 {*r = Mono_Posix_SyslogLevel_LOG_DEBUG; return 0;}
7941 #endif /* ndef LOG_DEBUG */
7942 #ifdef LOG_EMERG
7943 if (x == LOG_EMERG)
7944 {*r = Mono_Posix_SyslogLevel_LOG_EMERG; return 0;}
7945 #endif /* ndef LOG_EMERG */
7946 #ifdef LOG_ERR
7947 if (x == LOG_ERR)
7948 {*r = Mono_Posix_SyslogLevel_LOG_ERR; return 0;}
7949 #endif /* ndef LOG_ERR */
7950 #ifdef LOG_INFO
7951 if (x == LOG_INFO)
7952 {*r = Mono_Posix_SyslogLevel_LOG_INFO; return 0;}
7953 #endif /* ndef LOG_INFO */
7954 #ifdef LOG_NOTICE
7955 if (x == LOG_NOTICE)
7956 {*r = Mono_Posix_SyslogLevel_LOG_NOTICE; return 0;}
7957 #endif /* ndef LOG_NOTICE */
7958 #ifdef LOG_WARNING
7959 if (x == LOG_WARNING)
7960 {*r = Mono_Posix_SyslogLevel_LOG_WARNING; return 0;}
7961 #endif /* ndef LOG_WARNING */
7962 errno = EINVAL; return -1;
7965 int Mono_Posix_FromSyslogOptions (int x, int *r)
7967 *r = 0;
7968 if ((x & Mono_Posix_SyslogOptions_LOG_CONS) == Mono_Posix_SyslogOptions_LOG_CONS)
7969 #ifdef LOG_CONS
7970 *r |= LOG_CONS;
7971 #else /* def LOG_CONS */
7972 {errno = EINVAL; return -1;}
7973 #endif /* ndef LOG_CONS */
7974 if ((x & Mono_Posix_SyslogOptions_LOG_NDELAY) == Mono_Posix_SyslogOptions_LOG_NDELAY)
7975 #ifdef LOG_NDELAY
7976 *r |= LOG_NDELAY;
7977 #else /* def LOG_NDELAY */
7978 {errno = EINVAL; return -1;}
7979 #endif /* ndef LOG_NDELAY */
7980 if ((x & Mono_Posix_SyslogOptions_LOG_NOWAIT) == Mono_Posix_SyslogOptions_LOG_NOWAIT)
7981 #ifdef LOG_NOWAIT
7982 *r |= LOG_NOWAIT;
7983 #else /* def LOG_NOWAIT */
7984 {errno = EINVAL; return -1;}
7985 #endif /* ndef LOG_NOWAIT */
7986 if ((x & Mono_Posix_SyslogOptions_LOG_ODELAY) == Mono_Posix_SyslogOptions_LOG_ODELAY)
7987 #ifdef LOG_ODELAY
7988 *r |= LOG_ODELAY;
7989 #else /* def LOG_ODELAY */
7990 {errno = EINVAL; return -1;}
7991 #endif /* ndef LOG_ODELAY */
7992 if ((x & Mono_Posix_SyslogOptions_LOG_PERROR) == Mono_Posix_SyslogOptions_LOG_PERROR)
7993 #ifdef LOG_PERROR
7994 *r |= LOG_PERROR;
7995 #else /* def LOG_PERROR */
7996 {errno = EINVAL; return -1;}
7997 #endif /* ndef LOG_PERROR */
7998 if ((x & Mono_Posix_SyslogOptions_LOG_PID) == Mono_Posix_SyslogOptions_LOG_PID)
7999 #ifdef LOG_PID
8000 *r |= LOG_PID;
8001 #else /* def LOG_PID */
8002 {errno = EINVAL; return -1;}
8003 #endif /* ndef LOG_PID */
8004 if (x == 0)
8005 return 0;
8006 return 0;
8009 int Mono_Posix_ToSyslogOptions (int x, int *r)
8011 *r = 0;
8012 if (x == 0)
8013 return 0;
8014 #ifdef LOG_CONS
8015 if ((x & LOG_CONS) == LOG_CONS)
8016 *r |= Mono_Posix_SyslogOptions_LOG_CONS;
8017 #endif /* ndef LOG_CONS */
8018 #ifdef LOG_NDELAY
8019 if ((x & LOG_NDELAY) == LOG_NDELAY)
8020 *r |= Mono_Posix_SyslogOptions_LOG_NDELAY;
8021 #endif /* ndef LOG_NDELAY */
8022 #ifdef LOG_NOWAIT
8023 if ((x & LOG_NOWAIT) == LOG_NOWAIT)
8024 *r |= Mono_Posix_SyslogOptions_LOG_NOWAIT;
8025 #endif /* ndef LOG_NOWAIT */
8026 #ifdef LOG_ODELAY
8027 if ((x & LOG_ODELAY) == LOG_ODELAY)
8028 *r |= Mono_Posix_SyslogOptions_LOG_ODELAY;
8029 #endif /* ndef LOG_ODELAY */
8030 #ifdef LOG_PERROR
8031 if ((x & LOG_PERROR) == LOG_PERROR)
8032 *r |= Mono_Posix_SyslogOptions_LOG_PERROR;
8033 #endif /* ndef LOG_PERROR */
8034 #ifdef LOG_PID
8035 if ((x & LOG_PID) == LOG_PID)
8036 *r |= Mono_Posix_SyslogOptions_LOG_PID;
8037 #endif /* ndef LOG_PID */
8038 return 0;
8041 #ifdef HAVE_STRUCT_TIMESPEC
8043 Mono_Posix_FromTimespec (struct Mono_Posix_Timespec *from, struct timespec *to)
8045 _cnm_return_val_if_overflow (time_t, from->tv_sec, -1);
8046 _cnm_return_val_if_overflow (gint64, from->tv_nsec, -1);
8048 memset (to, 0, sizeof(*to));
8050 to->tv_sec = from->tv_sec;
8051 to->tv_nsec = from->tv_nsec;
8053 return 0;
8055 #endif /* ndef HAVE_STRUCT_TIMESPEC */
8058 #ifdef HAVE_STRUCT_TIMESPEC
8060 Mono_Posix_ToTimespec (struct timespec *from, struct Mono_Posix_Timespec *to)
8062 _cnm_return_val_if_overflow (gint64, from->tv_sec, -1);
8063 _cnm_return_val_if_overflow (gint64, from->tv_nsec, -1);
8065 memset (to, 0, sizeof(*to));
8067 to->tv_sec = from->tv_sec;
8068 to->tv_nsec = from->tv_nsec;
8070 return 0;
8072 #endif /* ndef HAVE_STRUCT_TIMESPEC */
8075 #ifdef HAVE_STRUCT_TIMEVAL
8077 Mono_Posix_FromTimeval (struct Mono_Posix_Timeval *from, struct timeval *to)
8079 _cnm_return_val_if_overflow (time_t, from->tv_sec, -1);
8080 _cnm_return_val_if_overflow (suseconds_t, from->tv_usec, -1);
8082 memset (to, 0, sizeof(*to));
8084 to->tv_sec = from->tv_sec;
8085 to->tv_usec = from->tv_usec;
8087 return 0;
8089 #endif /* ndef HAVE_STRUCT_TIMEVAL */
8092 #ifdef HAVE_STRUCT_TIMEVAL
8094 Mono_Posix_ToTimeval (struct timeval *from, struct Mono_Posix_Timeval *to)
8096 _cnm_return_val_if_overflow (gint64, from->tv_sec, -1);
8097 _cnm_return_val_if_overflow (gint64, from->tv_usec, -1);
8099 memset (to, 0, sizeof(*to));
8101 to->tv_sec = from->tv_sec;
8102 to->tv_usec = from->tv_usec;
8104 return 0;
8106 #endif /* ndef HAVE_STRUCT_TIMEVAL */
8109 #ifdef HAVE_STRUCT_TIMEZONE
8111 Mono_Posix_FromTimezone (struct Mono_Posix_Timezone *from, struct timezone *to)
8113 _cnm_return_val_if_overflow (int, from->tz_minuteswest, -1);
8114 _cnm_return_val_if_overflow (int, from->tz_dsttime, -1);
8116 memset (to, 0, sizeof(*to));
8118 to->tz_minuteswest = from->tz_minuteswest;
8119 to->tz_dsttime = from->tz_dsttime;
8121 return 0;
8123 #endif /* ndef HAVE_STRUCT_TIMEZONE */
8126 #ifdef HAVE_STRUCT_TIMEZONE
8128 Mono_Posix_ToTimezone (struct timezone *from, struct Mono_Posix_Timezone *to)
8130 _cnm_return_val_if_overflow (int, from->tz_minuteswest, -1);
8131 _cnm_return_val_if_overflow (int, from->tz_dsttime, -1);
8133 memset (to, 0, sizeof(*to));
8135 to->tz_minuteswest = from->tz_minuteswest;
8136 to->tz_dsttime = from->tz_dsttime;
8138 return 0;
8140 #endif /* ndef HAVE_STRUCT_TIMEZONE */
8143 int Mono_Posix_FromUnixAddressFamily (int x, int *r)
8145 *r = 0;
8146 if (x == Mono_Posix_UnixAddressFamily_AF_ALG)
8147 #ifdef AF_ALG
8148 {*r = AF_ALG; return 0;}
8149 #else /* def AF_ALG */
8150 {errno = EINVAL; return -1;}
8151 #endif /* ndef AF_ALG */
8152 if (x == Mono_Posix_UnixAddressFamily_AF_APPLETALK)
8153 #ifdef AF_APPLETALK
8154 {*r = AF_APPLETALK; return 0;}
8155 #else /* def AF_APPLETALK */
8156 {errno = EINVAL; return -1;}
8157 #endif /* ndef AF_APPLETALK */
8158 if (x == Mono_Posix_UnixAddressFamily_AF_ASH)
8159 #ifdef AF_ASH
8160 {*r = AF_ASH; return 0;}
8161 #else /* def AF_ASH */
8162 {errno = EINVAL; return -1;}
8163 #endif /* ndef AF_ASH */
8164 if (x == Mono_Posix_UnixAddressFamily_AF_ATMPVC)
8165 #ifdef AF_ATMPVC
8166 {*r = AF_ATMPVC; return 0;}
8167 #else /* def AF_ATMPVC */
8168 {errno = EINVAL; return -1;}
8169 #endif /* ndef AF_ATMPVC */
8170 if (x == Mono_Posix_UnixAddressFamily_AF_ATMSVC)
8171 #ifdef AF_ATMSVC
8172 {*r = AF_ATMSVC; return 0;}
8173 #else /* def AF_ATMSVC */
8174 {errno = EINVAL; return -1;}
8175 #endif /* ndef AF_ATMSVC */
8176 if (x == Mono_Posix_UnixAddressFamily_AF_AX25)
8177 #ifdef AF_AX25
8178 {*r = AF_AX25; return 0;}
8179 #else /* def AF_AX25 */
8180 {errno = EINVAL; return -1;}
8181 #endif /* ndef AF_AX25 */
8182 if (x == Mono_Posix_UnixAddressFamily_AF_BLUETOOTH)
8183 #ifdef AF_BLUETOOTH
8184 {*r = AF_BLUETOOTH; return 0;}
8185 #else /* def AF_BLUETOOTH */
8186 {errno = EINVAL; return -1;}
8187 #endif /* ndef AF_BLUETOOTH */
8188 if (x == Mono_Posix_UnixAddressFamily_AF_BRIDGE)
8189 #ifdef AF_BRIDGE
8190 {*r = AF_BRIDGE; return 0;}
8191 #else /* def AF_BRIDGE */
8192 {errno = EINVAL; return -1;}
8193 #endif /* ndef AF_BRIDGE */
8194 if (x == Mono_Posix_UnixAddressFamily_AF_CAIF)
8195 #ifdef AF_CAIF
8196 {*r = AF_CAIF; return 0;}
8197 #else /* def AF_CAIF */
8198 {errno = EINVAL; return -1;}
8199 #endif /* ndef AF_CAIF */
8200 if (x == Mono_Posix_UnixAddressFamily_AF_CAN)
8201 #ifdef AF_CAN
8202 {*r = AF_CAN; return 0;}
8203 #else /* def AF_CAN */
8204 {errno = EINVAL; return -1;}
8205 #endif /* ndef AF_CAN */
8206 if (x == Mono_Posix_UnixAddressFamily_AF_DECnet)
8207 #ifdef AF_DECnet
8208 {*r = AF_DECnet; return 0;}
8209 #else /* def AF_DECnet */
8210 {errno = EINVAL; return -1;}
8211 #endif /* ndef AF_DECnet */
8212 if (x == Mono_Posix_UnixAddressFamily_AF_ECONET)
8213 #ifdef AF_ECONET
8214 {*r = AF_ECONET; return 0;}
8215 #else /* def AF_ECONET */
8216 {errno = EINVAL; return -1;}
8217 #endif /* ndef AF_ECONET */
8218 if (x == Mono_Posix_UnixAddressFamily_AF_IEEE802154)
8219 #ifdef AF_IEEE802154
8220 {*r = AF_IEEE802154; return 0;}
8221 #else /* def AF_IEEE802154 */
8222 {errno = EINVAL; return -1;}
8223 #endif /* ndef AF_IEEE802154 */
8224 if (x == Mono_Posix_UnixAddressFamily_AF_INET)
8225 #ifdef AF_INET
8226 {*r = AF_INET; return 0;}
8227 #else /* def AF_INET */
8228 {errno = EINVAL; return -1;}
8229 #endif /* ndef AF_INET */
8230 if (x == Mono_Posix_UnixAddressFamily_AF_INET6)
8231 #ifdef AF_INET6
8232 {*r = AF_INET6; return 0;}
8233 #else /* def AF_INET6 */
8234 {errno = EINVAL; return -1;}
8235 #endif /* ndef AF_INET6 */
8236 if (x == Mono_Posix_UnixAddressFamily_AF_IPX)
8237 #ifdef AF_IPX
8238 {*r = AF_IPX; return 0;}
8239 #else /* def AF_IPX */
8240 {errno = EINVAL; return -1;}
8241 #endif /* ndef AF_IPX */
8242 if (x == Mono_Posix_UnixAddressFamily_AF_IRDA)
8243 #ifdef AF_IRDA
8244 {*r = AF_IRDA; return 0;}
8245 #else /* def AF_IRDA */
8246 {errno = EINVAL; return -1;}
8247 #endif /* ndef AF_IRDA */
8248 if (x == Mono_Posix_UnixAddressFamily_AF_ISDN)
8249 #ifdef AF_ISDN
8250 {*r = AF_ISDN; return 0;}
8251 #else /* def AF_ISDN */
8252 {errno = EINVAL; return -1;}
8253 #endif /* ndef AF_ISDN */
8254 if (x == Mono_Posix_UnixAddressFamily_AF_IUCV)
8255 #ifdef AF_IUCV
8256 {*r = AF_IUCV; return 0;}
8257 #else /* def AF_IUCV */
8258 {errno = EINVAL; return -1;}
8259 #endif /* ndef AF_IUCV */
8260 if (x == Mono_Posix_UnixAddressFamily_AF_KEY)
8261 #ifdef AF_KEY
8262 {*r = AF_KEY; return 0;}
8263 #else /* def AF_KEY */
8264 {errno = EINVAL; return -1;}
8265 #endif /* ndef AF_KEY */
8266 if (x == Mono_Posix_UnixAddressFamily_AF_LLC)
8267 #ifdef AF_LLC
8268 {*r = AF_LLC; return 0;}
8269 #else /* def AF_LLC */
8270 {errno = EINVAL; return -1;}
8271 #endif /* ndef AF_LLC */
8272 if (x == Mono_Posix_UnixAddressFamily_AF_NETBEUI)
8273 #ifdef AF_NETBEUI
8274 {*r = AF_NETBEUI; return 0;}
8275 #else /* def AF_NETBEUI */
8276 {errno = EINVAL; return -1;}
8277 #endif /* ndef AF_NETBEUI */
8278 if (x == Mono_Posix_UnixAddressFamily_AF_NETLINK)
8279 #ifdef AF_NETLINK
8280 {*r = AF_NETLINK; return 0;}
8281 #else /* def AF_NETLINK */
8282 {errno = EINVAL; return -1;}
8283 #endif /* ndef AF_NETLINK */
8284 if (x == Mono_Posix_UnixAddressFamily_AF_NETROM)
8285 #ifdef AF_NETROM
8286 {*r = AF_NETROM; return 0;}
8287 #else /* def AF_NETROM */
8288 {errno = EINVAL; return -1;}
8289 #endif /* ndef AF_NETROM */
8290 if (x == Mono_Posix_UnixAddressFamily_AF_NFC)
8291 #ifdef AF_NFC
8292 {*r = AF_NFC; return 0;}
8293 #else /* def AF_NFC */
8294 {errno = EINVAL; return -1;}
8295 #endif /* ndef AF_NFC */
8296 if (x == Mono_Posix_UnixAddressFamily_AF_PACKET)
8297 #ifdef AF_PACKET
8298 {*r = AF_PACKET; return 0;}
8299 #else /* def AF_PACKET */
8300 {errno = EINVAL; return -1;}
8301 #endif /* ndef AF_PACKET */
8302 if (x == Mono_Posix_UnixAddressFamily_AF_PHONET)
8303 #ifdef AF_PHONET
8304 {*r = AF_PHONET; return 0;}
8305 #else /* def AF_PHONET */
8306 {errno = EINVAL; return -1;}
8307 #endif /* ndef AF_PHONET */
8308 if (x == Mono_Posix_UnixAddressFamily_AF_PPPOX)
8309 #ifdef AF_PPPOX
8310 {*r = AF_PPPOX; return 0;}
8311 #else /* def AF_PPPOX */
8312 {errno = EINVAL; return -1;}
8313 #endif /* ndef AF_PPPOX */
8314 if (x == Mono_Posix_UnixAddressFamily_AF_RDS)
8315 #ifdef AF_RDS
8316 {*r = AF_RDS; return 0;}
8317 #else /* def AF_RDS */
8318 {errno = EINVAL; return -1;}
8319 #endif /* ndef AF_RDS */
8320 if (x == Mono_Posix_UnixAddressFamily_AF_ROSE)
8321 #ifdef AF_ROSE
8322 {*r = AF_ROSE; return 0;}
8323 #else /* def AF_ROSE */
8324 {errno = EINVAL; return -1;}
8325 #endif /* ndef AF_ROSE */
8326 if (x == Mono_Posix_UnixAddressFamily_AF_RXRPC)
8327 #ifdef AF_RXRPC
8328 {*r = AF_RXRPC; return 0;}
8329 #else /* def AF_RXRPC */
8330 {errno = EINVAL; return -1;}
8331 #endif /* ndef AF_RXRPC */
8332 if (x == Mono_Posix_UnixAddressFamily_AF_SECURITY)
8333 #ifdef AF_SECURITY
8334 {*r = AF_SECURITY; return 0;}
8335 #else /* def AF_SECURITY */
8336 {errno = EINVAL; return -1;}
8337 #endif /* ndef AF_SECURITY */
8338 if (x == Mono_Posix_UnixAddressFamily_AF_SNA)
8339 #ifdef AF_SNA
8340 {*r = AF_SNA; return 0;}
8341 #else /* def AF_SNA */
8342 {errno = EINVAL; return -1;}
8343 #endif /* ndef AF_SNA */
8344 if (x == Mono_Posix_UnixAddressFamily_AF_TIPC)
8345 #ifdef AF_TIPC
8346 {*r = AF_TIPC; return 0;}
8347 #else /* def AF_TIPC */
8348 {errno = EINVAL; return -1;}
8349 #endif /* ndef AF_TIPC */
8350 if (x == Mono_Posix_UnixAddressFamily_AF_UNIX)
8351 #ifdef AF_UNIX
8352 {*r = AF_UNIX; return 0;}
8353 #else /* def AF_UNIX */
8354 {errno = EINVAL; return -1;}
8355 #endif /* ndef AF_UNIX */
8356 if (x == Mono_Posix_UnixAddressFamily_AF_UNSPEC)
8357 #ifdef AF_UNSPEC
8358 {*r = AF_UNSPEC; return 0;}
8359 #else /* def AF_UNSPEC */
8360 {errno = EINVAL; return -1;}
8361 #endif /* ndef AF_UNSPEC */
8362 if (x == Mono_Posix_UnixAddressFamily_AF_VSOCK)
8363 #ifdef AF_VSOCK
8364 {*r = AF_VSOCK; return 0;}
8365 #else /* def AF_VSOCK */
8366 {errno = EINVAL; return -1;}
8367 #endif /* ndef AF_VSOCK */
8368 if (x == Mono_Posix_UnixAddressFamily_AF_WANPIPE)
8369 #ifdef AF_WANPIPE
8370 {*r = AF_WANPIPE; return 0;}
8371 #else /* def AF_WANPIPE */
8372 {errno = EINVAL; return -1;}
8373 #endif /* ndef AF_WANPIPE */
8374 if (x == Mono_Posix_UnixAddressFamily_AF_X25)
8375 #ifdef AF_X25
8376 {*r = AF_X25; return 0;}
8377 #else /* def AF_X25 */
8378 {errno = EINVAL; return -1;}
8379 #endif /* ndef AF_X25 */
8380 if (x == Mono_Posix_UnixAddressFamily_Unknown)
8381 #ifdef Unknown
8382 {*r = Unknown; return 0;}
8383 #else /* def Unknown */
8384 {errno = EINVAL; return -1;}
8385 #endif /* ndef Unknown */
8386 if (x == 0)
8387 return 0;
8388 errno = EINVAL; return -1;
8391 int Mono_Posix_ToUnixAddressFamily (int x, int *r)
8393 *r = 0;
8394 if (x == 0)
8395 return 0;
8396 #ifdef AF_ALG
8397 if (x == AF_ALG)
8398 {*r = Mono_Posix_UnixAddressFamily_AF_ALG; return 0;}
8399 #endif /* ndef AF_ALG */
8400 #ifdef AF_APPLETALK
8401 if (x == AF_APPLETALK)
8402 {*r = Mono_Posix_UnixAddressFamily_AF_APPLETALK; return 0;}
8403 #endif /* ndef AF_APPLETALK */
8404 #ifdef AF_ASH
8405 if (x == AF_ASH)
8406 {*r = Mono_Posix_UnixAddressFamily_AF_ASH; return 0;}
8407 #endif /* ndef AF_ASH */
8408 #ifdef AF_ATMPVC
8409 if (x == AF_ATMPVC)
8410 {*r = Mono_Posix_UnixAddressFamily_AF_ATMPVC; return 0;}
8411 #endif /* ndef AF_ATMPVC */
8412 #ifdef AF_ATMSVC
8413 if (x == AF_ATMSVC)
8414 {*r = Mono_Posix_UnixAddressFamily_AF_ATMSVC; return 0;}
8415 #endif /* ndef AF_ATMSVC */
8416 #ifdef AF_AX25
8417 if (x == AF_AX25)
8418 {*r = Mono_Posix_UnixAddressFamily_AF_AX25; return 0;}
8419 #endif /* ndef AF_AX25 */
8420 #ifdef AF_BLUETOOTH
8421 if (x == AF_BLUETOOTH)
8422 {*r = Mono_Posix_UnixAddressFamily_AF_BLUETOOTH; return 0;}
8423 #endif /* ndef AF_BLUETOOTH */
8424 #ifdef AF_BRIDGE
8425 if (x == AF_BRIDGE)
8426 {*r = Mono_Posix_UnixAddressFamily_AF_BRIDGE; return 0;}
8427 #endif /* ndef AF_BRIDGE */
8428 #ifdef AF_CAIF
8429 if (x == AF_CAIF)
8430 {*r = Mono_Posix_UnixAddressFamily_AF_CAIF; return 0;}
8431 #endif /* ndef AF_CAIF */
8432 #ifdef AF_CAN
8433 if (x == AF_CAN)
8434 {*r = Mono_Posix_UnixAddressFamily_AF_CAN; return 0;}
8435 #endif /* ndef AF_CAN */
8436 #ifdef AF_DECnet
8437 if (x == AF_DECnet)
8438 {*r = Mono_Posix_UnixAddressFamily_AF_DECnet; return 0;}
8439 #endif /* ndef AF_DECnet */
8440 #ifdef AF_ECONET
8441 if (x == AF_ECONET)
8442 {*r = Mono_Posix_UnixAddressFamily_AF_ECONET; return 0;}
8443 #endif /* ndef AF_ECONET */
8444 #ifdef AF_IEEE802154
8445 if (x == AF_IEEE802154)
8446 {*r = Mono_Posix_UnixAddressFamily_AF_IEEE802154; return 0;}
8447 #endif /* ndef AF_IEEE802154 */
8448 #ifdef AF_INET
8449 if (x == AF_INET)
8450 {*r = Mono_Posix_UnixAddressFamily_AF_INET; return 0;}
8451 #endif /* ndef AF_INET */
8452 #ifdef AF_INET6
8453 if (x == AF_INET6)
8454 {*r = Mono_Posix_UnixAddressFamily_AF_INET6; return 0;}
8455 #endif /* ndef AF_INET6 */
8456 #ifdef AF_IPX
8457 if (x == AF_IPX)
8458 {*r = Mono_Posix_UnixAddressFamily_AF_IPX; return 0;}
8459 #endif /* ndef AF_IPX */
8460 #ifdef AF_IRDA
8461 if (x == AF_IRDA)
8462 {*r = Mono_Posix_UnixAddressFamily_AF_IRDA; return 0;}
8463 #endif /* ndef AF_IRDA */
8464 #ifdef AF_ISDN
8465 if (x == AF_ISDN)
8466 {*r = Mono_Posix_UnixAddressFamily_AF_ISDN; return 0;}
8467 #endif /* ndef AF_ISDN */
8468 #ifdef AF_IUCV
8469 if (x == AF_IUCV)
8470 {*r = Mono_Posix_UnixAddressFamily_AF_IUCV; return 0;}
8471 #endif /* ndef AF_IUCV */
8472 #ifdef AF_KEY
8473 if (x == AF_KEY)
8474 {*r = Mono_Posix_UnixAddressFamily_AF_KEY; return 0;}
8475 #endif /* ndef AF_KEY */
8476 #ifdef AF_LLC
8477 if (x == AF_LLC)
8478 {*r = Mono_Posix_UnixAddressFamily_AF_LLC; return 0;}
8479 #endif /* ndef AF_LLC */
8480 #ifdef AF_NETBEUI
8481 if (x == AF_NETBEUI)
8482 {*r = Mono_Posix_UnixAddressFamily_AF_NETBEUI; return 0;}
8483 #endif /* ndef AF_NETBEUI */
8484 #ifdef AF_NETLINK
8485 if (x == AF_NETLINK)
8486 {*r = Mono_Posix_UnixAddressFamily_AF_NETLINK; return 0;}
8487 #endif /* ndef AF_NETLINK */
8488 #ifdef AF_NETROM
8489 if (x == AF_NETROM)
8490 {*r = Mono_Posix_UnixAddressFamily_AF_NETROM; return 0;}
8491 #endif /* ndef AF_NETROM */
8492 #ifdef AF_NFC
8493 if (x == AF_NFC)
8494 {*r = Mono_Posix_UnixAddressFamily_AF_NFC; return 0;}
8495 #endif /* ndef AF_NFC */
8496 #ifdef AF_PACKET
8497 if (x == AF_PACKET)
8498 {*r = Mono_Posix_UnixAddressFamily_AF_PACKET; return 0;}
8499 #endif /* ndef AF_PACKET */
8500 #ifdef AF_PHONET
8501 if (x == AF_PHONET)
8502 {*r = Mono_Posix_UnixAddressFamily_AF_PHONET; return 0;}
8503 #endif /* ndef AF_PHONET */
8504 #ifdef AF_PPPOX
8505 if (x == AF_PPPOX)
8506 {*r = Mono_Posix_UnixAddressFamily_AF_PPPOX; return 0;}
8507 #endif /* ndef AF_PPPOX */
8508 #ifdef AF_RDS
8509 if (x == AF_RDS)
8510 {*r = Mono_Posix_UnixAddressFamily_AF_RDS; return 0;}
8511 #endif /* ndef AF_RDS */
8512 #ifdef AF_ROSE
8513 if (x == AF_ROSE)
8514 {*r = Mono_Posix_UnixAddressFamily_AF_ROSE; return 0;}
8515 #endif /* ndef AF_ROSE */
8516 #ifdef AF_RXRPC
8517 if (x == AF_RXRPC)
8518 {*r = Mono_Posix_UnixAddressFamily_AF_RXRPC; return 0;}
8519 #endif /* ndef AF_RXRPC */
8520 #ifdef AF_SECURITY
8521 if (x == AF_SECURITY)
8522 {*r = Mono_Posix_UnixAddressFamily_AF_SECURITY; return 0;}
8523 #endif /* ndef AF_SECURITY */
8524 #ifdef AF_SNA
8525 if (x == AF_SNA)
8526 {*r = Mono_Posix_UnixAddressFamily_AF_SNA; return 0;}
8527 #endif /* ndef AF_SNA */
8528 #ifdef AF_TIPC
8529 if (x == AF_TIPC)
8530 {*r = Mono_Posix_UnixAddressFamily_AF_TIPC; return 0;}
8531 #endif /* ndef AF_TIPC */
8532 #ifdef AF_UNIX
8533 if (x == AF_UNIX)
8534 {*r = Mono_Posix_UnixAddressFamily_AF_UNIX; return 0;}
8535 #endif /* ndef AF_UNIX */
8536 #ifdef AF_UNSPEC
8537 if (x == AF_UNSPEC)
8538 {*r = Mono_Posix_UnixAddressFamily_AF_UNSPEC; return 0;}
8539 #endif /* ndef AF_UNSPEC */
8540 #ifdef AF_VSOCK
8541 if (x == AF_VSOCK)
8542 {*r = Mono_Posix_UnixAddressFamily_AF_VSOCK; return 0;}
8543 #endif /* ndef AF_VSOCK */
8544 #ifdef AF_WANPIPE
8545 if (x == AF_WANPIPE)
8546 {*r = Mono_Posix_UnixAddressFamily_AF_WANPIPE; return 0;}
8547 #endif /* ndef AF_WANPIPE */
8548 #ifdef AF_X25
8549 if (x == AF_X25)
8550 {*r = Mono_Posix_UnixAddressFamily_AF_X25; return 0;}
8551 #endif /* ndef AF_X25 */
8552 #ifdef Unknown
8553 if (x == Unknown)
8554 {*r = Mono_Posix_UnixAddressFamily_Unknown; return 0;}
8555 #endif /* ndef Unknown */
8556 errno = EINVAL; return -1;
8559 int Mono_Posix_FromUnixSocketControlMessage (int x, int *r)
8561 *r = 0;
8562 if (x == Mono_Posix_UnixSocketControlMessage_SCM_CREDENTIALS)
8563 #ifdef SCM_CREDENTIALS
8564 {*r = SCM_CREDENTIALS; return 0;}
8565 #else /* def SCM_CREDENTIALS */
8566 {errno = EINVAL; return -1;}
8567 #endif /* ndef SCM_CREDENTIALS */
8568 if (x == Mono_Posix_UnixSocketControlMessage_SCM_RIGHTS)
8569 #ifdef SCM_RIGHTS
8570 {*r = SCM_RIGHTS; return 0;}
8571 #else /* def SCM_RIGHTS */
8572 {errno = EINVAL; return -1;}
8573 #endif /* ndef SCM_RIGHTS */
8574 if (x == 0)
8575 return 0;
8576 errno = EINVAL; return -1;
8579 int Mono_Posix_ToUnixSocketControlMessage (int x, int *r)
8581 *r = 0;
8582 if (x == 0)
8583 return 0;
8584 #ifdef SCM_CREDENTIALS
8585 if (x == SCM_CREDENTIALS)
8586 {*r = Mono_Posix_UnixSocketControlMessage_SCM_CREDENTIALS; return 0;}
8587 #endif /* ndef SCM_CREDENTIALS */
8588 #ifdef SCM_RIGHTS
8589 if (x == SCM_RIGHTS)
8590 {*r = Mono_Posix_UnixSocketControlMessage_SCM_RIGHTS; return 0;}
8591 #endif /* ndef SCM_RIGHTS */
8592 errno = EINVAL; return -1;
8595 int Mono_Posix_FromUnixSocketFlags (int x, int *r)
8597 *r = 0;
8598 if ((x & Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC) == Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC)
8599 #ifdef SOCK_CLOEXEC
8600 *r |= SOCK_CLOEXEC;
8601 #else /* def SOCK_CLOEXEC */
8602 {errno = EINVAL; return -1;}
8603 #endif /* ndef SOCK_CLOEXEC */
8604 if ((x & Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK) == Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK)
8605 #ifdef SOCK_NONBLOCK
8606 *r |= SOCK_NONBLOCK;
8607 #else /* def SOCK_NONBLOCK */
8608 {errno = EINVAL; return -1;}
8609 #endif /* ndef SOCK_NONBLOCK */
8610 if (x == 0)
8611 return 0;
8612 return 0;
8615 int Mono_Posix_ToUnixSocketFlags (int x, int *r)
8617 *r = 0;
8618 if (x == 0)
8619 return 0;
8620 #ifdef SOCK_CLOEXEC
8621 if ((x & SOCK_CLOEXEC) == SOCK_CLOEXEC)
8622 *r |= Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC;
8623 #endif /* ndef SOCK_CLOEXEC */
8624 #ifdef SOCK_NONBLOCK
8625 if ((x & SOCK_NONBLOCK) == SOCK_NONBLOCK)
8626 *r |= Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK;
8627 #endif /* ndef SOCK_NONBLOCK */
8628 return 0;
8631 int Mono_Posix_FromUnixSocketOptionName (int x, int *r)
8633 *r = 0;
8634 if (x == Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN)
8635 #ifdef SO_ACCEPTCONN
8636 {*r = SO_ACCEPTCONN; return 0;}
8637 #else /* def SO_ACCEPTCONN */
8638 {errno = EINVAL; return -1;}
8639 #endif /* ndef SO_ACCEPTCONN */
8640 if (x == Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER)
8641 #ifdef SO_ATTACH_FILTER
8642 {*r = SO_ATTACH_FILTER; return 0;}
8643 #else /* def SO_ATTACH_FILTER */
8644 {errno = EINVAL; return -1;}
8645 #endif /* ndef SO_ATTACH_FILTER */
8646 if (x == Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE)
8647 #ifdef SO_BINDTODEVICE
8648 {*r = SO_BINDTODEVICE; return 0;}
8649 #else /* def SO_BINDTODEVICE */
8650 {errno = EINVAL; return -1;}
8651 #endif /* ndef SO_BINDTODEVICE */
8652 if (x == Mono_Posix_UnixSocketOptionName_SO_BROADCAST)
8653 #ifdef SO_BROADCAST
8654 {*r = SO_BROADCAST; return 0;}
8655 #else /* def SO_BROADCAST */
8656 {errno = EINVAL; return -1;}
8657 #endif /* ndef SO_BROADCAST */
8658 if (x == Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT)
8659 #ifdef SO_BSDCOMPAT
8660 {*r = SO_BSDCOMPAT; return 0;}
8661 #else /* def SO_BSDCOMPAT */
8662 {errno = EINVAL; return -1;}
8663 #endif /* ndef SO_BSDCOMPAT */
8664 if (x == Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL)
8665 #ifdef SO_BUSY_POLL
8666 {*r = SO_BUSY_POLL; return 0;}
8667 #else /* def SO_BUSY_POLL */
8668 {errno = EINVAL; return -1;}
8669 #endif /* ndef SO_BUSY_POLL */
8670 if (x == Mono_Posix_UnixSocketOptionName_SO_DEBUG)
8671 #ifdef SO_DEBUG
8672 {*r = SO_DEBUG; return 0;}
8673 #else /* def SO_DEBUG */
8674 {errno = EINVAL; return -1;}
8675 #endif /* ndef SO_DEBUG */
8676 if (x == Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER)
8677 #ifdef SO_DETACH_FILTER
8678 {*r = SO_DETACH_FILTER; return 0;}
8679 #else /* def SO_DETACH_FILTER */
8680 {errno = EINVAL; return -1;}
8681 #endif /* ndef SO_DETACH_FILTER */
8682 if (x == Mono_Posix_UnixSocketOptionName_SO_DOMAIN)
8683 #ifdef SO_DOMAIN
8684 {*r = SO_DOMAIN; return 0;}
8685 #else /* def SO_DOMAIN */
8686 {errno = EINVAL; return -1;}
8687 #endif /* ndef SO_DOMAIN */
8688 if (x == Mono_Posix_UnixSocketOptionName_SO_DONTROUTE)
8689 #ifdef SO_DONTROUTE
8690 {*r = SO_DONTROUTE; return 0;}
8691 #else /* def SO_DONTROUTE */
8692 {errno = EINVAL; return -1;}
8693 #endif /* ndef SO_DONTROUTE */
8694 if (x == Mono_Posix_UnixSocketOptionName_SO_ERROR)
8695 #ifdef SO_ERROR
8696 {*r = SO_ERROR; return 0;}
8697 #else /* def SO_ERROR */
8698 {errno = EINVAL; return -1;}
8699 #endif /* ndef SO_ERROR */
8700 if (x == Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE)
8701 #ifdef SO_KEEPALIVE
8702 {*r = SO_KEEPALIVE; return 0;}
8703 #else /* def SO_KEEPALIVE */
8704 {errno = EINVAL; return -1;}
8705 #endif /* ndef SO_KEEPALIVE */
8706 if (x == Mono_Posix_UnixSocketOptionName_SO_LINGER)
8707 #ifdef SO_LINGER
8708 {*r = SO_LINGER; return 0;}
8709 #else /* def SO_LINGER */
8710 {errno = EINVAL; return -1;}
8711 #endif /* ndef SO_LINGER */
8712 if (x == Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER)
8713 #ifdef SO_LOCK_FILTER
8714 {*r = SO_LOCK_FILTER; return 0;}
8715 #else /* def SO_LOCK_FILTER */
8716 {errno = EINVAL; return -1;}
8717 #endif /* ndef SO_LOCK_FILTER */
8718 if (x == Mono_Posix_UnixSocketOptionName_SO_MARK)
8719 #ifdef SO_MARK
8720 {*r = SO_MARK; return 0;}
8721 #else /* def SO_MARK */
8722 {errno = EINVAL; return -1;}
8723 #endif /* ndef SO_MARK */
8724 if (x == Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE)
8725 #ifdef SO_MAX_PACING_RATE
8726 {*r = SO_MAX_PACING_RATE; return 0;}
8727 #else /* def SO_MAX_PACING_RATE */
8728 {errno = EINVAL; return -1;}
8729 #endif /* ndef SO_MAX_PACING_RATE */
8730 if (x == Mono_Posix_UnixSocketOptionName_SO_NOFCS)
8731 #ifdef SO_NOFCS
8732 {*r = SO_NOFCS; return 0;}
8733 #else /* def SO_NOFCS */
8734 {errno = EINVAL; return -1;}
8735 #endif /* ndef SO_NOFCS */
8736 if (x == Mono_Posix_UnixSocketOptionName_SO_NO_CHECK)
8737 #ifdef SO_NO_CHECK
8738 {*r = SO_NO_CHECK; return 0;}
8739 #else /* def SO_NO_CHECK */
8740 {errno = EINVAL; return -1;}
8741 #endif /* ndef SO_NO_CHECK */
8742 if (x == Mono_Posix_UnixSocketOptionName_SO_OOBINLINE)
8743 #ifdef SO_OOBINLINE
8744 {*r = SO_OOBINLINE; return 0;}
8745 #else /* def SO_OOBINLINE */
8746 {errno = EINVAL; return -1;}
8747 #endif /* ndef SO_OOBINLINE */
8748 if (x == Mono_Posix_UnixSocketOptionName_SO_PASSCRED)
8749 #ifdef SO_PASSCRED
8750 {*r = SO_PASSCRED; return 0;}
8751 #else /* def SO_PASSCRED */
8752 {errno = EINVAL; return -1;}
8753 #endif /* ndef SO_PASSCRED */
8754 if (x == Mono_Posix_UnixSocketOptionName_SO_PASSSEC)
8755 #ifdef SO_PASSSEC
8756 {*r = SO_PASSSEC; return 0;}
8757 #else /* def SO_PASSSEC */
8758 {errno = EINVAL; return -1;}
8759 #endif /* ndef SO_PASSSEC */
8760 if (x == Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF)
8761 #ifdef SO_PEEK_OFF
8762 {*r = SO_PEEK_OFF; return 0;}
8763 #else /* def SO_PEEK_OFF */
8764 {errno = EINVAL; return -1;}
8765 #endif /* ndef SO_PEEK_OFF */
8766 if (x == Mono_Posix_UnixSocketOptionName_SO_PEERCRED)
8767 #ifdef SO_PEERCRED
8768 {*r = SO_PEERCRED; return 0;}
8769 #else /* def SO_PEERCRED */
8770 {errno = EINVAL; return -1;}
8771 #endif /* ndef SO_PEERCRED */
8772 if (x == Mono_Posix_UnixSocketOptionName_SO_PEERNAME)
8773 #ifdef SO_PEERNAME
8774 {*r = SO_PEERNAME; return 0;}
8775 #else /* def SO_PEERNAME */
8776 {errno = EINVAL; return -1;}
8777 #endif /* ndef SO_PEERNAME */
8778 if (x == Mono_Posix_UnixSocketOptionName_SO_PEERSEC)
8779 #ifdef SO_PEERSEC
8780 {*r = SO_PEERSEC; return 0;}
8781 #else /* def SO_PEERSEC */
8782 {errno = EINVAL; return -1;}
8783 #endif /* ndef SO_PEERSEC */
8784 if (x == Mono_Posix_UnixSocketOptionName_SO_PRIORITY)
8785 #ifdef SO_PRIORITY
8786 {*r = SO_PRIORITY; return 0;}
8787 #else /* def SO_PRIORITY */
8788 {errno = EINVAL; return -1;}
8789 #endif /* ndef SO_PRIORITY */
8790 if (x == Mono_Posix_UnixSocketOptionName_SO_PROTOCOL)
8791 #ifdef SO_PROTOCOL
8792 {*r = SO_PROTOCOL; return 0;}
8793 #else /* def SO_PROTOCOL */
8794 {errno = EINVAL; return -1;}
8795 #endif /* ndef SO_PROTOCOL */
8796 if (x == Mono_Posix_UnixSocketOptionName_SO_RCVBUF)
8797 #ifdef SO_RCVBUF
8798 {*r = SO_RCVBUF; return 0;}
8799 #else /* def SO_RCVBUF */
8800 {errno = EINVAL; return -1;}
8801 #endif /* ndef SO_RCVBUF */
8802 if (x == Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE)
8803 #ifdef SO_RCVBUFFORCE
8804 {*r = SO_RCVBUFFORCE; return 0;}
8805 #else /* def SO_RCVBUFFORCE */
8806 {errno = EINVAL; return -1;}
8807 #endif /* ndef SO_RCVBUFFORCE */
8808 if (x == Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT)
8809 #ifdef SO_RCVLOWAT
8810 {*r = SO_RCVLOWAT; return 0;}
8811 #else /* def SO_RCVLOWAT */
8812 {errno = EINVAL; return -1;}
8813 #endif /* ndef SO_RCVLOWAT */
8814 if (x == Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO)
8815 #ifdef SO_RCVTIMEO
8816 {*r = SO_RCVTIMEO; return 0;}
8817 #else /* def SO_RCVTIMEO */
8818 {errno = EINVAL; return -1;}
8819 #endif /* ndef SO_RCVTIMEO */
8820 if (x == Mono_Posix_UnixSocketOptionName_SO_REUSEADDR)
8821 #ifdef SO_REUSEADDR
8822 {*r = SO_REUSEADDR; return 0;}
8823 #else /* def SO_REUSEADDR */
8824 {errno = EINVAL; return -1;}
8825 #endif /* ndef SO_REUSEADDR */
8826 if (x == Mono_Posix_UnixSocketOptionName_SO_REUSEPORT)
8827 #ifdef SO_REUSEPORT
8828 {*r = SO_REUSEPORT; return 0;}
8829 #else /* def SO_REUSEPORT */
8830 {errno = EINVAL; return -1;}
8831 #endif /* ndef SO_REUSEPORT */
8832 if (x == Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL)
8833 #ifdef SO_RXQ_OVFL
8834 {*r = SO_RXQ_OVFL; return 0;}
8835 #else /* def SO_RXQ_OVFL */
8836 {errno = EINVAL; return -1;}
8837 #endif /* ndef SO_RXQ_OVFL */
8838 if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION)
8839 #ifdef SO_SECURITY_AUTHENTICATION
8840 {*r = SO_SECURITY_AUTHENTICATION; return 0;}
8841 #else /* def SO_SECURITY_AUTHENTICATION */
8842 {errno = EINVAL; return -1;}
8843 #endif /* ndef SO_SECURITY_AUTHENTICATION */
8844 if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK)
8845 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
8846 {*r = SO_SECURITY_ENCRYPTION_NETWORK; return 0;}
8847 #else /* def SO_SECURITY_ENCRYPTION_NETWORK */
8848 {errno = EINVAL; return -1;}
8849 #endif /* ndef SO_SECURITY_ENCRYPTION_NETWORK */
8850 if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT)
8851 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
8852 {*r = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0;}
8853 #else /* def SO_SECURITY_ENCRYPTION_TRANSPORT */
8854 {errno = EINVAL; return -1;}
8855 #endif /* ndef SO_SECURITY_ENCRYPTION_TRANSPORT */
8856 if (x == Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE)
8857 #ifdef SO_SELECT_ERR_QUEUE
8858 {*r = SO_SELECT_ERR_QUEUE; return 0;}
8859 #else /* def SO_SELECT_ERR_QUEUE */
8860 {errno = EINVAL; return -1;}
8861 #endif /* ndef SO_SELECT_ERR_QUEUE */
8862 if (x == Mono_Posix_UnixSocketOptionName_SO_SNDBUF)
8863 #ifdef SO_SNDBUF
8864 {*r = SO_SNDBUF; return 0;}
8865 #else /* def SO_SNDBUF */
8866 {errno = EINVAL; return -1;}
8867 #endif /* ndef SO_SNDBUF */
8868 if (x == Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE)
8869 #ifdef SO_SNDBUFFORCE
8870 {*r = SO_SNDBUFFORCE; return 0;}
8871 #else /* def SO_SNDBUFFORCE */
8872 {errno = EINVAL; return -1;}
8873 #endif /* ndef SO_SNDBUFFORCE */
8874 if (x == Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT)
8875 #ifdef SO_SNDLOWAT
8876 {*r = SO_SNDLOWAT; return 0;}
8877 #else /* def SO_SNDLOWAT */
8878 {errno = EINVAL; return -1;}
8879 #endif /* ndef SO_SNDLOWAT */
8880 if (x == Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO)
8881 #ifdef SO_SNDTIMEO
8882 {*r = SO_SNDTIMEO; return 0;}
8883 #else /* def SO_SNDTIMEO */
8884 {errno = EINVAL; return -1;}
8885 #endif /* ndef SO_SNDTIMEO */
8886 if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP)
8887 #ifdef SO_TIMESTAMP
8888 {*r = SO_TIMESTAMP; return 0;}
8889 #else /* def SO_TIMESTAMP */
8890 {errno = EINVAL; return -1;}
8891 #endif /* ndef SO_TIMESTAMP */
8892 if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING)
8893 #ifdef SO_TIMESTAMPING
8894 {*r = SO_TIMESTAMPING; return 0;}
8895 #else /* def SO_TIMESTAMPING */
8896 {errno = EINVAL; return -1;}
8897 #endif /* ndef SO_TIMESTAMPING */
8898 if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS)
8899 #ifdef SO_TIMESTAMPNS
8900 {*r = SO_TIMESTAMPNS; return 0;}
8901 #else /* def SO_TIMESTAMPNS */
8902 {errno = EINVAL; return -1;}
8903 #endif /* ndef SO_TIMESTAMPNS */
8904 if (x == Mono_Posix_UnixSocketOptionName_SO_TYPE)
8905 #ifdef SO_TYPE
8906 {*r = SO_TYPE; return 0;}
8907 #else /* def SO_TYPE */
8908 {errno = EINVAL; return -1;}
8909 #endif /* ndef SO_TYPE */
8910 if (x == Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS)
8911 #ifdef SO_WIFI_STATUS
8912 {*r = SO_WIFI_STATUS; return 0;}
8913 #else /* def SO_WIFI_STATUS */
8914 {errno = EINVAL; return -1;}
8915 #endif /* ndef SO_WIFI_STATUS */
8916 if (x == 0)
8917 return 0;
8918 errno = EINVAL; return -1;
8921 int Mono_Posix_ToUnixSocketOptionName (int x, int *r)
8923 *r = 0;
8924 if (x == 0)
8925 return 0;
8926 #ifdef SO_ACCEPTCONN
8927 if (x == SO_ACCEPTCONN)
8928 {*r = Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN; return 0;}
8929 #endif /* ndef SO_ACCEPTCONN */
8930 #ifdef SO_ATTACH_FILTER
8931 if (x == SO_ATTACH_FILTER)
8932 {*r = Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER; return 0;}
8933 #endif /* ndef SO_ATTACH_FILTER */
8934 #ifdef SO_BINDTODEVICE
8935 if (x == SO_BINDTODEVICE)
8936 {*r = Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE; return 0;}
8937 #endif /* ndef SO_BINDTODEVICE */
8938 #ifdef SO_BROADCAST
8939 if (x == SO_BROADCAST)
8940 {*r = Mono_Posix_UnixSocketOptionName_SO_BROADCAST; return 0;}
8941 #endif /* ndef SO_BROADCAST */
8942 #ifdef SO_BSDCOMPAT
8943 if (x == SO_BSDCOMPAT)
8944 {*r = Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT; return 0;}
8945 #endif /* ndef SO_BSDCOMPAT */
8946 #ifdef SO_BUSY_POLL
8947 if (x == SO_BUSY_POLL)
8948 {*r = Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL; return 0;}
8949 #endif /* ndef SO_BUSY_POLL */
8950 #ifdef SO_DEBUG
8951 if (x == SO_DEBUG)
8952 {*r = Mono_Posix_UnixSocketOptionName_SO_DEBUG; return 0;}
8953 #endif /* ndef SO_DEBUG */
8954 #ifdef SO_DETACH_FILTER
8955 if (x == SO_DETACH_FILTER)
8956 {*r = Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER; return 0;}
8957 #endif /* ndef SO_DETACH_FILTER */
8958 #ifdef SO_DOMAIN
8959 if (x == SO_DOMAIN)
8960 {*r = Mono_Posix_UnixSocketOptionName_SO_DOMAIN; return 0;}
8961 #endif /* ndef SO_DOMAIN */
8962 #ifdef SO_DONTROUTE
8963 if (x == SO_DONTROUTE)
8964 {*r = Mono_Posix_UnixSocketOptionName_SO_DONTROUTE; return 0;}
8965 #endif /* ndef SO_DONTROUTE */
8966 #ifdef SO_ERROR
8967 if (x == SO_ERROR)
8968 {*r = Mono_Posix_UnixSocketOptionName_SO_ERROR; return 0;}
8969 #endif /* ndef SO_ERROR */
8970 #ifdef SO_KEEPALIVE
8971 if (x == SO_KEEPALIVE)
8972 {*r = Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE; return 0;}
8973 #endif /* ndef SO_KEEPALIVE */
8974 #ifdef SO_LINGER
8975 if (x == SO_LINGER)
8976 {*r = Mono_Posix_UnixSocketOptionName_SO_LINGER; return 0;}
8977 #endif /* ndef SO_LINGER */
8978 #ifdef SO_LOCK_FILTER
8979 if (x == SO_LOCK_FILTER)
8980 {*r = Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER; return 0;}
8981 #endif /* ndef SO_LOCK_FILTER */
8982 #ifdef SO_MARK
8983 if (x == SO_MARK)
8984 {*r = Mono_Posix_UnixSocketOptionName_SO_MARK; return 0;}
8985 #endif /* ndef SO_MARK */
8986 #ifdef SO_MAX_PACING_RATE
8987 if (x == SO_MAX_PACING_RATE)
8988 {*r = Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE; return 0;}
8989 #endif /* ndef SO_MAX_PACING_RATE */
8990 #ifdef SO_NOFCS
8991 if (x == SO_NOFCS)
8992 {*r = Mono_Posix_UnixSocketOptionName_SO_NOFCS; return 0;}
8993 #endif /* ndef SO_NOFCS */
8994 #ifdef SO_NO_CHECK
8995 if (x == SO_NO_CHECK)
8996 {*r = Mono_Posix_UnixSocketOptionName_SO_NO_CHECK; return 0;}
8997 #endif /* ndef SO_NO_CHECK */
8998 #ifdef SO_OOBINLINE
8999 if (x == SO_OOBINLINE)
9000 {*r = Mono_Posix_UnixSocketOptionName_SO_OOBINLINE; return 0;}
9001 #endif /* ndef SO_OOBINLINE */
9002 #ifdef SO_PASSCRED
9003 if (x == SO_PASSCRED)
9004 {*r = Mono_Posix_UnixSocketOptionName_SO_PASSCRED; return 0;}
9005 #endif /* ndef SO_PASSCRED */
9006 #ifdef SO_PASSSEC
9007 if (x == SO_PASSSEC)
9008 {*r = Mono_Posix_UnixSocketOptionName_SO_PASSSEC; return 0;}
9009 #endif /* ndef SO_PASSSEC */
9010 #ifdef SO_PEEK_OFF
9011 if (x == SO_PEEK_OFF)
9012 {*r = Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF; return 0;}
9013 #endif /* ndef SO_PEEK_OFF */
9014 #ifdef SO_PEERCRED
9015 if (x == SO_PEERCRED)
9016 {*r = Mono_Posix_UnixSocketOptionName_SO_PEERCRED; return 0;}
9017 #endif /* ndef SO_PEERCRED */
9018 #ifdef SO_PEERNAME
9019 if (x == SO_PEERNAME)
9020 {*r = Mono_Posix_UnixSocketOptionName_SO_PEERNAME; return 0;}
9021 #endif /* ndef SO_PEERNAME */
9022 #ifdef SO_PEERSEC
9023 if (x == SO_PEERSEC)
9024 {*r = Mono_Posix_UnixSocketOptionName_SO_PEERSEC; return 0;}
9025 #endif /* ndef SO_PEERSEC */
9026 #ifdef SO_PRIORITY
9027 if (x == SO_PRIORITY)
9028 {*r = Mono_Posix_UnixSocketOptionName_SO_PRIORITY; return 0;}
9029 #endif /* ndef SO_PRIORITY */
9030 #ifdef SO_PROTOCOL
9031 if (x == SO_PROTOCOL)
9032 {*r = Mono_Posix_UnixSocketOptionName_SO_PROTOCOL; return 0;}
9033 #endif /* ndef SO_PROTOCOL */
9034 #ifdef SO_RCVBUF
9035 if (x == SO_RCVBUF)
9036 {*r = Mono_Posix_UnixSocketOptionName_SO_RCVBUF; return 0;}
9037 #endif /* ndef SO_RCVBUF */
9038 #ifdef SO_RCVBUFFORCE
9039 if (x == SO_RCVBUFFORCE)
9040 {*r = Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE; return 0;}
9041 #endif /* ndef SO_RCVBUFFORCE */
9042 #ifdef SO_RCVLOWAT
9043 if (x == SO_RCVLOWAT)
9044 {*r = Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT; return 0;}
9045 #endif /* ndef SO_RCVLOWAT */
9046 #ifdef SO_RCVTIMEO
9047 if (x == SO_RCVTIMEO)
9048 {*r = Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO; return 0;}
9049 #endif /* ndef SO_RCVTIMEO */
9050 #ifdef SO_REUSEADDR
9051 if (x == SO_REUSEADDR)
9052 {*r = Mono_Posix_UnixSocketOptionName_SO_REUSEADDR; return 0;}
9053 #endif /* ndef SO_REUSEADDR */
9054 #ifdef SO_REUSEPORT
9055 if (x == SO_REUSEPORT)
9056 {*r = Mono_Posix_UnixSocketOptionName_SO_REUSEPORT; return 0;}
9057 #endif /* ndef SO_REUSEPORT */
9058 #ifdef SO_RXQ_OVFL
9059 if (x == SO_RXQ_OVFL)
9060 {*r = Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL; return 0;}
9061 #endif /* ndef SO_RXQ_OVFL */
9062 #ifdef SO_SECURITY_AUTHENTICATION
9063 if (x == SO_SECURITY_AUTHENTICATION)
9064 {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION; return 0;}
9065 #endif /* ndef SO_SECURITY_AUTHENTICATION */
9066 #ifdef SO_SECURITY_ENCRYPTION_NETWORK
9067 if (x == SO_SECURITY_ENCRYPTION_NETWORK)
9068 {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK; return 0;}
9069 #endif /* ndef SO_SECURITY_ENCRYPTION_NETWORK */
9070 #ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
9071 if (x == SO_SECURITY_ENCRYPTION_TRANSPORT)
9072 {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT; return 0;}
9073 #endif /* ndef SO_SECURITY_ENCRYPTION_TRANSPORT */
9074 #ifdef SO_SELECT_ERR_QUEUE
9075 if (x == SO_SELECT_ERR_QUEUE)
9076 {*r = Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE; return 0;}
9077 #endif /* ndef SO_SELECT_ERR_QUEUE */
9078 #ifdef SO_SNDBUF
9079 if (x == SO_SNDBUF)
9080 {*r = Mono_Posix_UnixSocketOptionName_SO_SNDBUF; return 0;}
9081 #endif /* ndef SO_SNDBUF */
9082 #ifdef SO_SNDBUFFORCE
9083 if (x == SO_SNDBUFFORCE)
9084 {*r = Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE; return 0;}
9085 #endif /* ndef SO_SNDBUFFORCE */
9086 #ifdef SO_SNDLOWAT
9087 if (x == SO_SNDLOWAT)
9088 {*r = Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT; return 0;}
9089 #endif /* ndef SO_SNDLOWAT */
9090 #ifdef SO_SNDTIMEO
9091 if (x == SO_SNDTIMEO)
9092 {*r = Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO; return 0;}
9093 #endif /* ndef SO_SNDTIMEO */
9094 #ifdef SO_TIMESTAMP
9095 if (x == SO_TIMESTAMP)
9096 {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP; return 0;}
9097 #endif /* ndef SO_TIMESTAMP */
9098 #ifdef SO_TIMESTAMPING
9099 if (x == SO_TIMESTAMPING)
9100 {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING; return 0;}
9101 #endif /* ndef SO_TIMESTAMPING */
9102 #ifdef SO_TIMESTAMPNS
9103 if (x == SO_TIMESTAMPNS)
9104 {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS; return 0;}
9105 #endif /* ndef SO_TIMESTAMPNS */
9106 #ifdef SO_TYPE
9107 if (x == SO_TYPE)
9108 {*r = Mono_Posix_UnixSocketOptionName_SO_TYPE; return 0;}
9109 #endif /* ndef SO_TYPE */
9110 #ifdef SO_WIFI_STATUS
9111 if (x == SO_WIFI_STATUS)
9112 {*r = Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS; return 0;}
9113 #endif /* ndef SO_WIFI_STATUS */
9114 errno = EINVAL; return -1;
9117 int Mono_Posix_FromUnixSocketProtocol (int x, int *r)
9119 *r = 0;
9120 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_AH)
9121 #ifdef IPPROTO_AH
9122 {*r = IPPROTO_AH; return 0;}
9123 #else /* def IPPROTO_AH */
9124 {errno = EINVAL; return -1;}
9125 #endif /* ndef IPPROTO_AH */
9126 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH)
9127 #ifdef IPPROTO_BEETPH
9128 {*r = IPPROTO_BEETPH; return 0;}
9129 #else /* def IPPROTO_BEETPH */
9130 {errno = EINVAL; return -1;}
9131 #endif /* ndef IPPROTO_BEETPH */
9132 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_COMP)
9133 #ifdef IPPROTO_COMP
9134 {*r = IPPROTO_COMP; return 0;}
9135 #else /* def IPPROTO_COMP */
9136 {errno = EINVAL; return -1;}
9137 #endif /* ndef IPPROTO_COMP */
9138 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP)
9139 #ifdef IPPROTO_DCCP
9140 {*r = IPPROTO_DCCP; return 0;}
9141 #else /* def IPPROTO_DCCP */
9142 {errno = EINVAL; return -1;}
9143 #endif /* ndef IPPROTO_DCCP */
9144 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_EGP)
9145 #ifdef IPPROTO_EGP
9146 {*r = IPPROTO_EGP; return 0;}
9147 #else /* def IPPROTO_EGP */
9148 {errno = EINVAL; return -1;}
9149 #endif /* ndef IPPROTO_EGP */
9150 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP)
9151 #ifdef IPPROTO_ENCAP
9152 {*r = IPPROTO_ENCAP; return 0;}
9153 #else /* def IPPROTO_ENCAP */
9154 {errno = EINVAL; return -1;}
9155 #endif /* ndef IPPROTO_ENCAP */
9156 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ESP)
9157 #ifdef IPPROTO_ESP
9158 {*r = IPPROTO_ESP; return 0;}
9159 #else /* def IPPROTO_ESP */
9160 {errno = EINVAL; return -1;}
9161 #endif /* ndef IPPROTO_ESP */
9162 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_GRE)
9163 #ifdef IPPROTO_GRE
9164 {*r = IPPROTO_GRE; return 0;}
9165 #else /* def IPPROTO_GRE */
9166 {errno = EINVAL; return -1;}
9167 #endif /* ndef IPPROTO_GRE */
9168 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP)
9169 #ifdef IPPROTO_ICMP
9170 {*r = IPPROTO_ICMP; return 0;}
9171 #else /* def IPPROTO_ICMP */
9172 {errno = EINVAL; return -1;}
9173 #endif /* ndef IPPROTO_ICMP */
9174 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IDP)
9175 #ifdef IPPROTO_IDP
9176 {*r = IPPROTO_IDP; return 0;}
9177 #else /* def IPPROTO_IDP */
9178 {errno = EINVAL; return -1;}
9179 #endif /* ndef IPPROTO_IDP */
9180 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP)
9181 #ifdef IPPROTO_IGMP
9182 {*r = IPPROTO_IGMP; return 0;}
9183 #else /* def IPPROTO_IGMP */
9184 {errno = EINVAL; return -1;}
9185 #endif /* ndef IPPROTO_IGMP */
9186 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IP)
9187 #ifdef IPPROTO_IP
9188 {*r = IPPROTO_IP; return 0;}
9189 #else /* def IPPROTO_IP */
9190 {errno = EINVAL; return -1;}
9191 #endif /* ndef IPPROTO_IP */
9192 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP)
9193 #ifdef IPPROTO_IPIP
9194 {*r = IPPROTO_IPIP; return 0;}
9195 #else /* def IPPROTO_IPIP */
9196 {errno = EINVAL; return -1;}
9197 #endif /* ndef IPPROTO_IPIP */
9198 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6)
9199 #ifdef IPPROTO_IPV6
9200 {*r = IPPROTO_IPV6; return 0;}
9201 #else /* def IPPROTO_IPV6 */
9202 {errno = EINVAL; return -1;}
9203 #endif /* ndef IPPROTO_IPV6 */
9204 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_MTP)
9205 #ifdef IPPROTO_MTP
9206 {*r = IPPROTO_MTP; return 0;}
9207 #else /* def IPPROTO_MTP */
9208 {errno = EINVAL; return -1;}
9209 #endif /* ndef IPPROTO_MTP */
9210 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_PIM)
9211 #ifdef IPPROTO_PIM
9212 {*r = IPPROTO_PIM; return 0;}
9213 #else /* def IPPROTO_PIM */
9214 {errno = EINVAL; return -1;}
9215 #endif /* ndef IPPROTO_PIM */
9216 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_PUP)
9217 #ifdef IPPROTO_PUP
9218 {*r = IPPROTO_PUP; return 0;}
9219 #else /* def IPPROTO_PUP */
9220 {errno = EINVAL; return -1;}
9221 #endif /* ndef IPPROTO_PUP */
9222 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_RAW)
9223 #ifdef IPPROTO_RAW
9224 {*r = IPPROTO_RAW; return 0;}
9225 #else /* def IPPROTO_RAW */
9226 {errno = EINVAL; return -1;}
9227 #endif /* ndef IPPROTO_RAW */
9228 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP)
9229 #ifdef IPPROTO_RSVP
9230 {*r = IPPROTO_RSVP; return 0;}
9231 #else /* def IPPROTO_RSVP */
9232 {errno = EINVAL; return -1;}
9233 #endif /* ndef IPPROTO_RSVP */
9234 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP)
9235 #ifdef IPPROTO_SCTP
9236 {*r = IPPROTO_SCTP; return 0;}
9237 #else /* def IPPROTO_SCTP */
9238 {errno = EINVAL; return -1;}
9239 #endif /* ndef IPPROTO_SCTP */
9240 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_TCP)
9241 #ifdef IPPROTO_TCP
9242 {*r = IPPROTO_TCP; return 0;}
9243 #else /* def IPPROTO_TCP */
9244 {errno = EINVAL; return -1;}
9245 #endif /* ndef IPPROTO_TCP */
9246 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_TP)
9247 #ifdef IPPROTO_TP
9248 {*r = IPPROTO_TP; return 0;}
9249 #else /* def IPPROTO_TP */
9250 {errno = EINVAL; return -1;}
9251 #endif /* ndef IPPROTO_TP */
9252 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_UDP)
9253 #ifdef IPPROTO_UDP
9254 {*r = IPPROTO_UDP; return 0;}
9255 #else /* def IPPROTO_UDP */
9256 {errno = EINVAL; return -1;}
9257 #endif /* ndef IPPROTO_UDP */
9258 if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE)
9259 #ifdef IPPROTO_UDPLITE
9260 {*r = IPPROTO_UDPLITE; return 0;}
9261 #else /* def IPPROTO_UDPLITE */
9262 {errno = EINVAL; return -1;}
9263 #endif /* ndef IPPROTO_UDPLITE */
9264 if (x == Mono_Posix_UnixSocketProtocol_SOL_SOCKET)
9265 #ifdef SOL_SOCKET
9266 {*r = SOL_SOCKET; return 0;}
9267 #else /* def SOL_SOCKET */
9268 {errno = EINVAL; return -1;}
9269 #endif /* ndef SOL_SOCKET */
9270 if (x == 0)
9271 return 0;
9272 errno = EINVAL; return -1;
9275 int Mono_Posix_ToUnixSocketProtocol (int x, int *r)
9277 *r = 0;
9278 if (x == 0)
9279 return 0;
9280 #ifdef IPPROTO_AH
9281 if (x == IPPROTO_AH)
9282 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_AH; return 0;}
9283 #endif /* ndef IPPROTO_AH */
9284 #ifdef IPPROTO_BEETPH
9285 if (x == IPPROTO_BEETPH)
9286 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH; return 0;}
9287 #endif /* ndef IPPROTO_BEETPH */
9288 #ifdef IPPROTO_COMP
9289 if (x == IPPROTO_COMP)
9290 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_COMP; return 0;}
9291 #endif /* ndef IPPROTO_COMP */
9292 #ifdef IPPROTO_DCCP
9293 if (x == IPPROTO_DCCP)
9294 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP; return 0;}
9295 #endif /* ndef IPPROTO_DCCP */
9296 #ifdef IPPROTO_EGP
9297 if (x == IPPROTO_EGP)
9298 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_EGP; return 0;}
9299 #endif /* ndef IPPROTO_EGP */
9300 #ifdef IPPROTO_ENCAP
9301 if (x == IPPROTO_ENCAP)
9302 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP; return 0;}
9303 #endif /* ndef IPPROTO_ENCAP */
9304 #ifdef IPPROTO_ESP
9305 if (x == IPPROTO_ESP)
9306 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ESP; return 0;}
9307 #endif /* ndef IPPROTO_ESP */
9308 #ifdef IPPROTO_GRE
9309 if (x == IPPROTO_GRE)
9310 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_GRE; return 0;}
9311 #endif /* ndef IPPROTO_GRE */
9312 #ifdef IPPROTO_ICMP
9313 if (x == IPPROTO_ICMP)
9314 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP; return 0;}
9315 #endif /* ndef IPPROTO_ICMP */
9316 #ifdef IPPROTO_IDP
9317 if (x == IPPROTO_IDP)
9318 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IDP; return 0;}
9319 #endif /* ndef IPPROTO_IDP */
9320 #ifdef IPPROTO_IGMP
9321 if (x == IPPROTO_IGMP)
9322 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP; return 0;}
9323 #endif /* ndef IPPROTO_IGMP */
9324 #ifdef IPPROTO_IP
9325 if (x == IPPROTO_IP)
9326 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IP; return 0;}
9327 #endif /* ndef IPPROTO_IP */
9328 #ifdef IPPROTO_IPIP
9329 if (x == IPPROTO_IPIP)
9330 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP; return 0;}
9331 #endif /* ndef IPPROTO_IPIP */
9332 #ifdef IPPROTO_IPV6
9333 if (x == IPPROTO_IPV6)
9334 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6; return 0;}
9335 #endif /* ndef IPPROTO_IPV6 */
9336 #ifdef IPPROTO_MTP
9337 if (x == IPPROTO_MTP)
9338 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_MTP; return 0;}
9339 #endif /* ndef IPPROTO_MTP */
9340 #ifdef IPPROTO_PIM
9341 if (x == IPPROTO_PIM)
9342 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_PIM; return 0;}
9343 #endif /* ndef IPPROTO_PIM */
9344 #ifdef IPPROTO_PUP
9345 if (x == IPPROTO_PUP)
9346 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_PUP; return 0;}
9347 #endif /* ndef IPPROTO_PUP */
9348 #ifdef IPPROTO_RAW
9349 if (x == IPPROTO_RAW)
9350 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_RAW; return 0;}
9351 #endif /* ndef IPPROTO_RAW */
9352 #ifdef IPPROTO_RSVP
9353 if (x == IPPROTO_RSVP)
9354 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP; return 0;}
9355 #endif /* ndef IPPROTO_RSVP */
9356 #ifdef IPPROTO_SCTP
9357 if (x == IPPROTO_SCTP)
9358 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP; return 0;}
9359 #endif /* ndef IPPROTO_SCTP */
9360 #ifdef IPPROTO_TCP
9361 if (x == IPPROTO_TCP)
9362 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_TCP; return 0;}
9363 #endif /* ndef IPPROTO_TCP */
9364 #ifdef IPPROTO_TP
9365 if (x == IPPROTO_TP)
9366 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_TP; return 0;}
9367 #endif /* ndef IPPROTO_TP */
9368 #ifdef IPPROTO_UDP
9369 if (x == IPPROTO_UDP)
9370 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_UDP; return 0;}
9371 #endif /* ndef IPPROTO_UDP */
9372 #ifdef IPPROTO_UDPLITE
9373 if (x == IPPROTO_UDPLITE)
9374 {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE; return 0;}
9375 #endif /* ndef IPPROTO_UDPLITE */
9376 #ifdef SOL_SOCKET
9377 if (x == SOL_SOCKET)
9378 {*r = Mono_Posix_UnixSocketProtocol_SOL_SOCKET; return 0;}
9379 #endif /* ndef SOL_SOCKET */
9380 errno = EINVAL; return -1;
9383 int Mono_Posix_FromUnixSocketType (int x, int *r)
9385 *r = 0;
9386 if (x == Mono_Posix_UnixSocketType_SOCK_DCCP)
9387 #ifdef SOCK_DCCP
9388 {*r = SOCK_DCCP; return 0;}
9389 #else /* def SOCK_DCCP */
9390 {errno = EINVAL; return -1;}
9391 #endif /* ndef SOCK_DCCP */
9392 if (x == Mono_Posix_UnixSocketType_SOCK_DGRAM)
9393 #ifdef SOCK_DGRAM
9394 {*r = SOCK_DGRAM; return 0;}
9395 #else /* def SOCK_DGRAM */
9396 {errno = EINVAL; return -1;}
9397 #endif /* ndef SOCK_DGRAM */
9398 if (x == Mono_Posix_UnixSocketType_SOCK_PACKET)
9399 #ifdef SOCK_PACKET
9400 {*r = SOCK_PACKET; return 0;}
9401 #else /* def SOCK_PACKET */
9402 {errno = EINVAL; return -1;}
9403 #endif /* ndef SOCK_PACKET */
9404 if (x == Mono_Posix_UnixSocketType_SOCK_RAW)
9405 #ifdef SOCK_RAW
9406 {*r = SOCK_RAW; return 0;}
9407 #else /* def SOCK_RAW */
9408 {errno = EINVAL; return -1;}
9409 #endif /* ndef SOCK_RAW */
9410 if (x == Mono_Posix_UnixSocketType_SOCK_RDM)
9411 #ifdef SOCK_RDM
9412 {*r = SOCK_RDM; return 0;}
9413 #else /* def SOCK_RDM */
9414 {errno = EINVAL; return -1;}
9415 #endif /* ndef SOCK_RDM */
9416 if (x == Mono_Posix_UnixSocketType_SOCK_SEQPACKET)
9417 #ifdef SOCK_SEQPACKET
9418 {*r = SOCK_SEQPACKET; return 0;}
9419 #else /* def SOCK_SEQPACKET */
9420 {errno = EINVAL; return -1;}
9421 #endif /* ndef SOCK_SEQPACKET */
9422 if (x == Mono_Posix_UnixSocketType_SOCK_STREAM)
9423 #ifdef SOCK_STREAM
9424 {*r = SOCK_STREAM; return 0;}
9425 #else /* def SOCK_STREAM */
9426 {errno = EINVAL; return -1;}
9427 #endif /* ndef SOCK_STREAM */
9428 if (x == 0)
9429 return 0;
9430 errno = EINVAL; return -1;
9433 int Mono_Posix_ToUnixSocketType (int x, int *r)
9435 *r = 0;
9436 if (x == 0)
9437 return 0;
9438 #ifdef SOCK_DCCP
9439 if (x == SOCK_DCCP)
9440 {*r = Mono_Posix_UnixSocketType_SOCK_DCCP; return 0;}
9441 #endif /* ndef SOCK_DCCP */
9442 #ifdef SOCK_DGRAM
9443 if (x == SOCK_DGRAM)
9444 {*r = Mono_Posix_UnixSocketType_SOCK_DGRAM; return 0;}
9445 #endif /* ndef SOCK_DGRAM */
9446 #ifdef SOCK_PACKET
9447 if (x == SOCK_PACKET)
9448 {*r = Mono_Posix_UnixSocketType_SOCK_PACKET; return 0;}
9449 #endif /* ndef SOCK_PACKET */
9450 #ifdef SOCK_RAW
9451 if (x == SOCK_RAW)
9452 {*r = Mono_Posix_UnixSocketType_SOCK_RAW; return 0;}
9453 #endif /* ndef SOCK_RAW */
9454 #ifdef SOCK_RDM
9455 if (x == SOCK_RDM)
9456 {*r = Mono_Posix_UnixSocketType_SOCK_RDM; return 0;}
9457 #endif /* ndef SOCK_RDM */
9458 #ifdef SOCK_SEQPACKET
9459 if (x == SOCK_SEQPACKET)
9460 {*r = Mono_Posix_UnixSocketType_SOCK_SEQPACKET; return 0;}
9461 #endif /* ndef SOCK_SEQPACKET */
9462 #ifdef SOCK_STREAM
9463 if (x == SOCK_STREAM)
9464 {*r = Mono_Posix_UnixSocketType_SOCK_STREAM; return 0;}
9465 #endif /* ndef SOCK_STREAM */
9466 errno = EINVAL; return -1;
9469 #ifdef HAVE_STRUCT_UTIMBUF
9471 Mono_Posix_FromUtimbuf (struct Mono_Posix_Utimbuf *from, struct utimbuf *to)
9473 _cnm_return_val_if_overflow (time_t, from->actime, -1);
9474 _cnm_return_val_if_overflow (time_t, from->modtime, -1);
9476 memset (to, 0, sizeof(*to));
9478 to->actime = from->actime;
9479 to->modtime = from->modtime;
9481 return 0;
9483 #endif /* ndef HAVE_STRUCT_UTIMBUF */
9486 #ifdef HAVE_STRUCT_UTIMBUF
9488 Mono_Posix_ToUtimbuf (struct utimbuf *from, struct Mono_Posix_Utimbuf *to)
9490 _cnm_return_val_if_overflow (gint64, from->actime, -1);
9491 _cnm_return_val_if_overflow (gint64, from->modtime, -1);
9493 memset (to, 0, sizeof(*to));
9495 to->actime = from->actime;
9496 to->modtime = from->modtime;
9498 return 0;
9500 #endif /* ndef HAVE_STRUCT_UTIMBUF */
9503 int Mono_Posix_FromWaitOptions (int x, int *r)
9505 *r = 0;
9506 if ((x & Mono_Posix_WaitOptions_WNOHANG) == Mono_Posix_WaitOptions_WNOHANG)
9507 #ifdef WNOHANG
9508 *r |= WNOHANG;
9509 #else /* def WNOHANG */
9510 {errno = EINVAL; return -1;}
9511 #endif /* ndef WNOHANG */
9512 if ((x & Mono_Posix_WaitOptions_WUNTRACED) == Mono_Posix_WaitOptions_WUNTRACED)
9513 #ifdef WUNTRACED
9514 *r |= WUNTRACED;
9515 #else /* def WUNTRACED */
9516 {errno = EINVAL; return -1;}
9517 #endif /* ndef WUNTRACED */
9518 if (x == 0)
9519 return 0;
9520 return 0;
9523 int Mono_Posix_ToWaitOptions (int x, int *r)
9525 *r = 0;
9526 if (x == 0)
9527 return 0;
9528 #ifdef WNOHANG
9529 if ((x & WNOHANG) == WNOHANG)
9530 *r |= Mono_Posix_WaitOptions_WNOHANG;
9531 #endif /* ndef WNOHANG */
9532 #ifdef WUNTRACED
9533 if ((x & WUNTRACED) == WUNTRACED)
9534 *r |= Mono_Posix_WaitOptions_WUNTRACED;
9535 #endif /* ndef WUNTRACED */
9536 return 0;
9539 int Mono_Posix_FromXattrFlags (int x, int *r)
9541 *r = 0;
9542 if ((x & Mono_Posix_XattrFlags_XATTR_AUTO) == Mono_Posix_XattrFlags_XATTR_AUTO)
9543 #ifdef XATTR_AUTO
9544 *r |= XATTR_AUTO;
9545 #else /* def XATTR_AUTO */
9546 {errno = EINVAL; return -1;}
9547 #endif /* ndef XATTR_AUTO */
9548 if ((x & Mono_Posix_XattrFlags_XATTR_CREATE) == Mono_Posix_XattrFlags_XATTR_CREATE)
9549 #ifdef XATTR_CREATE
9550 *r |= XATTR_CREATE;
9551 #else /* def XATTR_CREATE */
9552 {errno = EINVAL; return -1;}
9553 #endif /* ndef XATTR_CREATE */
9554 if ((x & Mono_Posix_XattrFlags_XATTR_REPLACE) == Mono_Posix_XattrFlags_XATTR_REPLACE)
9555 #ifdef XATTR_REPLACE
9556 *r |= XATTR_REPLACE;
9557 #else /* def XATTR_REPLACE */
9558 {errno = EINVAL; return -1;}
9559 #endif /* ndef XATTR_REPLACE */
9560 if (x == 0)
9561 return 0;
9562 return 0;
9565 int Mono_Posix_ToXattrFlags (int x, int *r)
9567 *r = 0;
9568 if (x == 0)
9569 return 0;
9570 #ifdef XATTR_AUTO
9571 if ((x & XATTR_AUTO) == XATTR_AUTO)
9572 *r |= Mono_Posix_XattrFlags_XATTR_AUTO;
9573 #endif /* ndef XATTR_AUTO */
9574 #ifdef XATTR_CREATE
9575 if ((x & XATTR_CREATE) == XATTR_CREATE)
9576 *r |= Mono_Posix_XattrFlags_XATTR_CREATE;
9577 #endif /* ndef XATTR_CREATE */
9578 #ifdef XATTR_REPLACE
9579 if ((x & XATTR_REPLACE) == XATTR_REPLACE)
9580 *r |= Mono_Posix_XattrFlags_XATTR_REPLACE;
9581 #endif /* ndef XATTR_REPLACE */
9582 return 0;