NotWorking stuff
[mono.git] / support / map.c
index 5e12b5151f9982a2f8d4fb8a03658195872dc75e..5e17e11b5170cd9ca669d4837ef886dc69f103b4 100644 (file)
@@ -1,8 +1,9 @@
 /*
- * This file was automatically generated by make-map from Mono.Posix.dll.
+ * This file was automatically generated by make-map from ../../mcs/class/lib/default/Mono.Posix.dll.
  *
  * DO NOT MODIFY.
  */
+#include <config.h>
 
 #include "map.h"
 
 #endif /* ndef _XOPEN_SOURCE */
 #include <sys/types.h>
 #include <sys/stat.h>
+#ifdef HAVE_SYS_POLL_H
 #include <sys/poll.h>
+#endif
+#ifdef HAVE_SYS_WAIT_H
 #include <sys/wait.h>
-#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+#ifdef HAVE_SYS_XATTR_H
+#include <sys/xattr.h>
+#endif
 #include <unistd.h>
 #include <fcntl.h>
 #include <signal.h>
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
+#ifdef HAVE_GRP_H
 #include <grp.h>
+#endif
 #include <errno.h>
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif
 
 int Mono_Posix_FromError (int x, int *r)
 {
@@ -1279,6 +1297,394 @@ int Mono_Posix_ToError (int x, int *r)
        errno = EINVAL; return -1;
 }
 
