-#ifdef LOG_KERN
- if (x == LOG_KERN)
- {*r = Mono_Posix_SyslogFacility_LOG_KERN; return 0;}
-#endif /* ndef LOG_KERN */
-#ifdef LOG_USER
- if (x == LOG_USER)
- {*r = Mono_Posix_SyslogFacility_LOG_USER; return 0;}
-#endif /* ndef LOG_USER */
-#ifdef LOG_USRE
- if (x == LOG_USRE)
- {*r = Mono_Posix_SyslogFacility_LOG_USRE; return 0;}
-#endif /* ndef LOG_USRE */
-#ifdef LOG_MAIL
- if (x == LOG_MAIL)
- {*r = Mono_Posix_SyslogFacility_LOG_MAIL; return 0;}
-#endif /* ndef LOG_MAIL */
-#ifdef LOG_DAEMON
- if (x == LOG_DAEMON)
- {*r = Mono_Posix_SyslogFacility_LOG_DAEMON; return 0;}
-#endif /* ndef LOG_DAEMON */
-#ifdef LOG_AUTH
- if (x == LOG_AUTH)
- {*r = Mono_Posix_SyslogFacility_LOG_AUTH; return 0;}
-#endif /* ndef LOG_AUTH */
-#ifdef LOG_SYSLOG
- if (x == LOG_SYSLOG)
- {*r = Mono_Posix_SyslogFacility_LOG_SYSLOG; return 0;}
-#endif /* ndef LOG_SYSLOG */
-#ifdef LOG_LPR
- if (x == LOG_LPR)
- {*r = Mono_Posix_SyslogFacility_LOG_LPR; return 0;}
-#endif /* ndef LOG_LPR */
-#ifdef LOG_NEWS
- if (x == LOG_NEWS)
- {*r = Mono_Posix_SyslogFacility_LOG_NEWS; return 0;}
-#endif /* ndef LOG_NEWS */
-#ifdef LOG_UUCP
- if (x == LOG_UUCP)
- {*r = Mono_Posix_SyslogFacility_LOG_UUCP; return 0;}
-#endif /* ndef LOG_UUCP */
-#ifdef LOG_CRON
- if (x == LOG_CRON)
- {*r = Mono_Posix_SyslogFacility_LOG_CRON; return 0;}
-#endif /* ndef LOG_CRON */
-#ifdef LOG_AUTHPRIV
- if (x == LOG_AUTHPRIV)
- {*r = Mono_Posix_SyslogFacility_LOG_AUTHPRIV; return 0;}
-#endif /* ndef LOG_AUTHPRIV */
-#ifdef LOG_FTP
- if (x == LOG_FTP)
- {*r = Mono_Posix_SyslogFacility_LOG_FTP; return 0;}
-#endif /* ndef LOG_FTP */
-#ifdef LOG_LOCAL0
- if (x == LOG_LOCAL0)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL0; return 0;}
-#endif /* ndef LOG_LOCAL0 */
-#ifdef LOG_LOCAL1
- if (x == LOG_LOCAL1)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL1; return 0;}
-#endif /* ndef LOG_LOCAL1 */
-#ifdef LOG_LOCAL2
- if (x == LOG_LOCAL2)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL2; return 0;}
-#endif /* ndef LOG_LOCAL2 */
-#ifdef LOG_LOCAL3
- if (x == LOG_LOCAL3)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL3; return 0;}
-#endif /* ndef LOG_LOCAL3 */
-#ifdef LOG_LOCAL4
- if (x == LOG_LOCAL4)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL4; return 0;}
-#endif /* ndef LOG_LOCAL4 */
-#ifdef LOG_LOCAL5
- if (x == LOG_LOCAL5)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL5; return 0;}
-#endif /* ndef LOG_LOCAL5 */
-#ifdef LOG_LOCAL6
- if (x == LOG_LOCAL6)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL6; return 0;}
-#endif /* ndef LOG_LOCAL6 */
-#ifdef LOG_LOCAL7
- if (x == LOG_LOCAL7)
- {*r = Mono_Posix_SyslogFacility_LOG_LOCAL7; return 0;}
-#endif /* ndef LOG_LOCAL7 */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromSyslogLevel (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_SyslogLevel_LOG_EMERG)
-#ifdef LOG_EMERG
- {*r = LOG_EMERG; return 0;}
-#else /* def LOG_EMERG */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_EMERG */
- if (x == Mono_Posix_SyslogLevel_LOG_ALERT)
-#ifdef LOG_ALERT
- {*r = LOG_ALERT; return 0;}
-#else /* def LOG_ALERT */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_ALERT */
- if (x == Mono_Posix_SyslogLevel_LOG_CRIT)
-#ifdef LOG_CRIT
- {*r = LOG_CRIT; return 0;}
-#else /* def LOG_CRIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_CRIT */
- if (x == Mono_Posix_SyslogLevel_LOG_ERR)
-#ifdef LOG_ERR
- {*r = LOG_ERR; return 0;}
-#else /* def LOG_ERR */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_ERR */
- if (x == Mono_Posix_SyslogLevel_LOG_WARNING)
-#ifdef LOG_WARNING
- {*r = LOG_WARNING; return 0;}
-#else /* def LOG_WARNING */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_WARNING */
- if (x == Mono_Posix_SyslogLevel_LOG_NOTICE)
-#ifdef LOG_NOTICE
- {*r = LOG_NOTICE; return 0;}
-#else /* def LOG_NOTICE */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_NOTICE */
- if (x == Mono_Posix_SyslogLevel_LOG_INFO)
-#ifdef LOG_INFO
- {*r = LOG_INFO; return 0;}
-#else /* def LOG_INFO */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_INFO */
- if (x == Mono_Posix_SyslogLevel_LOG_DEBUG)
-#ifdef LOG_DEBUG
- {*r = LOG_DEBUG; return 0;}
-#else /* def LOG_DEBUG */
- {errno = EINVAL; return -1;}
-#endif /* ndef LOG_DEBUG */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToSyslogLevel (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef LOG_EMERG
- if (x == LOG_EMERG)
- {*r = Mono_Posix_SyslogLevel_LOG_EMERG; return 0;}
-#endif /* ndef LOG_EMERG */
-#ifdef LOG_ALERT
- if (x == LOG_ALERT)
- {*r = Mono_Posix_SyslogLevel_LOG_ALERT; return 0;}
-#endif /* ndef LOG_ALERT */
-#ifdef LOG_CRIT
- if (x == LOG_CRIT)
- {*r = Mono_Posix_SyslogLevel_LOG_CRIT; return 0;}
-#endif /* ndef LOG_CRIT */
-#ifdef LOG_ERR
- if (x == LOG_ERR)
- {*r = Mono_Posix_SyslogLevel_LOG_ERR; return 0;}
-#endif /* ndef LOG_ERR */
-#ifdef LOG_WARNING
- if (x == LOG_WARNING)
- {*r = Mono_Posix_SyslogLevel_LOG_WARNING; return 0;}
-#endif /* ndef LOG_WARNING */
-#ifdef LOG_NOTICE
- if (x == LOG_NOTICE)
- {*r = Mono_Posix_SyslogLevel_LOG_NOTICE; return 0;}
-#endif /* ndef LOG_NOTICE */
-#ifdef LOG_INFO
- if (x == LOG_INFO)
- {*r = Mono_Posix_SyslogLevel_LOG_INFO; return 0;}
-#endif /* ndef LOG_INFO */
-#ifdef LOG_DEBUG
- if (x == LOG_DEBUG)
- {*r = Mono_Posix_SyslogLevel_LOG_DEBUG; return 0;}
-#endif /* ndef LOG_DEBUG */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromOpenFlags (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if ((x & Mono_Posix_OpenFlags_O_RDONLY) == Mono_Posix_OpenFlags_O_RDONLY)
-#ifdef O_RDONLY
- *r |= O_RDONLY;
-#else /* def O_RDONLY */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_RDONLY */
- if ((x & Mono_Posix_OpenFlags_O_WRONLY) == Mono_Posix_OpenFlags_O_WRONLY)
-#ifdef O_WRONLY
- *r |= O_WRONLY;
-#else /* def O_WRONLY */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_WRONLY */
- if ((x & Mono_Posix_OpenFlags_O_RDWR) == Mono_Posix_OpenFlags_O_RDWR)
-#ifdef O_RDWR
- *r |= O_RDWR;
-#else /* def O_RDWR */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_RDWR */
- if ((x & Mono_Posix_OpenFlags_O_CREAT) == Mono_Posix_OpenFlags_O_CREAT)
-#ifdef O_CREAT
- *r |= O_CREAT;
-#else /* def O_CREAT */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_CREAT */
- if ((x & Mono_Posix_OpenFlags_O_EXCL) == Mono_Posix_OpenFlags_O_EXCL)
-#ifdef O_EXCL
- *r |= O_EXCL;
-#else /* def O_EXCL */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_EXCL */
- if ((x & Mono_Posix_OpenFlags_O_NOCTTY) == Mono_Posix_OpenFlags_O_NOCTTY)
-#ifdef O_NOCTTY
- *r |= O_NOCTTY;
-#else /* def O_NOCTTY */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_NOCTTY */
- if ((x & Mono_Posix_OpenFlags_O_TRUNC) == Mono_Posix_OpenFlags_O_TRUNC)
-#ifdef O_TRUNC
- *r |= O_TRUNC;
-#else /* def O_TRUNC */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_TRUNC */
- if ((x & Mono_Posix_OpenFlags_O_APPEND) == Mono_Posix_OpenFlags_O_APPEND)
-#ifdef O_APPEND
- *r |= O_APPEND;
-#else /* def O_APPEND */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_APPEND */
- if ((x & Mono_Posix_OpenFlags_O_NONBLOCK) == Mono_Posix_OpenFlags_O_NONBLOCK)
-#ifdef O_NONBLOCK
- *r |= O_NONBLOCK;
-#else /* def O_NONBLOCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_NONBLOCK */
- if ((x & Mono_Posix_OpenFlags_O_SYNC) == Mono_Posix_OpenFlags_O_SYNC)
-#ifdef O_SYNC
- *r |= O_SYNC;
-#else /* def O_SYNC */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_SYNC */
- if ((x & Mono_Posix_OpenFlags_O_NOFOLLOW) == Mono_Posix_OpenFlags_O_NOFOLLOW)
-#ifdef O_NOFOLLOW
- *r |= O_NOFOLLOW;
-#else /* def O_NOFOLLOW */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_NOFOLLOW */
- if ((x & Mono_Posix_OpenFlags_O_DIRECTORY) == Mono_Posix_OpenFlags_O_DIRECTORY)
-#ifdef O_DIRECTORY
- *r |= O_DIRECTORY;
-#else /* def O_DIRECTORY */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_DIRECTORY */
- if ((x & Mono_Posix_OpenFlags_O_DIRECT) == Mono_Posix_OpenFlags_O_DIRECT)
-#ifdef O_DIRECT
- *r |= O_DIRECT;
-#else /* def O_DIRECT */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_DIRECT */
- if ((x & Mono_Posix_OpenFlags_O_ASYNC) == Mono_Posix_OpenFlags_O_ASYNC)
-#ifdef O_ASYNC
- *r |= O_ASYNC;
-#else /* def O_ASYNC */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_ASYNC */
- if ((x & Mono_Posix_OpenFlags_O_LARGEFILE) == Mono_Posix_OpenFlags_O_LARGEFILE)
-#ifdef O_LARGEFILE
- *r |= O_LARGEFILE;
-#else /* def O_LARGEFILE */
- {errno = EINVAL; return -1;}
-#endif /* ndef O_LARGEFILE */
- return 0;
-}
-
-int Mono_Posix_ToOpenFlags (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef O_RDONLY
- if ((x & O_RDONLY) == O_RDONLY)
- *r |= Mono_Posix_OpenFlags_O_RDONLY;
-#endif /* ndef O_RDONLY */
-#ifdef O_WRONLY
- if ((x & O_WRONLY) == O_WRONLY)
- *r |= Mono_Posix_OpenFlags_O_WRONLY;
-#endif /* ndef O_WRONLY */
-#ifdef O_RDWR
- if ((x & O_RDWR) == O_RDWR)
- *r |= Mono_Posix_OpenFlags_O_RDWR;
-#endif /* ndef O_RDWR */
-#ifdef O_CREAT
- if ((x & O_CREAT) == O_CREAT)
- *r |= Mono_Posix_OpenFlags_O_CREAT;
-#endif /* ndef O_CREAT */
-#ifdef O_EXCL
- if ((x & O_EXCL) == O_EXCL)
- *r |= Mono_Posix_OpenFlags_O_EXCL;
-#endif /* ndef O_EXCL */
-#ifdef O_NOCTTY
- if ((x & O_NOCTTY) == O_NOCTTY)
- *r |= Mono_Posix_OpenFlags_O_NOCTTY;
-#endif /* ndef O_NOCTTY */
-#ifdef O_TRUNC
- if ((x & O_TRUNC) == O_TRUNC)
- *r |= Mono_Posix_OpenFlags_O_TRUNC;
-#endif /* ndef O_TRUNC */
-#ifdef O_APPEND
- if ((x & O_APPEND) == O_APPEND)
- *r |= Mono_Posix_OpenFlags_O_APPEND;
-#endif /* ndef O_APPEND */
-#ifdef O_NONBLOCK
- if ((x & O_NONBLOCK) == O_NONBLOCK)
- *r |= Mono_Posix_OpenFlags_O_NONBLOCK;
-#endif /* ndef O_NONBLOCK */
-#ifdef O_SYNC
- if ((x & O_SYNC) == O_SYNC)
- *r |= Mono_Posix_OpenFlags_O_SYNC;
-#endif /* ndef O_SYNC */
-#ifdef O_NOFOLLOW
- if ((x & O_NOFOLLOW) == O_NOFOLLOW)
- *r |= Mono_Posix_OpenFlags_O_NOFOLLOW;
-#endif /* ndef O_NOFOLLOW */
-#ifdef O_DIRECTORY
- if ((x & O_DIRECTORY) == O_DIRECTORY)
- *r |= Mono_Posix_OpenFlags_O_DIRECTORY;
-#endif /* ndef O_DIRECTORY */
-#ifdef O_DIRECT
- if ((x & O_DIRECT) == O_DIRECT)
- *r |= Mono_Posix_OpenFlags_O_DIRECT;
-#endif /* ndef O_DIRECT */
-#ifdef O_ASYNC
- if ((x & O_ASYNC) == O_ASYNC)
- *r |= Mono_Posix_OpenFlags_O_ASYNC;
-#endif /* ndef O_ASYNC */
-#ifdef O_LARGEFILE
- if ((x & O_LARGEFILE) == O_LARGEFILE)
- *r |= Mono_Posix_OpenFlags_O_LARGEFILE;
-#endif /* ndef O_LARGEFILE */
- return 0;
-}
-
-int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if ((x & Mono_Posix_FilePermissions_S_ISUID) == Mono_Posix_FilePermissions_S_ISUID)
-#ifdef S_ISUID
- *r |= S_ISUID;
-#else /* def S_ISUID */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_ISUID */
- if ((x & Mono_Posix_FilePermissions_S_ISGID) == Mono_Posix_FilePermissions_S_ISGID)
-#ifdef S_ISGID
- *r |= S_ISGID;
-#else /* def S_ISGID */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_ISGID */
- if ((x & Mono_Posix_FilePermissions_S_ISVTX) == Mono_Posix_FilePermissions_S_ISVTX)
-#ifdef S_ISVTX
- *r |= S_ISVTX;
-#else /* def S_ISVTX */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_ISVTX */
- if ((x & Mono_Posix_FilePermissions_S_IRUSR) == Mono_Posix_FilePermissions_S_IRUSR)
-#ifdef S_IRUSR
- *r |= S_IRUSR;
-#else /* def S_IRUSR */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IRUSR */
- if ((x & Mono_Posix_FilePermissions_S_IWUSR) == Mono_Posix_FilePermissions_S_IWUSR)
-#ifdef S_IWUSR
- *r |= S_IWUSR;
-#else /* def S_IWUSR */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IWUSR */
- if ((x & Mono_Posix_FilePermissions_S_IXUSR) == Mono_Posix_FilePermissions_S_IXUSR)
-#ifdef S_IXUSR
- *r |= S_IXUSR;
-#else /* def S_IXUSR */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IXUSR */
- if ((x & Mono_Posix_FilePermissions_S_IRGRP) == Mono_Posix_FilePermissions_S_IRGRP)
-#ifdef S_IRGRP
- *r |= S_IRGRP;
-#else /* def S_IRGRP */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IRGRP */
- if ((x & Mono_Posix_FilePermissions_S_IWGRP) == Mono_Posix_FilePermissions_S_IWGRP)
-#ifdef S_IWGRP
- *r |= S_IWGRP;
-#else /* def S_IWGRP */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IWGRP */
- if ((x & Mono_Posix_FilePermissions_S_IXGRP) == Mono_Posix_FilePermissions_S_IXGRP)
-#ifdef S_IXGRP
- *r |= S_IXGRP;
-#else /* def S_IXGRP */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IXGRP */
- if ((x & Mono_Posix_FilePermissions_S_IROTH) == Mono_Posix_FilePermissions_S_IROTH)
-#ifdef S_IROTH
- *r |= S_IROTH;
-#else /* def S_IROTH */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IROTH */
- if ((x & Mono_Posix_FilePermissions_S_IWOTH) == Mono_Posix_FilePermissions_S_IWOTH)
-#ifdef S_IWOTH
- *r |= S_IWOTH;
-#else /* def S_IWOTH */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IWOTH */
- if ((x & Mono_Posix_FilePermissions_S_IXOTH) == Mono_Posix_FilePermissions_S_IXOTH)
-#ifdef S_IXOTH
- *r |= S_IXOTH;
-#else /* def S_IXOTH */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IXOTH */
- if ((x & Mono_Posix_FilePermissions_S_IRWXG) == Mono_Posix_FilePermissions_S_IRWXG)
-#ifdef S_IRWXG
- *r |= S_IRWXG;
-#else /* def S_IRWXG */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IRWXG */
- if ((x & Mono_Posix_FilePermissions_S_IRWXU) == Mono_Posix_FilePermissions_S_IRWXU)
-#ifdef S_IRWXU
- *r |= S_IRWXU;
-#else /* def S_IRWXU */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IRWXU */
- if ((x & Mono_Posix_FilePermissions_S_IRWXO) == Mono_Posix_FilePermissions_S_IRWXO)
-#ifdef S_IRWXO
- *r |= S_IRWXO;
-#else /* def S_IRWXO */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IRWXO */
- if ((x & Mono_Posix_FilePermissions_ACCESSPERMS) == Mono_Posix_FilePermissions_ACCESSPERMS)
-#ifdef ACCESSPERMS
- *r |= ACCESSPERMS;
-#else /* def ACCESSPERMS */
- {errno = EINVAL; return -1;}
-#endif /* ndef ACCESSPERMS */
- if ((x & Mono_Posix_FilePermissions_ALLPERMS) == Mono_Posix_FilePermissions_ALLPERMS)
-#ifdef ALLPERMS
- *r |= ALLPERMS;
-#else /* def ALLPERMS */
- {errno = EINVAL; return -1;}
-#endif /* ndef ALLPERMS */
- if ((x & Mono_Posix_FilePermissions_DEFFILEMODE) == Mono_Posix_FilePermissions_DEFFILEMODE)
-#ifdef DEFFILEMODE
- *r |= DEFFILEMODE;
-#else /* def DEFFILEMODE */
- {errno = EINVAL; return -1;}
-#endif /* ndef DEFFILEMODE */
- if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFMT)
-#ifdef S_IFMT
- *r |= S_IFMT;
-#else /* def S_IFMT */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFMT */
- if ((x & Mono_Posix_FilePermissions_S_IFDIR) == Mono_Posix_FilePermissions_S_IFDIR)
-#ifdef S_IFDIR
- *r |= S_IFDIR;
-#else /* def S_IFDIR */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFDIR */
- if ((x & Mono_Posix_FilePermissions_S_IFCHR) == Mono_Posix_FilePermissions_S_IFCHR)
-#ifdef S_IFCHR
- *r |= S_IFCHR;
-#else /* def S_IFCHR */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFCHR */
- if ((x & Mono_Posix_FilePermissions_S_IFBLK) == Mono_Posix_FilePermissions_S_IFBLK)
-#ifdef S_IFBLK
- *r |= S_IFBLK;
-#else /* def S_IFBLK */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFBLK */
- if ((x & Mono_Posix_FilePermissions_S_IFREG) == Mono_Posix_FilePermissions_S_IFREG)
-#ifdef S_IFREG
- *r |= S_IFREG;
-#else /* def S_IFREG */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFREG */
- if ((x & Mono_Posix_FilePermissions_S_IFIFO) == Mono_Posix_FilePermissions_S_IFIFO)
-#ifdef S_IFIFO
- *r |= S_IFIFO;
-#else /* def S_IFIFO */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFIFO */
- if ((x & Mono_Posix_FilePermissions_S_IFLNK) == Mono_Posix_FilePermissions_S_IFLNK)
-#ifdef S_IFLNK
- *r |= S_IFLNK;
-#else /* def S_IFLNK */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFLNK */
- if ((x & Mono_Posix_FilePermissions_S_IFSOCK) == Mono_Posix_FilePermissions_S_IFSOCK)
-#ifdef S_IFSOCK
- *r |= S_IFSOCK;
-#else /* def S_IFSOCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef S_IFSOCK */
- return 0;
-}
-
-int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef S_ISUID
- if ((x & S_ISUID) == S_ISUID)
- *r |= Mono_Posix_FilePermissions_S_ISUID;
-#endif /* ndef S_ISUID */
-#ifdef S_ISGID
- if ((x & S_ISGID) == S_ISGID)
- *r |= Mono_Posix_FilePermissions_S_ISGID;
-#endif /* ndef S_ISGID */
-#ifdef S_ISVTX
- if ((x & S_ISVTX) == S_ISVTX)
- *r |= Mono_Posix_FilePermissions_S_ISVTX;
-#endif /* ndef S_ISVTX */
-#ifdef S_IRUSR
- if ((x & S_IRUSR) == S_IRUSR)
- *r |= Mono_Posix_FilePermissions_S_IRUSR;
-#endif /* ndef S_IRUSR */
-#ifdef S_IWUSR
- if ((x & S_IWUSR) == S_IWUSR)
- *r |= Mono_Posix_FilePermissions_S_IWUSR;
-#endif /* ndef S_IWUSR */
-#ifdef S_IXUSR
- if ((x & S_IXUSR) == S_IXUSR)
- *r |= Mono_Posix_FilePermissions_S_IXUSR;
-#endif /* ndef S_IXUSR */
-#ifdef S_IRGRP
- if ((x & S_IRGRP) == S_IRGRP)
- *r |= Mono_Posix_FilePermissions_S_IRGRP;
-#endif /* ndef S_IRGRP */
-#ifdef S_IWGRP
- if ((x & S_IWGRP) == S_IWGRP)
- *r |= Mono_Posix_FilePermissions_S_IWGRP;
-#endif /* ndef S_IWGRP */
-#ifdef S_IXGRP
- if ((x & S_IXGRP) == S_IXGRP)
- *r |= Mono_Posix_FilePermissions_S_IXGRP;
-#endif /* ndef S_IXGRP */
-#ifdef S_IROTH
- if ((x & S_IROTH) == S_IROTH)
- *r |= Mono_Posix_FilePermissions_S_IROTH;
-#endif /* ndef S_IROTH */
-#ifdef S_IWOTH
- if ((x & S_IWOTH) == S_IWOTH)
- *r |= Mono_Posix_FilePermissions_S_IWOTH;
-#endif /* ndef S_IWOTH */
-#ifdef S_IXOTH
- if ((x & S_IXOTH) == S_IXOTH)
- *r |= Mono_Posix_FilePermissions_S_IXOTH;
-#endif /* ndef S_IXOTH */
-#ifdef S_IRWXG
- if ((x & S_IRWXG) == S_IRWXG)
- *r |= Mono_Posix_FilePermissions_S_IRWXG;
-#endif /* ndef S_IRWXG */
-#ifdef S_IRWXU
- if ((x & S_IRWXU) == S_IRWXU)
- *r |= Mono_Posix_FilePermissions_S_IRWXU;
-#endif /* ndef S_IRWXU */
-#ifdef S_IRWXO
- if ((x & S_IRWXO) == S_IRWXO)
- *r |= Mono_Posix_FilePermissions_S_IRWXO;
-#endif /* ndef S_IRWXO */
-#ifdef ACCESSPERMS
- if ((x & ACCESSPERMS) == ACCESSPERMS)
- *r |= Mono_Posix_FilePermissions_ACCESSPERMS;
-#endif /* ndef ACCESSPERMS */
-#ifdef ALLPERMS
- if ((x & ALLPERMS) == ALLPERMS)
- *r |= Mono_Posix_FilePermissions_ALLPERMS;
-#endif /* ndef ALLPERMS */
-#ifdef DEFFILEMODE
- if ((x & DEFFILEMODE) == DEFFILEMODE)
- *r |= Mono_Posix_FilePermissions_DEFFILEMODE;
-#endif /* ndef DEFFILEMODE */
-#ifdef S_IFMT
- if ((x & S_IFMT) == S_IFMT)
- *r |= Mono_Posix_FilePermissions_S_IFMT;
-#endif /* ndef S_IFMT */
-#ifdef S_IFDIR
- if ((x & S_IFDIR) == S_IFDIR)
- *r |= Mono_Posix_FilePermissions_S_IFDIR;
-#endif /* ndef S_IFDIR */
-#ifdef S_IFCHR
- if ((x & S_IFCHR) == S_IFCHR)
- *r |= Mono_Posix_FilePermissions_S_IFCHR;
-#endif /* ndef S_IFCHR */
-#ifdef S_IFBLK
- if ((x & S_IFBLK) == S_IFBLK)
- *r |= Mono_Posix_FilePermissions_S_IFBLK;
-#endif /* ndef S_IFBLK */
-#ifdef S_IFREG
- if ((x & S_IFREG) == S_IFREG)
- *r |= Mono_Posix_FilePermissions_S_IFREG;
-#endif /* ndef S_IFREG */
-#ifdef S_IFIFO
- if ((x & S_IFIFO) == S_IFIFO)
- *r |= Mono_Posix_FilePermissions_S_IFIFO;
-#endif /* ndef S_IFIFO */
-#ifdef S_IFLNK
- if ((x & S_IFLNK) == S_IFLNK)
- *r |= Mono_Posix_FilePermissions_S_IFLNK;
-#endif /* ndef S_IFLNK */
-#ifdef S_IFSOCK
- if ((x & S_IFSOCK) == S_IFSOCK)
- *r |= Mono_Posix_FilePermissions_S_IFSOCK;
-#endif /* ndef S_IFSOCK */
- return 0;
-}
-
-int Mono_Posix_FromFcntlCommand (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_FcntlCommand_F_DUPFD)
-#ifdef F_DUPFD
- {*r = F_DUPFD; return 0;}
-#else /* def F_DUPFD */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_DUPFD */
- if (x == Mono_Posix_FcntlCommand_F_GETFD)
-#ifdef F_GETFD
- {*r = F_GETFD; return 0;}
-#else /* def F_GETFD */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETFD */
- if (x == Mono_Posix_FcntlCommand_F_SETFD)
-#ifdef F_SETFD
- {*r = F_SETFD; return 0;}
-#else /* def F_SETFD */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETFD */
- if (x == Mono_Posix_FcntlCommand_F_GETFL)
-#ifdef F_GETFL
- {*r = F_GETFL; return 0;}
-#else /* def F_GETFL */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETFL */
- if (x == Mono_Posix_FcntlCommand_F_SETFL)
-#ifdef F_SETFL
- {*r = F_SETFL; return 0;}
-#else /* def F_SETFL */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETFL */
- if (x == Mono_Posix_FcntlCommand_F_GETLK)
-#ifdef F_GETLK
- {*r = F_GETLK; return 0;}
-#else /* def F_GETLK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETLK */
- if (x == Mono_Posix_FcntlCommand_F_SETLK)
-#ifdef F_SETLK
- {*r = F_SETLK; return 0;}
-#else /* def F_SETLK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETLK */
- if (x == Mono_Posix_FcntlCommand_F_SETLKW)
-#ifdef F_SETLKW
- {*r = F_SETLKW; return 0;}
-#else /* def F_SETLKW */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETLKW */
- if (x == Mono_Posix_FcntlCommand_F_SETOWN)
-#ifdef F_SETOWN
- {*r = F_SETOWN; return 0;}
-#else /* def F_SETOWN */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETOWN */
- if (x == Mono_Posix_FcntlCommand_F_GETOWN)
-#ifdef F_GETOWN
- {*r = F_GETOWN; return 0;}
-#else /* def F_GETOWN */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETOWN */
- if (x == Mono_Posix_FcntlCommand_F_SETSIG)
-#ifdef F_SETSIG
- {*r = F_SETSIG; return 0;}
-#else /* def F_SETSIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETSIG */
- if (x == Mono_Posix_FcntlCommand_F_GETSIG)
-#ifdef F_GETSIG
- {*r = F_GETSIG; return 0;}
-#else /* def F_GETSIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETSIG */
- if (x == Mono_Posix_FcntlCommand_F_SETLEASE)
-#ifdef F_SETLEASE
- {*r = F_SETLEASE; return 0;}
-#else /* def F_SETLEASE */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_SETLEASE */
- if (x == Mono_Posix_FcntlCommand_F_GETLEASE)
-#ifdef F_GETLEASE
- {*r = F_GETLEASE; return 0;}
-#else /* def F_GETLEASE */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_GETLEASE */
- if (x == Mono_Posix_FcntlCommand_F_NOTIFY)
-#ifdef F_NOTIFY
- {*r = F_NOTIFY; return 0;}
-#else /* def F_NOTIFY */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_NOTIFY */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToFcntlCommand (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef F_DUPFD
- if (x == F_DUPFD)
- {*r = Mono_Posix_FcntlCommand_F_DUPFD; return 0;}
-#endif /* ndef F_DUPFD */
-#ifdef F_GETFD
- if (x == F_GETFD)
- {*r = Mono_Posix_FcntlCommand_F_GETFD; return 0;}
-#endif /* ndef F_GETFD */
-#ifdef F_SETFD
- if (x == F_SETFD)
- {*r = Mono_Posix_FcntlCommand_F_SETFD; return 0;}
-#endif /* ndef F_SETFD */
-#ifdef F_GETFL
- if (x == F_GETFL)
- {*r = Mono_Posix_FcntlCommand_F_GETFL; return 0;}
-#endif /* ndef F_GETFL */
-#ifdef F_SETFL
- if (x == F_SETFL)
- {*r = Mono_Posix_FcntlCommand_F_SETFL; return 0;}
-#endif /* ndef F_SETFL */
-#ifdef F_GETLK
- if (x == F_GETLK)
- {*r = Mono_Posix_FcntlCommand_F_GETLK; return 0;}
-#endif /* ndef F_GETLK */
-#ifdef F_SETLK
- if (x == F_SETLK)
- {*r = Mono_Posix_FcntlCommand_F_SETLK; return 0;}
-#endif /* ndef F_SETLK */
-#ifdef F_SETLKW
- if (x == F_SETLKW)
- {*r = Mono_Posix_FcntlCommand_F_SETLKW; return 0;}
-#endif /* ndef F_SETLKW */
-#ifdef F_SETOWN
- if (x == F_SETOWN)
- {*r = Mono_Posix_FcntlCommand_F_SETOWN; return 0;}
-#endif /* ndef F_SETOWN */
-#ifdef F_GETOWN
- if (x == F_GETOWN)
- {*r = Mono_Posix_FcntlCommand_F_GETOWN; return 0;}
-#endif /* ndef F_GETOWN */
-#ifdef F_SETSIG
- if (x == F_SETSIG)
- {*r = Mono_Posix_FcntlCommand_F_SETSIG; return 0;}
-#endif /* ndef F_SETSIG */
-#ifdef F_GETSIG
- if (x == F_GETSIG)
- {*r = Mono_Posix_FcntlCommand_F_GETSIG; return 0;}
-#endif /* ndef F_GETSIG */
-#ifdef F_SETLEASE
- if (x == F_SETLEASE)
- {*r = Mono_Posix_FcntlCommand_F_SETLEASE; return 0;}
-#endif /* ndef F_SETLEASE */
-#ifdef F_GETLEASE
- if (x == F_GETLEASE)
- {*r = Mono_Posix_FcntlCommand_F_GETLEASE; return 0;}
-#endif /* ndef F_GETLEASE */
-#ifdef F_NOTIFY
- if (x == F_NOTIFY)
- {*r = Mono_Posix_FcntlCommand_F_NOTIFY; return 0;}
-#endif /* ndef F_NOTIFY */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromLockType (short x, short *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_LockType_F_RDLCK)
-#ifdef F_RDLCK
- {*r = F_RDLCK; return 0;}
-#else /* def F_RDLCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_RDLCK */
- if (x == Mono_Posix_LockType_F_WRLCK)
-#ifdef F_WRLCK
- {*r = F_WRLCK; return 0;}
-#else /* def F_WRLCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_WRLCK */
- if (x == Mono_Posix_LockType_F_UNLCK)
-#ifdef F_UNLCK
- {*r = F_UNLCK; return 0;}
-#else /* def F_UNLCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_UNLCK */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToLockType (short x, short *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef F_RDLCK
- if (x == F_RDLCK)
- {*r = Mono_Posix_LockType_F_RDLCK; return 0;}
-#endif /* ndef F_RDLCK */
-#ifdef F_WRLCK
- if (x == F_WRLCK)
- {*r = Mono_Posix_LockType_F_WRLCK; return 0;}
-#endif /* ndef F_WRLCK */
-#ifdef F_UNLCK
- if (x == F_UNLCK)
- {*r = Mono_Posix_LockType_F_UNLCK; return 0;}
-#endif /* ndef F_UNLCK */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromSeekFlags (short x, short *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_SeekFlags_SEEK_SET)
-#ifdef SEEK_SET
- {*r = SEEK_SET; return 0;}
-#else /* def SEEK_SET */
- {errno = EINVAL; return -1;}
-#endif /* ndef SEEK_SET */
- if (x == Mono_Posix_SeekFlags_SEEK_CUR)
-#ifdef SEEK_CUR
- {*r = SEEK_CUR; return 0;}
-#else /* def SEEK_CUR */
- {errno = EINVAL; return -1;}
-#endif /* ndef SEEK_CUR */
- if (x == Mono_Posix_SeekFlags_SEEK_END)
-#ifdef SEEK_END
- {*r = SEEK_END; return 0;}
-#else /* def SEEK_END */
- {errno = EINVAL; return -1;}
-#endif /* ndef SEEK_END */
- if (x == Mono_Posix_SeekFlags_L_SET)
-#ifdef L_SET
- {*r = L_SET; return 0;}
-#else /* def L_SET */
- {errno = EINVAL; return -1;}
-#endif /* ndef L_SET */
- if (x == Mono_Posix_SeekFlags_L_INCR)
-#ifdef L_INCR
- {*r = L_INCR; return 0;}
-#else /* def L_INCR */
- {errno = EINVAL; return -1;}
-#endif /* ndef L_INCR */
- if (x == Mono_Posix_SeekFlags_L_XTND)
-#ifdef L_XTND
- {*r = L_XTND; return 0;}
-#else /* def L_XTND */
- {errno = EINVAL; return -1;}
-#endif /* ndef L_XTND */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToSeekFlags (short x, short *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef SEEK_SET
- if (x == SEEK_SET)
- {*r = Mono_Posix_SeekFlags_SEEK_SET; return 0;}
-#endif /* ndef SEEK_SET */
-#ifdef SEEK_CUR
- if (x == SEEK_CUR)
- {*r = Mono_Posix_SeekFlags_SEEK_CUR; return 0;}
-#endif /* ndef SEEK_CUR */
-#ifdef SEEK_END
- if (x == SEEK_END)
- {*r = Mono_Posix_SeekFlags_SEEK_END; return 0;}
-#endif /* ndef SEEK_END */
-#ifdef L_SET
- if (x == L_SET)
- {*r = Mono_Posix_SeekFlags_L_SET; return 0;}
-#endif /* ndef L_SET */
-#ifdef L_INCR
- if (x == L_INCR)
- {*r = Mono_Posix_SeekFlags_L_INCR; return 0;}
-#endif /* ndef L_INCR */
-#ifdef L_XTND
- if (x == L_XTND)
- {*r = Mono_Posix_SeekFlags_L_XTND; return 0;}
-#endif /* ndef L_XTND */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromDirectoryNotifyFlags (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ACCESS) == Mono_Posix_DirectoryNotifyFlags_DN_ACCESS)
-#ifdef DN_ACCESS
- *r |= DN_ACCESS;
-#else /* def DN_ACCESS */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_ACCESS */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MODIFY) == Mono_Posix_DirectoryNotifyFlags_DN_MODIFY)
-#ifdef DN_MODIFY
- *r |= DN_MODIFY;
-#else /* def DN_MODIFY */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_MODIFY */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_CREATE) == Mono_Posix_DirectoryNotifyFlags_DN_CREATE)
-#ifdef DN_CREATE
- *r |= DN_CREATE;
-#else /* def DN_CREATE */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_CREATE */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_DELETE) == Mono_Posix_DirectoryNotifyFlags_DN_DELETE)
-#ifdef DN_DELETE
- *r |= DN_DELETE;
-#else /* def DN_DELETE */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_DELETE */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_RENAME) == Mono_Posix_DirectoryNotifyFlags_DN_RENAME)
-#ifdef DN_RENAME
- *r |= DN_RENAME;
-#else /* def DN_RENAME */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_RENAME */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB) == Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB)
-#ifdef DN_ATTRIB
- *r |= DN_ATTRIB;
-#else /* def DN_ATTRIB */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_ATTRIB */
- if ((x & Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT) == Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT)
-#ifdef DN_MULTISHOT
- *r |= DN_MULTISHOT;
-#else /* def DN_MULTISHOT */
- {errno = EINVAL; return -1;}
-#endif /* ndef DN_MULTISHOT */
- return 0;
-}
-
-int Mono_Posix_ToDirectoryNotifyFlags (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef DN_ACCESS
- if ((x & DN_ACCESS) == DN_ACCESS)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_ACCESS;
-#endif /* ndef DN_ACCESS */
-#ifdef DN_MODIFY
- if ((x & DN_MODIFY) == DN_MODIFY)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_MODIFY;
-#endif /* ndef DN_MODIFY */
-#ifdef DN_CREATE
- if ((x & DN_CREATE) == DN_CREATE)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_CREATE;
-#endif /* ndef DN_CREATE */
-#ifdef DN_DELETE
- if ((x & DN_DELETE) == DN_DELETE)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_DELETE;
-#endif /* ndef DN_DELETE */
-#ifdef DN_RENAME
- if ((x & DN_RENAME) == DN_RENAME)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_RENAME;
-#endif /* ndef DN_RENAME */
-#ifdef DN_ATTRIB
- if ((x & DN_ATTRIB) == DN_ATTRIB)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_ATTRIB;
-#endif /* ndef DN_ATTRIB */
-#ifdef DN_MULTISHOT
- if ((x & DN_MULTISHOT) == DN_MULTISHOT)
- *r |= Mono_Posix_DirectoryNotifyFlags_DN_MULTISHOT;
-#endif /* ndef DN_MULTISHOT */
- return 0;
-}
-
-int Mono_Posix_FromPosixFadviseAdvice (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL)
-#ifdef POSIX_FADV_NORMAL
- {*r = POSIX_FADV_NORMAL; return 0;}
-#else /* def POSIX_FADV_NORMAL */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_NORMAL */
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM)
-#ifdef POSIX_FADV_RANDOM
- {*r = POSIX_FADV_RANDOM; return 0;}
-#else /* def POSIX_FADV_RANDOM */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_RANDOM */
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL)
-#ifdef POSIX_FADV_SEQUENTIAL
- {*r = POSIX_FADV_SEQUENTIAL; return 0;}
-#else /* def POSIX_FADV_SEQUENTIAL */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_SEQUENTIAL */
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED)
-#ifdef POSIX_FADV_WILLNEED
- {*r = POSIX_FADV_WILLNEED; return 0;}
-#else /* def POSIX_FADV_WILLNEED */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_WILLNEED */
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED)
-#ifdef POSIX_FADV_DONTNEED
- {*r = POSIX_FADV_DONTNEED; return 0;}
-#else /* def POSIX_FADV_DONTNEED */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_DONTNEED */
- if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE)
-#ifdef POSIX_FADV_NOREUSE
- {*r = POSIX_FADV_NOREUSE; return 0;}
-#else /* def POSIX_FADV_NOREUSE */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_FADV_NOREUSE */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToPosixFadviseAdvice (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef POSIX_FADV_NORMAL
- if (x == POSIX_FADV_NORMAL)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL; return 0;}
-#endif /* ndef POSIX_FADV_NORMAL */
-#ifdef POSIX_FADV_RANDOM
- if (x == POSIX_FADV_RANDOM)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM; return 0;}
-#endif /* ndef POSIX_FADV_RANDOM */
-#ifdef POSIX_FADV_SEQUENTIAL
- if (x == POSIX_FADV_SEQUENTIAL)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL; return 0;}
-#endif /* ndef POSIX_FADV_SEQUENTIAL */
-#ifdef POSIX_FADV_WILLNEED
- if (x == POSIX_FADV_WILLNEED)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED; return 0;}
-#endif /* ndef POSIX_FADV_WILLNEED */
-#ifdef POSIX_FADV_DONTNEED
- if (x == POSIX_FADV_DONTNEED)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED; return 0;}
-#endif /* ndef POSIX_FADV_DONTNEED */
-#ifdef POSIX_FADV_NOREUSE
- if (x == POSIX_FADV_NOREUSE)
- {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE; return 0;}
-#endif /* ndef POSIX_FADV_NOREUSE */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromPosixMadviseAdvice (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL)
-#ifdef POSIX_MADV_NORMAL
- {*r = POSIX_MADV_NORMAL; return 0;}
-#else /* def POSIX_MADV_NORMAL */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_MADV_NORMAL */
- if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM)
-#ifdef POSIX_MADV_RANDOM
- {*r = POSIX_MADV_RANDOM; return 0;}
-#else /* def POSIX_MADV_RANDOM */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_MADV_RANDOM */
- if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL)
-#ifdef POSIX_MADV_SEQUENTIAL
- {*r = POSIX_MADV_SEQUENTIAL; return 0;}
-#else /* def POSIX_MADV_SEQUENTIAL */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_MADV_SEQUENTIAL */
- if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED)
-#ifdef POSIX_MADV_WILLNEED
- {*r = POSIX_MADV_WILLNEED; return 0;}
-#else /* def POSIX_MADV_WILLNEED */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_MADV_WILLNEED */
- if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED)
-#ifdef POSIX_MADV_DONTNEED
- {*r = POSIX_MADV_DONTNEED; return 0;}
-#else /* def POSIX_MADV_DONTNEED */
- {errno = EINVAL; return -1;}
-#endif /* ndef POSIX_MADV_DONTNEED */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToPosixMadviseAdvice (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef POSIX_MADV_NORMAL
- if (x == POSIX_MADV_NORMAL)
- {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL; return 0;}
-#endif /* ndef POSIX_MADV_NORMAL */
-#ifdef POSIX_MADV_RANDOM
- if (x == POSIX_MADV_RANDOM)
- {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM; return 0;}
-#endif /* ndef POSIX_MADV_RANDOM */
-#ifdef POSIX_MADV_SEQUENTIAL
- if (x == POSIX_MADV_SEQUENTIAL)
- {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL; return 0;}
-#endif /* ndef POSIX_MADV_SEQUENTIAL */
-#ifdef POSIX_MADV_WILLNEED
- if (x == POSIX_MADV_WILLNEED)
- {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED; return 0;}
-#endif /* ndef POSIX_MADV_WILLNEED */
-#ifdef POSIX_MADV_DONTNEED
- if (x == POSIX_MADV_DONTNEED)
- {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED; return 0;}
-#endif /* ndef POSIX_MADV_DONTNEED */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromSignum (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_Signum_SIGHUP)
-#ifdef SIGHUP
- {*r = SIGHUP; return 0;}
-#else /* def SIGHUP */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGHUP */
- if (x == Mono_Posix_Signum_SIGINT)
-#ifdef SIGINT
- {*r = SIGINT; return 0;}
-#else /* def SIGINT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGINT */
- if (x == Mono_Posix_Signum_SIGQUIT)
-#ifdef SIGQUIT
- {*r = SIGQUIT; return 0;}
-#else /* def SIGQUIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGQUIT */
- if (x == Mono_Posix_Signum_SIGILL)
-#ifdef SIGILL
- {*r = SIGILL; return 0;}
-#else /* def SIGILL */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGILL */
- if (x == Mono_Posix_Signum_SIGTRAP)
-#ifdef SIGTRAP
- {*r = SIGTRAP; return 0;}
-#else /* def SIGTRAP */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGTRAP */
- if (x == Mono_Posix_Signum_SIGABRT)
-#ifdef SIGABRT
- {*r = SIGABRT; return 0;}
-#else /* def SIGABRT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGABRT */
- if (x == Mono_Posix_Signum_SIGIOT)
-#ifdef SIGIOT
- {*r = SIGIOT; return 0;}
-#else /* def SIGIOT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGIOT */
- if (x == Mono_Posix_Signum_SIGBUS)
-#ifdef SIGBUS
- {*r = SIGBUS; return 0;}
-#else /* def SIGBUS */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGBUS */
- if (x == Mono_Posix_Signum_SIGFPE)
-#ifdef SIGFPE
- {*r = SIGFPE; return 0;}
-#else /* def SIGFPE */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGFPE */
- if (x == Mono_Posix_Signum_SIGKILL)
-#ifdef SIGKILL
- {*r = SIGKILL; return 0;}
-#else /* def SIGKILL */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGKILL */
- if (x == Mono_Posix_Signum_SIGUSR1)
-#ifdef SIGUSR1
- {*r = SIGUSR1; return 0;}
-#else /* def SIGUSR1 */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGUSR1 */
- if (x == Mono_Posix_Signum_SIGSEGV)
-#ifdef SIGSEGV
- {*r = SIGSEGV; return 0;}
-#else /* def SIGSEGV */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGSEGV */
- if (x == Mono_Posix_Signum_SIGUSR2)
-#ifdef SIGUSR2
- {*r = SIGUSR2; return 0;}
-#else /* def SIGUSR2 */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGUSR2 */
- if (x == Mono_Posix_Signum_SIGPIPE)
-#ifdef SIGPIPE
- {*r = SIGPIPE; return 0;}
-#else /* def SIGPIPE */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGPIPE */
- if (x == Mono_Posix_Signum_SIGALRM)
-#ifdef SIGALRM
- {*r = SIGALRM; return 0;}
-#else /* def SIGALRM */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGALRM */
- if (x == Mono_Posix_Signum_SIGTERM)
-#ifdef SIGTERM
- {*r = SIGTERM; return 0;}
-#else /* def SIGTERM */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGTERM */
- if (x == Mono_Posix_Signum_SIGSTKFLT)
-#ifdef SIGSTKFLT
- {*r = SIGSTKFLT; return 0;}
-#else /* def SIGSTKFLT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGSTKFLT */
- if (x == Mono_Posix_Signum_SIGCHLD)
-#ifdef SIGCHLD
- {*r = SIGCHLD; return 0;}
-#else /* def SIGCHLD */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGCHLD */
- if (x == Mono_Posix_Signum_SIGCLD)
-#ifdef SIGCLD
- {*r = SIGCLD; return 0;}
-#else /* def SIGCLD */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGCLD */
- if (x == Mono_Posix_Signum_SIGCONT)
-#ifdef SIGCONT
- {*r = SIGCONT; return 0;}
-#else /* def SIGCONT */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGCONT */
- if (x == Mono_Posix_Signum_SIGSTOP)
-#ifdef SIGSTOP
- {*r = SIGSTOP; return 0;}
-#else /* def SIGSTOP */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGSTOP */
- if (x == Mono_Posix_Signum_SIGTSTP)
-#ifdef SIGTSTP
- {*r = SIGTSTP; return 0;}
-#else /* def SIGTSTP */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGTSTP */
- if (x == Mono_Posix_Signum_SIGTTIN)
-#ifdef SIGTTIN
- {*r = SIGTTIN; return 0;}
-#else /* def SIGTTIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGTTIN */
- if (x == Mono_Posix_Signum_SIGTTOU)
-#ifdef SIGTTOU
- {*r = SIGTTOU; return 0;}
-#else /* def SIGTTOU */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGTTOU */
- if (x == Mono_Posix_Signum_SIGURG)
-#ifdef SIGURG
- {*r = SIGURG; return 0;}
-#else /* def SIGURG */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGURG */
- if (x == Mono_Posix_Signum_SIGXCPU)
-#ifdef SIGXCPU
- {*r = SIGXCPU; return 0;}
-#else /* def SIGXCPU */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGXCPU */
- if (x == Mono_Posix_Signum_SIGXFSZ)
-#ifdef SIGXFSZ
- {*r = SIGXFSZ; return 0;}
-#else /* def SIGXFSZ */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGXFSZ */
- if (x == Mono_Posix_Signum_SIGVTALRM)
-#ifdef SIGVTALRM
- {*r = SIGVTALRM; return 0;}
-#else /* def SIGVTALRM */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGVTALRM */
- if (x == Mono_Posix_Signum_SIGPROF)
-#ifdef SIGPROF
- {*r = SIGPROF; return 0;}
-#else /* def SIGPROF */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGPROF */
- if (x == Mono_Posix_Signum_SIGWINCH)
-#ifdef SIGWINCH
- {*r = SIGWINCH; return 0;}
-#else /* def SIGWINCH */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGWINCH */
- if (x == Mono_Posix_Signum_SIGIO)
-#ifdef SIGIO
- {*r = SIGIO; return 0;}
-#else /* def SIGIO */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGIO */
- if (x == Mono_Posix_Signum_SIGPOLL)
-#ifdef SIGPOLL
- {*r = SIGPOLL; return 0;}
-#else /* def SIGPOLL */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGPOLL */
- if (x == Mono_Posix_Signum_SIGPWR)
-#ifdef SIGPWR
- {*r = SIGPWR; return 0;}
-#else /* def SIGPWR */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGPWR */
- if (x == Mono_Posix_Signum_SIGSYS)
-#ifdef SIGSYS
- {*r = SIGSYS; return 0;}
-#else /* def SIGSYS */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGSYS */
- if (x == Mono_Posix_Signum_SIGUNUSED)
-#ifdef SIGUNUSED
- {*r = SIGUNUSED; return 0;}
-#else /* def SIGUNUSED */
- {errno = EINVAL; return -1;}
-#endif /* ndef SIGUNUSED */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToSignum (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef SIGHUP
- if (x == SIGHUP)
- {*r = Mono_Posix_Signum_SIGHUP; return 0;}
-#endif /* ndef SIGHUP */
-#ifdef SIGINT
- if (x == SIGINT)
- {*r = Mono_Posix_Signum_SIGINT; return 0;}
-#endif /* ndef SIGINT */
-#ifdef SIGQUIT
- if (x == SIGQUIT)
- {*r = Mono_Posix_Signum_SIGQUIT; return 0;}
-#endif /* ndef SIGQUIT */
-#ifdef SIGILL
- if (x == SIGILL)
- {*r = Mono_Posix_Signum_SIGILL; return 0;}
-#endif /* ndef SIGILL */
-#ifdef SIGTRAP
- if (x == SIGTRAP)
- {*r = Mono_Posix_Signum_SIGTRAP; return 0;}
-#endif /* ndef SIGTRAP */
-#ifdef SIGABRT
- if (x == SIGABRT)
- {*r = Mono_Posix_Signum_SIGABRT; return 0;}
-#endif /* ndef SIGABRT */
-#ifdef SIGIOT
- if (x == SIGIOT)
- {*r = Mono_Posix_Signum_SIGIOT; return 0;}
-#endif /* ndef SIGIOT */
-#ifdef SIGBUS
- if (x == SIGBUS)
- {*r = Mono_Posix_Signum_SIGBUS; return 0;}
-#endif /* ndef SIGBUS */
-#ifdef SIGFPE
- if (x == SIGFPE)
- {*r = Mono_Posix_Signum_SIGFPE; return 0;}
-#endif /* ndef SIGFPE */
-#ifdef SIGKILL
- if (x == SIGKILL)
- {*r = Mono_Posix_Signum_SIGKILL; return 0;}
-#endif /* ndef SIGKILL */
-#ifdef SIGUSR1
- if (x == SIGUSR1)
- {*r = Mono_Posix_Signum_SIGUSR1; return 0;}
-#endif /* ndef SIGUSR1 */
-#ifdef SIGSEGV
- if (x == SIGSEGV)
- {*r = Mono_Posix_Signum_SIGSEGV; return 0;}
-#endif /* ndef SIGSEGV */
-#ifdef SIGUSR2
- if (x == SIGUSR2)
- {*r = Mono_Posix_Signum_SIGUSR2; return 0;}
-#endif /* ndef SIGUSR2 */
-#ifdef SIGPIPE
- if (x == SIGPIPE)
- {*r = Mono_Posix_Signum_SIGPIPE; return 0;}
-#endif /* ndef SIGPIPE */
-#ifdef SIGALRM
- if (x == SIGALRM)
- {*r = Mono_Posix_Signum_SIGALRM; return 0;}
-#endif /* ndef SIGALRM */
-#ifdef SIGTERM
- if (x == SIGTERM)
- {*r = Mono_Posix_Signum_SIGTERM; return 0;}
-#endif /* ndef SIGTERM */
-#ifdef SIGSTKFLT
- if (x == SIGSTKFLT)
- {*r = Mono_Posix_Signum_SIGSTKFLT; return 0;}
-#endif /* ndef SIGSTKFLT */
-#ifdef SIGCHLD
- if (x == SIGCHLD)
- {*r = Mono_Posix_Signum_SIGCHLD; return 0;}
-#endif /* ndef SIGCHLD */
-#ifdef SIGCLD
- if (x == SIGCLD)
- {*r = Mono_Posix_Signum_SIGCLD; return 0;}
-#endif /* ndef SIGCLD */
-#ifdef SIGCONT
- if (x == SIGCONT)
- {*r = Mono_Posix_Signum_SIGCONT; return 0;}
-#endif /* ndef SIGCONT */
-#ifdef SIGSTOP
- if (x == SIGSTOP)
- {*r = Mono_Posix_Signum_SIGSTOP; return 0;}
-#endif /* ndef SIGSTOP */
-#ifdef SIGTSTP
- if (x == SIGTSTP)
- {*r = Mono_Posix_Signum_SIGTSTP; return 0;}
-#endif /* ndef SIGTSTP */
-#ifdef SIGTTIN
- if (x == SIGTTIN)
- {*r = Mono_Posix_Signum_SIGTTIN; return 0;}
-#endif /* ndef SIGTTIN */
-#ifdef SIGTTOU
- if (x == SIGTTOU)
- {*r = Mono_Posix_Signum_SIGTTOU; return 0;}
-#endif /* ndef SIGTTOU */
-#ifdef SIGURG
- if (x == SIGURG)
- {*r = Mono_Posix_Signum_SIGURG; return 0;}
-#endif /* ndef SIGURG */
-#ifdef SIGXCPU
- if (x == SIGXCPU)
- {*r = Mono_Posix_Signum_SIGXCPU; return 0;}
-#endif /* ndef SIGXCPU */
-#ifdef SIGXFSZ
- if (x == SIGXFSZ)
- {*r = Mono_Posix_Signum_SIGXFSZ; return 0;}
-#endif /* ndef SIGXFSZ */
-#ifdef SIGVTALRM
- if (x == SIGVTALRM)
- {*r = Mono_Posix_Signum_SIGVTALRM; return 0;}
-#endif /* ndef SIGVTALRM */
-#ifdef SIGPROF
- if (x == SIGPROF)
- {*r = Mono_Posix_Signum_SIGPROF; return 0;}
-#endif /* ndef SIGPROF */
-#ifdef SIGWINCH
- if (x == SIGWINCH)
- {*r = Mono_Posix_Signum_SIGWINCH; return 0;}
-#endif /* ndef SIGWINCH */
-#ifdef SIGIO
- if (x == SIGIO)
- {*r = Mono_Posix_Signum_SIGIO; return 0;}
-#endif /* ndef SIGIO */
-#ifdef SIGPOLL
- if (x == SIGPOLL)
- {*r = Mono_Posix_Signum_SIGPOLL; return 0;}
-#endif /* ndef SIGPOLL */
-#ifdef SIGPWR
- if (x == SIGPWR)
- {*r = Mono_Posix_Signum_SIGPWR; return 0;}
-#endif /* ndef SIGPWR */
-#ifdef SIGSYS
- if (x == SIGSYS)
- {*r = Mono_Posix_Signum_SIGSYS; return 0;}
-#endif /* ndef SIGSYS */
-#ifdef SIGUNUSED
- if (x == SIGUNUSED)
- {*r = Mono_Posix_Signum_SIGUNUSED; return 0;}
-#endif /* ndef SIGUNUSED */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromWaitOptions (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if ((x & Mono_Posix_WaitOptions_WNOHANG) == Mono_Posix_WaitOptions_WNOHANG)
-#ifdef WNOHANG
- *r |= WNOHANG;
-#else /* def WNOHANG */
- {errno = EINVAL; return -1;}
-#endif /* ndef WNOHANG */
- if ((x & Mono_Posix_WaitOptions_WUNTRACED) == Mono_Posix_WaitOptions_WUNTRACED)
-#ifdef WUNTRACED
- *r |= WUNTRACED;
-#else /* def WUNTRACED */
- {errno = EINVAL; return -1;}
-#endif /* ndef WUNTRACED */
- return 0;
-}
-
-int Mono_Posix_ToWaitOptions (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef WNOHANG
- if ((x & WNOHANG) == WNOHANG)
- *r |= Mono_Posix_WaitOptions_WNOHANG;
-#endif /* ndef WNOHANG */
-#ifdef WUNTRACED
- if ((x & WUNTRACED) == WUNTRACED)
- *r |= Mono_Posix_WaitOptions_WUNTRACED;
-#endif /* ndef WUNTRACED */
- return 0;
-}
-
-int Mono_Posix_FromAccessMode (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if ((x & Mono_Posix_AccessMode_R_OK) == Mono_Posix_AccessMode_R_OK)
-#ifdef R_OK
- *r |= R_OK;
-#else /* def R_OK */
- {errno = EINVAL; return -1;}
-#endif /* ndef R_OK */
- if ((x & Mono_Posix_AccessMode_W_OK) == Mono_Posix_AccessMode_W_OK)
-#ifdef W_OK
- *r |= W_OK;
-#else /* def W_OK */
- {errno = EINVAL; return -1;}
-#endif /* ndef W_OK */
- if ((x & Mono_Posix_AccessMode_X_OK) == Mono_Posix_AccessMode_X_OK)
-#ifdef X_OK
- *r |= X_OK;
-#else /* def X_OK */
- {errno = EINVAL; return -1;}
-#endif /* ndef X_OK */
- if ((x & Mono_Posix_AccessMode_F_OK) == Mono_Posix_AccessMode_F_OK)
-#ifdef F_OK
- *r |= F_OK;
-#else /* def F_OK */
- {errno = EINVAL; return -1;}
-#endif /* ndef F_OK */
- return 0;
-}
-
-int Mono_Posix_ToAccessMode (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef R_OK
- if ((x & R_OK) == R_OK)
- *r |= Mono_Posix_AccessMode_R_OK;
-#endif /* ndef R_OK */
-#ifdef W_OK
- if ((x & W_OK) == W_OK)
- *r |= Mono_Posix_AccessMode_W_OK;
-#endif /* ndef W_OK */
-#ifdef X_OK
- if ((x & X_OK) == X_OK)
- *r |= Mono_Posix_AccessMode_X_OK;
-#endif /* ndef X_OK */
-#ifdef F_OK
- if ((x & F_OK) == F_OK)
- *r |= Mono_Posix_AccessMode_F_OK;
-#endif /* ndef F_OK */
- return 0;
-}
-
-int Mono_Posix_FromPathConf (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_PathConf__PC_LINK_MAX)
-#ifdef _PC_LINK_MAX
- {*r = _PC_LINK_MAX; return 0;}
-#else /* def _PC_LINK_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_LINK_MAX */
- if (x == Mono_Posix_PathConf__PC_MAX_CANON)
-#ifdef _PC_MAX_CANON
- {*r = _PC_MAX_CANON; return 0;}
-#else /* def _PC_MAX_CANON */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_MAX_CANON */
- if (x == Mono_Posix_PathConf__PC_MAX_INPUT)
-#ifdef _PC_MAX_INPUT
- {*r = _PC_MAX_INPUT; return 0;}
-#else /* def _PC_MAX_INPUT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_MAX_INPUT */
- if (x == Mono_Posix_PathConf__PC_NAME_MAX)
-#ifdef _PC_NAME_MAX
- {*r = _PC_NAME_MAX; return 0;}
-#else /* def _PC_NAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_NAME_MAX */
- if (x == Mono_Posix_PathConf__PC_PATH_MAX)
-#ifdef _PC_PATH_MAX
- {*r = _PC_PATH_MAX; return 0;}
-#else /* def _PC_PATH_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_PATH_MAX */
- if (x == Mono_Posix_PathConf__PC_PIPE_BUF)
-#ifdef _PC_PIPE_BUF
- {*r = _PC_PIPE_BUF; return 0;}
-#else /* def _PC_PIPE_BUF */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_PIPE_BUF */
- if (x == Mono_Posix_PathConf__PC_CHOWN_RESTRICTED)
-#ifdef _PC_CHOWN_RESTRICTED
- {*r = _PC_CHOWN_RESTRICTED; return 0;}
-#else /* def _PC_CHOWN_RESTRICTED */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_CHOWN_RESTRICTED */
- if (x == Mono_Posix_PathConf__PC_NO_TRUNC)
-#ifdef _PC_NO_TRUNC
- {*r = _PC_NO_TRUNC; return 0;}
-#else /* def _PC_NO_TRUNC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_NO_TRUNC */
- if (x == Mono_Posix_PathConf__PC_VDISABLE)
-#ifdef _PC_VDISABLE
- {*r = _PC_VDISABLE; return 0;}
-#else /* def _PC_VDISABLE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_VDISABLE */
- if (x == Mono_Posix_PathConf__PC_SYNC_IO)
-#ifdef _PC_SYNC_IO
- {*r = _PC_SYNC_IO; return 0;}
-#else /* def _PC_SYNC_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_SYNC_IO */
- if (x == Mono_Posix_PathConf__PC_ASYNC_IO)
-#ifdef _PC_ASYNC_IO
- {*r = _PC_ASYNC_IO; return 0;}
-#else /* def _PC_ASYNC_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_ASYNC_IO */
- if (x == Mono_Posix_PathConf__PC_PRIO_IO)
-#ifdef _PC_PRIO_IO
- {*r = _PC_PRIO_IO; return 0;}
-#else /* def _PC_PRIO_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_PRIO_IO */
- if (x == Mono_Posix_PathConf__PC_SOCK_MAXBUF)
-#ifdef _PC_SOCK_MAXBUF
- {*r = _PC_SOCK_MAXBUF; return 0;}
-#else /* def _PC_SOCK_MAXBUF */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_SOCK_MAXBUF */
- if (x == Mono_Posix_PathConf__PC_FILESIZEBITS)
-#ifdef _PC_FILESIZEBITS
- {*r = _PC_FILESIZEBITS; return 0;}
-#else /* def _PC_FILESIZEBITS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_FILESIZEBITS */
- if (x == Mono_Posix_PathConf__PC_REC_INCR_XFER_SIZE)
-#ifdef _PC_REC_INCR_XFER_SIZE
- {*r = _PC_REC_INCR_XFER_SIZE; return 0;}
-#else /* def _PC_REC_INCR_XFER_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_REC_INCR_XFER_SIZE */
- if (x == Mono_Posix_PathConf__PC_REC_MAX_XFER_SIZE)
-#ifdef _PC_REC_MAX_XFER_SIZE
- {*r = _PC_REC_MAX_XFER_SIZE; return 0;}
-#else /* def _PC_REC_MAX_XFER_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_REC_MAX_XFER_SIZE */
- if (x == Mono_Posix_PathConf__PC_REC_MIN_XFER_SIZE)
-#ifdef _PC_REC_MIN_XFER_SIZE
- {*r = _PC_REC_MIN_XFER_SIZE; return 0;}
-#else /* def _PC_REC_MIN_XFER_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_REC_MIN_XFER_SIZE */
- if (x == Mono_Posix_PathConf__PC_REC_XFER_ALIGN)
-#ifdef _PC_REC_XFER_ALIGN
- {*r = _PC_REC_XFER_ALIGN; return 0;}
-#else /* def _PC_REC_XFER_ALIGN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_REC_XFER_ALIGN */
- if (x == Mono_Posix_PathConf__PC_ALLOC_SIZE_MIN)
-#ifdef _PC_ALLOC_SIZE_MIN
- {*r = _PC_ALLOC_SIZE_MIN; return 0;}
-#else /* def _PC_ALLOC_SIZE_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_ALLOC_SIZE_MIN */
- if (x == Mono_Posix_PathConf__PC_SYMLINK_MAX)
-#ifdef _PC_SYMLINK_MAX
- {*r = _PC_SYMLINK_MAX; return 0;}
-#else /* def _PC_SYMLINK_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_SYMLINK_MAX */
- if (x == Mono_Posix_PathConf__PC_2_SYMLINKS)
-#ifdef _PC_2_SYMLINKS
- {*r = _PC_2_SYMLINKS; return 0;}
-#else /* def _PC_2_SYMLINKS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _PC_2_SYMLINKS */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToPathConf (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef _PC_LINK_MAX
- if (x == _PC_LINK_MAX)
- {*r = Mono_Posix_PathConf__PC_LINK_MAX; return 0;}
-#endif /* ndef _PC_LINK_MAX */
-#ifdef _PC_MAX_CANON
- if (x == _PC_MAX_CANON)
- {*r = Mono_Posix_PathConf__PC_MAX_CANON; return 0;}
-#endif /* ndef _PC_MAX_CANON */
-#ifdef _PC_MAX_INPUT
- if (x == _PC_MAX_INPUT)
- {*r = Mono_Posix_PathConf__PC_MAX_INPUT; return 0;}
-#endif /* ndef _PC_MAX_INPUT */
-#ifdef _PC_NAME_MAX
- if (x == _PC_NAME_MAX)
- {*r = Mono_Posix_PathConf__PC_NAME_MAX; return 0;}
-#endif /* ndef _PC_NAME_MAX */
-#ifdef _PC_PATH_MAX
- if (x == _PC_PATH_MAX)
- {*r = Mono_Posix_PathConf__PC_PATH_MAX; return 0;}
-#endif /* ndef _PC_PATH_MAX */
-#ifdef _PC_PIPE_BUF
- if (x == _PC_PIPE_BUF)
- {*r = Mono_Posix_PathConf__PC_PIPE_BUF; return 0;}
-#endif /* ndef _PC_PIPE_BUF */
-#ifdef _PC_CHOWN_RESTRICTED
- if (x == _PC_CHOWN_RESTRICTED)
- {*r = Mono_Posix_PathConf__PC_CHOWN_RESTRICTED; return 0;}
-#endif /* ndef _PC_CHOWN_RESTRICTED */
-#ifdef _PC_NO_TRUNC
- if (x == _PC_NO_TRUNC)
- {*r = Mono_Posix_PathConf__PC_NO_TRUNC; return 0;}
-#endif /* ndef _PC_NO_TRUNC */
-#ifdef _PC_VDISABLE
- if (x == _PC_VDISABLE)
- {*r = Mono_Posix_PathConf__PC_VDISABLE; return 0;}
-#endif /* ndef _PC_VDISABLE */
-#ifdef _PC_SYNC_IO
- if (x == _PC_SYNC_IO)
- {*r = Mono_Posix_PathConf__PC_SYNC_IO; return 0;}
-#endif /* ndef _PC_SYNC_IO */
-#ifdef _PC_ASYNC_IO
- if (x == _PC_ASYNC_IO)
- {*r = Mono_Posix_PathConf__PC_ASYNC_IO; return 0;}
-#endif /* ndef _PC_ASYNC_IO */
-#ifdef _PC_PRIO_IO
- if (x == _PC_PRIO_IO)
- {*r = Mono_Posix_PathConf__PC_PRIO_IO; return 0;}
-#endif /* ndef _PC_PRIO_IO */
-#ifdef _PC_SOCK_MAXBUF
- if (x == _PC_SOCK_MAXBUF)
- {*r = Mono_Posix_PathConf__PC_SOCK_MAXBUF; return 0;}
-#endif /* ndef _PC_SOCK_MAXBUF */
-#ifdef _PC_FILESIZEBITS
- if (x == _PC_FILESIZEBITS)
- {*r = Mono_Posix_PathConf__PC_FILESIZEBITS; return 0;}
-#endif /* ndef _PC_FILESIZEBITS */
-#ifdef _PC_REC_INCR_XFER_SIZE
- if (x == _PC_REC_INCR_XFER_SIZE)
- {*r = Mono_Posix_PathConf__PC_REC_INCR_XFER_SIZE; return 0;}
-#endif /* ndef _PC_REC_INCR_XFER_SIZE */
-#ifdef _PC_REC_MAX_XFER_SIZE
- if (x == _PC_REC_MAX_XFER_SIZE)
- {*r = Mono_Posix_PathConf__PC_REC_MAX_XFER_SIZE; return 0;}
-#endif /* ndef _PC_REC_MAX_XFER_SIZE */
-#ifdef _PC_REC_MIN_XFER_SIZE
- if (x == _PC_REC_MIN_XFER_SIZE)
- {*r = Mono_Posix_PathConf__PC_REC_MIN_XFER_SIZE; return 0;}
-#endif /* ndef _PC_REC_MIN_XFER_SIZE */
-#ifdef _PC_REC_XFER_ALIGN
- if (x == _PC_REC_XFER_ALIGN)
- {*r = Mono_Posix_PathConf__PC_REC_XFER_ALIGN; return 0;}
-#endif /* ndef _PC_REC_XFER_ALIGN */
-#ifdef _PC_ALLOC_SIZE_MIN
- if (x == _PC_ALLOC_SIZE_MIN)
- {*r = Mono_Posix_PathConf__PC_ALLOC_SIZE_MIN; return 0;}
-#endif /* ndef _PC_ALLOC_SIZE_MIN */
-#ifdef _PC_SYMLINK_MAX
- if (x == _PC_SYMLINK_MAX)
- {*r = Mono_Posix_PathConf__PC_SYMLINK_MAX; return 0;}
-#endif /* ndef _PC_SYMLINK_MAX */
-#ifdef _PC_2_SYMLINKS
- if (x == _PC_2_SYMLINKS)
- {*r = Mono_Posix_PathConf__PC_2_SYMLINKS; return 0;}
-#endif /* ndef _PC_2_SYMLINKS */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_FromSysConf (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
- if (x == Mono_Posix_SysConf__SC_ARG_MAX)
-#ifdef _SC_ARG_MAX
- {*r = _SC_ARG_MAX; return 0;}
-#else /* def _SC_ARG_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_ARG_MAX */
- if (x == Mono_Posix_SysConf__SC_CHILD_MAX)
-#ifdef _SC_CHILD_MAX
- {*r = _SC_CHILD_MAX; return 0;}
-#else /* def _SC_CHILD_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CHILD_MAX */
- if (x == Mono_Posix_SysConf__SC_CLK_TCK)
-#ifdef _SC_CLK_TCK
- {*r = _SC_CLK_TCK; return 0;}
-#else /* def _SC_CLK_TCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CLK_TCK */
- if (x == Mono_Posix_SysConf__SC_NGROUPS_MAX)
-#ifdef _SC_NGROUPS_MAX
- {*r = _SC_NGROUPS_MAX; return 0;}
-#else /* def _SC_NGROUPS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NGROUPS_MAX */
- if (x == Mono_Posix_SysConf__SC_OPEN_MAX)
-#ifdef _SC_OPEN_MAX
- {*r = _SC_OPEN_MAX; return 0;}
-#else /* def _SC_OPEN_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_OPEN_MAX */
- if (x == Mono_Posix_SysConf__SC_STREAM_MAX)
-#ifdef _SC_STREAM_MAX
- {*r = _SC_STREAM_MAX; return 0;}
-#else /* def _SC_STREAM_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_STREAM_MAX */
- if (x == Mono_Posix_SysConf__SC_TZNAME_MAX)
-#ifdef _SC_TZNAME_MAX
- {*r = _SC_TZNAME_MAX; return 0;}
-#else /* def _SC_TZNAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TZNAME_MAX */
- if (x == Mono_Posix_SysConf__SC_JOB_CONTROL)
-#ifdef _SC_JOB_CONTROL
- {*r = _SC_JOB_CONTROL; return 0;}
-#else /* def _SC_JOB_CONTROL */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_JOB_CONTROL */
- if (x == Mono_Posix_SysConf__SC_SAVED_IDS)
-#ifdef _SC_SAVED_IDS
- {*r = _SC_SAVED_IDS; return 0;}
-#else /* def _SC_SAVED_IDS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SAVED_IDS */
- if (x == Mono_Posix_SysConf__SC_REALTIME_SIGNALS)
-#ifdef _SC_REALTIME_SIGNALS
- {*r = _SC_REALTIME_SIGNALS; return 0;}
-#else /* def _SC_REALTIME_SIGNALS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_REALTIME_SIGNALS */
- if (x == Mono_Posix_SysConf__SC_PRIORITY_SCHEDULING)
-#ifdef _SC_PRIORITY_SCHEDULING
- {*r = _SC_PRIORITY_SCHEDULING; return 0;}
-#else /* def _SC_PRIORITY_SCHEDULING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PRIORITY_SCHEDULING */
- if (x == Mono_Posix_SysConf__SC_TIMERS)
-#ifdef _SC_TIMERS
- {*r = _SC_TIMERS; return 0;}
-#else /* def _SC_TIMERS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TIMERS */
- if (x == Mono_Posix_SysConf__SC_ASYNCHRONOUS_IO)
-#ifdef _SC_ASYNCHRONOUS_IO
- {*r = _SC_ASYNCHRONOUS_IO; return 0;}
-#else /* def _SC_ASYNCHRONOUS_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_ASYNCHRONOUS_IO */
- if (x == Mono_Posix_SysConf__SC_PRIORITIZED_IO)
-#ifdef _SC_PRIORITIZED_IO
- {*r = _SC_PRIORITIZED_IO; return 0;}
-#else /* def _SC_PRIORITIZED_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PRIORITIZED_IO */
- if (x == Mono_Posix_SysConf__SC_SYNCHRONIZED_IO)
-#ifdef _SC_SYNCHRONIZED_IO
- {*r = _SC_SYNCHRONIZED_IO; return 0;}
-#else /* def _SC_SYNCHRONIZED_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SYNCHRONIZED_IO */
- if (x == Mono_Posix_SysConf__SC_FSYNC)
-#ifdef _SC_FSYNC
- {*r = _SC_FSYNC; return 0;}
-#else /* def _SC_FSYNC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FSYNC */
- if (x == Mono_Posix_SysConf__SC_MAPPED_FILES)
-#ifdef _SC_MAPPED_FILES
- {*r = _SC_MAPPED_FILES; return 0;}
-#else /* def _SC_MAPPED_FILES */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MAPPED_FILES */
- if (x == Mono_Posix_SysConf__SC_MEMLOCK)
-#ifdef _SC_MEMLOCK
- {*r = _SC_MEMLOCK; return 0;}
-#else /* def _SC_MEMLOCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MEMLOCK */
- if (x == Mono_Posix_SysConf__SC_MEMLOCK_RANGE)
-#ifdef _SC_MEMLOCK_RANGE
- {*r = _SC_MEMLOCK_RANGE; return 0;}
-#else /* def _SC_MEMLOCK_RANGE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MEMLOCK_RANGE */
- if (x == Mono_Posix_SysConf__SC_MEMORY_PROTECTION)
-#ifdef _SC_MEMORY_PROTECTION
- {*r = _SC_MEMORY_PROTECTION; return 0;}
-#else /* def _SC_MEMORY_PROTECTION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MEMORY_PROTECTION */
- if (x == Mono_Posix_SysConf__SC_MESSAGE_PASSING)
-#ifdef _SC_MESSAGE_PASSING
- {*r = _SC_MESSAGE_PASSING; return 0;}
-#else /* def _SC_MESSAGE_PASSING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MESSAGE_PASSING */
- if (x == Mono_Posix_SysConf__SC_SEMAPHORES)
-#ifdef _SC_SEMAPHORES
- {*r = _SC_SEMAPHORES; return 0;}
-#else /* def _SC_SEMAPHORES */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SEMAPHORES */
- if (x == Mono_Posix_SysConf__SC_SHARED_MEMORY_OBJECTS)
-#ifdef _SC_SHARED_MEMORY_OBJECTS
- {*r = _SC_SHARED_MEMORY_OBJECTS; return 0;}
-#else /* def _SC_SHARED_MEMORY_OBJECTS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
- if (x == Mono_Posix_SysConf__SC_AIO_LISTIO_MAX)
-#ifdef _SC_AIO_LISTIO_MAX
- {*r = _SC_AIO_LISTIO_MAX; return 0;}
-#else /* def _SC_AIO_LISTIO_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_AIO_LISTIO_MAX */
- if (x == Mono_Posix_SysConf__SC_AIO_MAX)
-#ifdef _SC_AIO_MAX
- {*r = _SC_AIO_MAX; return 0;}
-#else /* def _SC_AIO_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_AIO_MAX */
- if (x == Mono_Posix_SysConf__SC_AIO_PRIO_DELTA_MAX)
-#ifdef _SC_AIO_PRIO_DELTA_MAX
- {*r = _SC_AIO_PRIO_DELTA_MAX; return 0;}
-#else /* def _SC_AIO_PRIO_DELTA_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
- if (x == Mono_Posix_SysConf__SC_DELAYTIMER_MAX)
-#ifdef _SC_DELAYTIMER_MAX
- {*r = _SC_DELAYTIMER_MAX; return 0;}
-#else /* def _SC_DELAYTIMER_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_DELAYTIMER_MAX */
- if (x == Mono_Posix_SysConf__SC_MQ_OPEN_MAX)
-#ifdef _SC_MQ_OPEN_MAX
- {*r = _SC_MQ_OPEN_MAX; return 0;}
-#else /* def _SC_MQ_OPEN_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MQ_OPEN_MAX */
- if (x == Mono_Posix_SysConf__SC_MQ_PRIO_MAX)
-#ifdef _SC_MQ_PRIO_MAX
- {*r = _SC_MQ_PRIO_MAX; return 0;}
-#else /* def _SC_MQ_PRIO_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MQ_PRIO_MAX */
- if (x == Mono_Posix_SysConf__SC_VERSION)
-#ifdef _SC_VERSION
- {*r = _SC_VERSION; return 0;}
-#else /* def _SC_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_VERSION */
- if (x == Mono_Posix_SysConf__SC_PAGESIZE)
-#ifdef _SC_PAGESIZE
- {*r = _SC_PAGESIZE; return 0;}
-#else /* def _SC_PAGESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PAGESIZE */
- if (x == Mono_Posix_SysConf__SC_RTSIG_MAX)
-#ifdef _SC_RTSIG_MAX
- {*r = _SC_RTSIG_MAX; return 0;}
-#else /* def _SC_RTSIG_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_RTSIG_MAX */
- if (x == Mono_Posix_SysConf__SC_SEM_NSEMS_MAX)
-#ifdef _SC_SEM_NSEMS_MAX
- {*r = _SC_SEM_NSEMS_MAX; return 0;}
-#else /* def _SC_SEM_NSEMS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SEM_NSEMS_MAX */
- if (x == Mono_Posix_SysConf__SC_SEM_VALUE_MAX)
-#ifdef _SC_SEM_VALUE_MAX
- {*r = _SC_SEM_VALUE_MAX; return 0;}
-#else /* def _SC_SEM_VALUE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SEM_VALUE_MAX */
- if (x == Mono_Posix_SysConf__SC_SIGQUEUE_MAX)
-#ifdef _SC_SIGQUEUE_MAX
- {*r = _SC_SIGQUEUE_MAX; return 0;}
-#else /* def _SC_SIGQUEUE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SIGQUEUE_MAX */
- if (x == Mono_Posix_SysConf__SC_TIMER_MAX)
-#ifdef _SC_TIMER_MAX
- {*r = _SC_TIMER_MAX; return 0;}
-#else /* def _SC_TIMER_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TIMER_MAX */
- if (x == Mono_Posix_SysConf__SC_BC_BASE_MAX)
-#ifdef _SC_BC_BASE_MAX
- {*r = _SC_BC_BASE_MAX; return 0;}
-#else /* def _SC_BC_BASE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BC_BASE_MAX */
- if (x == Mono_Posix_SysConf__SC_BC_DIM_MAX)
-#ifdef _SC_BC_DIM_MAX
- {*r = _SC_BC_DIM_MAX; return 0;}
-#else /* def _SC_BC_DIM_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BC_DIM_MAX */
- if (x == Mono_Posix_SysConf__SC_BC_SCALE_MAX)
-#ifdef _SC_BC_SCALE_MAX
- {*r = _SC_BC_SCALE_MAX; return 0;}
-#else /* def _SC_BC_SCALE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BC_SCALE_MAX */
- if (x == Mono_Posix_SysConf__SC_BC_STRING_MAX)
-#ifdef _SC_BC_STRING_MAX
- {*r = _SC_BC_STRING_MAX; return 0;}
-#else /* def _SC_BC_STRING_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BC_STRING_MAX */
- if (x == Mono_Posix_SysConf__SC_COLL_WEIGHTS_MAX)
-#ifdef _SC_COLL_WEIGHTS_MAX
- {*r = _SC_COLL_WEIGHTS_MAX; return 0;}
-#else /* def _SC_COLL_WEIGHTS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_COLL_WEIGHTS_MAX */
- if (x == Mono_Posix_SysConf__SC_EQUIV_CLASS_MAX)
-#ifdef _SC_EQUIV_CLASS_MAX
- {*r = _SC_EQUIV_CLASS_MAX; return 0;}
-#else /* def _SC_EQUIV_CLASS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_EQUIV_CLASS_MAX */
- if (x == Mono_Posix_SysConf__SC_EXPR_NEST_MAX)
-#ifdef _SC_EXPR_NEST_MAX
- {*r = _SC_EXPR_NEST_MAX; return 0;}
-#else /* def _SC_EXPR_NEST_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_EXPR_NEST_MAX */
- if (x == Mono_Posix_SysConf__SC_LINE_MAX)
-#ifdef _SC_LINE_MAX
- {*r = _SC_LINE_MAX; return 0;}
-#else /* def _SC_LINE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LINE_MAX */
- if (x == Mono_Posix_SysConf__SC_RE_DUP_MAX)
-#ifdef _SC_RE_DUP_MAX
- {*r = _SC_RE_DUP_MAX; return 0;}
-#else /* def _SC_RE_DUP_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_RE_DUP_MAX */
- if (x == Mono_Posix_SysConf__SC_CHARCLASS_NAME_MAX)
-#ifdef _SC_CHARCLASS_NAME_MAX
- {*r = _SC_CHARCLASS_NAME_MAX; return 0;}
-#else /* def _SC_CHARCLASS_NAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CHARCLASS_NAME_MAX */
- if (x == Mono_Posix_SysConf__SC_2_VERSION)
-#ifdef _SC_2_VERSION
- {*r = _SC_2_VERSION; return 0;}
-#else /* def _SC_2_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_VERSION */
- if (x == Mono_Posix_SysConf__SC_2_C_BIND)
-#ifdef _SC_2_C_BIND
- {*r = _SC_2_C_BIND; return 0;}
-#else /* def _SC_2_C_BIND */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_C_BIND */
- if (x == Mono_Posix_SysConf__SC_2_C_DEV)
-#ifdef _SC_2_C_DEV
- {*r = _SC_2_C_DEV; return 0;}
-#else /* def _SC_2_C_DEV */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_C_DEV */
- if (x == Mono_Posix_SysConf__SC_2_FORT_DEV)
-#ifdef _SC_2_FORT_DEV
- {*r = _SC_2_FORT_DEV; return 0;}
-#else /* def _SC_2_FORT_DEV */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_FORT_DEV */
- if (x == Mono_Posix_SysConf__SC_2_FORT_RUN)
-#ifdef _SC_2_FORT_RUN
- {*r = _SC_2_FORT_RUN; return 0;}
-#else /* def _SC_2_FORT_RUN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_FORT_RUN */
- if (x == Mono_Posix_SysConf__SC_2_SW_DEV)
-#ifdef _SC_2_SW_DEV
- {*r = _SC_2_SW_DEV; return 0;}
-#else /* def _SC_2_SW_DEV */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_SW_DEV */
- if (x == Mono_Posix_SysConf__SC_2_LOCALEDEF)
-#ifdef _SC_2_LOCALEDEF
- {*r = _SC_2_LOCALEDEF; return 0;}
-#else /* def _SC_2_LOCALEDEF */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_LOCALEDEF */
- if (x == Mono_Posix_SysConf__SC_PII)
-#ifdef _SC_PII
- {*r = _SC_PII; return 0;}
-#else /* def _SC_PII */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII */
- if (x == Mono_Posix_SysConf__SC_PII_XTI)
-#ifdef _SC_PII_XTI
- {*r = _SC_PII_XTI; return 0;}
-#else /* def _SC_PII_XTI */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_XTI */
- if (x == Mono_Posix_SysConf__SC_PII_SOCKET)
-#ifdef _SC_PII_SOCKET
- {*r = _SC_PII_SOCKET; return 0;}
-#else /* def _SC_PII_SOCKET */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_SOCKET */
- if (x == Mono_Posix_SysConf__SC_PII_INTERNET)
-#ifdef _SC_PII_INTERNET
- {*r = _SC_PII_INTERNET; return 0;}
-#else /* def _SC_PII_INTERNET */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_INTERNET */
- if (x == Mono_Posix_SysConf__SC_PII_OSI)
-#ifdef _SC_PII_OSI
- {*r = _SC_PII_OSI; return 0;}
-#else /* def _SC_PII_OSI */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_OSI */
- if (x == Mono_Posix_SysConf__SC_POLL)
-#ifdef _SC_POLL
- {*r = _SC_POLL; return 0;}
-#else /* def _SC_POLL */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_POLL */
- if (x == Mono_Posix_SysConf__SC_SELECT)
-#ifdef _SC_SELECT
- {*r = _SC_SELECT; return 0;}
-#else /* def _SC_SELECT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SELECT */
- if (x == Mono_Posix_SysConf__SC_UIO_MAXIOV)
-#ifdef _SC_UIO_MAXIOV
- {*r = _SC_UIO_MAXIOV; return 0;}
-#else /* def _SC_UIO_MAXIOV */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_UIO_MAXIOV */
- if (x == Mono_Posix_SysConf__SC_IOV_MAX)
-#ifdef _SC_IOV_MAX
- {*r = _SC_IOV_MAX; return 0;}
-#else /* def _SC_IOV_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_IOV_MAX */
- if (x == Mono_Posix_SysConf__SC_PII_INTERNET_STREAM)
-#ifdef _SC_PII_INTERNET_STREAM
- {*r = _SC_PII_INTERNET_STREAM; return 0;}
-#else /* def _SC_PII_INTERNET_STREAM */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_INTERNET_STREAM */
- if (x == Mono_Posix_SysConf__SC_PII_INTERNET_DGRAM)
-#ifdef _SC_PII_INTERNET_DGRAM
- {*r = _SC_PII_INTERNET_DGRAM; return 0;}
-#else /* def _SC_PII_INTERNET_DGRAM */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_INTERNET_DGRAM */
- if (x == Mono_Posix_SysConf__SC_PII_OSI_COTS)
-#ifdef _SC_PII_OSI_COTS
- {*r = _SC_PII_OSI_COTS; return 0;}
-#else /* def _SC_PII_OSI_COTS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_OSI_COTS */
- if (x == Mono_Posix_SysConf__SC_PII_OSI_CLTS)
-#ifdef _SC_PII_OSI_CLTS
- {*r = _SC_PII_OSI_CLTS; return 0;}
-#else /* def _SC_PII_OSI_CLTS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_OSI_CLTS */
- if (x == Mono_Posix_SysConf__SC_PII_OSI_M)
-#ifdef _SC_PII_OSI_M
- {*r = _SC_PII_OSI_M; return 0;}
-#else /* def _SC_PII_OSI_M */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PII_OSI_M */
- if (x == Mono_Posix_SysConf__SC_T_IOV_MAX)
-#ifdef _SC_T_IOV_MAX
- {*r = _SC_T_IOV_MAX; return 0;}
-#else /* def _SC_T_IOV_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_T_IOV_MAX */
- if (x == Mono_Posix_SysConf__SC_THREADS)
-#ifdef _SC_THREADS
- {*r = _SC_THREADS; return 0;}
-#else /* def _SC_THREADS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREADS */
- if (x == Mono_Posix_SysConf__SC_THREAD_SAFE_FUNCTIONS)
-#ifdef _SC_THREAD_SAFE_FUNCTIONS
- {*r = _SC_THREAD_SAFE_FUNCTIONS; return 0;}
-#else /* def _SC_THREAD_SAFE_FUNCTIONS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
- if (x == Mono_Posix_SysConf__SC_GETGR_R_SIZE_MAX)
-#ifdef _SC_GETGR_R_SIZE_MAX
- {*r = _SC_GETGR_R_SIZE_MAX; return 0;}
-#else /* def _SC_GETGR_R_SIZE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_GETGR_R_SIZE_MAX */
- if (x == Mono_Posix_SysConf__SC_GETPW_R_SIZE_MAX)
-#ifdef _SC_GETPW_R_SIZE_MAX
- {*r = _SC_GETPW_R_SIZE_MAX; return 0;}
-#else /* def _SC_GETPW_R_SIZE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_GETPW_R_SIZE_MAX */
- if (x == Mono_Posix_SysConf__SC_LOGIN_NAME_MAX)
-#ifdef _SC_LOGIN_NAME_MAX
- {*r = _SC_LOGIN_NAME_MAX; return 0;}
-#else /* def _SC_LOGIN_NAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LOGIN_NAME_MAX */
- if (x == Mono_Posix_SysConf__SC_TTY_NAME_MAX)
-#ifdef _SC_TTY_NAME_MAX
- {*r = _SC_TTY_NAME_MAX; return 0;}
-#else /* def _SC_TTY_NAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TTY_NAME_MAX */
- if (x == Mono_Posix_SysConf__SC_THREAD_DESTRUCTOR_ITERATIONS)
-#ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
- {*r = _SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
-#else /* def _SC_THREAD_DESTRUCTOR_ITERATIONS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
- if (x == Mono_Posix_SysConf__SC_THREAD_KEYS_MAX)
-#ifdef _SC_THREAD_KEYS_MAX
- {*r = _SC_THREAD_KEYS_MAX; return 0;}
-#else /* def _SC_THREAD_KEYS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_KEYS_MAX */
- if (x == Mono_Posix_SysConf__SC_THREAD_STACK_MIN)
-#ifdef _SC_THREAD_STACK_MIN
- {*r = _SC_THREAD_STACK_MIN; return 0;}
-#else /* def _SC_THREAD_STACK_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_STACK_MIN */
- if (x == Mono_Posix_SysConf__SC_THREAD_THREADS_MAX)
-#ifdef _SC_THREAD_THREADS_MAX
- {*r = _SC_THREAD_THREADS_MAX; return 0;}
-#else /* def _SC_THREAD_THREADS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_THREADS_MAX */
- if (x == Mono_Posix_SysConf__SC_THREAD_ATTR_STACKADDR)
-#ifdef _SC_THREAD_ATTR_STACKADDR
- {*r = _SC_THREAD_ATTR_STACKADDR; return 0;}
-#else /* def _SC_THREAD_ATTR_STACKADDR */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_ATTR_STACKADDR */
- if (x == Mono_Posix_SysConf__SC_THREAD_ATTR_STACKSIZE)
-#ifdef _SC_THREAD_ATTR_STACKSIZE
- {*r = _SC_THREAD_ATTR_STACKSIZE; return 0;}
-#else /* def _SC_THREAD_ATTR_STACKSIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
- if (x == Mono_Posix_SysConf__SC_THREAD_PRIORITY_SCHEDULING)
-#ifdef _SC_THREAD_PRIORITY_SCHEDULING
- {*r = _SC_THREAD_PRIORITY_SCHEDULING; return 0;}
-#else /* def _SC_THREAD_PRIORITY_SCHEDULING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
- if (x == Mono_Posix_SysConf__SC_THREAD_PRIO_INHERIT)
-#ifdef _SC_THREAD_PRIO_INHERIT
- {*r = _SC_THREAD_PRIO_INHERIT; return 0;}
-#else /* def _SC_THREAD_PRIO_INHERIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_PRIO_INHERIT */
- if (x == Mono_Posix_SysConf__SC_THREAD_PRIO_PROTECT)
-#ifdef _SC_THREAD_PRIO_PROTECT
- {*r = _SC_THREAD_PRIO_PROTECT; return 0;}
-#else /* def _SC_THREAD_PRIO_PROTECT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_PRIO_PROTECT */
- if (x == Mono_Posix_SysConf__SC_THREAD_PROCESS_SHARED)
-#ifdef _SC_THREAD_PROCESS_SHARED
- {*r = _SC_THREAD_PROCESS_SHARED; return 0;}
-#else /* def _SC_THREAD_PROCESS_SHARED */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_PROCESS_SHARED */
- if (x == Mono_Posix_SysConf__SC_NPROCESSORS_CONF)
-#ifdef _SC_NPROCESSORS_CONF
- {*r = _SC_NPROCESSORS_CONF; return 0;}
-#else /* def _SC_NPROCESSORS_CONF */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NPROCESSORS_CONF */
- if (x == Mono_Posix_SysConf__SC_NPROCESSORS_ONLN)
-#ifdef _SC_NPROCESSORS_ONLN
- {*r = _SC_NPROCESSORS_ONLN; return 0;}
-#else /* def _SC_NPROCESSORS_ONLN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NPROCESSORS_ONLN */
- if (x == Mono_Posix_SysConf__SC_PHYS_PAGES)
-#ifdef _SC_PHYS_PAGES
- {*r = _SC_PHYS_PAGES; return 0;}
-#else /* def _SC_PHYS_PAGES */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PHYS_PAGES */
- if (x == Mono_Posix_SysConf__SC_AVPHYS_PAGES)
-#ifdef _SC_AVPHYS_PAGES
- {*r = _SC_AVPHYS_PAGES; return 0;}
-#else /* def _SC_AVPHYS_PAGES */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_AVPHYS_PAGES */
- if (x == Mono_Posix_SysConf__SC_ATEXIT_MAX)
-#ifdef _SC_ATEXIT_MAX
- {*r = _SC_ATEXIT_MAX; return 0;}
-#else /* def _SC_ATEXIT_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_ATEXIT_MAX */
- if (x == Mono_Posix_SysConf__SC_PASS_MAX)
-#ifdef _SC_PASS_MAX
- {*r = _SC_PASS_MAX; return 0;}
-#else /* def _SC_PASS_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PASS_MAX */
- if (x == Mono_Posix_SysConf__SC_XOPEN_VERSION)
-#ifdef _SC_XOPEN_VERSION
- {*r = _SC_XOPEN_VERSION; return 0;}
-#else /* def _SC_XOPEN_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_VERSION */
- if (x == Mono_Posix_SysConf__SC_XOPEN_XCU_VERSION)
-#ifdef _SC_XOPEN_XCU_VERSION
- {*r = _SC_XOPEN_XCU_VERSION; return 0;}
-#else /* def _SC_XOPEN_XCU_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_XCU_VERSION */
- if (x == Mono_Posix_SysConf__SC_XOPEN_UNIX)
-#ifdef _SC_XOPEN_UNIX
- {*r = _SC_XOPEN_UNIX; return 0;}
-#else /* def _SC_XOPEN_UNIX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_UNIX */
- if (x == Mono_Posix_SysConf__SC_XOPEN_CRYPT)
-#ifdef _SC_XOPEN_CRYPT
- {*r = _SC_XOPEN_CRYPT; return 0;}
-#else /* def _SC_XOPEN_CRYPT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_CRYPT */
- if (x == Mono_Posix_SysConf__SC_XOPEN_ENH_I18N)
-#ifdef _SC_XOPEN_ENH_I18N
- {*r = _SC_XOPEN_ENH_I18N; return 0;}
-#else /* def _SC_XOPEN_ENH_I18N */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_ENH_I18N */
- if (x == Mono_Posix_SysConf__SC_XOPEN_SHM)
-#ifdef _SC_XOPEN_SHM
- {*r = _SC_XOPEN_SHM; return 0;}
-#else /* def _SC_XOPEN_SHM */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_SHM */
- if (x == Mono_Posix_SysConf__SC_2_CHAR_TERM)
-#ifdef _SC_2_CHAR_TERM
- {*r = _SC_2_CHAR_TERM; return 0;}
-#else /* def _SC_2_CHAR_TERM */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_CHAR_TERM */
- if (x == Mono_Posix_SysConf__SC_2_C_VERSION)
-#ifdef _SC_2_C_VERSION
- {*r = _SC_2_C_VERSION; return 0;}
-#else /* def _SC_2_C_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_C_VERSION */
- if (x == Mono_Posix_SysConf__SC_2_UPE)
-#ifdef _SC_2_UPE
- {*r = _SC_2_UPE; return 0;}
-#else /* def _SC_2_UPE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_UPE */
- if (x == Mono_Posix_SysConf__SC_XOPEN_XPG2)
-#ifdef _SC_XOPEN_XPG2
- {*r = _SC_XOPEN_XPG2; return 0;}
-#else /* def _SC_XOPEN_XPG2 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_XPG2 */
- if (x == Mono_Posix_SysConf__SC_XOPEN_XPG3)
-#ifdef _SC_XOPEN_XPG3
- {*r = _SC_XOPEN_XPG3; return 0;}
-#else /* def _SC_XOPEN_XPG3 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_XPG3 */
- if (x == Mono_Posix_SysConf__SC_XOPEN_XPG4)
-#ifdef _SC_XOPEN_XPG4
- {*r = _SC_XOPEN_XPG4; return 0;}
-#else /* def _SC_XOPEN_XPG4 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_XPG4 */
- if (x == Mono_Posix_SysConf__SC_CHAR_BIT)
-#ifdef _SC_CHAR_BIT
- {*r = _SC_CHAR_BIT; return 0;}
-#else /* def _SC_CHAR_BIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CHAR_BIT */
- if (x == Mono_Posix_SysConf__SC_CHAR_MAX)
-#ifdef _SC_CHAR_MAX
- {*r = _SC_CHAR_MAX; return 0;}
-#else /* def _SC_CHAR_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CHAR_MAX */
- if (x == Mono_Posix_SysConf__SC_CHAR_MIN)
-#ifdef _SC_CHAR_MIN
- {*r = _SC_CHAR_MIN; return 0;}
-#else /* def _SC_CHAR_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CHAR_MIN */
- if (x == Mono_Posix_SysConf__SC_INT_MAX)
-#ifdef _SC_INT_MAX
- {*r = _SC_INT_MAX; return 0;}
-#else /* def _SC_INT_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_INT_MAX */
- if (x == Mono_Posix_SysConf__SC_INT_MIN)
-#ifdef _SC_INT_MIN
- {*r = _SC_INT_MIN; return 0;}
-#else /* def _SC_INT_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_INT_MIN */
- if (x == Mono_Posix_SysConf__SC_LONG_BIT)
-#ifdef _SC_LONG_BIT
- {*r = _SC_LONG_BIT; return 0;}
-#else /* def _SC_LONG_BIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LONG_BIT */
- if (x == Mono_Posix_SysConf__SC_WORD_BIT)
-#ifdef _SC_WORD_BIT
- {*r = _SC_WORD_BIT; return 0;}
-#else /* def _SC_WORD_BIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_WORD_BIT */
- if (x == Mono_Posix_SysConf__SC_MB_LEN_MAX)
-#ifdef _SC_MB_LEN_MAX
- {*r = _SC_MB_LEN_MAX; return 0;}
-#else /* def _SC_MB_LEN_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MB_LEN_MAX */
- if (x == Mono_Posix_SysConf__SC_NZERO)
-#ifdef _SC_NZERO
- {*r = _SC_NZERO; return 0;}
-#else /* def _SC_NZERO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NZERO */
- if (x == Mono_Posix_SysConf__SC_SSIZE_MAX)
-#ifdef _SC_SSIZE_MAX
- {*r = _SC_SSIZE_MAX; return 0;}
-#else /* def _SC_SSIZE_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SSIZE_MAX */
- if (x == Mono_Posix_SysConf__SC_SCHAR_MAX)
-#ifdef _SC_SCHAR_MAX
- {*r = _SC_SCHAR_MAX; return 0;}
-#else /* def _SC_SCHAR_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SCHAR_MAX */
- if (x == Mono_Posix_SysConf__SC_SCHAR_MIN)
-#ifdef _SC_SCHAR_MIN
- {*r = _SC_SCHAR_MIN; return 0;}
-#else /* def _SC_SCHAR_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SCHAR_MIN */
- if (x == Mono_Posix_SysConf__SC_SHRT_MAX)
-#ifdef _SC_SHRT_MAX
- {*r = _SC_SHRT_MAX; return 0;}
-#else /* def _SC_SHRT_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SHRT_MAX */
- if (x == Mono_Posix_SysConf__SC_SHRT_MIN)
-#ifdef _SC_SHRT_MIN
- {*r = _SC_SHRT_MIN; return 0;}
-#else /* def _SC_SHRT_MIN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SHRT_MIN */
- if (x == Mono_Posix_SysConf__SC_UCHAR_MAX)
-#ifdef _SC_UCHAR_MAX
- {*r = _SC_UCHAR_MAX; return 0;}
-#else /* def _SC_UCHAR_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_UCHAR_MAX */
- if (x == Mono_Posix_SysConf__SC_UINT_MAX)
-#ifdef _SC_UINT_MAX
- {*r = _SC_UINT_MAX; return 0;}
-#else /* def _SC_UINT_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_UINT_MAX */
- if (x == Mono_Posix_SysConf__SC_ULONG_MAX)
-#ifdef _SC_ULONG_MAX
- {*r = _SC_ULONG_MAX; return 0;}
-#else /* def _SC_ULONG_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_ULONG_MAX */
- if (x == Mono_Posix_SysConf__SC_USHRT_MAX)
-#ifdef _SC_USHRT_MAX
- {*r = _SC_USHRT_MAX; return 0;}
-#else /* def _SC_USHRT_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_USHRT_MAX */
- if (x == Mono_Posix_SysConf__SC_NL_ARGMAX)
-#ifdef _SC_NL_ARGMAX
- {*r = _SC_NL_ARGMAX; return 0;}
-#else /* def _SC_NL_ARGMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_ARGMAX */
- if (x == Mono_Posix_SysConf__SC_NL_LANGMAX)
-#ifdef _SC_NL_LANGMAX
- {*r = _SC_NL_LANGMAX; return 0;}
-#else /* def _SC_NL_LANGMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_LANGMAX */
- if (x == Mono_Posix_SysConf__SC_NL_MSGMAX)
-#ifdef _SC_NL_MSGMAX
- {*r = _SC_NL_MSGMAX; return 0;}
-#else /* def _SC_NL_MSGMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_MSGMAX */
- if (x == Mono_Posix_SysConf__SC_NL_NMAX)
-#ifdef _SC_NL_NMAX
- {*r = _SC_NL_NMAX; return 0;}
-#else /* def _SC_NL_NMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_NMAX */
- if (x == Mono_Posix_SysConf__SC_NL_SETMAX)
-#ifdef _SC_NL_SETMAX
- {*r = _SC_NL_SETMAX; return 0;}
-#else /* def _SC_NL_SETMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_SETMAX */
- if (x == Mono_Posix_SysConf__SC_NL_TEXTMAX)
-#ifdef _SC_NL_TEXTMAX
- {*r = _SC_NL_TEXTMAX; return 0;}
-#else /* def _SC_NL_TEXTMAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NL_TEXTMAX */
- if (x == Mono_Posix_SysConf__SC_XBS5_ILP32_OFF32)
-#ifdef _SC_XBS5_ILP32_OFF32
- {*r = _SC_XBS5_ILP32_OFF32; return 0;}
-#else /* def _SC_XBS5_ILP32_OFF32 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XBS5_ILP32_OFF32 */
- if (x == Mono_Posix_SysConf__SC_XBS5_ILP32_OFFBIG)
-#ifdef _SC_XBS5_ILP32_OFFBIG
- {*r = _SC_XBS5_ILP32_OFFBIG; return 0;}
-#else /* def _SC_XBS5_ILP32_OFFBIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XBS5_ILP32_OFFBIG */
- if (x == Mono_Posix_SysConf__SC_XBS5_LP64_OFF64)
-#ifdef _SC_XBS5_LP64_OFF64
- {*r = _SC_XBS5_LP64_OFF64; return 0;}
-#else /* def _SC_XBS5_LP64_OFF64 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XBS5_LP64_OFF64 */
- if (x == Mono_Posix_SysConf__SC_XBS5_LPBIG_OFFBIG)
-#ifdef _SC_XBS5_LPBIG_OFFBIG
- {*r = _SC_XBS5_LPBIG_OFFBIG; return 0;}
-#else /* def _SC_XBS5_LPBIG_OFFBIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XBS5_LPBIG_OFFBIG */
- if (x == Mono_Posix_SysConf__SC_XOPEN_LEGACY)
-#ifdef _SC_XOPEN_LEGACY
- {*r = _SC_XOPEN_LEGACY; return 0;}
-#else /* def _SC_XOPEN_LEGACY */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_LEGACY */
- if (x == Mono_Posix_SysConf__SC_XOPEN_REALTIME)
-#ifdef _SC_XOPEN_REALTIME
- {*r = _SC_XOPEN_REALTIME; return 0;}
-#else /* def _SC_XOPEN_REALTIME */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_REALTIME */
- if (x == Mono_Posix_SysConf__SC_XOPEN_REALTIME_THREADS)
-#ifdef _SC_XOPEN_REALTIME_THREADS
- {*r = _SC_XOPEN_REALTIME_THREADS; return 0;}
-#else /* def _SC_XOPEN_REALTIME_THREADS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_XOPEN_REALTIME_THREADS */
- if (x == Mono_Posix_SysConf__SC_ADVISORY_INFO)
-#ifdef _SC_ADVISORY_INFO
- {*r = _SC_ADVISORY_INFO; return 0;}
-#else /* def _SC_ADVISORY_INFO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_ADVISORY_INFO */
- if (x == Mono_Posix_SysConf__SC_BARRIERS)
-#ifdef _SC_BARRIERS
- {*r = _SC_BARRIERS; return 0;}
-#else /* def _SC_BARRIERS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BARRIERS */
- if (x == Mono_Posix_SysConf__SC_BASE)
-#ifdef _SC_BASE
- {*r = _SC_BASE; return 0;}
-#else /* def _SC_BASE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_BASE */
- if (x == Mono_Posix_SysConf__SC_C_LANG_SUPPORT)
-#ifdef _SC_C_LANG_SUPPORT
- {*r = _SC_C_LANG_SUPPORT; return 0;}
-#else /* def _SC_C_LANG_SUPPORT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_C_LANG_SUPPORT */
- if (x == Mono_Posix_SysConf__SC_C_LANG_SUPPORT_R)
-#ifdef _SC_C_LANG_SUPPORT_R
- {*r = _SC_C_LANG_SUPPORT_R; return 0;}
-#else /* def _SC_C_LANG_SUPPORT_R */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_C_LANG_SUPPORT_R */
- if (x == Mono_Posix_SysConf__SC_CLOCK_SELECTION)
-#ifdef _SC_CLOCK_SELECTION
- {*r = _SC_CLOCK_SELECTION; return 0;}
-#else /* def _SC_CLOCK_SELECTION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CLOCK_SELECTION */
- if (x == Mono_Posix_SysConf__SC_CPUTIME)
-#ifdef _SC_CPUTIME
- {*r = _SC_CPUTIME; return 0;}
-#else /* def _SC_CPUTIME */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_CPUTIME */
- if (x == Mono_Posix_SysConf__SC_THREAD_CPUTIME)
-#ifdef _SC_THREAD_CPUTIME
- {*r = _SC_THREAD_CPUTIME; return 0;}
-#else /* def _SC_THREAD_CPUTIME */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_CPUTIME */
- if (x == Mono_Posix_SysConf__SC_DEVICE_IO)
-#ifdef _SC_DEVICE_IO
- {*r = _SC_DEVICE_IO; return 0;}
-#else /* def _SC_DEVICE_IO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_DEVICE_IO */
- if (x == Mono_Posix_SysConf__SC_DEVICE_SPECIFIC)
-#ifdef _SC_DEVICE_SPECIFIC
- {*r = _SC_DEVICE_SPECIFIC; return 0;}
-#else /* def _SC_DEVICE_SPECIFIC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_DEVICE_SPECIFIC */
- if (x == Mono_Posix_SysConf__SC_DEVICE_SPECIFIC_R)
-#ifdef _SC_DEVICE_SPECIFIC_R
- {*r = _SC_DEVICE_SPECIFIC_R; return 0;}
-#else /* def _SC_DEVICE_SPECIFIC_R */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_DEVICE_SPECIFIC_R */
- if (x == Mono_Posix_SysConf__SC_FD_MGMT)
-#ifdef _SC_FD_MGMT
- {*r = _SC_FD_MGMT; return 0;}
-#else /* def _SC_FD_MGMT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FD_MGMT */
- if (x == Mono_Posix_SysConf__SC_FIFO)
-#ifdef _SC_FIFO
- {*r = _SC_FIFO; return 0;}
-#else /* def _SC_FIFO */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FIFO */
- if (x == Mono_Posix_SysConf__SC_PIPE)
-#ifdef _SC_PIPE
- {*r = _SC_PIPE; return 0;}
-#else /* def _SC_PIPE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_PIPE */
- if (x == Mono_Posix_SysConf__SC_FILE_ATTRIBUTES)
-#ifdef _SC_FILE_ATTRIBUTES
- {*r = _SC_FILE_ATTRIBUTES; return 0;}
-#else /* def _SC_FILE_ATTRIBUTES */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FILE_ATTRIBUTES */
- if (x == Mono_Posix_SysConf__SC_FILE_LOCKING)
-#ifdef _SC_FILE_LOCKING
- {*r = _SC_FILE_LOCKING; return 0;}
-#else /* def _SC_FILE_LOCKING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FILE_LOCKING */
- if (x == Mono_Posix_SysConf__SC_FILE_SYSTEM)
-#ifdef _SC_FILE_SYSTEM
- {*r = _SC_FILE_SYSTEM; return 0;}
-#else /* def _SC_FILE_SYSTEM */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_FILE_SYSTEM */
- if (x == Mono_Posix_SysConf__SC_MONOTONIC_CLOCK)
-#ifdef _SC_MONOTONIC_CLOCK
- {*r = _SC_MONOTONIC_CLOCK; return 0;}
-#else /* def _SC_MONOTONIC_CLOCK */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MONOTONIC_CLOCK */
- if (x == Mono_Posix_SysConf__SC_MULTI_PROCESS)
-#ifdef _SC_MULTI_PROCESS
- {*r = _SC_MULTI_PROCESS; return 0;}
-#else /* def _SC_MULTI_PROCESS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_MULTI_PROCESS */
- if (x == Mono_Posix_SysConf__SC_SINGLE_PROCESS)
-#ifdef _SC_SINGLE_PROCESS
- {*r = _SC_SINGLE_PROCESS; return 0;}
-#else /* def _SC_SINGLE_PROCESS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SINGLE_PROCESS */
- if (x == Mono_Posix_SysConf__SC_NETWORKING)
-#ifdef _SC_NETWORKING
- {*r = _SC_NETWORKING; return 0;}
-#else /* def _SC_NETWORKING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_NETWORKING */
- if (x == Mono_Posix_SysConf__SC_READER_WRITER_LOCKS)
-#ifdef _SC_READER_WRITER_LOCKS
- {*r = _SC_READER_WRITER_LOCKS; return 0;}
-#else /* def _SC_READER_WRITER_LOCKS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_READER_WRITER_LOCKS */
- if (x == Mono_Posix_SysConf__SC_SPIN_LOCKS)
-#ifdef _SC_SPIN_LOCKS
- {*r = _SC_SPIN_LOCKS; return 0;}
-#else /* def _SC_SPIN_LOCKS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SPIN_LOCKS */
- if (x == Mono_Posix_SysConf__SC_REGEXP)
-#ifdef _SC_REGEXP
- {*r = _SC_REGEXP; return 0;}
-#else /* def _SC_REGEXP */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_REGEXP */
- if (x == Mono_Posix_SysConf__SC_REGEX_VERSION)
-#ifdef _SC_REGEX_VERSION
- {*r = _SC_REGEX_VERSION; return 0;}
-#else /* def _SC_REGEX_VERSION */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_REGEX_VERSION */
- if (x == Mono_Posix_SysConf__SC_SHELL)
-#ifdef _SC_SHELL
- {*r = _SC_SHELL; return 0;}
-#else /* def _SC_SHELL */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SHELL */
- if (x == Mono_Posix_SysConf__SC_SIGNALS)
-#ifdef _SC_SIGNALS
- {*r = _SC_SIGNALS; return 0;}
-#else /* def _SC_SIGNALS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SIGNALS */
- if (x == Mono_Posix_SysConf__SC_SPAWN)
-#ifdef _SC_SPAWN
- {*r = _SC_SPAWN; return 0;}
-#else /* def _SC_SPAWN */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SPAWN */
- if (x == Mono_Posix_SysConf__SC_SPORADIC_SERVER)
-#ifdef _SC_SPORADIC_SERVER
- {*r = _SC_SPORADIC_SERVER; return 0;}
-#else /* def _SC_SPORADIC_SERVER */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SPORADIC_SERVER */
- if (x == Mono_Posix_SysConf__SC_THREAD_SPORADIC_SERVER)
-#ifdef _SC_THREAD_SPORADIC_SERVER
- {*r = _SC_THREAD_SPORADIC_SERVER; return 0;}
-#else /* def _SC_THREAD_SPORADIC_SERVER */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_THREAD_SPORADIC_SERVER */
- if (x == Mono_Posix_SysConf__SC_SYSTEM_DATABASE)
-#ifdef _SC_SYSTEM_DATABASE
- {*r = _SC_SYSTEM_DATABASE; return 0;}
-#else /* def _SC_SYSTEM_DATABASE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SYSTEM_DATABASE */
- if (x == Mono_Posix_SysConf__SC_SYSTEM_DATABASE_R)
-#ifdef _SC_SYSTEM_DATABASE_R
- {*r = _SC_SYSTEM_DATABASE_R; return 0;}
-#else /* def _SC_SYSTEM_DATABASE_R */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SYSTEM_DATABASE_R */
- if (x == Mono_Posix_SysConf__SC_TIMEOUTS)
-#ifdef _SC_TIMEOUTS
- {*r = _SC_TIMEOUTS; return 0;}
-#else /* def _SC_TIMEOUTS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TIMEOUTS */
- if (x == Mono_Posix_SysConf__SC_TYPED_MEMORY_OBJECTS)
-#ifdef _SC_TYPED_MEMORY_OBJECTS
- {*r = _SC_TYPED_MEMORY_OBJECTS; return 0;}
-#else /* def _SC_TYPED_MEMORY_OBJECTS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TYPED_MEMORY_OBJECTS */
- if (x == Mono_Posix_SysConf__SC_USER_GROUPS)
-#ifdef _SC_USER_GROUPS
- {*r = _SC_USER_GROUPS; return 0;}
-#else /* def _SC_USER_GROUPS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_USER_GROUPS */
- if (x == Mono_Posix_SysConf__SC_USER_GROUPS_R)
-#ifdef _SC_USER_GROUPS_R
- {*r = _SC_USER_GROUPS_R; return 0;}
-#else /* def _SC_USER_GROUPS_R */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_USER_GROUPS_R */
- if (x == Mono_Posix_SysConf__SC_2_PBS)
-#ifdef _SC_2_PBS
- {*r = _SC_2_PBS; return 0;}
-#else /* def _SC_2_PBS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS */
- if (x == Mono_Posix_SysConf__SC_2_PBS_ACCOUNTING)
-#ifdef _SC_2_PBS_ACCOUNTING
- {*r = _SC_2_PBS_ACCOUNTING; return 0;}
-#else /* def _SC_2_PBS_ACCOUNTING */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS_ACCOUNTING */
- if (x == Mono_Posix_SysConf__SC_2_PBS_LOCATE)
-#ifdef _SC_2_PBS_LOCATE
- {*r = _SC_2_PBS_LOCATE; return 0;}
-#else /* def _SC_2_PBS_LOCATE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS_LOCATE */
- if (x == Mono_Posix_SysConf__SC_2_PBS_MESSAGE)
-#ifdef _SC_2_PBS_MESSAGE
- {*r = _SC_2_PBS_MESSAGE; return 0;}
-#else /* def _SC_2_PBS_MESSAGE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS_MESSAGE */
- if (x == Mono_Posix_SysConf__SC_2_PBS_TRACK)
-#ifdef _SC_2_PBS_TRACK
- {*r = _SC_2_PBS_TRACK; return 0;}
-#else /* def _SC_2_PBS_TRACK */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS_TRACK */
- if (x == Mono_Posix_SysConf__SC_SYMLOOP_MAX)
-#ifdef _SC_SYMLOOP_MAX
- {*r = _SC_SYMLOOP_MAX; return 0;}
-#else /* def _SC_SYMLOOP_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_SYMLOOP_MAX */
- if (x == Mono_Posix_SysConf__SC_STREAMS)
-#ifdef _SC_STREAMS
- {*r = _SC_STREAMS; return 0;}
-#else /* def _SC_STREAMS */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_STREAMS */
- if (x == Mono_Posix_SysConf__SC_2_PBS_CHECKPOINT)
-#ifdef _SC_2_PBS_CHECKPOINT
- {*r = _SC_2_PBS_CHECKPOINT; return 0;}
-#else /* def _SC_2_PBS_CHECKPOINT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_2_PBS_CHECKPOINT */
- if (x == Mono_Posix_SysConf__SC_V6_ILP32_OFF32)
-#ifdef _SC_V6_ILP32_OFF32
- {*r = _SC_V6_ILP32_OFF32; return 0;}
-#else /* def _SC_V6_ILP32_OFF32 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_V6_ILP32_OFF32 */
- if (x == Mono_Posix_SysConf__SC_V6_ILP32_OFFBIG)
-#ifdef _SC_V6_ILP32_OFFBIG
- {*r = _SC_V6_ILP32_OFFBIG; return 0;}
-#else /* def _SC_V6_ILP32_OFFBIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_V6_ILP32_OFFBIG */
- if (x == Mono_Posix_SysConf__SC_V6_LP64_OFF64)
-#ifdef _SC_V6_LP64_OFF64
- {*r = _SC_V6_LP64_OFF64; return 0;}
-#else /* def _SC_V6_LP64_OFF64 */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_V6_LP64_OFF64 */
- if (x == Mono_Posix_SysConf__SC_V6_LPBIG_OFFBIG)
-#ifdef _SC_V6_LPBIG_OFFBIG
- {*r = _SC_V6_LPBIG_OFFBIG; return 0;}
-#else /* def _SC_V6_LPBIG_OFFBIG */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_V6_LPBIG_OFFBIG */
- if (x == Mono_Posix_SysConf__SC_HOST_NAME_MAX)
-#ifdef _SC_HOST_NAME_MAX
- {*r = _SC_HOST_NAME_MAX; return 0;}
-#else /* def _SC_HOST_NAME_MAX */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_HOST_NAME_MAX */
- if (x == Mono_Posix_SysConf__SC_TRACE)
-#ifdef _SC_TRACE
- {*r = _SC_TRACE; return 0;}
-#else /* def _SC_TRACE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TRACE */
- if (x == Mono_Posix_SysConf__SC_TRACE_EVENT_FILTER)
-#ifdef _SC_TRACE_EVENT_FILTER
- {*r = _SC_TRACE_EVENT_FILTER; return 0;}
-#else /* def _SC_TRACE_EVENT_FILTER */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TRACE_EVENT_FILTER */
- if (x == Mono_Posix_SysConf__SC_TRACE_INHERIT)
-#ifdef _SC_TRACE_INHERIT
- {*r = _SC_TRACE_INHERIT; return 0;}
-#else /* def _SC_TRACE_INHERIT */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TRACE_INHERIT */
- if (x == Mono_Posix_SysConf__SC_TRACE_LOG)
-#ifdef _SC_TRACE_LOG
- {*r = _SC_TRACE_LOG; return 0;}
-#else /* def _SC_TRACE_LOG */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_TRACE_LOG */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_SIZE)
-#ifdef _SC_LEVEL1_ICACHE_SIZE
- {*r = _SC_LEVEL1_ICACHE_SIZE; return 0;}
-#else /* def _SC_LEVEL1_ICACHE_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_ICACHE_SIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_ASSOC)
-#ifdef _SC_LEVEL1_ICACHE_ASSOC
- {*r = _SC_LEVEL1_ICACHE_ASSOC; return 0;}
-#else /* def _SC_LEVEL1_ICACHE_ASSOC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_ICACHE_ASSOC */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_ICACHE_LINESIZE)
-#ifdef _SC_LEVEL1_ICACHE_LINESIZE
- {*r = _SC_LEVEL1_ICACHE_LINESIZE; return 0;}
-#else /* def _SC_LEVEL1_ICACHE_LINESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_ICACHE_LINESIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_SIZE)
-#ifdef _SC_LEVEL1_DCACHE_SIZE
- {*r = _SC_LEVEL1_DCACHE_SIZE; return 0;}
-#else /* def _SC_LEVEL1_DCACHE_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_DCACHE_SIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_ASSOC)
-#ifdef _SC_LEVEL1_DCACHE_ASSOC
- {*r = _SC_LEVEL1_DCACHE_ASSOC; return 0;}
-#else /* def _SC_LEVEL1_DCACHE_ASSOC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_DCACHE_ASSOC */
- if (x == Mono_Posix_SysConf__SC_LEVEL1_DCACHE_LINESIZE)
-#ifdef _SC_LEVEL1_DCACHE_LINESIZE
- {*r = _SC_LEVEL1_DCACHE_LINESIZE; return 0;}
-#else /* def _SC_LEVEL1_DCACHE_LINESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL1_DCACHE_LINESIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_SIZE)
-#ifdef _SC_LEVEL2_CACHE_SIZE
- {*r = _SC_LEVEL2_CACHE_SIZE; return 0;}
-#else /* def _SC_LEVEL2_CACHE_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL2_CACHE_SIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_ASSOC)
-#ifdef _SC_LEVEL2_CACHE_ASSOC
- {*r = _SC_LEVEL2_CACHE_ASSOC; return 0;}
-#else /* def _SC_LEVEL2_CACHE_ASSOC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL2_CACHE_ASSOC */
- if (x == Mono_Posix_SysConf__SC_LEVEL2_CACHE_LINESIZE)
-#ifdef _SC_LEVEL2_CACHE_LINESIZE
- {*r = _SC_LEVEL2_CACHE_LINESIZE; return 0;}
-#else /* def _SC_LEVEL2_CACHE_LINESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL2_CACHE_LINESIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_SIZE)
-#ifdef _SC_LEVEL3_CACHE_SIZE
- {*r = _SC_LEVEL3_CACHE_SIZE; return 0;}
-#else /* def _SC_LEVEL3_CACHE_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL3_CACHE_SIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_ASSOC)
-#ifdef _SC_LEVEL3_CACHE_ASSOC
- {*r = _SC_LEVEL3_CACHE_ASSOC; return 0;}
-#else /* def _SC_LEVEL3_CACHE_ASSOC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL3_CACHE_ASSOC */
- if (x == Mono_Posix_SysConf__SC_LEVEL3_CACHE_LINESIZE)
-#ifdef _SC_LEVEL3_CACHE_LINESIZE
- {*r = _SC_LEVEL3_CACHE_LINESIZE; return 0;}
-#else /* def _SC_LEVEL3_CACHE_LINESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL3_CACHE_LINESIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_SIZE)
-#ifdef _SC_LEVEL4_CACHE_SIZE
- {*r = _SC_LEVEL4_CACHE_SIZE; return 0;}
-#else /* def _SC_LEVEL4_CACHE_SIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL4_CACHE_SIZE */
- if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_ASSOC)
-#ifdef _SC_LEVEL4_CACHE_ASSOC
- {*r = _SC_LEVEL4_CACHE_ASSOC; return 0;}
-#else /* def _SC_LEVEL4_CACHE_ASSOC */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL4_CACHE_ASSOC */
- if (x == Mono_Posix_SysConf__SC_LEVEL4_CACHE_LINESIZE)
-#ifdef _SC_LEVEL4_CACHE_LINESIZE
- {*r = _SC_LEVEL4_CACHE_LINESIZE; return 0;}
-#else /* def _SC_LEVEL4_CACHE_LINESIZE */
- {errno = EINVAL; return -1;}
-#endif /* ndef _SC_LEVEL4_CACHE_LINESIZE */
- errno = EINVAL; return -1;
-}
-
-int Mono_Posix_ToSysConf (int x, int *r)
-{
- *r = 0;
- if (x == 0)
- return 0;
-#ifdef _SC_ARG_MAX
- if (x == _SC_ARG_MAX)
- {*r = Mono_Posix_SysConf__SC_ARG_MAX; return 0;}
-#endif /* ndef _SC_ARG_MAX */
-#ifdef _SC_CHILD_MAX
- if (x == _SC_CHILD_MAX)
- {*r = Mono_Posix_SysConf__SC_CHILD_MAX; return 0;}
-#endif /* ndef _SC_CHILD_MAX */
-#ifdef _SC_CLK_TCK
- if (x == _SC_CLK_TCK)
- {*r = Mono_Posix_SysConf__SC_CLK_TCK; return 0;}
-#endif /* ndef _SC_CLK_TCK */
-#ifdef _SC_NGROUPS_MAX
- if (x == _SC_NGROUPS_MAX)
- {*r = Mono_Posix_SysConf__SC_NGROUPS_MAX; return 0;}
-#endif /* ndef _SC_NGROUPS_MAX */
-#ifdef _SC_OPEN_MAX
- if (x == _SC_OPEN_MAX)
- {*r = Mono_Posix_SysConf__SC_OPEN_MAX; return 0;}
-#endif /* ndef _SC_OPEN_MAX */
-#ifdef _SC_STREAM_MAX
- if (x == _SC_STREAM_MAX)
- {*r = Mono_Posix_SysConf__SC_STREAM_MAX; return 0;}
-#endif /* ndef _SC_STREAM_MAX */
-#ifdef _SC_TZNAME_MAX
- if (x == _SC_TZNAME_MAX)
- {*r = Mono_Posix_SysConf__SC_TZNAME_MAX; return 0;}
-#endif /* ndef _SC_TZNAME_MAX */
-#ifdef _SC_JOB_CONTROL
- if (x == _SC_JOB_CONTROL)
- {*r = Mono_Posix_SysConf__SC_JOB_CONTROL; return 0;}
-#endif /* ndef _SC_JOB_CONTROL */
-#ifdef _SC_SAVED_IDS
- if (x == _SC_SAVED_IDS)
- {*r = Mono_Posix_SysConf__SC_SAVED_IDS; return 0;}
-#endif /* ndef _SC_SAVED_IDS */
-#ifdef _SC_REALTIME_SIGNALS
- if (x == _SC_REALTIME_SIGNALS)
- {*r = Mono_Posix_SysConf__SC_REALTIME_SIGNALS; return 0;}
-#endif /* ndef _SC_REALTIME_SIGNALS */
-#ifdef _SC_PRIORITY_SCHEDULING
- if (x == _SC_PRIORITY_SCHEDULING)
- {*r = Mono_Posix_SysConf__SC_PRIORITY_SCHEDULING; return 0;}
-#endif /* ndef _SC_PRIORITY_SCHEDULING */
-#ifdef _SC_TIMERS
- if (x == _SC_TIMERS)
- {*r = Mono_Posix_SysConf__SC_TIMERS; return 0;}
-#endif /* ndef _SC_TIMERS */
-#ifdef _SC_ASYNCHRONOUS_IO
- if (x == _SC_ASYNCHRONOUS_IO)
- {*r = Mono_Posix_SysConf__SC_ASYNCHRONOUS_IO; return 0;}
-#endif /* ndef _SC_ASYNCHRONOUS_IO */
-#ifdef _SC_PRIORITIZED_IO
- if (x == _SC_PRIORITIZED_IO)
- {*r = Mono_Posix_SysConf__SC_PRIORITIZED_IO; return 0;}
-#endif /* ndef _SC_PRIORITIZED_IO */
-#ifdef _SC_SYNCHRONIZED_IO
- if (x == _SC_SYNCHRONIZED_IO)
- {*r = Mono_Posix_SysConf__SC_SYNCHRONIZED_IO; return 0;}
-#endif /* ndef _SC_SYNCHRONIZED_IO */
-#ifdef _SC_FSYNC
- if (x == _SC_FSYNC)
- {*r = Mono_Posix_SysConf__SC_FSYNC; return 0;}
-#endif /* ndef _SC_FSYNC */
-#ifdef _SC_MAPPED_FILES
- if (x == _SC_MAPPED_FILES)
- {*r = Mono_Posix_SysConf__SC_MAPPED_FILES; return 0;}
-#endif /* ndef _SC_MAPPED_FILES */
-#ifdef _SC_MEMLOCK
- if (x == _SC_MEMLOCK)
- {*r = Mono_Posix_SysConf__SC_MEMLOCK; return 0;}
-#endif /* ndef _SC_MEMLOCK */
-#ifdef _SC_MEMLOCK_RANGE
- if (x == _SC_MEMLOCK_RANGE)
- {*r = Mono_Posix_SysConf__SC_MEMLOCK_RANGE; return 0;}
-#endif /* ndef _SC_MEMLOCK_RANGE */
-#ifdef _SC_MEMORY_PROTECTION
- if (x == _SC_MEMORY_PROTECTION)
- {*r = Mono_Posix_SysConf__SC_MEMORY_PROTECTION; return 0;}
-#endif /* ndef _SC_MEMORY_PROTECTION */
-#ifdef _SC_MESSAGE_PASSING
- if (x == _SC_MESSAGE_PASSING)
- {*r = Mono_Posix_SysConf__SC_MESSAGE_PASSING; return 0;}
-#endif /* ndef _SC_MESSAGE_PASSING */
-#ifdef _SC_SEMAPHORES
- if (x == _SC_SEMAPHORES)
- {*r = Mono_Posix_SysConf__SC_SEMAPHORES; return 0;}
-#endif /* ndef _SC_SEMAPHORES */
-#ifdef _SC_SHARED_MEMORY_OBJECTS
- if (x == _SC_SHARED_MEMORY_OBJECTS)
- {*r = Mono_Posix_SysConf__SC_SHARED_MEMORY_OBJECTS; return 0;}
-#endif /* ndef _SC_SHARED_MEMORY_OBJECTS */
-#ifdef _SC_AIO_LISTIO_MAX
- if (x == _SC_AIO_LISTIO_MAX)
- {*r = Mono_Posix_SysConf__SC_AIO_LISTIO_MAX; return 0;}
-#endif /* ndef _SC_AIO_LISTIO_MAX */
-#ifdef _SC_AIO_MAX
- if (x == _SC_AIO_MAX)
- {*r = Mono_Posix_SysConf__SC_AIO_MAX; return 0;}
-#endif /* ndef _SC_AIO_MAX */
-#ifdef _SC_AIO_PRIO_DELTA_MAX
- if (x == _SC_AIO_PRIO_DELTA_MAX)
- {*r = Mono_Posix_SysConf__SC_AIO_PRIO_DELTA_MAX; return 0;}
-#endif /* ndef _SC_AIO_PRIO_DELTA_MAX */
-#ifdef _SC_DELAYTIMER_MAX
- if (x == _SC_DELAYTIMER_MAX)
- {*r = Mono_Posix_SysConf__SC_DELAYTIMER_MAX; return 0;}
-#endif /* ndef _SC_DELAYTIMER_MAX */
-#ifdef _SC_MQ_OPEN_MAX
- if (x == _SC_MQ_OPEN_MAX)
- {*r = Mono_Posix_SysConf__SC_MQ_OPEN_MAX; return 0;}
-#endif /* ndef _SC_MQ_OPEN_MAX */
-#ifdef _SC_MQ_PRIO_MAX
- if (x == _SC_MQ_PRIO_MAX)
- {*r = Mono_Posix_SysConf__SC_MQ_PRIO_MAX; return 0;}
-#endif /* ndef _SC_MQ_PRIO_MAX */
-#ifdef _SC_VERSION
- if (x == _SC_VERSION)
- {*r = Mono_Posix_SysConf__SC_VERSION; return 0;}
-#endif /* ndef _SC_VERSION */
-#ifdef _SC_PAGESIZE
- if (x == _SC_PAGESIZE)
- {*r = Mono_Posix_SysConf__SC_PAGESIZE; return 0;}
-#endif /* ndef _SC_PAGESIZE */
-#ifdef _SC_RTSIG_MAX
- if (x == _SC_RTSIG_MAX)
- {*r = Mono_Posix_SysConf__SC_RTSIG_MAX; return 0;}
-#endif /* ndef _SC_RTSIG_MAX */
-#ifdef _SC_SEM_NSEMS_MAX
- if (x == _SC_SEM_NSEMS_MAX)
- {*r = Mono_Posix_SysConf__SC_SEM_NSEMS_MAX; return 0;}
-#endif /* ndef _SC_SEM_NSEMS_MAX */
-#ifdef _SC_SEM_VALUE_MAX
- if (x == _SC_SEM_VALUE_MAX)
- {*r = Mono_Posix_SysConf__SC_SEM_VALUE_MAX; return 0;}
-#endif /* ndef _SC_SEM_VALUE_MAX */
-#ifdef _SC_SIGQUEUE_MAX
- if (x == _SC_SIGQUEUE_MAX)
- {*r = Mono_Posix_SysConf__SC_SIGQUEUE_MAX; return 0;}
-#endif /* ndef _SC_SIGQUEUE_MAX */
-#ifdef _SC_TIMER_MAX
- if (x == _SC_TIMER_MAX)
- {*r = Mono_Posix_SysConf__SC_TIMER_MAX; return 0;}
-#endif /* ndef _SC_TIMER_MAX */
-#ifdef _SC_BC_BASE_MAX
- if (x == _SC_BC_BASE_MAX)
- {*r = Mono_Posix_SysConf__SC_BC_BASE_MAX; return 0;}
-#endif /* ndef _SC_BC_BASE_MAX */
-#ifdef _SC_BC_DIM_MAX
- if (x == _SC_BC_DIM_MAX)
- {*r = Mono_Posix_SysConf__SC_BC_DIM_MAX; return 0;}
-#endif /* ndef _SC_BC_DIM_MAX */
-#ifdef _SC_BC_SCALE_MAX
- if (x == _SC_BC_SCALE_MAX)
- {*r = Mono_Posix_SysConf__SC_BC_SCALE_MAX; return 0;}
-#endif /* ndef _SC_BC_SCALE_MAX */
-#ifdef _SC_BC_STRING_MAX
- if (x == _SC_BC_STRING_MAX)
- {*r = Mono_Posix_SysConf__SC_BC_STRING_MAX; return 0;}
-#endif /* ndef _SC_BC_STRING_MAX */
-#ifdef _SC_COLL_WEIGHTS_MAX
- if (x == _SC_COLL_WEIGHTS_MAX)
- {*r = Mono_Posix_SysConf__SC_COLL_WEIGHTS_MAX; return 0;}
-#endif /* ndef _SC_COLL_WEIGHTS_MAX */
-#ifdef _SC_EQUIV_CLASS_MAX
- if (x == _SC_EQUIV_CLASS_MAX)
- {*r = Mono_Posix_SysConf__SC_EQUIV_CLASS_MAX; return 0;}
-#endif /* ndef _SC_EQUIV_CLASS_MAX */
-#ifdef _SC_EXPR_NEST_MAX
- if (x == _SC_EXPR_NEST_MAX)
- {*r = Mono_Posix_SysConf__SC_EXPR_NEST_MAX; return 0;}
-#endif /* ndef _SC_EXPR_NEST_MAX */
-#ifdef _SC_LINE_MAX
- if (x == _SC_LINE_MAX)
- {*r = Mono_Posix_SysConf__SC_LINE_MAX; return 0;}
-#endif /* ndef _SC_LINE_MAX */
-#ifdef _SC_RE_DUP_MAX
- if (x == _SC_RE_DUP_MAX)
- {*r = Mono_Posix_SysConf__SC_RE_DUP_MAX; return 0;}
-#endif /* ndef _SC_RE_DUP_MAX */
-#ifdef _SC_CHARCLASS_NAME_MAX
- if (x == _SC_CHARCLASS_NAME_MAX)
- {*r = Mono_Posix_SysConf__SC_CHARCLASS_NAME_MAX; return 0;}
-#endif /* ndef _SC_CHARCLASS_NAME_MAX */
-#ifdef _SC_2_VERSION
- if (x == _SC_2_VERSION)
- {*r = Mono_Posix_SysConf__SC_2_VERSION; return 0;}
-#endif /* ndef _SC_2_VERSION */
-#ifdef _SC_2_C_BIND
- if (x == _SC_2_C_BIND)
- {*r = Mono_Posix_SysConf__SC_2_C_BIND; return 0;}
-#endif /* ndef _SC_2_C_BIND */
-#ifdef _SC_2_C_DEV
- if (x == _SC_2_C_DEV)
- {*r = Mono_Posix_SysConf__SC_2_C_DEV; return 0;}
-#endif /* ndef _SC_2_C_DEV */
-#ifdef _SC_2_FORT_DEV
- if (x == _SC_2_FORT_DEV)
- {*r = Mono_Posix_SysConf__SC_2_FORT_DEV; return 0;}
-#endif /* ndef _SC_2_FORT_DEV */
-#ifdef _SC_2_FORT_RUN
- if (x == _SC_2_FORT_RUN)
- {*r = Mono_Posix_SysConf__SC_2_FORT_RUN; return 0;}
-#endif /* ndef _SC_2_FORT_RUN */
-#ifdef _SC_2_SW_DEV
- if (x == _SC_2_SW_DEV)
- {*r = Mono_Posix_SysConf__SC_2_SW_DEV; return 0;}
-#endif /* ndef _SC_2_SW_DEV */
-#ifdef _SC_2_LOCALEDEF
- if (x == _SC_2_LOCALEDEF)
- {*r = Mono_Posix_SysConf__SC_2_LOCALEDEF; return 0;}
-#endif /* ndef _SC_2_LOCALEDEF */
-#ifdef _SC_PII
- if (x == _SC_PII)
- {*r = Mono_Posix_SysConf__SC_PII; return 0;}
-#endif /* ndef _SC_PII */
-#ifdef _SC_PII_XTI
- if (x == _SC_PII_XTI)
- {*r = Mono_Posix_SysConf__SC_PII_XTI; return 0;}
-#endif /* ndef _SC_PII_XTI */
-#ifdef _SC_PII_SOCKET
- if (x == _SC_PII_SOCKET)
- {*r = Mono_Posix_SysConf__SC_PII_SOCKET; return 0;}
-#endif /* ndef _SC_PII_SOCKET */
-#ifdef _SC_PII_INTERNET
- if (x == _SC_PII_INTERNET)
- {*r = Mono_Posix_SysConf__SC_PII_INTERNET; return 0;}
-#endif /* ndef _SC_PII_INTERNET */
-#ifdef _SC_PII_OSI
- if (x == _SC_PII_OSI)
- {*r = Mono_Posix_SysConf__SC_PII_OSI; return 0;}
-#endif /* ndef _SC_PII_OSI */
-#ifdef _SC_POLL
- if (x == _SC_POLL)
- {*r = Mono_Posix_SysConf__SC_POLL; return 0;}
-#endif /* ndef _SC_POLL */
-#ifdef _SC_SELECT
- if (x == _SC_SELECT)
- {*r = Mono_Posix_SysConf__SC_SELECT; return 0;}
-#endif /* ndef _SC_SELECT */
-#ifdef _SC_UIO_MAXIOV
- if (x == _SC_UIO_MAXIOV)
- {*r = Mono_Posix_SysConf__SC_UIO_MAXIOV; return 0;}
-#endif /* ndef _SC_UIO_MAXIOV */
-#ifdef _SC_IOV_MAX
- if (x == _SC_IOV_MAX)
- {*r = Mono_Posix_SysConf__SC_IOV_MAX; return 0;}
-#endif /* ndef _SC_IOV_MAX */
-#ifdef _SC_PII_INTERNET_STREAM
- if (x == _SC_PII_INTERNET_STREAM)
- {*r = Mono_Posix_SysConf__SC_PII_INTERNET_STREAM; return 0;}
-#endif /* ndef _SC_PII_INTERNET_STREAM */
-#ifdef _SC_PII_INTERNET_DGRAM
- if (x == _SC_PII_INTERNET_DGRAM)
- {*r = Mono_Posix_SysConf__SC_PII_INTERNET_DGRAM; return 0;}
-#endif /* ndef _SC_PII_INTERNET_DGRAM */
-#ifdef _SC_PII_OSI_COTS
- if (x == _SC_PII_OSI_COTS)
- {*r = Mono_Posix_SysConf__SC_PII_OSI_COTS; return 0;}
-#endif /* ndef _SC_PII_OSI_COTS */
-#ifdef _SC_PII_OSI_CLTS
- if (x == _SC_PII_OSI_CLTS)
- {*r = Mono_Posix_SysConf__SC_PII_OSI_CLTS; return 0;}
-#endif /* ndef _SC_PII_OSI_CLTS */
-#ifdef _SC_PII_OSI_M
- if (x == _SC_PII_OSI_M)
- {*r = Mono_Posix_SysConf__SC_PII_OSI_M; return 0;}
-#endif /* ndef _SC_PII_OSI_M */
-#ifdef _SC_T_IOV_MAX
- if (x == _SC_T_IOV_MAX)
- {*r = Mono_Posix_SysConf__SC_T_IOV_MAX; return 0;}
-#endif /* ndef _SC_T_IOV_MAX */
-#ifdef _SC_THREADS
- if (x == _SC_THREADS)
- {*r = Mono_Posix_SysConf__SC_THREADS; return 0;}
-#endif /* ndef _SC_THREADS */
-#ifdef _SC_THREAD_SAFE_FUNCTIONS
- if (x == _SC_THREAD_SAFE_FUNCTIONS)
- {*r = Mono_Posix_SysConf__SC_THREAD_SAFE_FUNCTIONS; return 0;}
-#endif /* ndef _SC_THREAD_SAFE_FUNCTIONS */
-#ifdef _SC_GETGR_R_SIZE_MAX
- if (x == _SC_GETGR_R_SIZE_MAX)
- {*r = Mono_Posix_SysConf__SC_GETGR_R_SIZE_MAX; return 0;}
-#endif /* ndef _SC_GETGR_R_SIZE_MAX */
-#ifdef _SC_GETPW_R_SIZE_MAX
- if (x == _SC_GETPW_R_SIZE_MAX)
- {*r = Mono_Posix_SysConf__SC_GETPW_R_SIZE_MAX; return 0;}
-#endif /* ndef _SC_GETPW_R_SIZE_MAX */
-#ifdef _SC_LOGIN_NAME_MAX
- if (x == _SC_LOGIN_NAME_MAX)
- {*r = Mono_Posix_SysConf__SC_LOGIN_NAME_MAX; return 0;}
-#endif /* ndef _SC_LOGIN_NAME_MAX */
-#ifdef _SC_TTY_NAME_MAX
- if (x == _SC_TTY_NAME_MAX)
- {*r = Mono_Posix_SysConf__SC_TTY_NAME_MAX; return 0;}
-#endif /* ndef _SC_TTY_NAME_MAX */
-#ifdef _SC_THREAD_DESTRUCTOR_ITERATIONS
- if (x == _SC_THREAD_DESTRUCTOR_ITERATIONS)
- {*r = Mono_Posix_SysConf__SC_THREAD_DESTRUCTOR_ITERATIONS; return 0;}
-#endif /* ndef _SC_THREAD_DESTRUCTOR_ITERATIONS */
-#ifdef _SC_THREAD_KEYS_MAX
- if (x == _SC_THREAD_KEYS_MAX)
- {*r = Mono_Posix_SysConf__SC_THREAD_KEYS_MAX; return 0;}
-#endif /* ndef _SC_THREAD_KEYS_MAX */
-#ifdef _SC_THREAD_STACK_MIN
- if (x == _SC_THREAD_STACK_MIN)
- {*r = Mono_Posix_SysConf__SC_THREAD_STACK_MIN; return 0;}
-#endif /* ndef _SC_THREAD_STACK_MIN */
-#ifdef _SC_THREAD_THREADS_MAX
- if (x == _SC_THREAD_THREADS_MAX)
- {*r = Mono_Posix_SysConf__SC_THREAD_THREADS_MAX; return 0;}
-#endif /* ndef _SC_THREAD_THREADS_MAX */
-#ifdef _SC_THREAD_ATTR_STACKADDR
- if (x == _SC_THREAD_ATTR_STACKADDR)
- {*r = Mono_Posix_SysConf__SC_THREAD_ATTR_STACKADDR; return 0;}
-#endif /* ndef _SC_THREAD_ATTR_STACKADDR */
-#ifdef _SC_THREAD_ATTR_STACKSIZE
- if (x == _SC_THREAD_ATTR_STACKSIZE)
- {*r = Mono_Posix_SysConf__SC_THREAD_ATTR_STACKSIZE; return 0;}
-#endif /* ndef _SC_THREAD_ATTR_STACKSIZE */
-#ifdef _SC_THREAD_PRIORITY_SCHEDULING
- if (x == _SC_THREAD_PRIORITY_SCHEDULING)
- {*r = Mono_Posix_SysConf__SC_THREAD_PRIORITY_SCHEDULING; return 0;}
-#endif /* ndef _SC_THREAD_PRIORITY_SCHEDULING */
-#ifdef _SC_THREAD_PRIO_INHERIT
- if (x == _SC_THREAD_PRIO_INHERIT)
- {*r = Mono_Posix_SysConf__SC_THREAD_PRIO_INHERIT; return 0;}
-#endif /* ndef _SC_THREAD_PRIO_INHERIT */
-#ifdef _SC_THREAD_PRIO_PROTECT
- if (x == _SC_THREAD_PRIO_PROTECT)
- {*r = Mono_Posix_SysConf__SC_THREAD_PRIO_PROTECT; return 0;}
-#endif /* ndef _SC_THREAD_PRIO_PROTECT */
-#ifdef _SC_THREAD_PROCESS_SHARED
- if (x == _SC_THREAD_PROCESS_SHARED)
- {*r = Mono_Posix_SysConf__SC_THREAD_PROCESS_SHARED; return 0;}
-#endif /* ndef _SC_THREAD_PROCESS_SHARED */
-#ifdef _SC_NPROCESSORS_CONF
- if (x == _SC_NPROCESSORS_CONF)
- {*r = Mono_Posix_SysConf__SC_NPROCESSORS_CONF; return 0;}
-#endif /* ndef _SC_NPROCESSORS_CONF */
-#ifdef _SC_NPROCESSORS_ONLN
- if (x == _SC_NPROCESSORS_ONLN)
- {*r = Mono_Posix_SysConf__SC_NPROCESSORS_ONLN; return 0;}
-#endif /* ndef _SC_NPROCESSORS_ONLN */
-#ifdef _SC_PHYS_PAGES
- if (x == _SC_PHYS_PAGES)
- {*r = Mono_Posix_SysConf__SC_PHYS_PAGES; return 0;}
-#endif /* ndef _SC_PHYS_PAGES */
-#ifdef _SC_AVPHYS_PAGES
- if (x == _SC_AVPHYS_PAGES)
- {*r = Mono_Posix_SysConf__SC_AVPHYS_PAGES; return 0;}
-#endif /* ndef _SC_AVPHYS_PAGES */
-#ifdef _SC_ATEXIT_MAX
- if (x == _SC_ATEXIT_MAX)
- {*r = Mono_Posix_SysConf__SC_ATEXIT_MAX; return 0;}
-#endif /* ndef _SC_ATEXIT_MAX */
-#ifdef _SC_PASS_MAX
- if (x == _SC_PASS_MAX)
- {*r = Mono_Posix_SysConf__SC_PASS_MAX; return 0;}
-#endif /* ndef _SC_PASS_MAX */
-#ifdef _SC_XOPEN_VERSION
- if (x == _SC_XOPEN_VERSION)
- {*r = Mono_Posix_SysConf__SC_XOPEN_VERSION; return 0;}
-#endif /* ndef _SC_XOPEN_VERSION */
-#ifdef _SC_XOPEN_XCU_VERSION
- if (x == _SC_XOPEN_XCU_VERSION)
- {*r = Mono_Posix_SysConf__SC_XOPEN_XCU_VERSION; return 0;}
-#endif /* ndef _SC_XOPEN_XCU_VERSION */
-#ifdef _SC_XOPEN_UNIX
- if (x == _SC_XOPEN_UNIX)
- {*r = Mono_Posix_SysConf__SC_XOPEN_UNIX; return 0;}
-#endif /* ndef _SC_XOPEN_UNIX */
-#ifdef _SC_XOPEN_CRYPT
- if (x == _SC_XOPEN_CRYPT)
- {*r = Mono_Posix_SysConf__SC_XOPEN_CRYPT; return 0;}
-#endif /* ndef _SC_XOPEN_CRYPT */
-#ifdef _SC_XOPEN_ENH_I18N
- if (x == _SC_XOPEN_ENH_I18N)
- {*r = Mono_Posix_SysConf__SC_XOPEN_ENH_I18N; return 0;}
-#endif /* ndef _SC_XOPEN_ENH_I18N */
-#ifdef _SC_XOPEN_SHM
- if (x == _SC_XOPEN_SHM)
- {*r = Mono_Posix_SysConf__SC_XOPEN_SHM; return 0;}
-#endif /* ndef _SC_XOPEN_SHM */
+#ifdef E2BIG
+ if (x == E2BIG)
+ {*r = Mono_Posix_Errno_E2BIG; return 0;}
+#endif /* ndef E2BIG */
+#ifdef EACCES
+ if (x == EACCES)
+ {*r = Mono_Posix_Errno_EACCES; return 0;}
+#endif /* ndef EACCES */
+#ifdef EADDRINUSE
+ if (x == EADDRINUSE)
+ {*r = Mono_Posix_Errno_EADDRINUSE; return 0;}
+#endif /* ndef EADDRINUSE */
+#ifdef EADDRNOTAVAIL
+ if (x == EADDRNOTAVAIL)
+ {*r = Mono_Posix_Errno_EADDRNOTAVAIL; return 0;}
+#endif /* ndef EADDRNOTAVAIL */
+#ifdef EADV
+ if (x == EADV)
+ {*r = Mono_Posix_Errno_EADV; return 0;}
+#endif /* ndef EADV */
+#ifdef EAFNOSUPPORT
+ if (x == EAFNOSUPPORT)
+ {*r = Mono_Posix_Errno_EAFNOSUPPORT; return 0;}
+#endif /* ndef EAFNOSUPPORT */
+#ifdef EAGAIN
+ if (x == EAGAIN)
+ {*r = Mono_Posix_Errno_EAGAIN; return 0;}
+#endif /* ndef EAGAIN */
+#ifdef EALREADY
+ if (x == EALREADY)
+ {*r = Mono_Posix_Errno_EALREADY; return 0;}
+#endif /* ndef EALREADY */
+#ifdef EBADE
+ if (x == EBADE)
+ {*r = Mono_Posix_Errno_EBADE; return 0;}
+#endif /* ndef EBADE */
+#ifdef EBADF
+ if (x == EBADF)
+ {*r = Mono_Posix_Errno_EBADF; return 0;}
+#endif /* ndef EBADF */
+#ifdef EBADFD
+ if (x == EBADFD)
+ {*r = Mono_Posix_Errno_EBADFD; return 0;}
+#endif /* ndef EBADFD */
+#ifdef EBADMSG
+ if (x == EBADMSG)
+ {*r = Mono_Posix_Errno_EBADMSG; return 0;}
+#endif /* ndef EBADMSG */
+#ifdef EBADR
+ if (x == EBADR)
+ {*r = Mono_Posix_Errno_EBADR; return 0;}
+#endif /* ndef EBADR */
+#ifdef EBADRQC
+ if (x == EBADRQC)
+ {*r = Mono_Posix_Errno_EBADRQC; return 0;}
+#endif /* ndef EBADRQC */
+#ifdef EBADSLT
+ if (x == EBADSLT)
+ {*r = Mono_Posix_Errno_EBADSLT; return 0;}
+#endif /* ndef EBADSLT */
+#ifdef EBFONT
+ if (x == EBFONT)
+ {*r = Mono_Posix_Errno_EBFONT; return 0;}
+#endif /* ndef EBFONT */
+#ifdef EBUSY
+ if (x == EBUSY)
+ {*r = Mono_Posix_Errno_EBUSY; return 0;}
+#endif /* ndef EBUSY */
+#ifdef ECHILD
+ if (x == ECHILD)
+ {*r = Mono_Posix_Errno_ECHILD; return 0;}
+#endif /* ndef ECHILD */
+#ifdef ECHRNG
+ if (x == ECHRNG)
+ {*r = Mono_Posix_Errno_ECHRNG; return 0;}
+#endif /* ndef ECHRNG */
+#ifdef ECOMM
+ if (x == ECOMM)
+ {*r = Mono_Posix_Errno_ECOMM; return 0;}
+#endif /* ndef ECOMM */
+#ifdef ECONNABORTED
+ if (x == ECONNABORTED)
+ {*r = Mono_Posix_Errno_ECONNABORTED; return 0;}
+#endif /* ndef ECONNABORTED */
+#ifdef ECONNREFUSED
+ if (x == ECONNREFUSED)
+ {*r = Mono_Posix_Errno_ECONNREFUSED; return 0;}
+#endif /* ndef ECONNREFUSED */
+#ifdef ECONNRESET
+ if (x == ECONNRESET)
+ {*r = Mono_Posix_Errno_ECONNRESET; return 0;}
+#endif /* ndef ECONNRESET */
+#ifdef EDEADLK
+ if (x == EDEADLK)
+ {*r = Mono_Posix_Errno_EDEADLK; return 0;}
+#endif /* ndef EDEADLK */
+#ifdef EDEADLOCK
+ if (x == EDEADLOCK)
+ {*r = Mono_Posix_Errno_EDEADLOCK; return 0;}
+#endif /* ndef EDEADLOCK */
+#ifdef EDESTADDRREQ
+ if (x == EDESTADDRREQ)
+ {*r = Mono_Posix_Errno_EDESTADDRREQ; return 0;}
+#endif /* ndef EDESTADDRREQ */
+#ifdef EDOM
+ if (x == EDOM)
+ {*r = Mono_Posix_Errno_EDOM; return 0;}
+#endif /* ndef EDOM */
+#ifdef EDOTDOT
+ if (x == EDOTDOT)
+ {*r = Mono_Posix_Errno_EDOTDOT; return 0;}
+#endif /* ndef EDOTDOT */
+#ifdef EDQUOT
+ if (x == EDQUOT)
+ {*r = Mono_Posix_Errno_EDQUOT; return 0;}
+#endif /* ndef EDQUOT */
+#ifdef EEXIST
+ if (x == EEXIST)
+ {*r = Mono_Posix_Errno_EEXIST; return 0;}
+#endif /* ndef EEXIST */
+#ifdef EFAULT
+ if (x == EFAULT)
+ {*r = Mono_Posix_Errno_EFAULT; return 0;}
+#endif /* ndef EFAULT */
+#ifdef EFBIG
+ if (x == EFBIG)
+ {*r = Mono_Posix_Errno_EFBIG; return 0;}
+#endif /* ndef EFBIG */
+#ifdef EHOSTDOWN
+ if (x == EHOSTDOWN)
+ {*r = Mono_Posix_Errno_EHOSTDOWN; return 0;}
+#endif /* ndef EHOSTDOWN */
+#ifdef EHOSTUNREACH
+ if (x == EHOSTUNREACH)
+ {*r = Mono_Posix_Errno_EHOSTUNREACH; return 0;}
+#endif /* ndef EHOSTUNREACH */
+#ifdef EIDRM
+ if (x == EIDRM)
+ {*r = Mono_Posix_Errno_EIDRM; return 0;}
+#endif /* ndef EIDRM */
+#ifdef EILSEQ
+ if (x == EILSEQ)
+ {*r = Mono_Posix_Errno_EILSEQ; return 0;}
+#endif /* ndef EILSEQ */
+#ifdef EINPROGRESS
+ if (x == EINPROGRESS)
+ {*r = Mono_Posix_Errno_EINPROGRESS; return 0;}
+#endif /* ndef EINPROGRESS */
+#ifdef EINTR
+ if (x == EINTR)
+ {*r = Mono_Posix_Errno_EINTR; return 0;}
+#endif /* ndef EINTR */
+#ifdef EINVAL
+ if (x == EINVAL)
+ {*r = Mono_Posix_Errno_EINVAL; return 0;}
+#endif /* ndef EINVAL */
+#ifdef EIO
+ if (x == EIO)
+ {*r = Mono_Posix_Errno_EIO; return 0;}
+#endif /* ndef EIO */
+#ifdef EISCONN
+ if (x == EISCONN)
+ {*r = Mono_Posix_Errno_EISCONN; return 0;}
+#endif /* ndef EISCONN */
+#ifdef EISDIR
+ if (x == EISDIR)
+ {*r = Mono_Posix_Errno_EISDIR; return 0;}
+#endif /* ndef EISDIR */
+#ifdef EISNAM
+ if (x == EISNAM)
+ {*r = Mono_Posix_Errno_EISNAM; return 0;}
+#endif /* ndef EISNAM */
+#ifdef EL2HLT
+ if (x == EL2HLT)
+ {*r = Mono_Posix_Errno_EL2HLT; return 0;}
+#endif /* ndef EL2HLT */
+#ifdef EL2NSYNC
+ if (x == EL2NSYNC)
+ {*r = Mono_Posix_Errno_EL2NSYNC; return 0;}
+#endif /* ndef EL2NSYNC */
+#ifdef EL3HLT
+ if (x == EL3HLT)
+ {*r = Mono_Posix_Errno_EL3HLT; return 0;}
+#endif /* ndef EL3HLT */
+#ifdef EL3RST
+ if (x == EL3RST)
+ {*r = Mono_Posix_Errno_EL3RST; return 0;}
+#endif /* ndef EL3RST */
+#ifdef ELIBACC
+ if (x == ELIBACC)
+ {*r = Mono_Posix_Errno_ELIBACC; return 0;}
+#endif /* ndef ELIBACC */
+#ifdef ELIBBAD
+ if (x == ELIBBAD)
+ {*r = Mono_Posix_Errno_ELIBBAD; return 0;}
+#endif /* ndef ELIBBAD */
+#ifdef ELIBEXEC
+ if (x == ELIBEXEC)
+ {*r = Mono_Posix_Errno_ELIBEXEC; return 0;}
+#endif /* ndef ELIBEXEC */
+#ifdef ELIBMAX
+ if (x == ELIBMAX)
+ {*r = Mono_Posix_Errno_ELIBMAX; return 0;}
+#endif /* ndef ELIBMAX */
+#ifdef ELIBSCN
+ if (x == ELIBSCN)
+ {*r = Mono_Posix_Errno_ELIBSCN; return 0;}
+#endif /* ndef ELIBSCN */
+#ifdef ELNRNG
+ if (x == ELNRNG)
+ {*r = Mono_Posix_Errno_ELNRNG; return 0;}
+#endif /* ndef ELNRNG */
+#ifdef ELOOP
+ if (x == ELOOP)
+ {*r = Mono_Posix_Errno_ELOOP; return 0;}
+#endif /* ndef ELOOP */
+#ifdef EMEDIUMTYPE
+ if (x == EMEDIUMTYPE)
+ {*r = Mono_Posix_Errno_EMEDIUMTYPE; return 0;}
+#endif /* ndef EMEDIUMTYPE */
+#ifdef EMFILE
+ if (x == EMFILE)
+ {*r = Mono_Posix_Errno_EMFILE; return 0;}
+#endif /* ndef EMFILE */
+#ifdef EMLINK
+ if (x == EMLINK)
+ {*r = Mono_Posix_Errno_EMLINK; return 0;}
+#endif /* ndef EMLINK */
+#ifdef EMSGSIZE
+ if (x == EMSGSIZE)
+ {*r = Mono_Posix_Errno_EMSGSIZE; return 0;}
+#endif /* ndef EMSGSIZE */
+#ifdef EMULTIHOP
+ if (x == EMULTIHOP)
+ {*r = Mono_Posix_Errno_EMULTIHOP; return 0;}
+#endif /* ndef EMULTIHOP */
+#ifdef ENAMETOOLONG
+ if (x == ENAMETOOLONG)
+ {*r = Mono_Posix_Errno_ENAMETOOLONG; return 0;}
+#endif /* ndef ENAMETOOLONG */
+#ifdef ENAVAIL
+ if (x == ENAVAIL)
+ {*r = Mono_Posix_Errno_ENAVAIL; return 0;}
+#endif /* ndef ENAVAIL */
+#ifdef ENETDOWN
+ if (x == ENETDOWN)
+ {*r = Mono_Posix_Errno_ENETDOWN; return 0;}
+#endif /* ndef ENETDOWN */
+#ifdef ENETRESET
+ if (x == ENETRESET)
+ {*r = Mono_Posix_Errno_ENETRESET; return 0;}
+#endif /* ndef ENETRESET */
+#ifdef ENETUNREACH
+ if (x == ENETUNREACH)
+ {*r = Mono_Posix_Errno_ENETUNREACH; return 0;}
+#endif /* ndef ENETUNREACH */
+#ifdef ENFILE
+ if (x == ENFILE)
+ {*r = Mono_Posix_Errno_ENFILE; return 0;}
+#endif /* ndef ENFILE */
+#ifdef ENOANO
+ if (x == ENOANO)
+ {*r = Mono_Posix_Errno_ENOANO; return 0;}
+#endif /* ndef ENOANO */
+#ifdef ENOBUFS
+ if (x == ENOBUFS)
+ {*r = Mono_Posix_Errno_ENOBUFS; return 0;}
+#endif /* ndef ENOBUFS */
+#ifdef ENOCSI
+ if (x == ENOCSI)
+ {*r = Mono_Posix_Errno_ENOCSI; return 0;}
+#endif /* ndef ENOCSI */
+#ifdef ENODATA
+ if (x == ENODATA)
+ {*r = Mono_Posix_Errno_ENODATA; return 0;}
+#endif /* ndef ENODATA */
+#ifdef ENODEV
+ if (x == ENODEV)
+ {*r = Mono_Posix_Errno_ENODEV; return 0;}
+#endif /* ndef ENODEV */
+#ifdef ENOENT
+ if (x == ENOENT)
+ {*r = Mono_Posix_Errno_ENOENT; return 0;}
+#endif /* ndef ENOENT */
+#ifdef ENOEXEC
+ if (x == ENOEXEC)
+ {*r = Mono_Posix_Errno_ENOEXEC; return 0;}
+#endif /* ndef ENOEXEC */
+#ifdef ENOLCK
+ if (x == ENOLCK)
+ {*r = Mono_Posix_Errno_ENOLCK; return 0;}
+#endif /* ndef ENOLCK */
+#ifdef ENOLINK
+ if (x == ENOLINK)
+ {*r = Mono_Posix_Errno_ENOLINK; return 0;}
+#endif /* ndef ENOLINK */
+#ifdef ENOMEDIUM
+ if (x == ENOMEDIUM)
+ {*r = Mono_Posix_Errno_ENOMEDIUM; return 0;}
+#endif /* ndef ENOMEDIUM */
+#ifdef ENOMEM
+ if (x == ENOMEM)
+ {*r = Mono_Posix_Errno_ENOMEM; return 0;}
+#endif /* ndef ENOMEM */
+#ifdef ENOMSG
+ if (x == ENOMSG)
+ {*r = Mono_Posix_Errno_ENOMSG; return 0;}
+#endif /* ndef ENOMSG */
+#ifdef ENONET
+ if (x == ENONET)
+ {*r = Mono_Posix_Errno_ENONET; return 0;}
+#endif /* ndef ENONET */
+#ifdef ENOPKG
+ if (x == ENOPKG)
+ {*r = Mono_Posix_Errno_ENOPKG; return 0;}
+#endif /* ndef ENOPKG */
+#ifdef ENOPROTOOPT
+ if (x == ENOPROTOOPT)
+ {*r = Mono_Posix_Errno_ENOPROTOOPT; return 0;}
+#endif /* ndef ENOPROTOOPT */
+#ifdef ENOSPC
+ if (x == ENOSPC)
+ {*r = Mono_Posix_Errno_ENOSPC; return 0;}
+#endif /* ndef ENOSPC */
+#ifdef ENOSR
+ if (x == ENOSR)
+ {*r = Mono_Posix_Errno_ENOSR; return 0;}
+#endif /* ndef ENOSR */
+#ifdef ENOSTR
+ if (x == ENOSTR)
+ {*r = Mono_Posix_Errno_ENOSTR; return 0;}
+#endif /* ndef ENOSTR */
+#ifdef ENOSYS
+ if (x == ENOSYS)
+ {*r = Mono_Posix_Errno_ENOSYS; return 0;}
+#endif /* ndef ENOSYS */
+#ifdef ENOTBLK
+ if (x == ENOTBLK)
+ {*r = Mono_Posix_Errno_ENOTBLK; return 0;}
+#endif /* ndef ENOTBLK */
+#ifdef ENOTCONN
+ if (x == ENOTCONN)
+ {*r = Mono_Posix_Errno_ENOTCONN; return 0;}
+#endif /* ndef ENOTCONN */
+#ifdef ENOTDIR
+ if (x == ENOTDIR)
+ {*r = Mono_Posix_Errno_ENOTDIR; return 0;}
+#endif /* ndef ENOTDIR */
+#ifdef ENOTEMPTY
+ if (x == ENOTEMPTY)
+ {*r = Mono_Posix_Errno_ENOTEMPTY; return 0;}
+#endif /* ndef ENOTEMPTY */
+#ifdef ENOTNAM
+ if (x == ENOTNAM)
+ {*r = Mono_Posix_Errno_ENOTNAM; return 0;}
+#endif /* ndef ENOTNAM */
+#ifdef ENOTSOCK
+ if (x == ENOTSOCK)
+ {*r = Mono_Posix_Errno_ENOTSOCK; return 0;}
+#endif /* ndef ENOTSOCK */
+#ifdef ENOTTY
+ if (x == ENOTTY)
+ {*r = Mono_Posix_Errno_ENOTTY; return 0;}
+#endif /* ndef ENOTTY */
+#ifdef ENOTUNIQ
+ if (x == ENOTUNIQ)
+ {*r = Mono_Posix_Errno_ENOTUNIQ; return 0;}
+#endif /* ndef ENOTUNIQ */
+#ifdef ENXIO
+ if (x == ENXIO)
+ {*r = Mono_Posix_Errno_ENXIO; return 0;}
+#endif /* ndef ENXIO */
+#ifdef EOPNOTSUPP
+ if (x == EOPNOTSUPP)
+ {*r = Mono_Posix_Errno_EOPNOTSUPP; return 0;}
+#endif /* ndef EOPNOTSUPP */
+#ifdef EOVERFLOW
+ if (x == EOVERFLOW)
+ {*r = Mono_Posix_Errno_EOVERFLOW; return 0;}
+#endif /* ndef EOVERFLOW */
+#ifdef EPERM
+ if (x == EPERM)
+ {*r = Mono_Posix_Errno_EPERM; return 0;}
+#endif /* ndef EPERM */
+#ifdef EPFNOSUPPORT
+ if (x == EPFNOSUPPORT)
+ {*r = Mono_Posix_Errno_EPFNOSUPPORT; return 0;}
+#endif /* ndef EPFNOSUPPORT */
+#ifdef EPIPE
+ if (x == EPIPE)
+ {*r = Mono_Posix_Errno_EPIPE; return 0;}
+#endif /* ndef EPIPE */
+#ifdef EPROTO
+ if (x == EPROTO)
+ {*r = Mono_Posix_Errno_EPROTO; return 0;}
+#endif /* ndef EPROTO */
+#ifdef EPROTONOSUPPORT
+ if (x == EPROTONOSUPPORT)
+ {*r = Mono_Posix_Errno_EPROTONOSUPPORT; return 0;}
+#endif /* ndef EPROTONOSUPPORT */
+#ifdef EPROTOTYPE
+ if (x == EPROTOTYPE)
+ {*r = Mono_Posix_Errno_EPROTOTYPE; return 0;}
+#endif /* ndef EPROTOTYPE */
+#ifdef ERANGE
+ if (x == ERANGE)
+ {*r = Mono_Posix_Errno_ERANGE; return 0;}
+#endif /* ndef ERANGE */
+#ifdef EREMCHG
+ if (x == EREMCHG)
+ {*r = Mono_Posix_Errno_EREMCHG; return 0;}
+#endif /* ndef EREMCHG */
+#ifdef EREMOTE
+ if (x == EREMOTE)
+ {*r = Mono_Posix_Errno_EREMOTE; return 0;}
+#endif /* ndef EREMOTE */
+#ifdef EREMOTEIO
+ if (x == EREMOTEIO)
+ {*r = Mono_Posix_Errno_EREMOTEIO; return 0;}
+#endif /* ndef EREMOTEIO */
+#ifdef ERESTART
+ if (x == ERESTART)
+ {*r = Mono_Posix_Errno_ERESTART; return 0;}
+#endif /* ndef ERESTART */
+#ifdef EROFS
+ if (x == EROFS)
+ {*r = Mono_Posix_Errno_EROFS; return 0;}
+#endif /* ndef EROFS */
+#ifdef ESHUTDOWN
+ if (x == ESHUTDOWN)
+ {*r = Mono_Posix_Errno_ESHUTDOWN; return 0;}
+#endif /* ndef ESHUTDOWN */
+#ifdef ESOCKTNOSUPPORT
+ if (x == ESOCKTNOSUPPORT)
+ {*r = Mono_Posix_Errno_ESOCKTNOSUPPORT; return 0;}
+#endif /* ndef ESOCKTNOSUPPORT */
+#ifdef ESPIPE
+ if (x == ESPIPE)
+ {*r = Mono_Posix_Errno_ESPIPE; return 0;}
+#endif /* ndef ESPIPE */
+#ifdef ESRCH
+ if (x == ESRCH)
+ {*r = Mono_Posix_Errno_ESRCH; return 0;}
+#endif /* ndef ESRCH */
+#ifdef ESRMNT
+ if (x == ESRMNT)
+ {*r = Mono_Posix_Errno_ESRMNT; return 0;}
+#endif /* ndef ESRMNT */
+#ifdef ESTALE
+ if (x == ESTALE)
+ {*r = Mono_Posix_Errno_ESTALE; return 0;}
+#endif /* ndef ESTALE */
+#ifdef ESTRPIPE
+ if (x == ESTRPIPE)
+ {*r = Mono_Posix_Errno_ESTRPIPE; return 0;}
+#endif /* ndef ESTRPIPE */
+#ifdef ETIME
+ if (x == ETIME)
+ {*r = Mono_Posix_Errno_ETIME; return 0;}
+#endif /* ndef ETIME */
+#ifdef ETIMEDOUT
+ if (x == ETIMEDOUT)
+ {*r = Mono_Posix_Errno_ETIMEDOUT; return 0;}
+#endif /* ndef ETIMEDOUT */
+#ifdef ETOOMANYREFS
+ if (x == ETOOMANYREFS)
+ {*r = Mono_Posix_Errno_ETOOMANYREFS; return 0;}
+#endif /* ndef ETOOMANYREFS */
+#ifdef ETXTBSY
+ if (x == ETXTBSY)
+ {*r = Mono_Posix_Errno_ETXTBSY; return 0;}
+#endif /* ndef ETXTBSY */
+#ifdef EUCLEAN
+ if (x == EUCLEAN)
+ {*r = Mono_Posix_Errno_EUCLEAN; return 0;}
+#endif /* ndef EUCLEAN */
+#ifdef EUNATCH
+ if (x == EUNATCH)
+ {*r = Mono_Posix_Errno_EUNATCH; return 0;}
+#endif /* ndef EUNATCH */
+#ifdef EUSERS
+ if (x == EUSERS)
+ {*r = Mono_Posix_Errno_EUSERS; return 0;}
+#endif /* ndef EUSERS */
+#ifdef EWOULDBLOCK
+ if (x == EWOULDBLOCK)
+ {*r = Mono_Posix_Errno_EWOULDBLOCK; return 0;}
+#endif /* ndef EWOULDBLOCK */
+#ifdef EXDEV
+ if (x == EXDEV)
+ {*r = Mono_Posix_Errno_EXDEV; return 0;}
+#endif /* ndef EXDEV */
+#ifdef EXFULL
+ if (x == EXFULL)
+ {*r = Mono_Posix_Errno_EXFULL; return 0;}
+#endif /* ndef EXFULL */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromFcntlCommand (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_FcntlCommand_F_DUPFD)
+#ifdef F_DUPFD
+ {*r = F_DUPFD; return 0;}
+#else /* def F_DUPFD */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_DUPFD */
+ if (x == Mono_Posix_FcntlCommand_F_GETFD)
+#ifdef F_GETFD
+ {*r = F_GETFD; return 0;}
+#else /* def F_GETFD */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETFD */
+ if (x == Mono_Posix_FcntlCommand_F_GETFL)
+#ifdef F_GETFL
+ {*r = F_GETFL; return 0;}
+#else /* def F_GETFL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETFL */
+ if (x == Mono_Posix_FcntlCommand_F_GETLEASE)
+#ifdef F_GETLEASE
+ {*r = F_GETLEASE; return 0;}
+#else /* def F_GETLEASE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETLEASE */
+ if (x == Mono_Posix_FcntlCommand_F_GETLK)
+#ifdef F_GETLK
+ {*r = F_GETLK; return 0;}
+#else /* def F_GETLK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETLK */
+ if (x == Mono_Posix_FcntlCommand_F_GETOWN)
+#ifdef F_GETOWN
+ {*r = F_GETOWN; return 0;}
+#else /* def F_GETOWN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETOWN */
+ if (x == Mono_Posix_FcntlCommand_F_GETSIG)
+#ifdef F_GETSIG
+ {*r = F_GETSIG; return 0;}
+#else /* def F_GETSIG */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_GETSIG */
+ if (x == Mono_Posix_FcntlCommand_F_NOTIFY)
+#ifdef F_NOTIFY
+ {*r = F_NOTIFY; return 0;}
+#else /* def F_NOTIFY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_NOTIFY */
+ if (x == Mono_Posix_FcntlCommand_F_SETFD)
+#ifdef F_SETFD
+ {*r = F_SETFD; return 0;}
+#else /* def F_SETFD */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETFD */
+ if (x == Mono_Posix_FcntlCommand_F_SETFL)
+#ifdef F_SETFL
+ {*r = F_SETFL; return 0;}
+#else /* def F_SETFL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETFL */
+ if (x == Mono_Posix_FcntlCommand_F_SETLEASE)
+#ifdef F_SETLEASE
+ {*r = F_SETLEASE; return 0;}
+#else /* def F_SETLEASE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETLEASE */
+ if (x == Mono_Posix_FcntlCommand_F_SETLK)
+#ifdef F_SETLK
+ {*r = F_SETLK; return 0;}
+#else /* def F_SETLK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETLK */
+ if (x == Mono_Posix_FcntlCommand_F_SETLKW)
+#ifdef F_SETLKW
+ {*r = F_SETLKW; return 0;}
+#else /* def F_SETLKW */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETLKW */
+ if (x == Mono_Posix_FcntlCommand_F_SETOWN)
+#ifdef F_SETOWN
+ {*r = F_SETOWN; return 0;}
+#else /* def F_SETOWN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETOWN */
+ if (x == Mono_Posix_FcntlCommand_F_SETSIG)
+#ifdef F_SETSIG
+ {*r = F_SETSIG; return 0;}
+#else /* def F_SETSIG */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_SETSIG */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToFcntlCommand (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef F_DUPFD
+ if (x == F_DUPFD)
+ {*r = Mono_Posix_FcntlCommand_F_DUPFD; return 0;}
+#endif /* ndef F_DUPFD */
+#ifdef F_GETFD
+ if (x == F_GETFD)
+ {*r = Mono_Posix_FcntlCommand_F_GETFD; return 0;}
+#endif /* ndef F_GETFD */
+#ifdef F_GETFL
+ if (x == F_GETFL)
+ {*r = Mono_Posix_FcntlCommand_F_GETFL; return 0;}
+#endif /* ndef F_GETFL */
+#ifdef F_GETLEASE
+ if (x == F_GETLEASE)
+ {*r = Mono_Posix_FcntlCommand_F_GETLEASE; return 0;}
+#endif /* ndef F_GETLEASE */
+#ifdef F_GETLK
+ if (x == F_GETLK)
+ {*r = Mono_Posix_FcntlCommand_F_GETLK; return 0;}
+#endif /* ndef F_GETLK */
+#ifdef F_GETOWN
+ if (x == F_GETOWN)
+ {*r = Mono_Posix_FcntlCommand_F_GETOWN; return 0;}
+#endif /* ndef F_GETOWN */
+#ifdef F_GETSIG
+ if (x == F_GETSIG)
+ {*r = Mono_Posix_FcntlCommand_F_GETSIG; return 0;}
+#endif /* ndef F_GETSIG */
+#ifdef F_NOTIFY
+ if (x == F_NOTIFY)
+ {*r = Mono_Posix_FcntlCommand_F_NOTIFY; return 0;}
+#endif /* ndef F_NOTIFY */
+#ifdef F_SETFD
+ if (x == F_SETFD)
+ {*r = Mono_Posix_FcntlCommand_F_SETFD; return 0;}
+#endif /* ndef F_SETFD */
+#ifdef F_SETFL
+ if (x == F_SETFL)
+ {*r = Mono_Posix_FcntlCommand_F_SETFL; return 0;}
+#endif /* ndef F_SETFL */
+#ifdef F_SETLEASE
+ if (x == F_SETLEASE)
+ {*r = Mono_Posix_FcntlCommand_F_SETLEASE; return 0;}
+#endif /* ndef F_SETLEASE */
+#ifdef F_SETLK
+ if (x == F_SETLK)
+ {*r = Mono_Posix_FcntlCommand_F_SETLK; return 0;}
+#endif /* ndef F_SETLK */
+#ifdef F_SETLKW
+ if (x == F_SETLKW)
+ {*r = Mono_Posix_FcntlCommand_F_SETLKW; return 0;}
+#endif /* ndef F_SETLKW */
+#ifdef F_SETOWN
+ if (x == F_SETOWN)
+ {*r = Mono_Posix_FcntlCommand_F_SETOWN; return 0;}
+#endif /* ndef F_SETOWN */
+#ifdef F_SETSIG
+ if (x == F_SETSIG)
+ {*r = Mono_Posix_FcntlCommand_F_SETSIG; return 0;}
+#endif /* ndef F_SETSIG */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_FilePermissions_ACCESSPERMS) == Mono_Posix_FilePermissions_ACCESSPERMS)
+#ifdef ACCESSPERMS
+ *r |= ACCESSPERMS;
+#else /* def ACCESSPERMS */
+ {/* Ignoring Mono_Posix_FilePermissions_ACCESSPERMS, as it is constructed from other values */}
+#endif /* ndef ACCESSPERMS */
+ if ((x & Mono_Posix_FilePermissions_ALLPERMS) == Mono_Posix_FilePermissions_ALLPERMS)
+#ifdef ALLPERMS
+ *r |= ALLPERMS;
+#else /* def ALLPERMS */
+ {/* Ignoring Mono_Posix_FilePermissions_ALLPERMS, as it is constructed from other values */}
+#endif /* ndef ALLPERMS */
+ if ((x & Mono_Posix_FilePermissions_DEFFILEMODE) == Mono_Posix_FilePermissions_DEFFILEMODE)
+#ifdef DEFFILEMODE
+ *r |= DEFFILEMODE;
+#else /* def DEFFILEMODE */
+ {/* Ignoring Mono_Posix_FilePermissions_DEFFILEMODE, as it is constructed from other values */}
+#endif /* ndef DEFFILEMODE */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFBLK)
+#ifdef S_IFBLK
+ *r |= S_IFBLK;
+#else /* def S_IFBLK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFBLK */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFCHR)
+#ifdef S_IFCHR
+ *r |= S_IFCHR;
+#else /* def S_IFCHR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFCHR */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFDIR)
+#ifdef S_IFDIR
+ *r |= S_IFDIR;
+#else /* def S_IFDIR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFDIR */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFIFO)
+#ifdef S_IFIFO
+ *r |= S_IFIFO;
+#else /* def S_IFIFO */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFIFO */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFLNK)
+#ifdef S_IFLNK
+ *r |= S_IFLNK;
+#else /* def S_IFLNK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFLNK */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFMT)
+#ifdef S_IFMT
+ *r |= S_IFMT;
+#else /* def S_IFMT */
+ {/* Ignoring Mono_Posix_FilePermissions_S_IFMT, as it is constructed from other values */}
+#endif /* ndef S_IFMT */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFREG)
+#ifdef S_IFREG
+ *r |= S_IFREG;
+#else /* def S_IFREG */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFREG */
+ if ((x & Mono_Posix_FilePermissions_S_IFMT) == Mono_Posix_FilePermissions_S_IFSOCK)
+#ifdef S_IFSOCK
+ *r |= S_IFSOCK;
+#else /* def S_IFSOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IFSOCK */
+ if ((x & Mono_Posix_FilePermissions_S_IRGRP) == Mono_Posix_FilePermissions_S_IRGRP)
+#ifdef S_IRGRP
+ *r |= S_IRGRP;
+#else /* def S_IRGRP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IRGRP */
+ if ((x & Mono_Posix_FilePermissions_S_IROTH) == Mono_Posix_FilePermissions_S_IROTH)
+#ifdef S_IROTH
+ *r |= S_IROTH;
+#else /* def S_IROTH */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IROTH */
+ if ((x & Mono_Posix_FilePermissions_S_IRUSR) == Mono_Posix_FilePermissions_S_IRUSR)
+#ifdef S_IRUSR
+ *r |= S_IRUSR;
+#else /* def S_IRUSR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IRUSR */
+ if ((x & Mono_Posix_FilePermissions_S_IRWXG) == Mono_Posix_FilePermissions_S_IRWXG)
+#ifdef S_IRWXG
+ *r |= S_IRWXG;
+#else /* def S_IRWXG */
+ {/* Ignoring Mono_Posix_FilePermissions_S_IRWXG, as it is constructed from other values */}
+#endif /* ndef S_IRWXG */
+ if ((x & Mono_Posix_FilePermissions_S_IRWXO) == Mono_Posix_FilePermissions_S_IRWXO)
+#ifdef S_IRWXO
+ *r |= S_IRWXO;
+#else /* def S_IRWXO */
+ {/* Ignoring Mono_Posix_FilePermissions_S_IRWXO, as it is constructed from other values */}
+#endif /* ndef S_IRWXO */
+ if ((x & Mono_Posix_FilePermissions_S_IRWXU) == Mono_Posix_FilePermissions_S_IRWXU)
+#ifdef S_IRWXU
+ *r |= S_IRWXU;
+#else /* def S_IRWXU */
+ {/* Ignoring Mono_Posix_FilePermissions_S_IRWXU, as it is constructed from other values */}
+#endif /* ndef S_IRWXU */
+ if ((x & Mono_Posix_FilePermissions_S_ISGID) == Mono_Posix_FilePermissions_S_ISGID)
+#ifdef S_ISGID
+ *r |= S_ISGID;
+#else /* def S_ISGID */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_ISGID */
+ if ((x & Mono_Posix_FilePermissions_S_ISUID) == Mono_Posix_FilePermissions_S_ISUID)
+#ifdef S_ISUID
+ *r |= S_ISUID;
+#else /* def S_ISUID */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_ISUID */
+ if ((x & Mono_Posix_FilePermissions_S_ISVTX) == Mono_Posix_FilePermissions_S_ISVTX)
+#ifdef S_ISVTX
+ *r |= S_ISVTX;
+#else /* def S_ISVTX */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_ISVTX */
+ if ((x & Mono_Posix_FilePermissions_S_IWGRP) == Mono_Posix_FilePermissions_S_IWGRP)
+#ifdef S_IWGRP
+ *r |= S_IWGRP;
+#else /* def S_IWGRP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IWGRP */
+ if ((x & Mono_Posix_FilePermissions_S_IWOTH) == Mono_Posix_FilePermissions_S_IWOTH)
+#ifdef S_IWOTH
+ *r |= S_IWOTH;
+#else /* def S_IWOTH */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IWOTH */
+ if ((x & Mono_Posix_FilePermissions_S_IWUSR) == Mono_Posix_FilePermissions_S_IWUSR)
+#ifdef S_IWUSR
+ *r |= S_IWUSR;
+#else /* def S_IWUSR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IWUSR */
+ if ((x & Mono_Posix_FilePermissions_S_IXGRP) == Mono_Posix_FilePermissions_S_IXGRP)
+#ifdef S_IXGRP
+ *r |= S_IXGRP;
+#else /* def S_IXGRP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IXGRP */
+ if ((x & Mono_Posix_FilePermissions_S_IXOTH) == Mono_Posix_FilePermissions_S_IXOTH)
+#ifdef S_IXOTH
+ *r |= S_IXOTH;
+#else /* def S_IXOTH */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IXOTH */
+ if ((x & Mono_Posix_FilePermissions_S_IXUSR) == Mono_Posix_FilePermissions_S_IXUSR)
+#ifdef S_IXUSR
+ *r |= S_IXUSR;
+#else /* def S_IXUSR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef S_IXUSR */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef ACCESSPERMS
+ if ((x & ACCESSPERMS) == ACCESSPERMS)
+ *r |= Mono_Posix_FilePermissions_ACCESSPERMS;
+#endif /* ndef ACCESSPERMS */
+#ifdef ALLPERMS
+ if ((x & ALLPERMS) == ALLPERMS)
+ *r |= Mono_Posix_FilePermissions_ALLPERMS;
+#endif /* ndef ALLPERMS */
+#ifdef DEFFILEMODE
+ if ((x & DEFFILEMODE) == DEFFILEMODE)
+ *r |= Mono_Posix_FilePermissions_DEFFILEMODE;
+#endif /* ndef DEFFILEMODE */
+#ifdef S_IFBLK
+ if ((x & S_IFMT) == S_IFBLK)
+ *r |= Mono_Posix_FilePermissions_S_IFBLK;
+#endif /* ndef S_IFBLK */
+#ifdef S_IFCHR
+ if ((x & S_IFMT) == S_IFCHR)
+ *r |= Mono_Posix_FilePermissions_S_IFCHR;
+#endif /* ndef S_IFCHR */
+#ifdef S_IFDIR
+ if ((x & S_IFMT) == S_IFDIR)
+ *r |= Mono_Posix_FilePermissions_S_IFDIR;
+#endif /* ndef S_IFDIR */
+#ifdef S_IFIFO
+ if ((x & S_IFMT) == S_IFIFO)
+ *r |= Mono_Posix_FilePermissions_S_IFIFO;
+#endif /* ndef S_IFIFO */
+#ifdef S_IFLNK
+ if ((x & S_IFMT) == S_IFLNK)
+ *r |= Mono_Posix_FilePermissions_S_IFLNK;
+#endif /* ndef S_IFLNK */
+#ifdef S_IFMT
+ if ((x & S_IFMT) == S_IFMT)
+ *r |= Mono_Posix_FilePermissions_S_IFMT;
+#endif /* ndef S_IFMT */
+#ifdef S_IFREG
+ if ((x & S_IFMT) == S_IFREG)
+ *r |= Mono_Posix_FilePermissions_S_IFREG;
+#endif /* ndef S_IFREG */
+#ifdef S_IFSOCK
+ if ((x & S_IFMT) == S_IFSOCK)
+ *r |= Mono_Posix_FilePermissions_S_IFSOCK;
+#endif /* ndef S_IFSOCK */
+#ifdef S_IRGRP
+ if ((x & S_IRGRP) == S_IRGRP)
+ *r |= Mono_Posix_FilePermissions_S_IRGRP;
+#endif /* ndef S_IRGRP */
+#ifdef S_IROTH
+ if ((x & S_IROTH) == S_IROTH)
+ *r |= Mono_Posix_FilePermissions_S_IROTH;
+#endif /* ndef S_IROTH */
+#ifdef S_IRUSR
+ if ((x & S_IRUSR) == S_IRUSR)
+ *r |= Mono_Posix_FilePermissions_S_IRUSR;
+#endif /* ndef S_IRUSR */
+#ifdef S_IRWXG
+ if ((x & S_IRWXG) == S_IRWXG)
+ *r |= Mono_Posix_FilePermissions_S_IRWXG;
+#endif /* ndef S_IRWXG */
+#ifdef S_IRWXO
+ if ((x & S_IRWXO) == S_IRWXO)
+ *r |= Mono_Posix_FilePermissions_S_IRWXO;
+#endif /* ndef S_IRWXO */
+#ifdef S_IRWXU
+ if ((x & S_IRWXU) == S_IRWXU)
+ *r |= Mono_Posix_FilePermissions_S_IRWXU;
+#endif /* ndef S_IRWXU */
+#ifdef S_ISGID
+ if ((x & S_ISGID) == S_ISGID)
+ *r |= Mono_Posix_FilePermissions_S_ISGID;
+#endif /* ndef S_ISGID */
+#ifdef S_ISUID
+ if ((x & S_ISUID) == S_ISUID)
+ *r |= Mono_Posix_FilePermissions_S_ISUID;
+#endif /* ndef S_ISUID */
+#ifdef S_ISVTX
+ if ((x & S_ISVTX) == S_ISVTX)
+ *r |= Mono_Posix_FilePermissions_S_ISVTX;
+#endif /* ndef S_ISVTX */
+#ifdef S_IWGRP
+ if ((x & S_IWGRP) == S_IWGRP)
+ *r |= Mono_Posix_FilePermissions_S_IWGRP;
+#endif /* ndef S_IWGRP */
+#ifdef S_IWOTH
+ if ((x & S_IWOTH) == S_IWOTH)
+ *r |= Mono_Posix_FilePermissions_S_IWOTH;
+#endif /* ndef S_IWOTH */
+#ifdef S_IWUSR
+ if ((x & S_IWUSR) == S_IWUSR)
+ *r |= Mono_Posix_FilePermissions_S_IWUSR;
+#endif /* ndef S_IWUSR */
+#ifdef S_IXGRP
+ if ((x & S_IXGRP) == S_IXGRP)
+ *r |= Mono_Posix_FilePermissions_S_IXGRP;
+#endif /* ndef S_IXGRP */
+#ifdef S_IXOTH
+ if ((x & S_IXOTH) == S_IXOTH)
+ *r |= Mono_Posix_FilePermissions_S_IXOTH;
+#endif /* ndef S_IXOTH */
+#ifdef S_IXUSR
+ if ((x & S_IXUSR) == S_IXUSR)
+ *r |= Mono_Posix_FilePermissions_S_IXUSR;
+#endif /* ndef S_IXUSR */
+ return 0;
+}
+
+int Mono_Posix_FromLockType (short x, short *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_LockType_F_RDLCK)
+#ifdef F_RDLCK
+ {*r = F_RDLCK; return 0;}
+#else /* def F_RDLCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_RDLCK */
+ if (x == Mono_Posix_LockType_F_UNLCK)
+#ifdef F_UNLCK
+ {*r = F_UNLCK; return 0;}
+#else /* def F_UNLCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_UNLCK */
+ if (x == Mono_Posix_LockType_F_WRLCK)
+#ifdef F_WRLCK
+ {*r = F_WRLCK; return 0;}
+#else /* def F_WRLCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_WRLCK */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToLockType (short x, short *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef F_RDLCK
+ if (x == F_RDLCK)
+ {*r = Mono_Posix_LockType_F_RDLCK; return 0;}
+#endif /* ndef F_RDLCK */
+#ifdef F_UNLCK
+ if (x == F_UNLCK)
+ {*r = Mono_Posix_LockType_F_UNLCK; return 0;}
+#endif /* ndef F_UNLCK */
+#ifdef F_WRLCK
+ if (x == F_WRLCK)
+ {*r = Mono_Posix_LockType_F_WRLCK; return 0;}
+#endif /* ndef F_WRLCK */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromLockfCommand (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_LockfCommand_F_LOCK)
+#ifdef F_LOCK
+ {*r = F_LOCK; return 0;}
+#else /* def F_LOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_LOCK */
+ if (x == Mono_Posix_LockfCommand_F_TEST)
+#ifdef F_TEST
+ {*r = F_TEST; return 0;}
+#else /* def F_TEST */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_TEST */
+ if (x == Mono_Posix_LockfCommand_F_TLOCK)
+#ifdef F_TLOCK
+ {*r = F_TLOCK; return 0;}
+#else /* def F_TLOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_TLOCK */
+ if (x == Mono_Posix_LockfCommand_F_ULOCK)
+#ifdef F_ULOCK
+ {*r = F_ULOCK; return 0;}
+#else /* def F_ULOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef F_ULOCK */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToLockfCommand (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef F_LOCK
+ if (x == F_LOCK)
+ {*r = Mono_Posix_LockfCommand_F_LOCK; return 0;}
+#endif /* ndef F_LOCK */
+#ifdef F_TEST
+ if (x == F_TEST)
+ {*r = Mono_Posix_LockfCommand_F_TEST; return 0;}
+#endif /* ndef F_TEST */
+#ifdef F_TLOCK
+ if (x == F_TLOCK)
+ {*r = Mono_Posix_LockfCommand_F_TLOCK; return 0;}
+#endif /* ndef F_TLOCK */
+#ifdef F_ULOCK
+ if (x == F_ULOCK)
+ {*r = Mono_Posix_LockfCommand_F_ULOCK; return 0;}
+#endif /* ndef F_ULOCK */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromMlockallFlags (int x, int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MlockallFlags_MCL_CURRENT) == Mono_Posix_MlockallFlags_MCL_CURRENT)
+#ifdef MCL_CURRENT
+ *r |= MCL_CURRENT;
+#else /* def MCL_CURRENT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MCL_CURRENT */
+ if ((x & Mono_Posix_MlockallFlags_MCL_FUTURE) == Mono_Posix_MlockallFlags_MCL_FUTURE)
+#ifdef MCL_FUTURE
+ *r |= MCL_FUTURE;
+#else /* def MCL_FUTURE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MCL_FUTURE */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMlockallFlags (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef MCL_CURRENT
+ if ((x & MCL_CURRENT) == MCL_CURRENT)
+ *r |= Mono_Posix_MlockallFlags_MCL_CURRENT;
+#endif /* ndef MCL_CURRENT */
+#ifdef MCL_FUTURE
+ if ((x & MCL_FUTURE) == MCL_FUTURE)
+ *r |= Mono_Posix_MlockallFlags_MCL_FUTURE;
+#endif /* ndef MCL_FUTURE */
+ return 0;
+}
+
+int Mono_Posix_FromMmapFlags (int x, int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MmapFlags_MAP_ANON) == Mono_Posix_MmapFlags_MAP_ANON)
+#ifdef MAP_ANON
+ *r |= MAP_ANON;
+#else /* def MAP_ANON */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_ANON */
+ if ((x & Mono_Posix_MmapFlags_MAP_ANONYMOUS) == Mono_Posix_MmapFlags_MAP_ANONYMOUS)
+#ifdef MAP_ANONYMOUS
+ *r |= MAP_ANONYMOUS;
+#else /* def MAP_ANONYMOUS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_ANONYMOUS */
+ if ((x & Mono_Posix_MmapFlags_MAP_DENYWRITE) == Mono_Posix_MmapFlags_MAP_DENYWRITE)
+#ifdef MAP_DENYWRITE
+ *r |= MAP_DENYWRITE;
+#else /* def MAP_DENYWRITE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_DENYWRITE */
+ if ((x & Mono_Posix_MmapFlags_MAP_EXECUTABLE) == Mono_Posix_MmapFlags_MAP_EXECUTABLE)
+#ifdef MAP_EXECUTABLE
+ *r |= MAP_EXECUTABLE;
+#else /* def MAP_EXECUTABLE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_EXECUTABLE */
+ if ((x & Mono_Posix_MmapFlags_MAP_FILE) == Mono_Posix_MmapFlags_MAP_FILE)
+#ifdef MAP_FILE
+ *r |= MAP_FILE;
+#else /* def MAP_FILE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_FILE */
+ if ((x & Mono_Posix_MmapFlags_MAP_FIXED) == Mono_Posix_MmapFlags_MAP_FIXED)
+#ifdef MAP_FIXED
+ *r |= MAP_FIXED;
+#else /* def MAP_FIXED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_FIXED */
+ if ((x & Mono_Posix_MmapFlags_MAP_GROWSDOWN) == Mono_Posix_MmapFlags_MAP_GROWSDOWN)
+#ifdef MAP_GROWSDOWN
+ *r |= MAP_GROWSDOWN;
+#else /* def MAP_GROWSDOWN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_GROWSDOWN */
+ if ((x & Mono_Posix_MmapFlags_MAP_LOCKED) == Mono_Posix_MmapFlags_MAP_LOCKED)
+#ifdef MAP_LOCKED
+ *r |= MAP_LOCKED;
+#else /* def MAP_LOCKED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_LOCKED */
+ if ((x & Mono_Posix_MmapFlags_MAP_NONBLOCK) == Mono_Posix_MmapFlags_MAP_NONBLOCK)
+#ifdef MAP_NONBLOCK
+ *r |= MAP_NONBLOCK;
+#else /* def MAP_NONBLOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_NONBLOCK */
+ if ((x & Mono_Posix_MmapFlags_MAP_NORESERVE) == Mono_Posix_MmapFlags_MAP_NORESERVE)
+#ifdef MAP_NORESERVE
+ *r |= MAP_NORESERVE;
+#else /* def MAP_NORESERVE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_NORESERVE */
+ if ((x & Mono_Posix_MmapFlags_MAP_POPULATE) == Mono_Posix_MmapFlags_MAP_POPULATE)
+#ifdef MAP_POPULATE
+ *r |= MAP_POPULATE;
+#else /* def MAP_POPULATE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_POPULATE */
+ if ((x & Mono_Posix_MmapFlags_MAP_PRIVATE) == Mono_Posix_MmapFlags_MAP_PRIVATE)
+#ifdef MAP_PRIVATE
+ *r |= MAP_PRIVATE;
+#else /* def MAP_PRIVATE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_PRIVATE */
+ if ((x & Mono_Posix_MmapFlags_MAP_SHARED) == Mono_Posix_MmapFlags_MAP_SHARED)
+#ifdef MAP_SHARED
+ *r |= MAP_SHARED;
+#else /* def MAP_SHARED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_SHARED */
+ if ((x & Mono_Posix_MmapFlags_MAP_TYPE) == Mono_Posix_MmapFlags_MAP_TYPE)
+#ifdef MAP_TYPE
+ *r |= MAP_TYPE;
+#else /* def MAP_TYPE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MAP_TYPE */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMmapFlags (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef MAP_ANON
+ if ((x & MAP_ANON) == MAP_ANON)
+ *r |= Mono_Posix_MmapFlags_MAP_ANON;
+#endif /* ndef MAP_ANON */
+#ifdef MAP_ANONYMOUS
+ if ((x & MAP_ANONYMOUS) == MAP_ANONYMOUS)
+ *r |= Mono_Posix_MmapFlags_MAP_ANONYMOUS;
+#endif /* ndef MAP_ANONYMOUS */
+#ifdef MAP_DENYWRITE
+ if ((x & MAP_DENYWRITE) == MAP_DENYWRITE)
+ *r |= Mono_Posix_MmapFlags_MAP_DENYWRITE;
+#endif /* ndef MAP_DENYWRITE */
+#ifdef MAP_EXECUTABLE
+ if ((x & MAP_EXECUTABLE) == MAP_EXECUTABLE)
+ *r |= Mono_Posix_MmapFlags_MAP_EXECUTABLE;
+#endif /* ndef MAP_EXECUTABLE */
+#ifdef MAP_FILE
+ if ((x & MAP_FILE) == MAP_FILE)
+ *r |= Mono_Posix_MmapFlags_MAP_FILE;
+#endif /* ndef MAP_FILE */
+#ifdef MAP_FIXED
+ if ((x & MAP_FIXED) == MAP_FIXED)
+ *r |= Mono_Posix_MmapFlags_MAP_FIXED;
+#endif /* ndef MAP_FIXED */
+#ifdef MAP_GROWSDOWN
+ if ((x & MAP_GROWSDOWN) == MAP_GROWSDOWN)
+ *r |= Mono_Posix_MmapFlags_MAP_GROWSDOWN;
+#endif /* ndef MAP_GROWSDOWN */
+#ifdef MAP_LOCKED
+ if ((x & MAP_LOCKED) == MAP_LOCKED)
+ *r |= Mono_Posix_MmapFlags_MAP_LOCKED;
+#endif /* ndef MAP_LOCKED */
+#ifdef MAP_NONBLOCK
+ if ((x & MAP_NONBLOCK) == MAP_NONBLOCK)
+ *r |= Mono_Posix_MmapFlags_MAP_NONBLOCK;
+#endif /* ndef MAP_NONBLOCK */
+#ifdef MAP_NORESERVE
+ if ((x & MAP_NORESERVE) == MAP_NORESERVE)
+ *r |= Mono_Posix_MmapFlags_MAP_NORESERVE;
+#endif /* ndef MAP_NORESERVE */
+#ifdef MAP_POPULATE
+ if ((x & MAP_POPULATE) == MAP_POPULATE)
+ *r |= Mono_Posix_MmapFlags_MAP_POPULATE;
+#endif /* ndef MAP_POPULATE */
+#ifdef MAP_PRIVATE
+ if ((x & MAP_PRIVATE) == MAP_PRIVATE)
+ *r |= Mono_Posix_MmapFlags_MAP_PRIVATE;
+#endif /* ndef MAP_PRIVATE */
+#ifdef MAP_SHARED
+ if ((x & MAP_SHARED) == MAP_SHARED)
+ *r |= Mono_Posix_MmapFlags_MAP_SHARED;
+#endif /* ndef MAP_SHARED */
+#ifdef MAP_TYPE
+ if ((x & MAP_TYPE) == MAP_TYPE)
+ *r |= Mono_Posix_MmapFlags_MAP_TYPE;
+#endif /* ndef MAP_TYPE */
+ return 0;
+}
+
+int Mono_Posix_FromMmapProts (int x, int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MmapProts_PROT_EXEC) == Mono_Posix_MmapProts_PROT_EXEC)
+#ifdef PROT_EXEC
+ *r |= PROT_EXEC;
+#else /* def PROT_EXEC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_EXEC */
+ if ((x & Mono_Posix_MmapProts_PROT_GROWSDOWN) == Mono_Posix_MmapProts_PROT_GROWSDOWN)
+#ifdef PROT_GROWSDOWN
+ *r |= PROT_GROWSDOWN;
+#else /* def PROT_GROWSDOWN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_GROWSDOWN */
+ if ((x & Mono_Posix_MmapProts_PROT_GROWSUP) == Mono_Posix_MmapProts_PROT_GROWSUP)
+#ifdef PROT_GROWSUP
+ *r |= PROT_GROWSUP;
+#else /* def PROT_GROWSUP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_GROWSUP */
+ if ((x & Mono_Posix_MmapProts_PROT_NONE) == Mono_Posix_MmapProts_PROT_NONE)
+#ifdef PROT_NONE
+ *r |= PROT_NONE;
+#else /* def PROT_NONE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_NONE */
+ if ((x & Mono_Posix_MmapProts_PROT_READ) == Mono_Posix_MmapProts_PROT_READ)
+#ifdef PROT_READ
+ *r |= PROT_READ;
+#else /* def PROT_READ */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_READ */
+ if ((x & Mono_Posix_MmapProts_PROT_WRITE) == Mono_Posix_MmapProts_PROT_WRITE)
+#ifdef PROT_WRITE
+ *r |= PROT_WRITE;
+#else /* def PROT_WRITE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef PROT_WRITE */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMmapProts (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef PROT_EXEC
+ if ((x & PROT_EXEC) == PROT_EXEC)
+ *r |= Mono_Posix_MmapProts_PROT_EXEC;
+#endif /* ndef PROT_EXEC */
+#ifdef PROT_GROWSDOWN
+ if ((x & PROT_GROWSDOWN) == PROT_GROWSDOWN)
+ *r |= Mono_Posix_MmapProts_PROT_GROWSDOWN;
+#endif /* ndef PROT_GROWSDOWN */
+#ifdef PROT_GROWSUP
+ if ((x & PROT_GROWSUP) == PROT_GROWSUP)
+ *r |= Mono_Posix_MmapProts_PROT_GROWSUP;
+#endif /* ndef PROT_GROWSUP */
+#ifdef PROT_NONE
+ if ((x & PROT_NONE) == PROT_NONE)
+ *r |= Mono_Posix_MmapProts_PROT_NONE;
+#endif /* ndef PROT_NONE */
+#ifdef PROT_READ
+ if ((x & PROT_READ) == PROT_READ)
+ *r |= Mono_Posix_MmapProts_PROT_READ;
+#endif /* ndef PROT_READ */
+#ifdef PROT_WRITE
+ if ((x & PROT_WRITE) == PROT_WRITE)
+ *r |= Mono_Posix_MmapProts_PROT_WRITE;
+#endif /* ndef PROT_WRITE */
+ return 0;
+}
+
+int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MountFlags_ST_APPEND) == Mono_Posix_MountFlags_ST_APPEND)
+#ifdef ST_APPEND
+ *r |= ST_APPEND;
+#else /* def ST_APPEND */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_APPEND */
+ if ((x & Mono_Posix_MountFlags_ST_IMMUTABLE) == Mono_Posix_MountFlags_ST_IMMUTABLE)
+#ifdef ST_IMMUTABLE
+ *r |= ST_IMMUTABLE;
+#else /* def ST_IMMUTABLE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_IMMUTABLE */
+ if ((x & Mono_Posix_MountFlags_ST_MANDLOCK) == Mono_Posix_MountFlags_ST_MANDLOCK)
+#ifdef ST_MANDLOCK
+ *r |= ST_MANDLOCK;
+#else /* def ST_MANDLOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_MANDLOCK */
+ if ((x & Mono_Posix_MountFlags_ST_NOATIME) == Mono_Posix_MountFlags_ST_NOATIME)
+#ifdef ST_NOATIME
+ *r |= ST_NOATIME;
+#else /* def ST_NOATIME */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_NOATIME */
+ if ((x & Mono_Posix_MountFlags_ST_NODEV) == Mono_Posix_MountFlags_ST_NODEV)
+#ifdef ST_NODEV
+ *r |= ST_NODEV;
+#else /* def ST_NODEV */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_NODEV */
+ if ((x & Mono_Posix_MountFlags_ST_NODIRATIME) == Mono_Posix_MountFlags_ST_NODIRATIME)
+#ifdef ST_NODIRATIME
+ *r |= ST_NODIRATIME;
+#else /* def ST_NODIRATIME */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_NODIRATIME */
+ if ((x & Mono_Posix_MountFlags_ST_NOSUID) == Mono_Posix_MountFlags_ST_NOSUID)
+#ifdef ST_NOSUID
+ *r |= ST_NOSUID;
+#else /* def ST_NOSUID */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_NOSUID */
+ if ((x & Mono_Posix_MountFlags_ST_RDONLY) == Mono_Posix_MountFlags_ST_RDONLY)
+#ifdef ST_RDONLY
+ *r |= ST_RDONLY;
+#else /* def ST_RDONLY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_RDONLY */
+ if ((x & Mono_Posix_MountFlags_ST_SYNCHRONOUS) == Mono_Posix_MountFlags_ST_SYNCHRONOUS)
+#ifdef ST_SYNCHRONOUS
+ *r |= ST_SYNCHRONOUS;
+#else /* def ST_SYNCHRONOUS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_SYNCHRONOUS */
+ if ((x & Mono_Posix_MountFlags_ST_WRITE) == Mono_Posix_MountFlags_ST_WRITE)
+#ifdef ST_WRITE
+ *r |= ST_WRITE;
+#else /* def ST_WRITE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef ST_WRITE */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef ST_APPEND
+ if ((x & ST_APPEND) == ST_APPEND)
+ *r |= Mono_Posix_MountFlags_ST_APPEND;
+#endif /* ndef ST_APPEND */
+#ifdef ST_IMMUTABLE
+ if ((x & ST_IMMUTABLE) == ST_IMMUTABLE)
+ *r |= Mono_Posix_MountFlags_ST_IMMUTABLE;
+#endif /* ndef ST_IMMUTABLE */
+#ifdef ST_MANDLOCK
+ if ((x & ST_MANDLOCK) == ST_MANDLOCK)
+ *r |= Mono_Posix_MountFlags_ST_MANDLOCK;
+#endif /* ndef ST_MANDLOCK */
+#ifdef ST_NOATIME
+ if ((x & ST_NOATIME) == ST_NOATIME)
+ *r |= Mono_Posix_MountFlags_ST_NOATIME;
+#endif /* ndef ST_NOATIME */
+#ifdef ST_NODEV
+ if ((x & ST_NODEV) == ST_NODEV)
+ *r |= Mono_Posix_MountFlags_ST_NODEV;
+#endif /* ndef ST_NODEV */
+#ifdef ST_NODIRATIME
+ if ((x & ST_NODIRATIME) == ST_NODIRATIME)
+ *r |= Mono_Posix_MountFlags_ST_NODIRATIME;
+#endif /* ndef ST_NODIRATIME */
+#ifdef ST_NOSUID
+ if ((x & ST_NOSUID) == ST_NOSUID)
+ *r |= Mono_Posix_MountFlags_ST_NOSUID;
+#endif /* ndef ST_NOSUID */
+#ifdef ST_RDONLY
+ if ((x & ST_RDONLY) == ST_RDONLY)
+ *r |= Mono_Posix_MountFlags_ST_RDONLY;
+#endif /* ndef ST_RDONLY */
+#ifdef ST_SYNCHRONOUS
+ if ((x & ST_SYNCHRONOUS) == ST_SYNCHRONOUS)
+ *r |= Mono_Posix_MountFlags_ST_SYNCHRONOUS;
+#endif /* ndef ST_SYNCHRONOUS */
+#ifdef ST_WRITE
+ if ((x & ST_WRITE) == ST_WRITE)
+ *r |= Mono_Posix_MountFlags_ST_WRITE;
+#endif /* ndef ST_WRITE */
+ return 0;
+}
+
+int Mono_Posix_FromMremapFlags (guint64 x, guint64 *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MremapFlags_MREMAP_MAYMOVE) == Mono_Posix_MremapFlags_MREMAP_MAYMOVE)
+#ifdef MREMAP_MAYMOVE
+ *r |= MREMAP_MAYMOVE;
+#else /* def MREMAP_MAYMOVE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MREMAP_MAYMOVE */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMremapFlags (guint64 x, guint64 *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef MREMAP_MAYMOVE
+ if ((x & MREMAP_MAYMOVE) == MREMAP_MAYMOVE)
+ *r |= Mono_Posix_MremapFlags_MREMAP_MAYMOVE;
+#endif /* ndef MREMAP_MAYMOVE */
+ return 0;
+}
+
+int Mono_Posix_FromMsyncFlags (int x, int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_MsyncFlags_MS_ASYNC) == Mono_Posix_MsyncFlags_MS_ASYNC)
+#ifdef MS_ASYNC
+ *r |= MS_ASYNC;
+#else /* def MS_ASYNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MS_ASYNC */
+ if ((x & Mono_Posix_MsyncFlags_MS_INVALIDATE) == Mono_Posix_MsyncFlags_MS_INVALIDATE)
+#ifdef MS_INVALIDATE
+ *r |= MS_INVALIDATE;
+#else /* def MS_INVALIDATE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MS_INVALIDATE */
+ if ((x & Mono_Posix_MsyncFlags_MS_SYNC) == Mono_Posix_MsyncFlags_MS_SYNC)
+#ifdef MS_SYNC
+ *r |= MS_SYNC;
+#else /* def MS_SYNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef MS_SYNC */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToMsyncFlags (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef MS_ASYNC
+ if ((x & MS_ASYNC) == MS_ASYNC)
+ *r |= Mono_Posix_MsyncFlags_MS_ASYNC;
+#endif /* ndef MS_ASYNC */
+#ifdef MS_INVALIDATE
+ if ((x & MS_INVALIDATE) == MS_INVALIDATE)
+ *r |= Mono_Posix_MsyncFlags_MS_INVALIDATE;
+#endif /* ndef MS_INVALIDATE */
+#ifdef MS_SYNC
+ if ((x & MS_SYNC) == MS_SYNC)
+ *r |= Mono_Posix_MsyncFlags_MS_SYNC;
+#endif /* ndef MS_SYNC */
+ return 0;
+}
+
+int Mono_Posix_FromOpenFlags (int x, int *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_OpenFlags_O_APPEND) == Mono_Posix_OpenFlags_O_APPEND)
+#ifdef O_APPEND
+ *r |= O_APPEND;
+#else /* def O_APPEND */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_APPEND */
+ if ((x & Mono_Posix_OpenFlags_O_ASYNC) == Mono_Posix_OpenFlags_O_ASYNC)
+#ifdef O_ASYNC
+ *r |= O_ASYNC;
+#else /* def O_ASYNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_ASYNC */
+ if ((x & Mono_Posix_OpenFlags_O_CREAT) == Mono_Posix_OpenFlags_O_CREAT)
+#ifdef O_CREAT
+ *r |= O_CREAT;
+#else /* def O_CREAT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_CREAT */
+ if ((x & Mono_Posix_OpenFlags_O_DIRECT) == Mono_Posix_OpenFlags_O_DIRECT)
+#ifdef O_DIRECT
+ *r |= O_DIRECT;
+#else /* def O_DIRECT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_DIRECT */
+ if ((x & Mono_Posix_OpenFlags_O_DIRECTORY) == Mono_Posix_OpenFlags_O_DIRECTORY)
+#ifdef O_DIRECTORY
+ *r |= O_DIRECTORY;
+#else /* def O_DIRECTORY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_DIRECTORY */
+ if ((x & Mono_Posix_OpenFlags_O_EXCL) == Mono_Posix_OpenFlags_O_EXCL)
+#ifdef O_EXCL
+ *r |= O_EXCL;
+#else /* def O_EXCL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_EXCL */
+ if ((x & Mono_Posix_OpenFlags_O_LARGEFILE) == Mono_Posix_OpenFlags_O_LARGEFILE)
+#ifdef O_LARGEFILE
+ *r |= O_LARGEFILE;
+#else /* def O_LARGEFILE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_LARGEFILE */
+ if ((x & Mono_Posix_OpenFlags_O_NOCTTY) == Mono_Posix_OpenFlags_O_NOCTTY)
+#ifdef O_NOCTTY
+ *r |= O_NOCTTY;
+#else /* def O_NOCTTY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_NOCTTY */
+ if ((x & Mono_Posix_OpenFlags_O_NOFOLLOW) == Mono_Posix_OpenFlags_O_NOFOLLOW)
+#ifdef O_NOFOLLOW
+ *r |= O_NOFOLLOW;
+#else /* def O_NOFOLLOW */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_NOFOLLOW */
+ if ((x & Mono_Posix_OpenFlags_O_NONBLOCK) == Mono_Posix_OpenFlags_O_NONBLOCK)
+#ifdef O_NONBLOCK
+ *r |= O_NONBLOCK;
+#else /* def O_NONBLOCK */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_NONBLOCK */
+ if ((x & Mono_Posix_OpenFlags_O_RDONLY) == Mono_Posix_OpenFlags_O_RDONLY)
+#ifdef O_RDONLY
+ *r |= O_RDONLY;
+#else /* def O_RDONLY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_RDONLY */
+ if ((x & Mono_Posix_OpenFlags_O_RDWR) == Mono_Posix_OpenFlags_O_RDWR)
+#ifdef O_RDWR
+ *r |= O_RDWR;
+#else /* def O_RDWR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_RDWR */
+ if ((x & Mono_Posix_OpenFlags_O_SYNC) == Mono_Posix_OpenFlags_O_SYNC)
+#ifdef O_SYNC
+ *r |= O_SYNC;
+#else /* def O_SYNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_SYNC */
+ if ((x & Mono_Posix_OpenFlags_O_TRUNC) == Mono_Posix_OpenFlags_O_TRUNC)
+#ifdef O_TRUNC
+ *r |= O_TRUNC;
+#else /* def O_TRUNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_TRUNC */
+ if ((x & Mono_Posix_OpenFlags_O_WRONLY) == Mono_Posix_OpenFlags_O_WRONLY)
+#ifdef O_WRONLY
+ *r |= O_WRONLY;
+#else /* def O_WRONLY */
+ {errno = EINVAL; return -1;}
+#endif /* ndef O_WRONLY */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToOpenFlags (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef O_APPEND
+ if ((x & O_APPEND) == O_APPEND)
+ *r |= Mono_Posix_OpenFlags_O_APPEND;
+#endif /* ndef O_APPEND */
+#ifdef O_ASYNC
+ if ((x & O_ASYNC) == O_ASYNC)
+ *r |= Mono_Posix_OpenFlags_O_ASYNC;
+#endif /* ndef O_ASYNC */
+#ifdef O_CREAT
+ if ((x & O_CREAT) == O_CREAT)
+ *r |= Mono_Posix_OpenFlags_O_CREAT;
+#endif /* ndef O_CREAT */
+#ifdef O_DIRECT
+ if ((x & O_DIRECT) == O_DIRECT)
+ *r |= Mono_Posix_OpenFlags_O_DIRECT;
+#endif /* ndef O_DIRECT */
+#ifdef O_DIRECTORY
+ if ((x & O_DIRECTORY) == O_DIRECTORY)
+ *r |= Mono_Posix_OpenFlags_O_DIRECTORY;
+#endif /* ndef O_DIRECTORY */
+#ifdef O_EXCL
+ if ((x & O_EXCL) == O_EXCL)
+ *r |= Mono_Posix_OpenFlags_O_EXCL;
+#endif /* ndef O_EXCL */
+#ifdef O_LARGEFILE
+ if ((x & O_LARGEFILE) == O_LARGEFILE)
+ *r |= Mono_Posix_OpenFlags_O_LARGEFILE;
+#endif /* ndef O_LARGEFILE */
+#ifdef O_NOCTTY
+ if ((x & O_NOCTTY) == O_NOCTTY)
+ *r |= Mono_Posix_OpenFlags_O_NOCTTY;
+#endif /* ndef O_NOCTTY */
+#ifdef O_NOFOLLOW
+ if ((x & O_NOFOLLOW) == O_NOFOLLOW)
+ *r |= Mono_Posix_OpenFlags_O_NOFOLLOW;
+#endif /* ndef O_NOFOLLOW */
+#ifdef O_NONBLOCK
+ if ((x & O_NONBLOCK) == O_NONBLOCK)
+ *r |= Mono_Posix_OpenFlags_O_NONBLOCK;
+#endif /* ndef O_NONBLOCK */
+#ifdef O_RDONLY
+ if ((x & O_RDONLY) == O_RDONLY)
+ *r |= Mono_Posix_OpenFlags_O_RDONLY;
+#endif /* ndef O_RDONLY */
+#ifdef O_RDWR
+ if ((x & O_RDWR) == O_RDWR)
+ *r |= Mono_Posix_OpenFlags_O_RDWR;
+#endif /* ndef O_RDWR */
+#ifdef O_SYNC
+ if ((x & O_SYNC) == O_SYNC)
+ *r |= Mono_Posix_OpenFlags_O_SYNC;
+#endif /* ndef O_SYNC */
+#ifdef O_TRUNC
+ if ((x & O_TRUNC) == O_TRUNC)
+ *r |= Mono_Posix_OpenFlags_O_TRUNC;
+#endif /* ndef O_TRUNC */
+#ifdef O_WRONLY
+ if ((x & O_WRONLY) == O_WRONLY)
+ *r |= Mono_Posix_OpenFlags_O_WRONLY;
+#endif /* ndef O_WRONLY */
+ return 0;
+}
+
+int Mono_Posix_FromPathconfName (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_PathconfName__PC_2_SYMLINKS)
+#ifdef _PC_2_SYMLINKS
+ {*r = _PC_2_SYMLINKS; return 0;}
+#else /* def _PC_2_SYMLINKS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_2_SYMLINKS */
+ if (x == Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN)
+#ifdef _PC_ALLOC_SIZE_MIN
+ {*r = _PC_ALLOC_SIZE_MIN; return 0;}
+#else /* def _PC_ALLOC_SIZE_MIN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_ALLOC_SIZE_MIN */
+ if (x == Mono_Posix_PathconfName__PC_ASYNC_IO)
+#ifdef _PC_ASYNC_IO
+ {*r = _PC_ASYNC_IO; return 0;}
+#else /* def _PC_ASYNC_IO */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_ASYNC_IO */
+ if (x == Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED)
+#ifdef _PC_CHOWN_RESTRICTED
+ {*r = _PC_CHOWN_RESTRICTED; return 0;}
+#else /* def _PC_CHOWN_RESTRICTED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_CHOWN_RESTRICTED */
+ if (x == Mono_Posix_PathconfName__PC_FILESIZEBITS)
+#ifdef _PC_FILESIZEBITS
+ {*r = _PC_FILESIZEBITS; return 0;}
+#else /* def _PC_FILESIZEBITS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_FILESIZEBITS */
+ if (x == Mono_Posix_PathconfName__PC_LINK_MAX)
+#ifdef _PC_LINK_MAX
+ {*r = _PC_LINK_MAX; return 0;}
+#else /* def _PC_LINK_MAX */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_LINK_MAX */
+ if (x == Mono_Posix_PathconfName__PC_MAX_CANON)
+#ifdef _PC_MAX_CANON
+ {*r = _PC_MAX_CANON; return 0;}
+#else /* def _PC_MAX_CANON */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_MAX_CANON */
+ if (x == Mono_Posix_PathconfName__PC_MAX_INPUT)
+#ifdef _PC_MAX_INPUT
+ {*r = _PC_MAX_INPUT; return 0;}
+#else /* def _PC_MAX_INPUT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_MAX_INPUT */
+ if (x == Mono_Posix_PathconfName__PC_NAME_MAX)
+#ifdef _PC_NAME_MAX
+ {*r = _PC_NAME_MAX; return 0;}
+#else /* def _PC_NAME_MAX */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_NAME_MAX */
+ if (x == Mono_Posix_PathconfName__PC_NO_TRUNC)
+#ifdef _PC_NO_TRUNC
+ {*r = _PC_NO_TRUNC; return 0;}
+#else /* def _PC_NO_TRUNC */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_NO_TRUNC */
+ if (x == Mono_Posix_PathconfName__PC_PATH_MAX)
+#ifdef _PC_PATH_MAX
+ {*r = _PC_PATH_MAX; return 0;}
+#else /* def _PC_PATH_MAX */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_PATH_MAX */
+ if (x == Mono_Posix_PathconfName__PC_PIPE_BUF)
+#ifdef _PC_PIPE_BUF
+ {*r = _PC_PIPE_BUF; return 0;}
+#else /* def _PC_PIPE_BUF */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_PIPE_BUF */
+ if (x == Mono_Posix_PathconfName__PC_PRIO_IO)
+#ifdef _PC_PRIO_IO
+ {*r = _PC_PRIO_IO; return 0;}
+#else /* def _PC_PRIO_IO */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_PRIO_IO */
+ if (x == Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE)
+#ifdef _PC_REC_INCR_XFER_SIZE
+ {*r = _PC_REC_INCR_XFER_SIZE; return 0;}
+#else /* def _PC_REC_INCR_XFER_SIZE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_REC_INCR_XFER_SIZE */
+ if (x == Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE)
+#ifdef _PC_REC_MAX_XFER_SIZE
+ {*r = _PC_REC_MAX_XFER_SIZE; return 0;}
+#else /* def _PC_REC_MAX_XFER_SIZE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_REC_MAX_XFER_SIZE */
+ if (x == Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE)
+#ifdef _PC_REC_MIN_XFER_SIZE
+ {*r = _PC_REC_MIN_XFER_SIZE; return 0;}
+#else /* def _PC_REC_MIN_XFER_SIZE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_REC_MIN_XFER_SIZE */
+ if (x == Mono_Posix_PathconfName__PC_REC_XFER_ALIGN)
+#ifdef _PC_REC_XFER_ALIGN
+ {*r = _PC_REC_XFER_ALIGN; return 0;}
+#else /* def _PC_REC_XFER_ALIGN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_REC_XFER_ALIGN */
+ if (x == Mono_Posix_PathconfName__PC_SOCK_MAXBUF)
+#ifdef _PC_SOCK_MAXBUF
+ {*r = _PC_SOCK_MAXBUF; return 0;}
+#else /* def _PC_SOCK_MAXBUF */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_SOCK_MAXBUF */
+ if (x == Mono_Posix_PathconfName__PC_SYMLINK_MAX)
+#ifdef _PC_SYMLINK_MAX
+ {*r = _PC_SYMLINK_MAX; return 0;}
+#else /* def _PC_SYMLINK_MAX */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_SYMLINK_MAX */
+ if (x == Mono_Posix_PathconfName__PC_SYNC_IO)
+#ifdef _PC_SYNC_IO
+ {*r = _PC_SYNC_IO; return 0;}
+#else /* def _PC_SYNC_IO */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_SYNC_IO */
+ if (x == Mono_Posix_PathconfName__PC_VDISABLE)
+#ifdef _PC_VDISABLE
+ {*r = _PC_VDISABLE; return 0;}
+#else /* def _PC_VDISABLE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef _PC_VDISABLE */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToPathconfName (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef _PC_2_SYMLINKS
+ if (x == _PC_2_SYMLINKS)
+ {*r = Mono_Posix_PathconfName__PC_2_SYMLINKS; return 0;}
+#endif /* ndef _PC_2_SYMLINKS */
+#ifdef _PC_ALLOC_SIZE_MIN
+ if (x == _PC_ALLOC_SIZE_MIN)
+ {*r = Mono_Posix_PathconfName__PC_ALLOC_SIZE_MIN; return 0;}
+#endif /* ndef _PC_ALLOC_SIZE_MIN */
+#ifdef _PC_ASYNC_IO
+ if (x == _PC_ASYNC_IO)
+ {*r = Mono_Posix_PathconfName__PC_ASYNC_IO; return 0;}
+#endif /* ndef _PC_ASYNC_IO */
+#ifdef _PC_CHOWN_RESTRICTED
+ if (x == _PC_CHOWN_RESTRICTED)
+ {*r = Mono_Posix_PathconfName__PC_CHOWN_RESTRICTED; return 0;}
+#endif /* ndef _PC_CHOWN_RESTRICTED */
+#ifdef _PC_FILESIZEBITS
+ if (x == _PC_FILESIZEBITS)
+ {*r = Mono_Posix_PathconfName__PC_FILESIZEBITS; return 0;}
+#endif /* ndef _PC_FILESIZEBITS */
+#ifdef _PC_LINK_MAX
+ if (x == _PC_LINK_MAX)
+ {*r = Mono_Posix_PathconfName__PC_LINK_MAX; return 0;}
+#endif /* ndef _PC_LINK_MAX */
+#ifdef _PC_MAX_CANON
+ if (x == _PC_MAX_CANON)
+ {*r = Mono_Posix_PathconfName__PC_MAX_CANON; return 0;}
+#endif /* ndef _PC_MAX_CANON */
+#ifdef _PC_MAX_INPUT
+ if (x == _PC_MAX_INPUT)
+ {*r = Mono_Posix_PathconfName__PC_MAX_INPUT; return 0;}
+#endif /* ndef _PC_MAX_INPUT */
+#ifdef _PC_NAME_MAX
+ if (x == _PC_NAME_MAX)
+ {*r = Mono_Posix_PathconfName__PC_NAME_MAX; return 0;}
+#endif /* ndef _PC_NAME_MAX */
+#ifdef _PC_NO_TRUNC
+ if (x == _PC_NO_TRUNC)
+ {*r = Mono_Posix_PathconfName__PC_NO_TRUNC; return 0;}
+#endif /* ndef _PC_NO_TRUNC */
+#ifdef _PC_PATH_MAX
+ if (x == _PC_PATH_MAX)
+ {*r = Mono_Posix_PathconfName__PC_PATH_MAX; return 0;}
+#endif /* ndef _PC_PATH_MAX */
+#ifdef _PC_PIPE_BUF
+ if (x == _PC_PIPE_BUF)
+ {*r = Mono_Posix_PathconfName__PC_PIPE_BUF; return 0;}
+#endif /* ndef _PC_PIPE_BUF */
+#ifdef _PC_PRIO_IO
+ if (x == _PC_PRIO_IO)
+ {*r = Mono_Posix_PathconfName__PC_PRIO_IO; return 0;}
+#endif /* ndef _PC_PRIO_IO */
+#ifdef _PC_REC_INCR_XFER_SIZE
+ if (x == _PC_REC_INCR_XFER_SIZE)
+ {*r = Mono_Posix_PathconfName__PC_REC_INCR_XFER_SIZE; return 0;}
+#endif /* ndef _PC_REC_INCR_XFER_SIZE */
+#ifdef _PC_REC_MAX_XFER_SIZE
+ if (x == _PC_REC_MAX_XFER_SIZE)
+ {*r = Mono_Posix_PathconfName__PC_REC_MAX_XFER_SIZE; return 0;}
+#endif /* ndef _PC_REC_MAX_XFER_SIZE */
+#ifdef _PC_REC_MIN_XFER_SIZE
+ if (x == _PC_REC_MIN_XFER_SIZE)
+ {*r = Mono_Posix_PathconfName__PC_REC_MIN_XFER_SIZE; return 0;}
+#endif /* ndef _PC_REC_MIN_XFER_SIZE */
+#ifdef _PC_REC_XFER_ALIGN
+ if (x == _PC_REC_XFER_ALIGN)
+ {*r = Mono_Posix_PathconfName__PC_REC_XFER_ALIGN; return 0;}
+#endif /* ndef _PC_REC_XFER_ALIGN */
+#ifdef _PC_SOCK_MAXBUF
+ if (x == _PC_SOCK_MAXBUF)
+ {*r = Mono_Posix_PathconfName__PC_SOCK_MAXBUF; return 0;}
+#endif /* ndef _PC_SOCK_MAXBUF */
+#ifdef _PC_SYMLINK_MAX
+ if (x == _PC_SYMLINK_MAX)
+ {*r = Mono_Posix_PathconfName__PC_SYMLINK_MAX; return 0;}
+#endif /* ndef _PC_SYMLINK_MAX */
+#ifdef _PC_SYNC_IO
+ if (x == _PC_SYNC_IO)
+ {*r = Mono_Posix_PathconfName__PC_SYNC_IO; return 0;}
+#endif /* ndef _PC_SYNC_IO */
+#ifdef _PC_VDISABLE
+ if (x == _PC_VDISABLE)
+ {*r = Mono_Posix_PathconfName__PC_VDISABLE; return 0;}
+#endif /* ndef _PC_VDISABLE */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromPollEvents (short x, short *r)
+{
+ *r = 0;
+ if ((x & Mono_Posix_PollEvents_POLLERR) == Mono_Posix_PollEvents_POLLERR)
+#ifdef POLLERR
+ *r |= POLLERR;
+#else /* def POLLERR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLERR */
+ if ((x & Mono_Posix_PollEvents_POLLHUP) == Mono_Posix_PollEvents_POLLHUP)
+#ifdef POLLHUP
+ *r |= POLLHUP;
+#else /* def POLLHUP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLHUP */
+ if ((x & Mono_Posix_PollEvents_POLLIN) == Mono_Posix_PollEvents_POLLIN)
+#ifdef POLLIN
+ *r |= POLLIN;
+#else /* def POLLIN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLIN */
+ if ((x & Mono_Posix_PollEvents_POLLNVAL) == Mono_Posix_PollEvents_POLLNVAL)
+#ifdef POLLNVAL
+ *r |= POLLNVAL;
+#else /* def POLLNVAL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLNVAL */
+ if ((x & Mono_Posix_PollEvents_POLLOUT) == Mono_Posix_PollEvents_POLLOUT)
+#ifdef POLLOUT
+ *r |= POLLOUT;
+#else /* def POLLOUT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLOUT */
+ if ((x & Mono_Posix_PollEvents_POLLPRI) == Mono_Posix_PollEvents_POLLPRI)
+#ifdef POLLPRI
+ *r |= POLLPRI;
+#else /* def POLLPRI */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLPRI */
+ if ((x & Mono_Posix_PollEvents_POLLRDBAND) == Mono_Posix_PollEvents_POLLRDBAND)
+#ifdef POLLRDBAND
+ *r |= POLLRDBAND;
+#else /* def POLLRDBAND */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLRDBAND */
+ if ((x & Mono_Posix_PollEvents_POLLRDNORM) == Mono_Posix_PollEvents_POLLRDNORM)
+#ifdef POLLRDNORM
+ *r |= POLLRDNORM;
+#else /* def POLLRDNORM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLRDNORM */
+ if ((x & Mono_Posix_PollEvents_POLLWRBAND) == Mono_Posix_PollEvents_POLLWRBAND)
+#ifdef POLLWRBAND
+ *r |= POLLWRBAND;
+#else /* def POLLWRBAND */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLWRBAND */
+ if ((x & Mono_Posix_PollEvents_POLLWRNORM) == Mono_Posix_PollEvents_POLLWRNORM)
+#ifdef POLLWRNORM
+ *r |= POLLWRNORM;
+#else /* def POLLWRNORM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POLLWRNORM */
+ if (x == 0)
+ return 0;
+ return 0;
+}
+
+int Mono_Posix_ToPollEvents (short x, short *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef POLLERR
+ if ((x & POLLERR) == POLLERR)
+ *r |= Mono_Posix_PollEvents_POLLERR;
+#endif /* ndef POLLERR */
+#ifdef POLLHUP
+ if ((x & POLLHUP) == POLLHUP)
+ *r |= Mono_Posix_PollEvents_POLLHUP;
+#endif /* ndef POLLHUP */
+#ifdef POLLIN
+ if ((x & POLLIN) == POLLIN)
+ *r |= Mono_Posix_PollEvents_POLLIN;
+#endif /* ndef POLLIN */
+#ifdef POLLNVAL
+ if ((x & POLLNVAL) == POLLNVAL)
+ *r |= Mono_Posix_PollEvents_POLLNVAL;
+#endif /* ndef POLLNVAL */
+#ifdef POLLOUT
+ if ((x & POLLOUT) == POLLOUT)
+ *r |= Mono_Posix_PollEvents_POLLOUT;
+#endif /* ndef POLLOUT */
+#ifdef POLLPRI
+ if ((x & POLLPRI) == POLLPRI)
+ *r |= Mono_Posix_PollEvents_POLLPRI;
+#endif /* ndef POLLPRI */
+#ifdef POLLRDBAND
+ if ((x & POLLRDBAND) == POLLRDBAND)
+ *r |= Mono_Posix_PollEvents_POLLRDBAND;
+#endif /* ndef POLLRDBAND */
+#ifdef POLLRDNORM
+ if ((x & POLLRDNORM) == POLLRDNORM)
+ *r |= Mono_Posix_PollEvents_POLLRDNORM;
+#endif /* ndef POLLRDNORM */
+#ifdef POLLWRBAND
+ if ((x & POLLWRBAND) == POLLWRBAND)
+ *r |= Mono_Posix_PollEvents_POLLWRBAND;
+#endif /* ndef POLLWRBAND */
+#ifdef POLLWRNORM
+ if ((x & POLLWRNORM) == POLLWRNORM)
+ *r |= Mono_Posix_PollEvents_POLLWRNORM;
+#endif /* ndef POLLWRNORM */
+ return 0;
+}
+
+#ifdef HAVE_STRUCT_POLLFD
+int
+Mono_Posix_FromPollfd (struct Mono_Posix_Pollfd *from, struct pollfd *to)
+{
+ _cnm_return_val_if_overflow (int, from->fd, -1);
+
+ memset (to, 0, sizeof(*to));
+
+ to->fd = from->fd;
+ if (Mono_Posix_FromPollEvents (from->events, &to->events) != 0) {
+ return -1;
+ }
+ if (Mono_Posix_FromPollEvents (from->revents, &to->revents) != 0) {
+ return -1;
+ }
+
+ return 0;
+}
+#endif /* ndef HAVE_STRUCT_POLLFD */
+
+
+#ifdef HAVE_STRUCT_POLLFD
+int
+Mono_Posix_ToPollfd (struct pollfd *from, struct Mono_Posix_Pollfd *to)
+{
+ _cnm_return_val_if_overflow (int, from->fd, -1);
+
+ memset (to, 0, sizeof(*to));
+
+ to->fd = from->fd;
+ if (Mono_Posix_ToPollEvents (from->events, &to->events) != 0) {
+ return -1;
+ }
+ if (Mono_Posix_ToPollEvents (from->revents, &to->revents) != 0) {
+ return -1;
+ }
+
+ return 0;
+}
+#endif /* ndef HAVE_STRUCT_POLLFD */
+
+
+int Mono_Posix_FromPosixFadviseAdvice (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED)
+#ifdef POSIX_FADV_DONTNEED
+ {*r = POSIX_FADV_DONTNEED; return 0;}
+#else /* def POSIX_FADV_DONTNEED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_DONTNEED */
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE)
+#ifdef POSIX_FADV_NOREUSE
+ {*r = POSIX_FADV_NOREUSE; return 0;}
+#else /* def POSIX_FADV_NOREUSE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_NOREUSE */
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL)
+#ifdef POSIX_FADV_NORMAL
+ {*r = POSIX_FADV_NORMAL; return 0;}
+#else /* def POSIX_FADV_NORMAL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_NORMAL */
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM)
+#ifdef POSIX_FADV_RANDOM
+ {*r = POSIX_FADV_RANDOM; return 0;}
+#else /* def POSIX_FADV_RANDOM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_RANDOM */
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL)
+#ifdef POSIX_FADV_SEQUENTIAL
+ {*r = POSIX_FADV_SEQUENTIAL; return 0;}
+#else /* def POSIX_FADV_SEQUENTIAL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_SEQUENTIAL */
+ if (x == Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED)
+#ifdef POSIX_FADV_WILLNEED
+ {*r = POSIX_FADV_WILLNEED; return 0;}
+#else /* def POSIX_FADV_WILLNEED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_FADV_WILLNEED */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToPosixFadviseAdvice (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef POSIX_FADV_DONTNEED
+ if (x == POSIX_FADV_DONTNEED)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_DONTNEED; return 0;}
+#endif /* ndef POSIX_FADV_DONTNEED */
+#ifdef POSIX_FADV_NOREUSE
+ if (x == POSIX_FADV_NOREUSE)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NOREUSE; return 0;}
+#endif /* ndef POSIX_FADV_NOREUSE */
+#ifdef POSIX_FADV_NORMAL
+ if (x == POSIX_FADV_NORMAL)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_NORMAL; return 0;}
+#endif /* ndef POSIX_FADV_NORMAL */
+#ifdef POSIX_FADV_RANDOM
+ if (x == POSIX_FADV_RANDOM)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_RANDOM; return 0;}
+#endif /* ndef POSIX_FADV_RANDOM */
+#ifdef POSIX_FADV_SEQUENTIAL
+ if (x == POSIX_FADV_SEQUENTIAL)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_SEQUENTIAL; return 0;}
+#endif /* ndef POSIX_FADV_SEQUENTIAL */
+#ifdef POSIX_FADV_WILLNEED
+ if (x == POSIX_FADV_WILLNEED)
+ {*r = Mono_Posix_PosixFadviseAdvice_POSIX_FADV_WILLNEED; return 0;}
+#endif /* ndef POSIX_FADV_WILLNEED */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromPosixMadviseAdvice (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED)
+#ifdef POSIX_MADV_DONTNEED
+ {*r = POSIX_MADV_DONTNEED; return 0;}
+#else /* def POSIX_MADV_DONTNEED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_MADV_DONTNEED */
+ if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL)
+#ifdef POSIX_MADV_NORMAL
+ {*r = POSIX_MADV_NORMAL; return 0;}
+#else /* def POSIX_MADV_NORMAL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_MADV_NORMAL */
+ if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM)
+#ifdef POSIX_MADV_RANDOM
+ {*r = POSIX_MADV_RANDOM; return 0;}
+#else /* def POSIX_MADV_RANDOM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_MADV_RANDOM */
+ if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL)
+#ifdef POSIX_MADV_SEQUENTIAL
+ {*r = POSIX_MADV_SEQUENTIAL; return 0;}
+#else /* def POSIX_MADV_SEQUENTIAL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_MADV_SEQUENTIAL */
+ if (x == Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED)
+#ifdef POSIX_MADV_WILLNEED
+ {*r = POSIX_MADV_WILLNEED; return 0;}
+#else /* def POSIX_MADV_WILLNEED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef POSIX_MADV_WILLNEED */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToPosixMadviseAdvice (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef POSIX_MADV_DONTNEED
+ if (x == POSIX_MADV_DONTNEED)
+ {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_DONTNEED; return 0;}
+#endif /* ndef POSIX_MADV_DONTNEED */
+#ifdef POSIX_MADV_NORMAL
+ if (x == POSIX_MADV_NORMAL)
+ {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_NORMAL; return 0;}
+#endif /* ndef POSIX_MADV_NORMAL */
+#ifdef POSIX_MADV_RANDOM
+ if (x == POSIX_MADV_RANDOM)
+ {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_RANDOM; return 0;}
+#endif /* ndef POSIX_MADV_RANDOM */
+#ifdef POSIX_MADV_SEQUENTIAL
+ if (x == POSIX_MADV_SEQUENTIAL)
+ {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_SEQUENTIAL; return 0;}
+#endif /* ndef POSIX_MADV_SEQUENTIAL */
+#ifdef POSIX_MADV_WILLNEED
+ if (x == POSIX_MADV_WILLNEED)
+ {*r = Mono_Posix_PosixMadviseAdvice_POSIX_MADV_WILLNEED; return 0;}
+#endif /* ndef POSIX_MADV_WILLNEED */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromSeekFlags (short x, short *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_SeekFlags_L_INCR)
+#ifdef L_INCR
+ {*r = L_INCR; return 0;}
+#else /* def L_INCR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef L_INCR */
+ if (x == Mono_Posix_SeekFlags_L_SET)
+#ifdef L_SET
+ {*r = L_SET; return 0;}
+#else /* def L_SET */
+ {errno = EINVAL; return -1;}
+#endif /* ndef L_SET */
+ if (x == Mono_Posix_SeekFlags_L_XTND)
+#ifdef L_XTND
+ {*r = L_XTND; return 0;}
+#else /* def L_XTND */
+ {errno = EINVAL; return -1;}
+#endif /* ndef L_XTND */
+ if (x == Mono_Posix_SeekFlags_SEEK_CUR)
+#ifdef SEEK_CUR
+ {*r = SEEK_CUR; return 0;}
+#else /* def SEEK_CUR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SEEK_CUR */
+ if (x == Mono_Posix_SeekFlags_SEEK_END)
+#ifdef SEEK_END
+ {*r = SEEK_END; return 0;}
+#else /* def SEEK_END */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SEEK_END */
+ if (x == Mono_Posix_SeekFlags_SEEK_SET)
+#ifdef SEEK_SET
+ {*r = SEEK_SET; return 0;}
+#else /* def SEEK_SET */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SEEK_SET */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToSeekFlags (short x, short *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef L_INCR
+ if (x == L_INCR)
+ {*r = Mono_Posix_SeekFlags_L_INCR; return 0;}
+#endif /* ndef L_INCR */
+#ifdef L_SET
+ if (x == L_SET)
+ {*r = Mono_Posix_SeekFlags_L_SET; return 0;}
+#endif /* ndef L_SET */
+#ifdef L_XTND
+ if (x == L_XTND)
+ {*r = Mono_Posix_SeekFlags_L_XTND; return 0;}
+#endif /* ndef L_XTND */
+#ifdef SEEK_CUR
+ if (x == SEEK_CUR)
+ {*r = Mono_Posix_SeekFlags_SEEK_CUR; return 0;}
+#endif /* ndef SEEK_CUR */
+#ifdef SEEK_END
+ if (x == SEEK_END)
+ {*r = Mono_Posix_SeekFlags_SEEK_END; return 0;}
+#endif /* ndef SEEK_END */
+#ifdef SEEK_SET
+ if (x == SEEK_SET)
+ {*r = Mono_Posix_SeekFlags_SEEK_SET; return 0;}
+#endif /* ndef SEEK_SET */
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromSignum (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_Signum_SIGABRT)
+#ifdef SIGABRT
+ {*r = SIGABRT; return 0;}
+#else /* def SIGABRT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGABRT */
+ if (x == Mono_Posix_Signum_SIGALRM)
+#ifdef SIGALRM
+ {*r = SIGALRM; return 0;}
+#else /* def SIGALRM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGALRM */
+ if (x == Mono_Posix_Signum_SIGBUS)
+#ifdef SIGBUS
+ {*r = SIGBUS; return 0;}
+#else /* def SIGBUS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGBUS */
+ if (x == Mono_Posix_Signum_SIGCHLD)
+#ifdef SIGCHLD
+ {*r = SIGCHLD; return 0;}
+#else /* def SIGCHLD */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGCHLD */
+ if (x == Mono_Posix_Signum_SIGCLD)
+#ifdef SIGCLD
+ {*r = SIGCLD; return 0;}
+#else /* def SIGCLD */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGCLD */
+ if (x == Mono_Posix_Signum_SIGCONT)
+#ifdef SIGCONT
+ {*r = SIGCONT; return 0;}
+#else /* def SIGCONT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGCONT */
+ if (x == Mono_Posix_Signum_SIGFPE)
+#ifdef SIGFPE
+ {*r = SIGFPE; return 0;}
+#else /* def SIGFPE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGFPE */
+ if (x == Mono_Posix_Signum_SIGHUP)
+#ifdef SIGHUP
+ {*r = SIGHUP; return 0;}
+#else /* def SIGHUP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGHUP */
+ if (x == Mono_Posix_Signum_SIGILL)
+#ifdef SIGILL
+ {*r = SIGILL; return 0;}
+#else /* def SIGILL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGILL */
+ if (x == Mono_Posix_Signum_SIGINT)
+#ifdef SIGINT
+ {*r = SIGINT; return 0;}
+#else /* def SIGINT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGINT */
+ if (x == Mono_Posix_Signum_SIGIO)
+#ifdef SIGIO
+ {*r = SIGIO; return 0;}
+#else /* def SIGIO */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGIO */
+ if (x == Mono_Posix_Signum_SIGIOT)
+#ifdef SIGIOT
+ {*r = SIGIOT; return 0;}
+#else /* def SIGIOT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGIOT */
+ if (x == Mono_Posix_Signum_SIGKILL)
+#ifdef SIGKILL
+ {*r = SIGKILL; return 0;}
+#else /* def SIGKILL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGKILL */
+ if (x == Mono_Posix_Signum_SIGPIPE)
+#ifdef SIGPIPE
+ {*r = SIGPIPE; return 0;}
+#else /* def SIGPIPE */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGPIPE */
+ if (x == Mono_Posix_Signum_SIGPOLL)
+#ifdef SIGPOLL
+ {*r = SIGPOLL; return 0;}
+#else /* def SIGPOLL */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGPOLL */
+ if (x == Mono_Posix_Signum_SIGPROF)
+#ifdef SIGPROF
+ {*r = SIGPROF; return 0;}
+#else /* def SIGPROF */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGPROF */
+ if (x == Mono_Posix_Signum_SIGPWR)
+#ifdef SIGPWR
+ {*r = SIGPWR; return 0;}
+#else /* def SIGPWR */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGPWR */
+ if (x == Mono_Posix_Signum_SIGQUIT)
+#ifdef SIGQUIT
+ {*r = SIGQUIT; return 0;}
+#else /* def SIGQUIT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGQUIT */
+ if (x == Mono_Posix_Signum_SIGSEGV)
+#ifdef SIGSEGV
+ {*r = SIGSEGV; return 0;}
+#else /* def SIGSEGV */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGSEGV */
+ if (x == Mono_Posix_Signum_SIGSTKFLT)
+#ifdef SIGSTKFLT
+ {*r = SIGSTKFLT; return 0;}
+#else /* def SIGSTKFLT */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGSTKFLT */
+ if (x == Mono_Posix_Signum_SIGSTOP)
+#ifdef SIGSTOP
+ {*r = SIGSTOP; return 0;}
+#else /* def SIGSTOP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGSTOP */
+ if (x == Mono_Posix_Signum_SIGSYS)
+#ifdef SIGSYS
+ {*r = SIGSYS; return 0;}
+#else /* def SIGSYS */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGSYS */
+ if (x == Mono_Posix_Signum_SIGTERM)
+#ifdef SIGTERM
+ {*r = SIGTERM; return 0;}
+#else /* def SIGTERM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGTERM */
+ if (x == Mono_Posix_Signum_SIGTRAP)
+#ifdef SIGTRAP
+ {*r = SIGTRAP; return 0;}
+#else /* def SIGTRAP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGTRAP */
+ if (x == Mono_Posix_Signum_SIGTSTP)
+#ifdef SIGTSTP
+ {*r = SIGTSTP; return 0;}
+#else /* def SIGTSTP */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGTSTP */
+ if (x == Mono_Posix_Signum_SIGTTIN)
+#ifdef SIGTTIN
+ {*r = SIGTTIN; return 0;}
+#else /* def SIGTTIN */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGTTIN */
+ if (x == Mono_Posix_Signum_SIGTTOU)
+#ifdef SIGTTOU
+ {*r = SIGTTOU; return 0;}
+#else /* def SIGTTOU */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGTTOU */
+ if (x == Mono_Posix_Signum_SIGUNUSED)
+#ifdef SIGUNUSED
+ {*r = SIGUNUSED; return 0;}
+#else /* def SIGUNUSED */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGUNUSED */
+ if (x == Mono_Posix_Signum_SIGURG)
+#ifdef SIGURG
+ {*r = SIGURG; return 0;}
+#else /* def SIGURG */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGURG */
+ if (x == Mono_Posix_Signum_SIGUSR1)
+#ifdef SIGUSR1
+ {*r = SIGUSR1; return 0;}
+#else /* def SIGUSR1 */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGUSR1 */
+ if (x == Mono_Posix_Signum_SIGUSR2)
+#ifdef SIGUSR2
+ {*r = SIGUSR2; return 0;}
+#else /* def SIGUSR2 */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGUSR2 */
+ if (x == Mono_Posix_Signum_SIGVTALRM)
+#ifdef SIGVTALRM
+ {*r = SIGVTALRM; return 0;}
+#else /* def SIGVTALRM */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGVTALRM */
+ if (x == Mono_Posix_Signum_SIGWINCH)
+#ifdef SIGWINCH
+ {*r = SIGWINCH; return 0;}
+#else /* def SIGWINCH */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGWINCH */
+ if (x == Mono_Posix_Signum_SIGXCPU)
+#ifdef SIGXCPU
+ {*r = SIGXCPU; return 0;}
+#else /* def SIGXCPU */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGXCPU */
+ if (x == Mono_Posix_Signum_SIGXFSZ)
+#ifdef SIGXFSZ
+ {*r = SIGXFSZ; return 0;}
+#else /* def SIGXFSZ */
+ {errno = EINVAL; return -1;}
+#endif /* ndef SIGXFSZ */
+ if (x == 0)
+ return 0;
+ errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToSignum (int x, int *r)
+{
+ *r = 0;
+ if (x == 0)
+ return 0;
+#ifdef SIGABRT
+ if (x == SIGABRT)
+ {*r = Mono_Posix_Signum_SIGABRT; return 0;}
+#endif /* ndef SIGABRT */
+#ifdef SIGALRM
+ if (x == SIGALRM)
+ {*r = Mono_Posix_Signum_SIGALRM; return 0;}
+#endif /* ndef SIGALRM */
+#ifdef SIGBUS
+ if (x == SIGBUS)
+ {*r = Mono_Posix_Signum_SIGBUS; return 0;}
+#endif /* ndef SIGBUS */
+#ifdef SIGCHLD
+ if (x == SIGCHLD)
+ {*r = Mono_Posix_Signum_SIGCHLD; return 0;}
+#endif /* ndef SIGCHLD */
+#ifdef SIGCLD
+ if (x == SIGCLD)
+ {*r = Mono_Posix_Signum_SIGCLD; return 0;}
+#endif /* ndef SIGCLD */
+#ifdef SIGCONT
+ if (x == SIGCONT)
+ {*r = Mono_Posix_Signum_SIGCONT; return 0;}
+#endif /* ndef SIGCONT */
+#ifdef SIGFPE
+ if (x == SIGFPE)
+ {*r = Mono_Posix_Signum_SIGFPE; return 0;}
+#endif /* ndef SIGFPE */
+#ifdef SIGHUP
+ if (x == SIGHUP)
+ {*r = Mono_Posix_Signum_SIGHUP; return 0;}
+#endif /* ndef SIGHUP */
+#ifdef SIGILL
+ if (x == SIGILL)
+ {*r = Mono_Posix_Signum_SIGILL; return 0;}
+#endif /* ndef SIGILL */
+#ifdef SIGINT
+ if (x == SIGINT)
+ {*r = Mono_Posix_Signum_SIGINT; return 0;}
+#endif /* ndef SIGINT */
+#ifdef SIGIO
+ if (x == SIGIO)
+ {*r = Mono_Posix_Signum_SIGIO; return 0;}
+#endif /* ndef SIGIO */
+#ifdef SIGIOT
+ if (x == SIGIOT)
+ {*r = Mono_Posix_Signum_SIGIOT; return 0;}
+#endif /* ndef SIGIOT */
+#ifdef SIGKILL
+ if (x == SIGKILL)
+ {*r = Mono_Posix_Signum_SIGKILL; return 0;}
+#endif /* ndef SIGKILL */
+#ifdef SIGPIPE
+ if (x == SIGPIPE)
+ {*r = Mono_Posix_Signum_SIGPIPE; return 0;}
+#endif /* ndef SIGPIPE */
+#ifdef SIGPOLL
+ if (x == SIGPOLL)
+ {*r = Mono_Posix_Signum_SIGPOLL; return 0;}
+#endif /* ndef SIGPOLL */
+#ifdef SIGPROF
+ if (x == SIGPROF)
+ {*r = Mono_Posix_Signum_SIGPROF; return 0;}
+#endif /* ndef SIGPROF */
+#ifdef SIGPWR
+ if (x == SIGPWR)
+ {*r = Mono_Posix_Signum_SIGPWR; return 0;}
+#endif /* ndef SIGPWR */
+#ifdef SIGQUIT
+ if (x == SIGQUIT)
+ {*r = Mono_Posix_Signum_SIGQUIT; return 0;}
+#endif /* ndef SIGQUIT */
+#ifdef SIGSEGV
+ if (x == SIGSEGV)
+ {*r = Mono_Posix_Signum_SIGSEGV; return 0;}
+#endif /* ndef SIGSEGV */
+#ifdef SIGSTKFLT
+ if (x == SIGSTKFLT)
+ {*r = Mono_Posix_Signum_SIGSTKFLT; return 0;}
+#endif /* ndef SIGSTKFLT */
+#ifdef SIGSTOP
+ if (x == SIGSTOP)
+ {*r = Mono_Posix_Signum_SIGSTOP; return 0;}
+#endif /* ndef SIGSTOP */
+#ifdef SIGSYS
+ if (x == SIGSYS)
+ {*r = Mono_Posix_Signum_SIGSYS; return 0;}
+#endif /* ndef SIGSYS */
+#ifdef SIGTERM
+ if (x == SIGTERM)
+ {*r = Mono_Posix_Signum_SIGTERM; return 0;}
+#endif /* ndef SIGTERM */
+#ifdef SIGTRAP
+ if (x == SIGTRAP)
+ {*r = Mono_Posix_Signum_SIGTRAP; return 0;}
+#endif /* ndef SIGTRAP */
+#ifdef SIGTSTP
+ if (x == SIGTSTP)
+ {*r = Mono_Posix_Signum_SIGTSTP; return 0;}
+#endif /* ndef SIGTSTP */
+#ifdef SIGTTIN
+ if (x == SIGTTIN)
+ {*r = Mono_Posix_Signum_SIGTTIN; return 0;}
+#endif /* ndef SIGTTIN */
+#ifdef SIGTTOU
+ if (x == SIGTTOU)
+ {*r = Mono_Posix_Signum_SIGTTOU; return 0;}
+#endif /* ndef SIGTTOU */
+#ifdef SIGUNUSED
+ if (x == SIGUNUSED)
+ {*r = Mono_Posix_Signum_SIGUNUSED; return 0;}
+#endif /* ndef SIGUNUSED */
+#ifdef SIGURG
+ if (x == SIGURG)
+ {*r = Mono_Posix_Signum_SIGURG; return 0;}
+#endif /* ndef SIGURG */
+#ifdef SIGUSR1
+ if (x == SIGUSR1)
+ {*r = Mono_Posix_Signum_SIGUSR1; return 0;}
+#endif /* ndef SIGUSR1 */
+#ifdef SIGUSR2
+ if (x == SIGUSR2)
+ {*r = Mono_Posix_Signum_SIGUSR2; return 0;}
+#endif /* ndef SIGUSR2 */
+#ifdef SIGVTALRM
+ if (x == SIGVTALRM)
+ {*r = Mono_Posix_Signum_SIGVTALRM; return 0;}
+#endif /* ndef SIGVTALRM */
+#ifdef SIGWINCH
+ if (x == SIGWINCH)
+ {*r = Mono_Posix_Signum_SIGWINCH; return 0;}
+#endif /* ndef SIGWINCH */
+#ifdef SIGXCPU
+ if (x == SIGXCPU)
+ {*r = Mono_Posix_Signum_SIGXCPU; return 0;}
+#endif /* ndef SIGXCPU */
+#ifdef SIGXFSZ
+ if (x == SIGXFSZ)
+ {*r = Mono_Posix_Signum_SIGXFSZ; return 0;}
+#endif /* ndef SIGXFSZ */
+ errno = EINVAL; return -1;
+}
+
+#ifdef HAVE_STRUCT_STAT
+int
+Mono_Posix_FromStat (struct Mono_Posix_Stat *from, struct stat *to)
+{
+ _cnm_return_val_if_overflow (dev_t, from->st_dev, -1);
+ _cnm_return_val_if_overflow (ino_t, from->st_ino, -1);
+ _cnm_return_val_if_overflow (nlink_t, from->st_nlink, -1);
+ _cnm_return_val_if_overflow (uid_t, from->st_uid, -1);
+ _cnm_return_val_if_overflow (gid_t, from->st_gid, -1);
+ _cnm_return_val_if_overflow (dev_t, from->st_rdev, -1);
+ _cnm_return_val_if_overflow (off_t, from->st_size, -1);
+ _cnm_return_val_if_overflow (blksize_t, from->st_blksize, -1);
+ _cnm_return_val_if_overflow (blkcnt_t, from->st_blocks, -1);
+ _cnm_return_val_if_overflow (time_t, from->st_atime_, -1);
+ _cnm_return_val_if_overflow (time_t, from->st_mtime_, -1);
+ _cnm_return_val_if_overflow (time_t, from->st_ctime_, -1);
+
+ memset (to, 0, sizeof(*to));
+
+ to->st_dev = from->st_dev;
+ to->st_ino = from->st_ino;
+ if (Mono_Posix_FromFilePermissions (from->st_mode, &to->st_mode) != 0) {
+ return -1;
+ }
+ to->st_nlink = from->st_nlink;
+ to->st_uid = from->st_uid;
+ to->st_gid = from->st_gid;
+ to->st_rdev = from->st_rdev;
+ to->st_size = from->st_size;
+ to->st_blksize = from->st_blksize;
+ to->st_blocks = from->st_blocks;
+ to->st_atime = from->st_atime_;
+ to->st_mtime = from->st_mtime_;
+ to->st_ctime = from->st_ctime_;
+
+ return 0;
+}
+#endif /* ndef HAVE_STRUCT_STAT */
+
+
+#ifdef HAVE_STRUCT_STAT
+int
+Mono_Posix_ToStat (struct stat *from, struct Mono_Posix_Stat *to)
+{
+ _cnm_return_val_if_overflow (guint64, from->st_dev, -1);
+ _cnm_return_val_if_overflow (guint64, from->st_ino, -1);
+ _cnm_return_val_if_overflow (guint64, from->st_nlink, -1);
+ _cnm_return_val_if_overflow (unsigned int, from->st_uid, -1);
+ _cnm_return_val_if_overflow (unsigned int, from->st_gid, -1);
+ _cnm_return_val_if_overflow (guint64, from->st_rdev, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_size, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_blksize, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_blocks, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_atime, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_mtime, -1);
+ _cnm_return_val_if_overflow (gint64, from->st_ctime, -1);
+
+ memset (to, 0, sizeof(*to));
+
+ to->st_dev = from->st_dev;
+ to->st_ino = from->st_ino;
+ if (Mono_Posix_ToFilePermissions (from->st_mode, &to->st_mode) != 0) {
+ return -1;
+ }
+ to->st_nlink = from->st_nlink;
+ to->st_uid = from->st_uid;
+ to->st_gid = from->st_gid;
+ to->st_rdev = from->st_rdev;
+ to->st_size = from->st_size;
+ to->st_blksize = from->st_blksize;
+ to->st_blocks = from->st_blocks;
+ to->st_atime_ = from->st_atime;
+ to->st_mtime_ = from->st_mtime;
+ to->st_ctime_ = from->st_ctime;
+
+ return 0;
+}
+#endif /* ndef HAVE_STRUCT_STAT */
+
+
+int Mono_Posix_FromSysconfName (int x, int *r)
+{
+ *r = 0;
+ if (x == Mono_Posix_SysconfName__SC_2_CHAR_TERM)