1  typedef __SIZE_TYPE__ size_t;
       2  typedef unsigned int __u_int;
       3  typedef unsigned long __u_long;
       4  
       5  __extension__ typedef unsigned long long int __u_quad_t;
       6  __extension__ typedef long long int __quad_t;
       7  
       8  typedef struct
       9    {
      10      int __val[2];
      11    } __fsid_t;
      12  
      13  typedef long int __blksize_t;
      14  typedef long int __blkcnt_t;
      15  typedef __quad_t __blkcnt64_t;
      16  typedef __u_long __fsblkcnt_t;
      17  typedef __u_quad_t __fsblkcnt64_t;
      18  typedef __u_long __fsfilcnt_t;
      19  typedef __u_quad_t __fsfilcnt64_t;
      20  typedef __u_quad_t __ino64_t;
      21  
      22  extern void *memcpy (void *__restrict __dest,
      23                       __const void *__restrict __src, size_t __n) ;
      24  
      25  struct statfs
      26    {
      27      int f_type;
      28      int f_bsize;
      29  
      30      __fsblkcnt_t f_blocks;
      31      __fsblkcnt_t f_bfree;
      32      __fsblkcnt_t f_bavail;
      33      __fsfilcnt_t f_files;
      34      __fsfilcnt_t f_ffree;
      35  
      36      __fsid_t f_fsid;
      37      int f_namelen;
      38      int f_spare[6];
      39    };
      40  
      41  
      42  struct statfs64
      43    {
      44      int f_type;
      45      int f_bsize;
      46      __fsblkcnt64_t f_blocks;
      47      __fsblkcnt64_t f_bfree;
      48      __fsblkcnt64_t f_bavail;
      49      __fsfilcnt64_t f_files;
      50      __fsfilcnt64_t f_ffree;
      51      __fsid_t f_fsid;
      52      int f_namelen;
      53      int f_spare[6];
      54    };
      55  
      56  extern int __statfs (__const char *__file, struct statfs *__buf);
      57  extern int __statfs64 (__const char *__file, struct statfs64 *__buf);
      58  
      59  
      60  int
      61  __statfs64 (const char *file, struct statfs64 *buf)
      62  {
      63    struct statfs buf32;
      64  
      65    if (__statfs (file, &buf32) < 0)
      66      return -1;
      67  
      68    buf->f_type = buf32.f_type;
      69    buf->f_bsize = buf32.f_bsize;
      70    buf->f_blocks = buf32.f_blocks;
      71    buf->f_bfree = buf32.f_bfree;
      72    buf->f_bavail = buf32.f_bavail;
      73    buf->f_files = buf32.f_files;
      74    buf->f_ffree = buf32.f_ffree;
      75    buf->f_fsid = buf32.f_fsid;
      76    buf->f_namelen = buf32.f_namelen;
      77    memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
      78  
      79    return 0;
      80  }