+int Mono_Posix_FromSyslogOptions (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       if ((x & Mono_Posix_SyslogOptions_LOG_PID) == Mono_Posix_SyslogOptions_LOG_PID)
+#ifdef LOG_PID
+               *r |= LOG_PID;
+#else /* def LOG_PID */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_PID */
+       if ((x & Mono_Posix_SyslogOptions_LOG_CONS) == Mono_Posix_SyslogOptions_LOG_CONS)
+#ifdef LOG_CONS
+               *r |= LOG_CONS;
+#else /* def LOG_CONS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_CONS */
+       if ((x & Mono_Posix_SyslogOptions_LOG_ODELAY) == Mono_Posix_SyslogOptions_LOG_ODELAY)
+#ifdef LOG_ODELAY
+               *r |= LOG_ODELAY;
+#else /* def LOG_ODELAY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_ODELAY */
+       if ((x & Mono_Posix_SyslogOptions_LOG_NDELAY) == Mono_Posix_SyslogOptions_LOG_NDELAY)
+#ifdef LOG_NDELAY
+               *r |= LOG_NDELAY;
+#else /* def LOG_NDELAY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_NDELAY */
+       if ((x & Mono_Posix_SyslogOptions_LOG_NOWAIT) == Mono_Posix_SyslogOptions_LOG_NOWAIT)
+#ifdef LOG_NOWAIT
+               *r |= LOG_NOWAIT;
+#else /* def LOG_NOWAIT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_NOWAIT */
+       if ((x & Mono_Posix_SyslogOptions_LOG_PERROR) == Mono_Posix_SyslogOptions_LOG_PERROR)
+#ifdef LOG_PERROR
+               *r |= LOG_PERROR;
+#else /* def LOG_PERROR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_PERROR */
+       return 0;
+}
+
+int Mono_Posix_ToSyslogOptions (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef LOG_PID
+       if ((x & LOG_PID) == LOG_PID)
+               *r |= Mono_Posix_SyslogOptions_LOG_PID;
+#endif /* ndef LOG_PID */
+#ifdef LOG_CONS
+       if ((x & LOG_CONS) == LOG_CONS)
+               *r |= Mono_Posix_SyslogOptions_LOG_CONS;
+#endif /* ndef LOG_CONS */
+#ifdef LOG_ODELAY
+       if ((x & LOG_ODELAY) == LOG_ODELAY)
+               *r |= Mono_Posix_SyslogOptions_LOG_ODELAY;
+#endif /* ndef LOG_ODELAY */
+#ifdef LOG_NDELAY
+       if ((x & LOG_NDELAY) == LOG_NDELAY)
+               *r |= Mono_Posix_SyslogOptions_LOG_NDELAY;
+#endif /* ndef LOG_NDELAY */
+#ifdef LOG_NOWAIT
+       if ((x & LOG_NOWAIT) == LOG_NOWAIT)
+               *r |= Mono_Posix_SyslogOptions_LOG_NOWAIT;
+#endif /* ndef LOG_NOWAIT */
+#ifdef LOG_PERROR
+       if ((x & LOG_PERROR) == LOG_PERROR)
+               *r |= Mono_Posix_SyslogOptions_LOG_PERROR;
+#endif /* ndef LOG_PERROR */
+       return 0;
+}
+
+int Mono_Posix_FromSyslogFacility (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       if ((x & Mono_Posix_SyslogFacility_LOG_KERN) == Mono_Posix_SyslogFacility_LOG_KERN)
+#ifdef LOG_KERN
+               *r |= LOG_KERN;
+#else /* def LOG_KERN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_KERN */
+       if ((x & Mono_Posix_SyslogFacility_LOG_USRE) == Mono_Posix_SyslogFacility_LOG_USRE)
+#ifdef LOG_USRE
+               *r |= LOG_USRE;
+#else /* def LOG_USRE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_USRE */
+       if ((x & Mono_Posix_SyslogFacility_LOG_MAIL) == Mono_Posix_SyslogFacility_LOG_MAIL)
+#ifdef LOG_MAIL
+               *r |= LOG_MAIL;
+#else /* def LOG_MAIL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_MAIL */
+       if ((x & Mono_Posix_SyslogFacility_LOG_DAEMON) == Mono_Posix_SyslogFacility_LOG_DAEMON)
+#ifdef LOG_DAEMON
+               *r |= LOG_DAEMON;
+#else /* def LOG_DAEMON */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_DAEMON */
+       if ((x & Mono_Posix_SyslogFacility_LOG_AUTH) == Mono_Posix_SyslogFacility_LOG_AUTH)
+#ifdef LOG_AUTH
+               *r |= LOG_AUTH;
+#else /* def LOG_AUTH */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_AUTH */
+       if ((x & Mono_Posix_SyslogFacility_LOG_SYSLOG) == Mono_Posix_SyslogFacility_LOG_SYSLOG)
+#ifdef LOG_SYSLOG
+               *r |= LOG_SYSLOG;
+#else /* def LOG_SYSLOG */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_SYSLOG */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LPR) == Mono_Posix_SyslogFacility_LOG_LPR)
+#ifdef LOG_LPR
+               *r |= LOG_LPR;
+#else /* def LOG_LPR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LPR */
+       if ((x & Mono_Posix_SyslogFacility_LOG_NEWS) == Mono_Posix_SyslogFacility_LOG_NEWS)
+#ifdef LOG_NEWS
+               *r |= LOG_NEWS;
+#else /* def LOG_NEWS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_NEWS */
+       if ((x & Mono_Posix_SyslogFacility_LOG_UUCP) == Mono_Posix_SyslogFacility_LOG_UUCP)
+#ifdef LOG_UUCP
+               *r |= LOG_UUCP;
+#else /* def LOG_UUCP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_UUCP */
+       if ((x & Mono_Posix_SyslogFacility_LOG_CRON) == Mono_Posix_SyslogFacility_LOG_CRON)
+#ifdef LOG_CRON
+               *r |= LOG_CRON;
+#else /* def LOG_CRON */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_CRON */
+       if ((x & Mono_Posix_SyslogFacility_LOG_AUTHPRIV) == Mono_Posix_SyslogFacility_LOG_AUTHPRIV)
+#ifdef LOG_AUTHPRIV
+               *r |= LOG_AUTHPRIV;
+#else /* def LOG_AUTHPRIV */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_AUTHPRIV */
+       if ((x & Mono_Posix_SyslogFacility_LOG_FTP) == Mono_Posix_SyslogFacility_LOG_FTP)
+#ifdef LOG_FTP
+               *r |= LOG_FTP;
+#else /* def LOG_FTP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_FTP */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL0) == Mono_Posix_SyslogFacility_LOG_LOCAL0)
+#ifdef LOG_LOCAL0
+               *r |= LOG_LOCAL0;
+#else /* def LOG_LOCAL0 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL0 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL1) == Mono_Posix_SyslogFacility_LOG_LOCAL1)
+#ifdef LOG_LOCAL1
+               *r |= LOG_LOCAL1;
+#else /* def LOG_LOCAL1 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL1 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL2) == Mono_Posix_SyslogFacility_LOG_LOCAL2)
+#ifdef LOG_LOCAL2
+               *r |= LOG_LOCAL2;
+#else /* def LOG_LOCAL2 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL2 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL3) == Mono_Posix_SyslogFacility_LOG_LOCAL3)
+#ifdef LOG_LOCAL3
+               *r |= LOG_LOCAL3;
+#else /* def LOG_LOCAL3 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL3 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL4) == Mono_Posix_SyslogFacility_LOG_LOCAL4)
+#ifdef LOG_LOCAL4
+               *r |= LOG_LOCAL4;
+#else /* def LOG_LOCAL4 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL4 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL5) == Mono_Posix_SyslogFacility_LOG_LOCAL5)
+#ifdef LOG_LOCAL5
+               *r |= LOG_LOCAL5;
+#else /* def LOG_LOCAL5 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL5 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL6) == Mono_Posix_SyslogFacility_LOG_LOCAL6)
+#ifdef LOG_LOCAL6
+               *r |= LOG_LOCAL6;
+#else /* def LOG_LOCAL6 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL6 */
+       if ((x & Mono_Posix_SyslogFacility_LOG_LOCAL7) == Mono_Posix_SyslogFacility_LOG_LOCAL7)
+#ifdef LOG_LOCAL7
+               *r |= LOG_LOCAL7;
+#else /* def LOG_LOCAL7 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_LOCAL7 */
+       return 0;
+}
+
+int Mono_Posix_ToSyslogFacility (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef LOG_KERN
+       if ((x & LOG_KERN) == LOG_KERN)
+               *r |= Mono_Posix_SyslogFacility_LOG_KERN;
+#endif /* ndef LOG_KERN */
+#ifdef LOG_USRE
+       if ((x & LOG_USRE) == LOG_USRE)
+               *r |= Mono_Posix_SyslogFacility_LOG_USRE;
+#endif /* ndef LOG_USRE */
+#ifdef LOG_MAIL
+       if ((x & LOG_MAIL) == LOG_MAIL)
+               *r |= Mono_Posix_SyslogFacility_LOG_MAIL;
+#endif /* ndef LOG_MAIL */
+#ifdef LOG_DAEMON
+       if ((x & LOG_DAEMON) == LOG_DAEMON)
+               *r |= Mono_Posix_SyslogFacility_LOG_DAEMON;
+#endif /* ndef LOG_DAEMON */
+#ifdef LOG_AUTH
+       if ((x & LOG_AUTH) == LOG_AUTH)
+               *r |= Mono_Posix_SyslogFacility_LOG_AUTH;
+#endif /* ndef LOG_AUTH */
+#ifdef LOG_SYSLOG
+       if ((x & LOG_SYSLOG) == LOG_SYSLOG)
+               *r |= Mono_Posix_SyslogFacility_LOG_SYSLOG;
+#endif /* ndef LOG_SYSLOG */
+#ifdef LOG_LPR
+       if ((x & LOG_LPR) == LOG_LPR)
+               *r |= Mono_Posix_SyslogFacility_LOG_LPR;
+#endif /* ndef LOG_LPR */
+#ifdef LOG_NEWS
+       if ((x & LOG_NEWS) == LOG_NEWS)
+               *r |= Mono_Posix_SyslogFacility_LOG_NEWS;
+#endif /* ndef LOG_NEWS */
+#ifdef LOG_UUCP
+       if ((x & LOG_UUCP) == LOG_UUCP)
+               *r |= Mono_Posix_SyslogFacility_LOG_UUCP;
+#endif /* ndef LOG_UUCP */
+#ifdef LOG_CRON
+       if ((x & LOG_CRON) == LOG_CRON)
+               *r |= Mono_Posix_SyslogFacility_LOG_CRON;
+#endif /* ndef LOG_CRON */
+#ifdef LOG_AUTHPRIV
+       if ((x & LOG_AUTHPRIV) == LOG_AUTHPRIV)
+               *r |= Mono_Posix_SyslogFacility_LOG_AUTHPRIV;
+#endif /* ndef LOG_AUTHPRIV */
+#ifdef LOG_FTP
+       if ((x & LOG_FTP) == LOG_FTP)
+               *r |= Mono_Posix_SyslogFacility_LOG_FTP;
+#endif /* ndef LOG_FTP */
+#ifdef LOG_LOCAL0
+       if ((x & LOG_LOCAL0) == LOG_LOCAL0)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL0;
+#endif /* ndef LOG_LOCAL0 */
+#ifdef LOG_LOCAL1
+       if ((x & LOG_LOCAL1) == LOG_LOCAL1)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL1;
+#endif /* ndef LOG_LOCAL1 */
+#ifdef LOG_LOCAL2
+       if ((x & LOG_LOCAL2) == LOG_LOCAL2)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL2;
+#endif /* ndef LOG_LOCAL2 */
+#ifdef LOG_LOCAL3
+       if ((x & LOG_LOCAL3) == LOG_LOCAL3)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL3;
+#endif /* ndef LOG_LOCAL3 */
+#ifdef LOG_LOCAL4
+       if ((x & LOG_LOCAL4) == LOG_LOCAL4)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL4;
+#endif /* ndef LOG_LOCAL4 */
+#ifdef LOG_LOCAL5
+       if ((x & LOG_LOCAL5) == LOG_LOCAL5)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL5;
+#endif /* ndef LOG_LOCAL5 */
+#ifdef LOG_LOCAL6
+       if ((x & LOG_LOCAL6) == LOG_LOCAL6)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL6;
+#endif /* ndef LOG_LOCAL6 */
+#ifdef LOG_LOCAL7
+       if ((x & LOG_LOCAL7) == LOG_LOCAL7)
+               *r |= Mono_Posix_SyslogFacility_LOG_LOCAL7;
+#endif /* ndef LOG_LOCAL7 */
+       return 0;
+}
+
+int Mono_Posix_FromSyslogLevel (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       if ((x & Mono_Posix_SyslogLevel_LOG_EMERG) == Mono_Posix_SyslogLevel_LOG_EMERG)
+#ifdef LOG_EMERG
+               *r |= LOG_EMERG;
+#else /* def LOG_EMERG */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_EMERG */
+       if ((x & Mono_Posix_SyslogLevel_LOG_ALERT) == Mono_Posix_SyslogLevel_LOG_ALERT)
+#ifdef LOG_ALERT
+               *r |= LOG_ALERT;
+#else /* def LOG_ALERT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_ALERT */
+       if ((x & Mono_Posix_SyslogLevel_LOG_CRIT) == Mono_Posix_SyslogLevel_LOG_CRIT)
+#ifdef LOG_CRIT
+               *r |= LOG_CRIT;
+#else /* def LOG_CRIT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_CRIT */
+       if ((x & Mono_Posix_SyslogLevel_LOG_ERR) == Mono_Posix_SyslogLevel_LOG_ERR)
+#ifdef LOG_ERR
+               *r |= LOG_ERR;
+#else /* def LOG_ERR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_ERR */
+       if ((x & Mono_Posix_SyslogLevel_LOG_WARNING) == Mono_Posix_SyslogLevel_LOG_WARNING)
+#ifdef LOG_WARNING
+               *r |= LOG_WARNING;
+#else /* def LOG_WARNING */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_WARNING */
+       if ((x & Mono_Posix_SyslogLevel_LOG_NOTICE) == Mono_Posix_SyslogLevel_LOG_NOTICE)
+#ifdef LOG_NOTICE
+               *r |= LOG_NOTICE;
+#else /* def LOG_NOTICE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_NOTICE */
+       if ((x & Mono_Posix_SyslogLevel_LOG_INFO) == Mono_Posix_SyslogLevel_LOG_INFO)
+#ifdef LOG_INFO
+               *r |= LOG_INFO;
+#else /* def LOG_INFO */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_INFO */
+       if ((x & Mono_Posix_SyslogLevel_LOG_DEBUG) == Mono_Posix_SyslogLevel_LOG_DEBUG)
+#ifdef LOG_DEBUG
+               *r |= LOG_DEBUG;
+#else /* def LOG_DEBUG */
+               {errno = EINVAL; return -1;}
+#endif /* ndef LOG_DEBUG */
+       return 0;
+}
+
+int Mono_Posix_ToSyslogLevel (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef LOG_EMERG
+       if ((x & LOG_EMERG) == LOG_EMERG)
+               *r |= Mono_Posix_SyslogLevel_LOG_EMERG;
+#endif /* ndef LOG_EMERG */
+#ifdef LOG_ALERT
+       if ((x & LOG_ALERT) == LOG_ALERT)
+               *r |= Mono_Posix_SyslogLevel_LOG_ALERT;
+#endif /* ndef LOG_ALERT */
+#ifdef LOG_CRIT
+       if ((x & LOG_CRIT) == LOG_CRIT)
+               *r |= Mono_Posix_SyslogLevel_LOG_CRIT;
+#endif /* ndef LOG_CRIT */
+#ifdef LOG_ERR
+       if ((x & LOG_ERR) == LOG_ERR)
+               *r |= Mono_Posix_SyslogLevel_LOG_ERR;
+#endif /* ndef LOG_ERR */
+#ifdef LOG_WARNING
+       if ((x & LOG_WARNING) == LOG_WARNING)
+               *r |= Mono_Posix_SyslogLevel_LOG_WARNING;
+#endif /* ndef LOG_WARNING */
+#ifdef LOG_NOTICE
+       if ((x & LOG_NOTICE) == LOG_NOTICE)
+               *r |= Mono_Posix_SyslogLevel_LOG_NOTICE;
+#endif /* ndef LOG_NOTICE */
+#ifdef LOG_INFO
+       if ((x & LOG_INFO) == LOG_INFO)
+               *r |= Mono_Posix_SyslogLevel_LOG_INFO;
+#endif /* ndef LOG_INFO */
+#ifdef LOG_DEBUG
+       if ((x & LOG_DEBUG) == LOG_DEBUG)
+               *r |= Mono_Posix_SyslogLevel_LOG_DEBUG;
+#endif /* ndef LOG_DEBUG */
+       return 0;
+}
+
 int Mono_Posix_FromOpenFlags (int x, int *r)
 {
        *r = 0;
@@ -2603,218 +3009,6 @@ int Mono_Posix_ToSignum (int x, int *r)
        errno = EINVAL; return -1;
 }
 
