Mono_Posix_ToStatvfs (void * _from, struct Mono_Posix_Statvfs * to)
{
  long unsigned int D.6605;
  long unsigned int D.6606;
  long unsigned int D.6607;
  long unsigned int D.6608;
  long unsigned int D.6609;
  long unsigned int D.6610;
  long unsigned int D.6611;
  long unsigned int D.6612;
  long unsigned int D.6613;
  long unsigned int D.6614;
  guint64 * D.6615;
  long unsigned int D.6616;
  int D.6617;
  int D.6620;
  struct statvfs * from;

  from = _from;
  D.6605 = from->f_bsize;
  to->f_bsize = D.6605;
  D.6606 = from->f_frsize;
  to->f_frsize = D.6606;
  D.6607 = from->f_blocks;
  to->f_blocks = D.6607;
  D.6608 = from->f_bfree;
  to->f_bfree = D.6608;
  D.6609 = from->f_bavail;
  to->f_bavail = D.6609;
  D.6610 = from->f_files;
  to->f_files = D.6610;
  D.6611 = from->f_ffree;
  to->f_ffree = D.6611;
  D.6612 = from->f_favail;
  to->f_favail = D.6612;
  D.6613 = from->f_fsid;
  to->f_fsid = D.6613;
  D.6614 = from->f_namemax;
  to->f_namemax = D.6614;
  D.6615 = &to->f_flag;
  D.6616 = from->f_flag;
  D.6617 = Mono_Posix_ToMountFlags (D.6616, D.6615);
  if (D.6617 != 0) goto <D.6618>; else goto <D.6619>;
  <D.6618>:
  D.6620 = -1;
  return D.6620;
  <D.6619>:
  D.6620 = 0;
  return D.6620;
}


Mono_Posix_FromStatvfs (struct Mono_Posix_Statvfs * from, void * _to)
{
  long unsigned int D.6622;
  long unsigned int D.6623;
  long unsigned int D.6624;
  long unsigned int D.6625;
  long unsigned int D.6626;
  long unsigned int D.6627;
  long unsigned int D.6628;
  long unsigned int D.6629;
  long unsigned int D.6630;
  long unsigned int D.6631;
  long unsigned int D.6632;
  int D.6633;
  int D.6636;
  long unsigned int flag.0;
  struct statvfs * to;
  guint64 flag;

  try
    {
      to = _to;
      D.6622 = from->f_bsize;
      to->f_bsize = D.6622;
      D.6623 = from->f_frsize;
      to->f_frsize = D.6623;
      D.6624 = from->f_blocks;
      to->f_blocks = D.6624;
      D.6625 = from->f_bfree;
      to->f_bfree = D.6625;
      D.6626 = from->f_bavail;
      to->f_bavail = D.6626;
      D.6627 = from->f_files;
      to->f_files = D.6627;
      D.6628 = from->f_ffree;
      to->f_ffree = D.6628;
      D.6629 = from->f_favail;
      to->f_favail = D.6629;
      D.6630 = from->f_fsid;
      to->f_fsid = D.6630;
      D.6631 = from->f_namemax;
      to->f_namemax = D.6631;
      D.6632 = from->f_flag;
      D.6633 = Mono_Posix_FromMountFlags (D.6632, &flag);
      if (D.6633 != 0) goto <D.6634>; else goto <D.6635>;
      <D.6634>:
      D.6636 = -1;
      return D.6636;
      <D.6635>:
      flag.0 = flag;
      to->f_flag = flag.0;
      D.6636 = 0;
      return D.6636;
    }
  finally
    {
      flag = {CLOBBER};
    }
}


Mono_Posix_Syscall_statvfs (const char * path, struct Mono_Posix_Statvfs * buf)
{
  int * D.6642;
  int D.6643;
  struct statvfs s;
  int r;

  try
    {
      if (buf == 0B) goto <D.6640>; else goto <D.6641>;
      <D.6640>:
      D.6642 = __errno_location ();
      *D.6642 = 14;
      D.6643 = -1;
      return D.6643;
      <D.6641>:
      r = statvfs (path, &s);
      if (r == 0) goto <D.6644>; else goto <D.6645>;
      <D.6644>:
      r = Mono_Posix_ToStatvfs (&s, buf);
      <D.6645>:
      D.6643 = r;
      return D.6643;
    }
  finally
    {
      s = {CLOBBER};
    }
}


Mono_Posix_Syscall_fstatvfs (gint32 fd, struct Mono_Posix_Statvfs * buf)
{
  int * D.6650;
  int D.6651;
  struct statvfs s;
  int r;

  try
    {
      if (buf == 0B) goto <D.6648>; else goto <D.6649>;
      <D.6648>:
      D.6650 = __errno_location ();
      *D.6650 = 14;
      D.6651 = -1;
      return D.6651;
      <D.6649>:
      r = fstatvfs (fd, &s);
      if (r == 0) goto <D.6652>; else goto <D.6653>;
      <D.6652>:
      r = Mono_Posix_ToStatvfs (&s, buf);
      <D.6653>:
      D.6651 = r;
      return D.6651;
    }
  finally
    {
      s = {CLOBBER};
    }
}


