Mono_Posix_FromStat (struct Mono_Posix_Stat * from, void * _to)
{
  long unsigned int D.7877;
  long unsigned int D.7878;
  __mode_t * D.7879;
  unsigned int D.7880;
  int D.7881;
  int D.7884;
  long unsigned int D.7885;
  unsigned int D.7886;
  unsigned int D.7887;
  long unsigned int D.7888;
  long int D.7889;
  long int D.7890;
  long int D.7891;
  long int D.7892;
  long int D.7893;
  long int D.7894;
  long int D.7895;
  long int D.7896;
  long int D.7897;
  struct stat * to;

  to = _to;
  memset (to, 0, 144);
  D.7877 = from->st_dev;
  to->st_dev = D.7877;
  D.7878 = from->st_ino;
  to->st_ino = D.7878;
  D.7879 = &to->st_mode;
  D.7880 = from->st_mode;
  D.7881 = Mono_Posix_FromFilePermissions (D.7880, D.7879);
  if (D.7881 != 0) goto <D.7882>; else goto <D.7883>;
  <D.7882>:
  D.7884 = -1;
  return D.7884;
  <D.7883>:
  D.7885 = from->st_nlink;
  to->st_nlink = D.7885;
  D.7886 = from->st_uid;
  to->st_uid = D.7886;
  D.7887 = from->st_gid;
  to->st_gid = D.7887;
  D.7888 = from->st_rdev;
  to->st_rdev = D.7888;
  D.7889 = from->st_size;
  to->st_size = D.7889;
  D.7890 = from->st_blksize;
  to->st_blksize = D.7890;
  D.7891 = from->st_blocks;
  to->st_blocks = D.7891;
  D.7892 = from->st_atime_;
  to->st_atim.tv_sec = D.7892;
  D.7893 = from->st_mtime_;
  to->st_mtim.tv_sec = D.7893;
  D.7894 = from->st_ctime_;
  to->st_ctim.tv_sec = D.7894;
  D.7895 = from->st_atime_nsec;
  to->st_atim.tv_nsec = D.7895;
  D.7896 = from->st_mtime_nsec;
  to->st_mtim.tv_nsec = D.7896;
  D.7897 = from->st_ctime_nsec;
  to->st_ctim.tv_nsec = D.7897;
  D.7884 = 0;
  return D.7884;
}


memset (void * __dest, int __ch, size_t __len)
{
  int D.7901;
  int D.7906;
  void * D.7908;
  long unsigned int D.7909;

  D.7901 = __builtin_constant_p (__len);
  if (D.7901 != 0) goto <D.7902>; else goto <D.7903>;
  <D.7902>:
  if (__len == 0) goto <D.7904>; else goto <D.7905>;
  <D.7904>:
  D.7906 = __builtin_constant_p (__ch);
  if (D.7906 == 0) goto <D.7899>; else goto <D.7907>;
  <D.7907>:
  if (__ch != 0) goto <D.7899>; else goto <D.7900>;
  <D.7899>:
  __warn_memset_zero_len ();
  D.7908 = __dest;
  return D.7908;
  <D.7900>:
  <D.7905>:
  <D.7903>:
  D.7909 = __builtin_object_size (__dest, 0);
  D.7908 = __builtin___memset_chk (__dest, __ch, __len, D.7909);
  return D.7908;
}


Mono_Posix_ToStat (void * _from, struct Mono_Posix_Stat * to)
{
  long unsigned int D.7911;
  long unsigned int D.7912;
  unsigned int * D.7913;
  unsigned int D.7914;
  int D.7915;
  int D.7918;
  long unsigned int D.7919;
  unsigned int D.7920;
  unsigned int D.7921;
  long unsigned int D.7922;
  long int D.7923;
  long int D.7924;
  long int D.7925;
  long int D.7926;
  long int D.7927;
  long int D.7928;
  long int D.7929;
  long int D.7930;
  long int D.7931;
  struct stat * from;

  from = _from;
  memset (to, 0, 120);
  D.7911 = from->st_dev;
  to->st_dev = D.7911;
  D.7912 = from->st_ino;
  to->st_ino = D.7912;
  D.7913 = &to->st_mode;
  D.7914 = from->st_mode;
  D.7915 = Mono_Posix_ToFilePermissions (D.7914, D.7913);
  if (D.7915 != 0) goto <D.7916>; else goto <D.7917>;
  <D.7916>:
  D.7918 = -1;
  return D.7918;
  <D.7917>:
  D.7919 = from->st_nlink;
  to->st_nlink = D.7919;
  D.7920 = from->st_uid;
  to->st_uid = D.7920;
  D.7921 = from->st_gid;
  to->st_gid = D.7921;
  D.7922 = from->st_rdev;
  to->st_rdev = D.7922;
  D.7923 = from->st_size;
  to->st_size = D.7923;
  D.7924 = from->st_blksize;
  to->st_blksize = D.7924;
  D.7925 = from->st_blocks;
  to->st_blocks = D.7925;
  D.7926 = from->st_atim.tv_sec;
  to->st_atime_ = D.7926;
  D.7927 = from->st_mtim.tv_sec;
  to->st_mtime_ = D.7927;
  D.7928 = from->st_ctim.tv_sec;
  to->st_ctime_ = D.7928;
  D.7929 = from->st_atim.tv_nsec;
  to->st_atime_nsec = D.7929;
  D.7930 = from->st_mtim.tv_nsec;
  to->st_mtime_nsec = D.7930;
  D.7931 = from->st_ctim.tv_nsec;
  to->st_ctime_nsec = D.7931;
  D.7918 = 0;
  return D.7918;
}