-int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
-{
-       *r = 0;
-       if (x == 0)
-               return 0;
-       if ((x & Mono_Posix_MountFlags_MS_RDONLY) == Mono_Posix_MountFlags_MS_RDONLY)
-#ifdef MS_RDONLY
-               *r |= MS_RDONLY;
-#else /* def MS_RDONLY */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_RDONLY */
-       if ((x & Mono_Posix_MountFlags_MS_NOSUID) == Mono_Posix_MountFlags_MS_NOSUID)
-#ifdef MS_NOSUID
-               *r |= MS_NOSUID;
-#else /* def MS_NOSUID */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_NOSUID */
-       if ((x & Mono_Posix_MountFlags_MS_NODEV) == Mono_Posix_MountFlags_MS_NODEV)
-#ifdef MS_NODEV
-               *r |= MS_NODEV;
-#else /* def MS_NODEV */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_NODEV */
-       if ((x & Mono_Posix_MountFlags_MS_NOEXEC) == Mono_Posix_MountFlags_MS_NOEXEC)
-#ifdef MS_NOEXEC
-               *r |= MS_NOEXEC;
-#else /* def MS_NOEXEC */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_NOEXEC */
-       if ((x & Mono_Posix_MountFlags_MS_SYNCHRONOUS) == Mono_Posix_MountFlags_MS_SYNCHRONOUS)
-#ifdef MS_SYNCHRONOUS
-               *r |= MS_SYNCHRONOUS;
-#else /* def MS_SYNCHRONOUS */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_SYNCHRONOUS */
-       if ((x & Mono_Posix_MountFlags_MS_REMOUNT) == Mono_Posix_MountFlags_MS_REMOUNT)
-#ifdef MS_REMOUNT
-               *r |= MS_REMOUNT;
-#else /* def MS_REMOUNT */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_REMOUNT */
-       if ((x & Mono_Posix_MountFlags_MS_MANDLOCK) == Mono_Posix_MountFlags_MS_MANDLOCK)
-#ifdef MS_MANDLOCK
-               *r |= MS_MANDLOCK;
-#else /* def MS_MANDLOCK */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_MANDLOCK */
-       if ((x & Mono_Posix_MountFlags_S_WRITE) == Mono_Posix_MountFlags_S_WRITE)
-#ifdef S_WRITE
-               *r |= S_WRITE;
-#else /* def S_WRITE */
-               {errno = EINVAL; return -1;}
-#endif /* ndef S_WRITE */
-       if ((x & Mono_Posix_MountFlags_S_APPEND) == Mono_Posix_MountFlags_S_APPEND)
-#ifdef S_APPEND
-               *r |= S_APPEND;
-#else /* def S_APPEND */
-               {errno = EINVAL; return -1;}
-#endif /* ndef S_APPEND */
-       if ((x & Mono_Posix_MountFlags_S_IMMUTABLE) == Mono_Posix_MountFlags_S_IMMUTABLE)
-#ifdef S_IMMUTABLE
-               *r |= S_IMMUTABLE;
-#else /* def S_IMMUTABLE */
-               {errno = EINVAL; return -1;}
-#endif /* ndef S_IMMUTABLE */
-       if ((x & Mono_Posix_MountFlags_MS_NOATIME) == Mono_Posix_MountFlags_MS_NOATIME)
-#ifdef MS_NOATIME
-               *r |= MS_NOATIME;
-#else /* def MS_NOATIME */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_NOATIME */
-       if ((x & Mono_Posix_MountFlags_MS_NODIRATIME) == Mono_Posix_MountFlags_MS_NODIRATIME)
-#ifdef MS_NODIRATIME
-               *r |= MS_NODIRATIME;
-#else /* def MS_NODIRATIME */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_NODIRATIME */
-       if ((x & Mono_Posix_MountFlags_MS_BIND) == Mono_Posix_MountFlags_MS_BIND)
-#ifdef MS_BIND
-               *r |= MS_BIND;
-#else /* def MS_BIND */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_BIND */
-       if ((x & Mono_Posix_MountFlags_MS_RMT_MASK) == Mono_Posix_MountFlags_MS_RMT_MASK)
-#ifdef MS_RMT_MASK
-               *r |= MS_RMT_MASK;
-#else /* def MS_RMT_MASK */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_RMT_MASK */
-       if ((x & Mono_Posix_MountFlags_MS_MGC_VAL) == Mono_Posix_MountFlags_MS_MGC_VAL)
-#ifdef MS_MGC_VAL
-               *r |= MS_MGC_VAL;
-#else /* def MS_MGC_VAL */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_MGC_VAL */
-       if ((x & Mono_Posix_MountFlags_MS_MGC_MSK) == Mono_Posix_MountFlags_MS_MGC_MSK)
-#ifdef MS_MGC_MSK
-               *r |= MS_MGC_MSK;
-#else /* def MS_MGC_MSK */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MS_MGC_MSK */
-       return 0;
-}
-
-int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
-{
-       *r = 0;
-       if (x == 0)
-               return 0;
-#ifdef MS_RDONLY
-       if ((x & MS_RDONLY) == MS_RDONLY)
-               *r |= Mono_Posix_MountFlags_MS_RDONLY;
-#endif /* ndef MS_RDONLY */
-#ifdef MS_NOSUID
-       if ((x & MS_NOSUID) == MS_NOSUID)
-               *r |= Mono_Posix_MountFlags_MS_NOSUID;
-#endif /* ndef MS_NOSUID */
-#ifdef MS_NODEV
-       if ((x & MS_NODEV) == MS_NODEV)
-               *r |= Mono_Posix_MountFlags_MS_NODEV;
-#endif /* ndef MS_NODEV */
-#ifdef MS_NOEXEC
-       if ((x & MS_NOEXEC) == MS_NOEXEC)
-               *r |= Mono_Posix_MountFlags_MS_NOEXEC;
-#endif /* ndef MS_NOEXEC */
-#ifdef MS_SYNCHRONOUS
-       if ((x & MS_SYNCHRONOUS) == MS_SYNCHRONOUS)
-               *r |= Mono_Posix_MountFlags_MS_SYNCHRONOUS;
-#endif /* ndef MS_SYNCHRONOUS */
-#ifdef MS_REMOUNT
-       if ((x & MS_REMOUNT) == MS_REMOUNT)
-               *r |= Mono_Posix_MountFlags_MS_REMOUNT;
-#endif /* ndef MS_REMOUNT */
-#ifdef MS_MANDLOCK
-       if ((x & MS_MANDLOCK) == MS_MANDLOCK)
-               *r |= Mono_Posix_MountFlags_MS_MANDLOCK;
-#endif /* ndef MS_MANDLOCK */
-#ifdef S_WRITE
-       if ((x & S_WRITE) == S_WRITE)
-               *r |= Mono_Posix_MountFlags_S_WRITE;
-#endif /* ndef S_WRITE */
-#ifdef S_APPEND
-       if ((x & S_APPEND) == S_APPEND)
-               *r |= Mono_Posix_MountFlags_S_APPEND;
-#endif /* ndef S_APPEND */
-#ifdef S_IMMUTABLE
-       if ((x & S_IMMUTABLE) == S_IMMUTABLE)
-               *r |= Mono_Posix_MountFlags_S_IMMUTABLE;
-#endif /* ndef S_IMMUTABLE */
-#ifdef MS_NOATIME
-       if ((x & MS_NOATIME) == MS_NOATIME)
-               *r |= Mono_Posix_MountFlags_MS_NOATIME;
-#endif /* ndef MS_NOATIME */
-#ifdef MS_NODIRATIME
-       if ((x & MS_NODIRATIME) == MS_NODIRATIME)
-               *r |= Mono_Posix_MountFlags_MS_NODIRATIME;
-#endif /* ndef MS_NODIRATIME */
-#ifdef MS_BIND
-       if ((x & MS_BIND) == MS_BIND)
-               *r |= Mono_Posix_MountFlags_MS_BIND;
-#endif /* ndef MS_BIND */
-#ifdef MS_RMT_MASK
-       if ((x & MS_RMT_MASK) == MS_RMT_MASK)
-               *r |= Mono_Posix_MountFlags_MS_RMT_MASK;
-#endif /* ndef MS_RMT_MASK */
-#ifdef MS_MGC_VAL
-       if ((x & MS_MGC_VAL) == MS_MGC_VAL)
-               *r |= Mono_Posix_MountFlags_MS_MGC_VAL;
-#endif /* ndef MS_MGC_VAL */
-#ifdef MS_MGC_MSK
-       if ((x & MS_MGC_MSK) == MS_MGC_MSK)
-               *r |= Mono_Posix_MountFlags_MS_MGC_MSK;
-#endif /* ndef MS_MGC_MSK */
-       return 0;
-}
-
-int Mono_Posix_FromUmountFlags (int x, int *r)
-{
-       *r = 0;
-       if (x == 0)
-               return 0;
-       if ((x & Mono_Posix_UmountFlags_MNT_FORCE) == Mono_Posix_UmountFlags_MNT_FORCE)
-#ifdef MNT_FORCE
-               *r |= MNT_FORCE;
-#else /* def MNT_FORCE */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MNT_FORCE */
-       if ((x & Mono_Posix_UmountFlags_MNT_DETACH) == Mono_Posix_UmountFlags_MNT_DETACH)
-#ifdef MNT_DETACH
-               *r |= MNT_DETACH;
-#else /* def MNT_DETACH */
-               {errno = EINVAL; return -1;}
-#endif /* ndef MNT_DETACH */
-       return 0;
-}
-
-int Mono_Posix_ToUmountFlags (int x, int *r)
-{
-       *r = 0;
-       if (x == 0)
-               return 0;
-#ifdef MNT_FORCE
-       if ((x & MNT_FORCE) == MNT_FORCE)
-               *r |= Mono_Posix_UmountFlags_MNT_FORCE;
-#endif /* ndef MNT_FORCE */
-#ifdef MNT_DETACH
-       if ((x & MNT_DETACH) == MNT_DETACH)
-               *r |= Mono_Posix_UmountFlags_MNT_DETACH;
-#endif /* ndef MNT_DETACH */
-       return 0;
-}
-
 int Mono_Posix_FromWaitOptions (int x, int *r)
 {
        *r = 0;
@@ -5615,30 +5809,30 @@ int Mono_Posix_ToConfStr (int x, int *r)
        errno = EINVAL; return -1;
 }
 
