81 lines
1.7 KiB
C
81 lines
1.7 KiB
C
typedef __SIZE_TYPE__ size_t;
|
|
typedef unsigned int __u_int;
|
|
typedef unsigned long __u_long;
|
|
|
|
__extension__ typedef unsigned long long int __u_quad_t;
|
|
__extension__ typedef long long int __quad_t;
|
|
|
|
typedef struct
|
|
{
|
|
int __val[2];
|
|
} __fsid_t;
|
|
|
|
typedef long int __blksize_t;
|
|
typedef long int __blkcnt_t;
|
|
typedef __quad_t __blkcnt64_t;
|
|
typedef __u_long __fsblkcnt_t;
|
|
typedef __u_quad_t __fsblkcnt64_t;
|
|
typedef __u_long __fsfilcnt_t;
|
|
typedef __u_quad_t __fsfilcnt64_t;
|
|
typedef __u_quad_t __ino64_t;
|
|
|
|
extern void *memcpy (void *__restrict __dest,
|
|
__const void *__restrict __src, size_t __n) ;
|
|
|
|
struct statfs
|
|
{
|
|
int f_type;
|
|
int f_bsize;
|
|
|
|
__fsblkcnt_t f_blocks;
|
|
__fsblkcnt_t f_bfree;
|
|
__fsblkcnt_t f_bavail;
|
|
__fsfilcnt_t f_files;
|
|
__fsfilcnt_t f_ffree;
|
|
|
|
__fsid_t f_fsid;
|
|
int f_namelen;
|
|
int f_spare[6];
|
|
};
|
|
|
|
|
|
struct statfs64
|
|
{
|
|
int f_type;
|
|
int f_bsize;
|
|
__fsblkcnt64_t f_blocks;
|
|
__fsblkcnt64_t f_bfree;
|
|
__fsblkcnt64_t f_bavail;
|
|
__fsfilcnt64_t f_files;
|
|
__fsfilcnt64_t f_ffree;
|
|
__fsid_t f_fsid;
|
|
int f_namelen;
|
|
int f_spare[6];
|
|
};
|
|
|
|
extern int __statfs (__const char *__file, struct statfs *__buf);
|
|
extern int __statfs64 (__const char *__file, struct statfs64 *__buf);
|
|
|
|
|
|
int
|
|
__statfs64 (const char *file, struct statfs64 *buf)
|
|
{
|
|
struct statfs buf32;
|
|
|
|
if (__statfs (file, &buf32) < 0)
|
|
return -1;
|
|
|
|
buf->f_type = buf32.f_type;
|
|
buf->f_bsize = buf32.f_bsize;
|
|
buf->f_blocks = buf32.f_blocks;
|
|
buf->f_bfree = buf32.f_bfree;
|
|
buf->f_bavail = buf32.f_bavail;
|
|
buf->f_files = buf32.f_files;
|
|
buf->f_ffree = buf32.f_ffree;
|
|
buf->f_fsid = buf32.f_fsid;
|
|
buf->f_namelen = buf32.f_namelen;
|
|
memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
|
|
|
|
return 0;
|
|
}
|