Mono_Posix_Syscall_stat (const char * file_name, struct Mono_Posix_Stat * buf)
{
  int * D.7935;
  int D.7936;
  int D.7939;
  int r;
  struct stat _buf;

  try
    {
      if (buf == 0B) goto <D.7933>; else goto <D.7934>;
      <D.7933>:
      D.7935 = __errno_location ();
      *D.7935 = 14;
      D.7936 = -1;
      return D.7936;
      <D.7934>:
      r = stat (file_name, &_buf);
      if (r != -1) goto <D.7937>; else goto <D.7938>;
      <D.7937>:
      D.7939 = Mono_Posix_ToStat (&_buf, buf);
      if (D.7939 == -1) goto <D.7940>; else goto <D.7941>;
      <D.7940>:
      r = -1;
      <D.7941>:
      <D.7938>:
      D.7936 = r;
      return D.7936;
    }
  finally
    {
      _buf = {CLOBBER};
    }
}


stat (const char * __path, struct stat * __statbuf)
{
  int D.7944;

  D.7944 = __xstat (1, __path, __statbuf);
  return D.7944;
}


Mono_Posix_Syscall_fstat (int filedes, struct Mono_Posix_Stat * buf)
{
  int * D.7948;
  int D.7949;
  int D.7952;
  int r;
  struct stat _buf;

  try
    {
      if (buf == 0B) goto <D.7946>; else goto <D.7947>;
      <D.7946>:
      D.7948 = __errno_location ();
      *D.7948 = 14;
      D.7949 = -1;
      return D.7949;
      <D.7947>:
      r = fstat (filedes, &_buf);
      if (r != -1) goto <D.7950>; else goto <D.7951>;
      <D.7950>:
      D.7952 = Mono_Posix_ToStat (&_buf, buf);
      if (D.7952 == -1) goto <D.7953>; else goto <D.7954>;
      <D.7953>:
      r = -1;
      <D.7954>:
      <D.7951>:
      D.7949 = r;
      return D.7949;
    }
  finally
    {
      _buf = {CLOBBER};
    }
}


fstat (int __fd, struct stat * __statbuf)
{
  int D.7957;

  D.7957 = __fxstat (1, __fd, __statbuf);
  return D.7957;
}


Mono_Posix_Syscall_lstat (const char * file_name, struct Mono_Posix_Stat * buf)
{
  int * D.7961;
  int D.7962;
  int D.7965;
  int r;
  struct stat _buf;

  try
    {
      if (buf == 0B) goto <D.7959>; else goto <D.7960>;
      <D.7959>:
      D.7961 = __errno_location ();
      *D.7961 = 14;
      D.7962 = -1;
      return D.7962;
      <D.7960>:
      r = lstat (file_name, &_buf);
      if (r != -1) goto <D.7963>; else goto <D.7964>;
      <D.7963>:
      D.7965 = Mono_Posix_ToStat (&_buf, buf);
      if (D.7965 == -1) goto <D.7966>; else goto <D.7967>;
      <D.7966>:
      r = -1;
      <D.7967>:
      <D.7964>:
      D.7962 = r;
      return D.7962;
    }
  finally
    {
      _buf = {CLOBBER};
    }
}


lstat (const char * __path, struct stat * __statbuf)
{
  int D.7970;

  D.7970 = __lxstat (1, __path, __statbuf);
  return D.7970;
}