-int Mono_Posix_FromLockFlags (int x, int *r)
+int Mono_Posix_FromLockfCommand (int x, int *r)
 {
        *r = 0;
        if (x == 0)
                return 0;
-       if (x == Mono_Posix_LockFlags_F_ULOCK)
+       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 == Mono_Posix_LockFlags_F_LOCK)
+       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_LockFlags_F_TLOCK)
+       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_LockFlags_F_TEST)
+       if (x == Mono_Posix_LockfCommand_F_TEST)
 #ifdef F_TEST
                {*r = F_TEST; return 0;}
 #else /* def F_TEST */
@@ -5647,26 +5841,26 @@ int Mono_Posix_FromLockFlags (int x, int *r)
        errno = EINVAL; return -1;
 }
 
-int Mono_Posix_ToLockFlags (int x, int *r)
+int Mono_Posix_ToLockfCommand (int x, int *r)
 {
        *r = 0;
        if (x == 0)
                return 0;
 #ifdef F_ULOCK
        if (x == F_ULOCK)
-               {*r = Mono_Posix_LockFlags_F_ULOCK; return 0;}
+               {*r = Mono_Posix_LockfCommand_F_ULOCK; return 0;}
 #endif /* ndef F_ULOCK */
 #ifdef F_LOCK
        if (x == F_LOCK)
-               {*r = Mono_Posix_LockFlags_F_LOCK; return 0;}
+               {*r = Mono_Posix_LockfCommand_F_LOCK; return 0;}
 #endif /* ndef F_LOCK */
 #ifdef F_TLOCK
        if (x == F_TLOCK)
-               {*r = Mono_Posix_LockFlags_F_TLOCK; return 0;}
+               {*r = Mono_Posix_LockfCommand_F_TLOCK; return 0;}
 #endif /* ndef F_TLOCK */
 #ifdef F_TEST
        if (x == F_TEST)
-               {*r = Mono_Posix_LockFlags_F_TEST; return 0;}
+               {*r = Mono_Posix_LockfCommand_F_TEST; return 0;}
 #endif /* ndef F_TEST */
        errno = EINVAL; return -1;
 }
