Add nanosecond resolution times to struct Stat
[mono.git] / support / map.h
index ec9eee8b4c97161473b62900b057e9751eb855a0..a78caf0ef9e478cc30e1f40e3a8afa6b90f73aa2 100644 (file)
@@ -35,6 +35,21 @@ enum Mono_Posix_AccessModes {
 int Mono_Posix_FromAccessModes (int x, int *r);
 int Mono_Posix_ToAccessModes (int x, int *r);
 
+enum Mono_Posix_AtFlags {
+       Mono_Posix_AtFlags_AT_EMPTY_PATH             = 0x00001000,
+       #define Mono_Posix_AtFlags_AT_EMPTY_PATH       Mono_Posix_AtFlags_AT_EMPTY_PATH
+       Mono_Posix_AtFlags_AT_NO_AUTOMOUNT           = 0x00000800,
+       #define Mono_Posix_AtFlags_AT_NO_AUTOMOUNT     Mono_Posix_AtFlags_AT_NO_AUTOMOUNT
+       Mono_Posix_AtFlags_AT_REMOVEDIR              = 0x00000200,
+       #define Mono_Posix_AtFlags_AT_REMOVEDIR        Mono_Posix_AtFlags_AT_REMOVEDIR
+       Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW         = 0x00000400,
+       #define Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW   Mono_Posix_AtFlags_AT_SYMLINK_FOLLOW
+       Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW       = 0x00000100,
+       #define Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW Mono_Posix_AtFlags_AT_SYMLINK_NOFOLLOW
+};
+int Mono_Posix_FromAtFlags (int x, int *r);
+int Mono_Posix_ToAtFlags (int x, int *r);
+
 enum Mono_Posix_ConfstrName {
        Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION                      = 0x00000002,
        #define Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION                Mono_Posix_ConfstrName__CS_GNU_LIBC_VERSION
@@ -147,6 +162,46 @@ enum Mono_Posix_DirectoryNotifyFlags {
 int Mono_Posix_FromDirectoryNotifyFlags (int x, int *r);
 int Mono_Posix_ToDirectoryNotifyFlags (int x, int *r);
 
+enum Mono_Posix_EpollEvents {
+       Mono_Posix_EpollEvents_EPOLLERR           = 0x00000008,
+       #define Mono_Posix_EpollEvents_EPOLLERR     Mono_Posix_EpollEvents_EPOLLERR
+       Mono_Posix_EpollEvents_EPOLLET            = 0x80000000,
+       #define Mono_Posix_EpollEvents_EPOLLET      Mono_Posix_EpollEvents_EPOLLET
+       Mono_Posix_EpollEvents_EPOLLHUP           = 0x00000010,
+       #define Mono_Posix_EpollEvents_EPOLLHUP     Mono_Posix_EpollEvents_EPOLLHUP
+       Mono_Posix_EpollEvents_EPOLLIN            = 0x00000001,
+       #define Mono_Posix_EpollEvents_EPOLLIN      Mono_Posix_EpollEvents_EPOLLIN
+       Mono_Posix_EpollEvents_EPOLLMSG           = 0x00000400,
+       #define Mono_Posix_EpollEvents_EPOLLMSG     Mono_Posix_EpollEvents_EPOLLMSG
+       Mono_Posix_EpollEvents_EPOLLONESHOT       = 0x40000000,
+       #define Mono_Posix_EpollEvents_EPOLLONESHOT Mono_Posix_EpollEvents_EPOLLONESHOT
+       Mono_Posix_EpollEvents_EPOLLOUT           = 0x00000004,
+       #define Mono_Posix_EpollEvents_EPOLLOUT     Mono_Posix_EpollEvents_EPOLLOUT
+       Mono_Posix_EpollEvents_EPOLLPRI           = 0x00000002,
+       #define Mono_Posix_EpollEvents_EPOLLPRI     Mono_Posix_EpollEvents_EPOLLPRI
+       Mono_Posix_EpollEvents_EPOLLRDBAND        = 0x00000080,
+       #define Mono_Posix_EpollEvents_EPOLLRDBAND  Mono_Posix_EpollEvents_EPOLLRDBAND
+       Mono_Posix_EpollEvents_EPOLLRDHUP         = 0x00002000,
+       #define Mono_Posix_EpollEvents_EPOLLRDHUP   Mono_Posix_EpollEvents_EPOLLRDHUP
+       Mono_Posix_EpollEvents_EPOLLRDNORM        = 0x00000040,
+       #define Mono_Posix_EpollEvents_EPOLLRDNORM  Mono_Posix_EpollEvents_EPOLLRDNORM
+       Mono_Posix_EpollEvents_EPOLLWRBAND        = 0x00000200,
+       #define Mono_Posix_EpollEvents_EPOLLWRBAND  Mono_Posix_EpollEvents_EPOLLWRBAND
+       Mono_Posix_EpollEvents_EPOLLWRNORM        = 0x00000100,
+       #define Mono_Posix_EpollEvents_EPOLLWRNORM  Mono_Posix_EpollEvents_EPOLLWRNORM
+};
+int Mono_Posix_FromEpollEvents (unsigned int x, unsigned int *r);
+int Mono_Posix_ToEpollEvents (unsigned int x, unsigned int *r);
+
+enum Mono_Posix_EpollFlags {
+       Mono_Posix_EpollFlags_EPOLL_CLOEXEC        = 0x001e8480,
+       #define Mono_Posix_EpollFlags_EPOLL_CLOEXEC  Mono_Posix_EpollFlags_EPOLL_CLOEXEC
+       Mono_Posix_EpollFlags_EPOLL_NONBLOCK       = 0x00000fa0,
+       #define Mono_Posix_EpollFlags_EPOLL_NONBLOCK Mono_Posix_EpollFlags_EPOLL_NONBLOCK
+};
+int Mono_Posix_FromEpollFlags (int x, int *r);
+int Mono_Posix_ToEpollFlags (int x, int *r);
+
 enum Mono_Posix_Errno {
        Mono_Posix_Errno_E2BIG                 = 0x00000007,
        #define Mono_Posix_Errno_E2BIG           Mono_Posix_Errno_E2BIG
@@ -493,11 +548,11 @@ int Mono_Posix_FromFilePermissions (unsigned int x, unsigned int *r);
 int Mono_Posix_ToFilePermissions (unsigned int x, unsigned int *r);
 
 enum Mono_Posix_LockType {
-       Mono_Posix_LockType_F_RDLCK       = 0x00000000,
+       Mono_Posix_LockType_F_RDLCK       = 0x0000,
        #define Mono_Posix_LockType_F_RDLCK Mono_Posix_LockType_F_RDLCK
-       Mono_Posix_LockType_F_UNLCK       = 0x00000002,
+       Mono_Posix_LockType_F_UNLCK       = 0x0002,
        #define Mono_Posix_LockType_F_UNLCK Mono_Posix_LockType_F_UNLCK
-       Mono_Posix_LockType_F_WRLCK       = 0x00000001,
+       Mono_Posix_LockType_F_WRLCK       = 0x0001,
        #define Mono_Posix_LockType_F_WRLCK Mono_Posix_LockType_F_WRLCK
 };
 int Mono_Posix_FromLockType (short x, short *r);
@@ -576,32 +631,38 @@ int Mono_Posix_FromMmapProts (int x, int *r);
 int Mono_Posix_ToMmapProts (int x, int *r);
 
 enum Mono_Posix_MountFlags {
-       Mono_Posix_MountFlags_ST_APPEND            = 0x00000100,
+       Mono_Posix_MountFlags_ST_APPEND            = 0x0000000000000100,
        #define Mono_Posix_MountFlags_ST_APPEND      Mono_Posix_MountFlags_ST_APPEND
-       Mono_Posix_MountFlags_ST_IMMUTABLE         = 0x00000200,
+       Mono_Posix_MountFlags_ST_BIND              = 0x0000000000001000,
+       #define Mono_Posix_MountFlags_ST_BIND        Mono_Posix_MountFlags_ST_BIND
+       Mono_Posix_MountFlags_ST_IMMUTABLE         = 0x0000000000000200,
        #define Mono_Posix_MountFlags_ST_IMMUTABLE   Mono_Posix_MountFlags_ST_IMMUTABLE
-       Mono_Posix_MountFlags_ST_MANDLOCK          = 0x00000040,
+       Mono_Posix_MountFlags_ST_MANDLOCK          = 0x0000000000000040,
        #define Mono_Posix_MountFlags_ST_MANDLOCK    Mono_Posix_MountFlags_ST_MANDLOCK
-       Mono_Posix_MountFlags_ST_NOATIME           = 0x00000400,
+       Mono_Posix_MountFlags_ST_NOATIME           = 0x0000000000000400,
        #define Mono_Posix_MountFlags_ST_NOATIME     Mono_Posix_MountFlags_ST_NOATIME
-       Mono_Posix_MountFlags_ST_NODEV             = 0x00000004,
+       Mono_Posix_MountFlags_ST_NODEV             = 0x0000000000000004,
        #define Mono_Posix_MountFlags_ST_NODEV       Mono_Posix_MountFlags_ST_NODEV
-       Mono_Posix_MountFlags_ST_NODIRATIME        = 0x00000800,
+       Mono_Posix_MountFlags_ST_NODIRATIME        = 0x0000000000000800,
        #define Mono_Posix_MountFlags_ST_NODIRATIME  Mono_Posix_MountFlags_ST_NODIRATIME
-       Mono_Posix_MountFlags_ST_NOSUID            = 0x00000002,
+       Mono_Posix_MountFlags_ST_NOEXEC            = 0x0000000000000008,
+       #define Mono_Posix_MountFlags_ST_NOEXEC      Mono_Posix_MountFlags_ST_NOEXEC
+       Mono_Posix_MountFlags_ST_NOSUID            = 0x0000000000000002,
        #define Mono_Posix_MountFlags_ST_NOSUID      Mono_Posix_MountFlags_ST_NOSUID
-       Mono_Posix_MountFlags_ST_RDONLY            = 0x00000001,
+       Mono_Posix_MountFlags_ST_RDONLY            = 0x0000000000000001,
        #define Mono_Posix_MountFlags_ST_RDONLY      Mono_Posix_MountFlags_ST_RDONLY
-       Mono_Posix_MountFlags_ST_SYNCHRONOUS       = 0x00000010,
+       Mono_Posix_MountFlags_ST_REMOUNT           = 0x0000000000000020,
+       #define Mono_Posix_MountFlags_ST_REMOUNT     Mono_Posix_MountFlags_ST_REMOUNT
+       Mono_Posix_MountFlags_ST_SYNCHRONOUS       = 0x0000000000000010,
        #define Mono_Posix_MountFlags_ST_SYNCHRONOUS Mono_Posix_MountFlags_ST_SYNCHRONOUS
-       Mono_Posix_MountFlags_ST_WRITE             = 0x00000080,
+       Mono_Posix_MountFlags_ST_WRITE             = 0x0000000000000080,
        #define Mono_Posix_MountFlags_ST_WRITE       Mono_Posix_MountFlags_ST_WRITE
 };
 int Mono_Posix_FromMountFlags (guint64 x, guint64 *r);
 int Mono_Posix_ToMountFlags (guint64 x, guint64 *r);
 
 enum Mono_Posix_MremapFlags {
-       Mono_Posix_MremapFlags_MREMAP_MAYMOVE       = 0x00000001,
+       Mono_Posix_MremapFlags_MREMAP_MAYMOVE       = 0x0000000000000001,
        #define Mono_Posix_MremapFlags_MREMAP_MAYMOVE Mono_Posix_MremapFlags_MREMAP_MAYMOVE
 };
 int Mono_Posix_FromMremapFlags (guint64 x, guint64 *r);
@@ -623,6 +684,8 @@ enum Mono_Posix_OpenFlags {
        #define Mono_Posix_OpenFlags_O_APPEND    Mono_Posix_OpenFlags_O_APPEND
        Mono_Posix_OpenFlags_O_ASYNC           = 0x00002000,
        #define Mono_Posix_OpenFlags_O_ASYNC     Mono_Posix_OpenFlags_O_ASYNC
+       Mono_Posix_OpenFlags_O_CLOEXEC         = 0x00080000,
+       #define Mono_Posix_OpenFlags_O_CLOEXEC   Mono_Posix_OpenFlags_O_CLOEXEC
        Mono_Posix_OpenFlags_O_CREAT           = 0x00000040,
        #define Mono_Posix_OpenFlags_O_CREAT     Mono_Posix_OpenFlags_O_CREAT
        Mono_Posix_OpenFlags_O_DIRECT          = 0x00004000,
@@ -639,6 +702,8 @@ enum Mono_Posix_OpenFlags {
        #define Mono_Posix_OpenFlags_O_NOFOLLOW  Mono_Posix_OpenFlags_O_NOFOLLOW
        Mono_Posix_OpenFlags_O_NONBLOCK        = 0x00000800,
        #define Mono_Posix_OpenFlags_O_NONBLOCK  Mono_Posix_OpenFlags_O_NONBLOCK
+       Mono_Posix_OpenFlags_O_PATH            = 0x00200000,
+       #define Mono_Posix_OpenFlags_O_PATH      Mono_Posix_OpenFlags_O_PATH
        Mono_Posix_OpenFlags_O_RDONLY          = 0x00000000,
        #define Mono_Posix_OpenFlags_O_RDONLY    Mono_Posix_OpenFlags_O_RDONLY
        Mono_Posix_OpenFlags_O_RDWR            = 0x00000002,
@@ -701,25 +766,25 @@ int Mono_Posix_FromPathconfName (int x, int *r);
 int Mono_Posix_ToPathconfName (int x, int *r);
 
 enum Mono_Posix_PollEvents {
-       Mono_Posix_PollEvents_POLLERR          = 0x00000008,
+       Mono_Posix_PollEvents_POLLERR          = 0x0008,
        #define Mono_Posix_PollEvents_POLLERR    Mono_Posix_PollEvents_POLLERR
-       Mono_Posix_PollEvents_POLLHUP          = 0x00000010,
+       Mono_Posix_PollEvents_POLLHUP          = 0x0010,
        #define Mono_Posix_PollEvents_POLLHUP    Mono_Posix_PollEvents_POLLHUP
-       Mono_Posix_PollEvents_POLLIN           = 0x00000001,
+       Mono_Posix_PollEvents_POLLIN           = 0x0001,
        #define Mono_Posix_PollEvents_POLLIN     Mono_Posix_PollEvents_POLLIN
-       Mono_Posix_PollEvents_POLLNVAL         = 0x00000020,
+       Mono_Posix_PollEvents_POLLNVAL         = 0x0020,
        #define Mono_Posix_PollEvents_POLLNVAL   Mono_Posix_PollEvents_POLLNVAL
-       Mono_Posix_PollEvents_POLLOUT          = 0x00000004,
+       Mono_Posix_PollEvents_POLLOUT          = 0x0004,
        #define Mono_Posix_PollEvents_POLLOUT    Mono_Posix_PollEvents_POLLOUT
-       Mono_Posix_PollEvents_POLLPRI          = 0x00000002,
+       Mono_Posix_PollEvents_POLLPRI          = 0x0002,
        #define Mono_Posix_PollEvents_POLLPRI    Mono_Posix_PollEvents_POLLPRI
-       Mono_Posix_PollEvents_POLLRDBAND       = 0x00000080,
+       Mono_Posix_PollEvents_POLLRDBAND       = 0x0080,
        #define Mono_Posix_PollEvents_POLLRDBAND Mono_Posix_PollEvents_POLLRDBAND
-       Mono_Posix_PollEvents_POLLRDNORM       = 0x00000040,
+       Mono_Posix_PollEvents_POLLRDNORM       = 0x0040,
        #define Mono_Posix_PollEvents_POLLRDNORM Mono_Posix_PollEvents_POLLRDNORM
-       Mono_Posix_PollEvents_POLLWRBAND       = 0x00000200,
+       Mono_Posix_PollEvents_POLLWRBAND       = 0x0200,
        #define Mono_Posix_PollEvents_POLLWRBAND Mono_Posix_PollEvents_POLLWRBAND
-       Mono_Posix_PollEvents_POLLWRNORM       = 0x00000100,
+       Mono_Posix_PollEvents_POLLWRNORM       = 0x0100,
        #define Mono_Posix_PollEvents_POLLWRNORM Mono_Posix_PollEvents_POLLWRNORM
 };
 int Mono_Posix_FromPollEvents (short x, short *r);
@@ -758,17 +823,17 @@ int Mono_Posix_FromPosixMadviseAdvice (int x, int *r);
 int Mono_Posix_ToPosixMadviseAdvice (int x, int *r);
 
 enum Mono_Posix_SeekFlags {
-       Mono_Posix_SeekFlags_L_INCR         = 0x00000001,
+       Mono_Posix_SeekFlags_L_INCR         = 0x0001,
        #define Mono_Posix_SeekFlags_L_INCR   Mono_Posix_SeekFlags_L_INCR
-       Mono_Posix_SeekFlags_L_SET          = 0x00000000,
+       Mono_Posix_SeekFlags_L_SET          = 0x0000,
        #define Mono_Posix_SeekFlags_L_SET    Mono_Posix_SeekFlags_L_SET
-       Mono_Posix_SeekFlags_L_XTND         = 0x00000002,
+       Mono_Posix_SeekFlags_L_XTND         = 0x0002,
        #define Mono_Posix_SeekFlags_L_XTND   Mono_Posix_SeekFlags_L_XTND
-       Mono_Posix_SeekFlags_SEEK_CUR       = 0x00000001,
+       Mono_Posix_SeekFlags_SEEK_CUR       = 0x0001,
        #define Mono_Posix_SeekFlags_SEEK_CUR Mono_Posix_SeekFlags_SEEK_CUR
-       Mono_Posix_SeekFlags_SEEK_END       = 0x00000002,
+       Mono_Posix_SeekFlags_SEEK_END       = 0x0002,
        #define Mono_Posix_SeekFlags_SEEK_END Mono_Posix_SeekFlags_SEEK_END
-       Mono_Posix_SeekFlags_SEEK_SET       = 0x00000000,
+       Mono_Posix_SeekFlags_SEEK_SET       = 0x0000,
        #define Mono_Posix_SeekFlags_SEEK_SET Mono_Posix_SeekFlags_SEEK_SET
 };
 int Mono_Posix_FromSeekFlags (short x, short *r);
@@ -1364,36 +1429,115 @@ int Mono_Posix_ToXattrFlags (int x, int *r);
  * Managed Structure Declarations
  */
 
-struct Mono_Posix_Syscall__Dirent;
-struct Mono_Posix_Syscall__Fstab;
-struct Mono_Posix_Syscall__Group;
-struct Mono_Posix_Syscall__Passwd;
 struct Mono_Posix_Flock;
+struct Mono_Posix_Iovec;
 struct Mono_Posix_Pollfd;
 struct Mono_Posix_Stat;
 struct Mono_Posix_Statvfs;
+struct Mono_Posix_Syscall__Dirent;
+struct Mono_Posix_Syscall__Fstab;
+struct Mono_Posix_Syscall__Group;
+struct Mono_Posix_Syscall__Passwd;
+struct Mono_Posix_Syscall__Utsname;
+struct Mono_Posix_Timespec;
 struct Mono_Posix_Timeval;
 struct Mono_Posix_Timezone;
 struct Mono_Posix_Utimbuf;
+struct Mono_Unix_UnixSignal_SignalInfo;
 
 /*
  * Inferred Structure Declarations
  */
 
+struct flock;
+struct iovec;
 struct pollfd;
-struct stat;
+struct timespec;
 struct timeval;
 struct timezone;
+struct utimbuf;
 
 /*
  * Delegate Declarations
  */
 
+typedef int (*Mono_Posix_RuntimeIsShuttingDown) (void);
 
 /*
  * Structures
  */
 
+struct Mono_Posix_Flock {
+       short  l_type;
+       short  l_whence;
+       gint64 l_start;   /* off_t */
+       gint64 l_len;     /* off_t */
+       int    l_pid;     /* pid_t */
+};
+
+int
+Mono_Posix_FromFlock (struct Mono_Posix_Flock* from, struct flock *to);
+int
+Mono_Posix_ToFlock (struct flock *from, struct Mono_Posix_Flock* to);
+
+
+struct Mono_Posix_Iovec {
+       void*   iov_base;
+       guint64 iov_len;
+};
+
+int
+Mono_Posix_FromIovec (struct Mono_Posix_Iovec* from, struct iovec *to);
+int
+Mono_Posix_ToIovec (struct iovec *from, struct Mono_Posix_Iovec* to);
+
+
+struct Mono_Posix_Pollfd {
+       int   fd;
+       short events;
+       short revents;
+};
+
+int
+Mono_Posix_FromPollfd (struct Mono_Posix_Pollfd* from, struct pollfd *to);
+int
+Mono_Posix_ToPollfd (struct pollfd *from, struct Mono_Posix_Pollfd* to);
+
+
+struct Mono_Posix_Stat {
+       guint64      st_dev;         /* dev_t     */
+       guint64      st_ino;         /* ino_t     */
+       unsigned int st_mode;
+       unsigned int _padding_;
+       guint64      st_nlink;       /* nlink_t   */
+       unsigned int st_uid;         /* uid_t     */
+       unsigned int st_gid;         /* gid_t     */
+       guint64      st_rdev;        /* dev_t     */
+       gint64       st_size;        /* off_t     */
+       gint64       st_blksize;     /* blksize_t */
+       gint64       st_blocks;      /* blkcnt_t  */
+       gint64       st_atime_;      /* time_t    */
+       gint64       st_mtime_;      /* time_t    */
+       gint64       st_ctime_;      /* time_t    */
+       gint64       st_atime_nsec;
+       gint64       st_mtime_nsec;
+       gint64       st_ctime_nsec;
+};
+
+struct Mono_Posix_Statvfs {
+       guint64 f_bsize;
+       guint64 f_frsize;
+       guint64 f_blocks;   /* fsblkcnt_t */
+       guint64 f_bfree;    /* fsblkcnt_t */
+       guint64 f_bavail;   /* fsblkcnt_t */
+       guint64 f_files;    /* fsfilcnt_t */
+       guint64 f_ffree;    /* fsfilcnt_t */
+       guint64 f_favail;   /* fsfilcnt_t */
+       guint64 f_fsid;
+       guint64 f_flag;
+       guint64 f_namemax;
+};
+
 struct Mono_Posix_Syscall__Dirent {
        guint64        d_ino;     /* ino_t */
        gint64         d_off;     /* off_t */
@@ -1433,63 +1577,27 @@ struct Mono_Posix_Syscall__Passwd {
        void*        _pw_buf_;
 };
 
-struct Mono_Posix_Flock {
-       short  l_type;
-       short  l_whence;
-       gint64 l_start;   /* off_t */
-       gint64 l_len;     /* off_t */
-       int    l_pid;     /* pid_t */
+struct Mono_Posix_Syscall__Utsname {
+       void* sysname;
+       void* nodename;
+       void* release;
+       void* version;
+       void* machine;
+       void* domainname;
+       void* _buf_;
 };
 
-struct Mono_Posix_Pollfd {
-       int   fd;
-       short events;
-       short revents;
+struct Mono_Posix_Timespec {
+       gint64 tv_sec;   /* time_t */
+       gint64 tv_nsec;
 };
 
 int
-Mono_Posix_FromPollfd (struct Mono_Posix_Pollfd* from, struct pollfd *to);
+Mono_Posix_FromTimespec (struct Mono_Posix_Timespec* from, struct timespec *to);
 int
-Mono_Posix_ToPollfd (struct pollfd *from, struct Mono_Posix_Pollfd* to);
+Mono_Posix_ToTimespec (struct timespec *from, struct Mono_Posix_Timespec* to);
 
 
-struct Mono_Posix_Stat {
-       guint64      st_dev;      /* dev_t     */
-       guint64      st_ino;      /* ino_t     */
-       unsigned int st_mode;
-       unsigned int _padding_;
-       guint64      st_nlink;    /* nlink_t   */
-       unsigned int st_uid;      /* uid_t     */
-       unsigned int st_gid;      /* gid_t     */
-       guint64      st_rdev;     /* dev_t     */
-       gint64       st_size;     /* off_t     */
-       gint64       st_blksize;  /* blksize_t */
-       gint64       st_blocks;   /* blkcnt_t  */
-       gint64       st_atime_;   /* time_t    */
-       gint64       st_mtime_;   /* time_t    */
-       gint64       st_ctime_;   /* time_t    */
-};
-
-int
-Mono_Posix_FromStat (struct Mono_Posix_Stat* from, struct stat *to);
-int
-Mono_Posix_ToStat (struct stat *from, struct Mono_Posix_Stat* to);
-
-
-struct Mono_Posix_Statvfs {
-       guint64 f_bsize;
-       guint64 f_frsize;
-       guint64 f_blocks;   /* fsblkcnt_t */
-       guint64 f_bfree;    /* fsblkcnt_t */
-       guint64 f_bavail;   /* fsblkcnt_t */
-       guint64 f_files;    /* fsfilcnt_t */
-       guint64 f_ffree;    /* fsfilcnt_t */
-       guint64 f_favail;   /* fsfilcnt_t */
-       guint64 f_fsid;
-       guint64 f_flag;
-       guint64 f_namemax;
-};
-
 struct Mono_Posix_Timeval {
        gint64 tv_sec;   /* time_t      */
        gint64 tv_usec;  /* suseconds_t */
@@ -1517,6 +1625,22 @@ struct Mono_Posix_Utimbuf {
        gint64 modtime;  /* time_t */
 };
 
+int
+Mono_Posix_FromUtimbuf (struct Mono_Posix_Utimbuf* from, struct utimbuf *to);
+int
+Mono_Posix_ToUtimbuf (struct utimbuf *from, struct Mono_Posix_Utimbuf* to);
+
+
+struct Mono_Unix_UnixSignal_SignalInfo {
+       int   signum;
+       int   count;
+       int   read_fd;
+       int   write_fd;
+       int   have_handler;
+       int   pipecnt;
+       void* handler;
+};
+
 
 /*
  * Functions
@@ -1529,7 +1653,11 @@ int map_Mono_Posix_AccessMode (int mode);
 int map_Mono_Posix_FileMode (int mode);
 int map_Mono_Posix_OpenFlags (int flags);
 int map_Mono_Posix_WaitOptions (int wait_options);
+int Mono_Posix_FromRealTimeSignum (int offset, int* rval);
+int Mono_Posix_FromStat (struct Mono_Posix_Stat* source, void* destination);
 int Mono_Posix_FromStatvfs (struct Mono_Posix_Statvfs* source, void* destination);
+int Mono_Posix_SIGRTMAX (void);
+int Mono_Posix_SIGRTMIN (void);
 int Mono_Posix_Stdlib__IOFBF (void);
 int Mono_Posix_Stdlib__IOLBF (void);
 int Mono_Posix_Stdlib__IONBF (void);
@@ -1542,31 +1670,31 @@ int Mono_Posix_Stdlib_EOF (void);
 int Mono_Posix_Stdlib_EXIT_FAILURE (void);
 int Mono_Posix_Stdlib_EXIT_SUCCESS (void);
 int Mono_Posix_Stdlib_fgetpos (void* stream, void* pos);
+int Mono_Posix_Stdlib_FILENAME_MAX (void);
+int Mono_Posix_Stdlib_FOPEN_MAX (void);
 guint64 Mono_Posix_Stdlib_fread (unsigned char* ptr, guint64 size, guint64 nmemb, void* stream);
 int Mono_Posix_Stdlib_fseek (void* stream, gint64 offset, int origin);
 int Mono_Posix_Stdlib_fsetpos (void* stream, void* pos);
 gint64 Mono_Posix_Stdlib_ftell (void* stream);
 guint64 Mono_Posix_Stdlib_fwrite (unsigned char* ptr, guint64 size, guint64 nmemb, void* stream);
-int Mono_Posix_Stdlib_FILENAME_MAX (void);
-int Mono_Posix_Stdlib_FOPEN_MAX (void);
 void Mono_Posix_Stdlib_InvokeSignalHandler (int signum, void* handler);
 int Mono_Posix_Stdlib_L_tmpnam (void);
 void* Mono_Posix_Stdlib_malloc (guint64 size);
 int Mono_Posix_Stdlib_MB_CUR_MAX (void);
-int Mono_Posix_Stdlib_perror (const char* s);
+int Mono_Posix_Stdlib_perror (const char* s, int err);
+int Mono_Posix_Stdlib_RAND_MAX (void);
 void* Mono_Posix_Stdlib_realloc (void* ptr, guint64 size);
 int Mono_Posix_Stdlib_rewind (void* stream);
-int Mono_Posix_Stdlib_RAND_MAX (void);
 int Mono_Posix_Stdlib_setbuf (void* stream, void* buf);
+void Mono_Posix_Stdlib_SetLastError (int error);
 int Mono_Posix_Stdlib_setvbuf (void* stream, void* buf, int mode, guint64 size);
+void* Mono_Posix_Stdlib_SIG_DFL (void);
+void* Mono_Posix_Stdlib_SIG_ERR (void);
+void* Mono_Posix_Stdlib_SIG_IGN (void);
 void* Mono_Posix_Stdlib_stderr (void);
 void* Mono_Posix_Stdlib_stdin (void);
 void* Mono_Posix_Stdlib_stdout (void);
 guint64 Mono_Posix_Stdlib_strlen (void* s);
-void Mono_Posix_Stdlib_SetLastError (int error);
-void* Mono_Posix_Stdlib_SIG_DFL (void);
-void* Mono_Posix_Stdlib_SIG_ERR (void);
-void* Mono_Posix_Stdlib_SIG_IGN (void);
 int Mono_Posix_Stdlib_TMP_MAX (void);
 int Mono_Posix_Syscall_closelog (void);
 guint64 Mono_Posix_Syscall_confstr (int name, char* buf, guint64 len);
@@ -1586,9 +1714,14 @@ gint64 Mono_Posix_Syscall_fpathconf (int filedes, int name, int defaultError);
 int Mono_Posix_Syscall_fremovexattr (int fd, const char* name);
 int Mono_Posix_Syscall_fsetxattr (int fd, const char* name, unsigned char* value, guint64 size, int flags);
 int Mono_Posix_Syscall_fstat (int filedes, struct Mono_Posix_Stat* buf);
+int Mono_Posix_Syscall_fstatat (int dirfd, const char* file_name, struct Mono_Posix_Stat* buf, int flags);
 int Mono_Posix_Syscall_fstatvfs (int fd, struct Mono_Posix_Statvfs* buf);
 int Mono_Posix_Syscall_ftruncate (int fd, gint64 length);
+int Mono_Posix_Syscall_futimens (int fd, struct Mono_Posix_Timespec* times);
 int Mono_Posix_Syscall_futimes (int fd, struct Mono_Posix_Timeval* tvp);
+int Mono_Posix_Syscall_get_at_fdcwd (void);
+gint64 Mono_Posix_Syscall_get_utime_now (void);
+gint64 Mono_Posix_Syscall_get_utime_omit (void);
 void* Mono_Posix_Syscall_getcwd (char* buf, guint64 size);
 int Mono_Posix_Syscall_getdomainname (char* name, guint64 len);
 int Mono_Posix_Syscall_getfsent (struct Mono_Posix_Syscall__Fstab* fs);
@@ -1609,6 +1742,8 @@ int Mono_Posix_Syscall_getpwuid (unsigned int uid, struct Mono_Posix_Syscall__Pa
 int Mono_Posix_Syscall_getpwuid_r (unsigned int uid, struct Mono_Posix_Syscall__Passwd* pwbuf, void** pwbufp);
 int Mono_Posix_Syscall_gettimeofday (struct Mono_Posix_Timeval* tv, void* ignore);
 gint64 Mono_Posix_Syscall_getxattr (const char* path, const char* name, unsigned char* value, guint64 size);
+int Mono_Posix_Syscall_L_ctermid (void);
+int Mono_Posix_Syscall_L_cuserid (void);
 gint64 Mono_Posix_Syscall_lgetxattr (const char* path, const char* name, unsigned char* value, guint64 size);
 gint64 Mono_Posix_Syscall_listxattr (const char* path, unsigned char* list, guint64 size);
 gint64 Mono_Posix_Syscall_llistxattr (const char* path, unsigned char* list, guint64 size);
@@ -1618,10 +1753,9 @@ gint64 Mono_Posix_Syscall_lseek (int fd, gint64 offset, int whence);
 int Mono_Posix_Syscall_lsetxattr (const char* path, const char* name, unsigned char* value, guint64 size, int flags);
 int Mono_Posix_Syscall_lstat (const char* file_name, struct Mono_Posix_Stat* buf);
 int Mono_Posix_Syscall_lutimes (const char* filename, struct Mono_Posix_Timeval* tvp);
-int Mono_Posix_Syscall_L_ctermid (void);
-int Mono_Posix_Syscall_L_cuserid (void);
 int Mono_Posix_Syscall_mincore (void* start, guint64 length, unsigned char* vec);
 int Mono_Posix_Syscall_mknod (const char* pathname, unsigned int mode, guint64 dev);
+int Mono_Posix_Syscall_mknodat (int dirfd, const char* pathname, unsigned int mode, guint64 dev);
 int Mono_Posix_Syscall_mlock (void* start, guint64 len);
 void* Mono_Posix_Syscall_mmap (void* start, guint64 length, int prot, int flags, int fd, gint64 offset);
 int Mono_Posix_Syscall_mprotect (void* start, guint64 len, int prot);
@@ -1629,6 +1763,7 @@ void* Mono_Posix_Syscall_mremap (void* old_address, guint64 old_size, guint64 ne
 int Mono_Posix_Syscall_msync (void* start, guint64 len, int flags);
 int Mono_Posix_Syscall_munlock (void* start, guint64 len);
 int Mono_Posix_Syscall_munmap (void* start, guint64 length);
+int Mono_Posix_Syscall_nanosleep (struct Mono_Posix_Timespec* req, struct Mono_Posix_Timespec* rem);
 int Mono_Posix_Syscall_open (const char* pathname, int flags);
 int Mono_Posix_Syscall_open_mode (const char* pathname, int flags, unsigned int mode);
 int Mono_Posix_Syscall_openlog (void* ident, int option, int facility);
@@ -1638,12 +1773,16 @@ int Mono_Posix_Syscall_posix_fadvise (int fd, gint64 offset, gint64 len, int adv
 int Mono_Posix_Syscall_posix_fallocate (int fd, gint64 offset, guint64 len);
 int Mono_Posix_Syscall_posix_madvise (void* addr, guint64 len, int advice);
 gint64 Mono_Posix_Syscall_pread (int fd, void* buf, guint64 count, gint64 offset);
+gint64 Mono_Posix_Syscall_preadv (int fd, struct Mono_Posix_Iovec* iov, int iovcnt, gint64 offset);
 int Mono_Posix_Syscall_psignal (int sig, const char* s);
 gint64 Mono_Posix_Syscall_pwrite (int fd, void* buf, guint64 count, gint64 offset);
+gint64 Mono_Posix_Syscall_pwritev (int fd, struct Mono_Posix_Iovec* iov, int iovcnt, gint64 offset);
 gint64 Mono_Posix_Syscall_read (int fd, void* buf, guint64 count);
 int Mono_Posix_Syscall_readdir (void* dir, struct Mono_Posix_Syscall__Dirent* dentry);
 int Mono_Posix_Syscall_readdir_r (void* dirp, struct Mono_Posix_Syscall__Dirent* entry, void** result);
 int Mono_Posix_Syscall_readlink (const char* path, char* buf, guint64 bufsiz);
+int Mono_Posix_Syscall_readlinkat (int dirfd, const char* pathname, char* buf, guint64 bufsiz);
+gint64 Mono_Posix_Syscall_readv (int fd, struct Mono_Posix_Iovec* iov, int iovcnt);
 int Mono_Posix_Syscall_remap_file_pages (void* start, guint64 size, int prot, gint64 pgoff, int flags);
 int Mono_Posix_Syscall_removexattr (const char* path, const char* name);
 int Mono_Posix_Syscall_rewinddir (void* dir);
@@ -1671,16 +1810,23 @@ gint64 Mono_Posix_Syscall_telldir (void* dir);
 gint64 Mono_Posix_Syscall_time (gint64* t);
 int Mono_Posix_Syscall_truncate (const char* path, gint64 length);
 int Mono_Posix_Syscall_ttyname_r (int fd, char* buf, guint64 buflen);
+int Mono_Posix_Syscall_uname (struct Mono_Posix_Syscall__Utsname* buf);
 int Mono_Posix_Syscall_utime (const char* filename, struct Mono_Posix_Utimbuf* buf, int use_buf);
+int Mono_Posix_Syscall_utimensat (int dirfd, const char* pathname, struct Mono_Posix_Timespec* times, int flags);
 int Mono_Posix_Syscall_utimes (const char* filename, struct Mono_Posix_Timeval* tvp);
-gint64 Mono_Posix_Syscall_write (int fd, void* buf, guint64 count);
 int Mono_Posix_Syscall_WEXITSTATUS (int status);
 int Mono_Posix_Syscall_WIFEXITED (int status);
 int Mono_Posix_Syscall_WIFSIGNALED (int status);
 int Mono_Posix_Syscall_WIFSTOPPED (int status);
+gint64 Mono_Posix_Syscall_write (int fd, void* buf, guint64 count);
+gint64 Mono_Posix_Syscall_writev (int fd, struct Mono_Posix_Iovec* iov, int iovcnt);
 int Mono_Posix_Syscall_WSTOPSIG (int status);
 int Mono_Posix_Syscall_WTERMSIG (int status);
+int Mono_Posix_ToStat (void* source, struct Mono_Posix_Stat* destination);
 int Mono_Posix_ToStatvfs (void* source, struct Mono_Posix_Statvfs* destination);
+void* Mono_Unix_UnixSignal_install (int signum);
+int Mono_Unix_UnixSignal_uninstall (void* info);
+int Mono_Unix_UnixSignal_WaitAny (void** infos, int count, int timeout, Mono_Posix_RuntimeIsShuttingDown shutting_down);
 int wexitstatus (int status);
 int wifexited (int status);
 int wifsignaled (int status);