Mono_Posix_Syscall_fstatat (gint32 dirfd, const char * file_name, struct Mono_Posix_Stat * buf, gint32 flags)
{
  int flags.0;
  int D.7973;
  int D.7976;
  int * D.7979;
  int D.7982;
  int r;
  struct stat _buf;

  try
    {
      flags.0 = flags;
      D.7973 = Mono_Posix_FromAtFlags (flags.0, &flags);
      if (D.7973 == -1) goto <D.7974>; else goto <D.7975>;
      <D.7974>:
      D.7976 = -1;
      return D.7976;
      <D.7975>:
      if (buf == 0B) goto <D.7977>; else goto <D.7978>;
      <D.7977>:
      D.7979 = __errno_location ();
      *D.7979 = 14;
      D.7976 = -1;
      return D.7976;
      <D.7978>:
      flags.0 = flags;
      r = fstatat (dirfd, file_name, &_buf, flags.0);
      if (r != -1) goto <D.7980>; else goto <D.7981>;
      <D.7980>:
      D.7982 = Mono_Posix_ToStat (&_buf, buf);
      if (D.7982 == -1) goto <D.7983>; else goto <D.7984>;
      <D.7983>:
      r = -1;
      <D.7984>:
      <D.7981>:
      D.7976 = r;
      return D.7976;
    }
  finally
    {
      _buf = {CLOBBER};
    }
}


fstatat (int __fd, const char * __filename, struct stat * __statbuf, int __flag)
{
  int D.7987;

  D.7987 = __fxstatat (1, __fd, __filename, __statbuf, __flag);
  return D.7987;
}


Mono_Posix_Syscall_mknod (const char * pathname, guint32 mode, mph_dev_t dev)
{
  unsigned int mode.1;
  int D.7990;
  int D.7993;

  mode.1 = mode;
  D.7990 = Mono_Posix_FromFilePermissions (mode.1, &mode);
  if (D.7990 == -1) goto <D.7991>; else goto <D.7992>;
  <D.7991>:
  D.7993 = -1;
  return D.7993;
  <D.7992>:
  mode.1 = mode;
  D.7993 = mknod (pathname, mode.1, dev);
  return D.7993;
}


mknod (const char * __path, __mode_t __mode, __dev_t __dev)
{
  int D.7995;

  D.7995 = __xmknod (0, __path, __mode, &__dev);
  return D.7995;
}


Mono_Posix_Syscall_mknodat (int dirfd, const char * pathname, guint32 mode, mph_dev_t dev)
{
  unsigned int mode.2;
  int D.7998;
  int D.8001;

  mode.2 = mode;
  D.7998 = Mono_Posix_FromFilePermissions (mode.2, &mode);
  if (D.7998 == -1) goto <D.7999>; else goto <D.8000>;
  <D.7999>:
  D.8001 = -1;
  return D.8001;
  <D.8000>:
  mode.2 = mode;
  D.8001 = mknodat (dirfd, pathname, mode.2, dev);
  return D.8001;
}


mknodat (int __fd, const char * __path, __mode_t __mode, __dev_t __dev)
{
  int D.8003;

  D.8003 = __xmknodat (0, __fd, __path, __mode, &__dev);
  return D.8003;
}


Mono_Posix_Syscall_get_utime_now ()
{
  gint64 D.8005;

  D.8005 = 1073741823;
  return D.8005;
}


Mono_Posix_Syscall_get_utime_omit ()
{
  gint64 D.8007;

  D.8007 = 1073741822;
  return D.8007;
}


Mono_Posix_Syscall_futimens (int fd, struct Mono_Posix_Timespec * tv)
{
  int D.8009;
  struct timespec _tv[2];
  struct timespec * ptv;

  try
    {
      ptv = copy_utimens (&_tv, tv);
      D.8009 = futimens (fd, ptv);
      return D.8009;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


copy_utimens (struct timespec * to, struct Mono_Posix_Timespec * from)
{
  long int D.8014;
  long int D.8015;
  struct timespec * D.8016;
  struct Mono_Posix_Timespec * D.8017;
  long int D.8018;
  long int D.8019;
  struct timespec * D.8020;

  if (from != 0B) goto <D.8012>; else goto <D.8013>;
  <D.8012>:
  D.8014 = from->tv_sec;
  to->tv_sec = D.8014;
  D.8015 = from->tv_nsec;
  to->tv_nsec = D.8015;
  D.8016 = to + 16;
  D.8017 = from + 16;
  D.8018 = D.8017->tv_sec;
  D.8016->tv_sec = D.8018;
  D.8016 = to + 16;
  D.8017 = from + 16;
  D.8019 = D.8017->tv_nsec;
  D.8016->tv_nsec = D.8019;
  D.8020 = to;
  return D.8020;
  <D.8013>:
  D.8020 = 0B;
  return D.8020;
}


Mono_Posix_Syscall_utimensat (int dirfd, const char * pathname, struct Mono_Posix_Timespec * tv, int flags)
{
  int D.8022;
  struct timespec _tv[2];
  struct timespec * ptv;

  try
    {
      ptv = copy_utimens (&_tv, tv);
      D.8022 = utimensat (dirfd, pathname, ptv, flags);
      return D.8022;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