@@ -5787,3 +5981,505 @@ int Mono_Posix_ToPollEvents (short x, short *r)
        return 0;
 }
 
+int Mono_Posix_FromXattrFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       if ((x & Mono_Posix_XattrFlags_XATTR_AUTO) == Mono_Posix_XattrFlags_XATTR_AUTO)
+#ifdef XATTR_AUTO
+               *r |= XATTR_AUTO;
+#else /* def XATTR_AUTO */
+               {errno = EINVAL; return -1;}
+#endif /* ndef XATTR_AUTO */
+       if ((x & Mono_Posix_XattrFlags_XATTR_CREATE) == Mono_Posix_XattrFlags_XATTR_CREATE)
+#ifdef XATTR_CREATE
+               *r |= XATTR_CREATE;
+#else /* def XATTR_CREATE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef XATTR_CREATE */
+       if ((x & Mono_Posix_XattrFlags_XATTR_REPLACE) == Mono_Posix_XattrFlags_XATTR_REPLACE)
+#ifdef XATTR_REPLACE
+               *r |= XATTR_REPLACE;
+#else /* def XATTR_REPLACE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef XATTR_REPLACE */
+       return 0;
+}
+
+int Mono_Posix_ToXattrFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef XATTR_AUTO
+       if ((x & XATTR_AUTO) == XATTR_AUTO)
+               *r |= Mono_Posix_XattrFlags_XATTR_AUTO;
+#endif /* ndef XATTR_AUTO */
+#ifdef XATTR_CREATE
+       if ((x & XATTR_CREATE) == XATTR_CREATE)
+               *r |= Mono_Posix_XattrFlags_XATTR_CREATE;
+#endif /* ndef XATTR_CREATE */
+#ifdef XATTR_REPLACE
+       if ((x & XATTR_REPLACE) == XATTR_REPLACE)
+               *r |= Mono_Posix_XattrFlags_XATTR_REPLACE;
+#endif /* ndef XATTR_REPLACE */
+       return 0;
+}
+
+int Mono_Posix_FromMountFlags (guint64 x, guint64 *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       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_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_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_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_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_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 & 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_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_NODIRATIME) == Mono_Posix_MountFlags_ST_NODIRATIME)
+#ifdef ST_NODIRATIME
+               *r |= ST_NODIRATIME;
+#else /* def ST_NODIRATIME */
+               {errno = EINVAL; return -1;}
+#endif /* ndef ST_NODIRATIME */
+       return 0;
+}
+
+int Mono_Posix_ToMountFlags (guint64 x, guint64 *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef ST_RDONLY
+       if ((x & ST_RDONLY) == ST_RDONLY)
+               *r |= Mono_Posix_MountFlags_ST_RDONLY;
+#endif /* ndef ST_RDONLY */
+#ifdef ST_NOSUID
+       if ((x & ST_NOSUID) == ST_NOSUID)
+               *r |= Mono_Posix_MountFlags_ST_NOSUID;
+#endif /* ndef ST_NOSUID */
+#ifdef ST_NODEV
+       if ((x & ST_NODEV) == ST_NODEV)
+               *r |= Mono_Posix_MountFlags_ST_NODEV;
+#endif /* ndef ST_NODEV */
+#ifdef ST_SYNCHRONOUS
+       if ((x & ST_SYNCHRONOUS) == ST_SYNCHRONOUS)
+               *r |= Mono_Posix_MountFlags_ST_SYNCHRONOUS;
+#endif /* ndef ST_SYNCHRONOUS */
+#ifdef ST_MANDLOCK
+       if ((x & ST_MANDLOCK) == ST_MANDLOCK)
+               *r |= Mono_Posix_MountFlags_ST_MANDLOCK;
+#endif /* ndef ST_MANDLOCK */
+#ifdef ST_WRITE
+       if ((x & ST_WRITE) == ST_WRITE)
+               *r |= Mono_Posix_MountFlags_ST_WRITE;
+#endif /* ndef ST_WRITE */
+#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_NOATIME
+       if ((x & ST_NOATIME) == ST_NOATIME)
+               *r |= Mono_Posix_MountFlags_ST_NOATIME;
+#endif /* ndef ST_NOATIME */
+#ifdef ST_NODIRATIME
+       if ((x & ST_NODIRATIME) == ST_NODIRATIME)
+               *r |= Mono_Posix_MountFlags_ST_NODIRATIME;
+#endif /* ndef ST_NODIRATIME */
+       return 0;
+}
+
+int Mono_Posix_FromMmapFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       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_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_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 & 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_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_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_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_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_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_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_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_NONBLOCK) == Mono_Posix_MmapFlags_MAP_NONBLOCK)
+#ifdef MAP_NONBLOCK
+               *r |= MAP_NONBLOCK;
+#else /* def MAP_NONBLOCK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MAP_NONBLOCK */
+       return 0;
+}
+
+int Mono_Posix_ToMmapFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef MAP_SHARED
+       if ((x & MAP_SHARED) == MAP_SHARED)
+               *r |= Mono_Posix_MmapFlags_MAP_SHARED;
+#endif /* ndef MAP_SHARED */
+#ifdef MAP_PRIVATE
+       if ((x & MAP_PRIVATE) == MAP_PRIVATE)
+               *r |= Mono_Posix_MmapFlags_MAP_PRIVATE;
+#endif /* ndef MAP_PRIVATE */
+#ifdef MAP_TYPE
+       if ((x & MAP_TYPE) == MAP_TYPE)
+               *r |= Mono_Posix_MmapFlags_MAP_TYPE;
+#endif /* ndef MAP_TYPE */
+#ifdef MAP_FIXED
+       if ((x & MAP_FIXED) == MAP_FIXED)
+               *r |= Mono_Posix_MmapFlags_MAP_FIXED;
+#endif /* ndef MAP_FIXED */
+#ifdef MAP_FILE
+       if ((x & MAP_FILE) == MAP_FILE)
+               *r |= Mono_Posix_MmapFlags_MAP_FILE;
+#endif /* ndef MAP_FILE */
+#ifdef MAP_ANONYMOUS
+       if ((x & MAP_ANONYMOUS) == MAP_ANONYMOUS)
+               *r |= Mono_Posix_MmapFlags_MAP_ANONYMOUS;
+#endif /* ndef MAP_ANONYMOUS */
+#ifdef MAP_ANON
+       if ((x & MAP_ANON) == MAP_ANON)
+               *r |= Mono_Posix_MmapFlags_MAP_ANON;
+#endif /* ndef MAP_ANON */
+#ifdef MAP_GROWSDOWN
+       if ((x & MAP_GROWSDOWN) == MAP_GROWSDOWN)
+               *r |= Mono_Posix_MmapFlags_MAP_GROWSDOWN;
+#endif /* ndef MAP_GROWSDOWN */
+#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_LOCKED
+       if ((x & MAP_LOCKED) == MAP_LOCKED)
+               *r |= Mono_Posix_MmapFlags_MAP_LOCKED;
+#endif /* ndef MAP_LOCKED */
+#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_NONBLOCK
+       if ((x & MAP_NONBLOCK) == MAP_NONBLOCK)
+               *r |= Mono_Posix_MmapFlags_MAP_NONBLOCK;
+#endif /* ndef MAP_NONBLOCK */
+       return 0;
+}
+
+int Mono_Posix_FromMmapProt (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+       if ((x & Mono_Posix_MmapProt_PROT_READ) == Mono_Posix_MmapProt_PROT_READ)
+#ifdef PROT_READ
+               *r |= PROT_READ;
+#else /* def PROT_READ */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_READ */
+       if ((x & Mono_Posix_MmapProt_PROT_WRITE) == Mono_Posix_MmapProt_PROT_WRITE)
+#ifdef PROT_WRITE
+               *r |= PROT_WRITE;
+#else /* def PROT_WRITE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_WRITE */
+       if ((x & Mono_Posix_MmapProt_PROT_EXEC) == Mono_Posix_MmapProt_PROT_EXEC)
+#ifdef PROT_EXEC
+               *r |= PROT_EXEC;
+#else /* def PROT_EXEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_EXEC */
+       if ((x & Mono_Posix_MmapProt_PROT_NONE) == Mono_Posix_MmapProt_PROT_NONE)
+#ifdef PROT_NONE
+               *r |= PROT_NONE;
+#else /* def PROT_NONE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_NONE */
+       if ((x & Mono_Posix_MmapProt_PROT_GROWSDOWN) == Mono_Posix_MmapProt_PROT_GROWSDOWN)
+#ifdef PROT_GROWSDOWN
+               *r |= PROT_GROWSDOWN;
+#else /* def PROT_GROWSDOWN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_GROWSDOWN */
+       if ((x & Mono_Posix_MmapProt_PROT_GROWSUP) == Mono_Posix_MmapProt_PROT_GROWSUP)
+#ifdef PROT_GROWSUP
+               *r |= PROT_GROWSUP;
+#else /* def PROT_GROWSUP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef PROT_GROWSUP */
+       return 0;
+}
+
+int Mono_Posix_ToMmapProt (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef PROT_READ
+       if ((x & PROT_READ) == PROT_READ)
+               *r |= Mono_Posix_MmapProt_PROT_READ;
+#endif /* ndef PROT_READ */
+#ifdef PROT_WRITE
+       if ((x & PROT_WRITE) == PROT_WRITE)
+               *r |= Mono_Posix_MmapProt_PROT_WRITE;
+#endif /* ndef PROT_WRITE */
+#ifdef PROT_EXEC
+       if ((x & PROT_EXEC) == PROT_EXEC)
+               *r |= Mono_Posix_MmapProt_PROT_EXEC;
+#endif /* ndef PROT_EXEC */
+#ifdef PROT_NONE
+       if ((x & PROT_NONE) == PROT_NONE)
+               *r |= Mono_Posix_MmapProt_PROT_NONE;
+#endif /* ndef PROT_NONE */
+#ifdef PROT_GROWSDOWN
+       if ((x & PROT_GROWSDOWN) == PROT_GROWSDOWN)
+               *r |= Mono_Posix_MmapProt_PROT_GROWSDOWN;
+#endif /* ndef PROT_GROWSDOWN */
+#ifdef PROT_GROWSUP
+       if ((x & PROT_GROWSUP) == PROT_GROWSUP)
+               *r |= Mono_Posix_MmapProt_PROT_GROWSUP;
+#endif /* ndef PROT_GROWSUP */
+       return 0;
+}
+
+int Mono_Posix_FromMsyncFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 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_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 & 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 */
+       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_SYNC
+       if ((x & MS_SYNC) == MS_SYNC)
+               *r |= Mono_Posix_MsyncFlags_MS_SYNC;
+#endif /* ndef MS_SYNC */
+#ifdef MS_INVALIDATE
+       if ((x & MS_INVALIDATE) == MS_INVALIDATE)
+               *r |= Mono_Posix_MsyncFlags_MS_INVALIDATE;
+#endif /* ndef MS_INVALIDATE */
+       return 0;
+}
+
+int Mono_Posix_FromMlockallFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 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 */
+       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_FromMremapFlags (guint64 x, guint64 *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 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 */
+       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;
+}
+