1#ifndef _SYS_STATVFS_H 2#define _SYS_STATVFS_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10#define __NEED_fsblkcnt_t 11#define __NEED_fsfilcnt_t 12#include <bits/alltypes.h> 13 14#include <endian.h> 15 16struct statvfs { 17 unsigned long f_bsize, f_frsize; 18 fsblkcnt_t f_blocks, f_bfree, f_bavail; 19 fsfilcnt_t f_files, f_ffree, f_favail; 20#if __BYTE_ORDER == __LITTLE_ENDIAN 21 unsigned long f_fsid; 22 unsigned :8*(2*sizeof(int)-sizeof(long)); 23#else 24 unsigned :8*(2*sizeof(int)-sizeof(long)); 25 unsigned long f_fsid; 26#endif 27 unsigned long f_flag, f_namemax; 28 int __reserved[6]; 29}; 30 31int statvfs (const char *__restrict, struct statvfs *__restrict); 32int fstatvfs (int, struct statvfs *); 33 34#define ST_RDONLY 1 35#define ST_NOSUID 2 36#define ST_NODEV 4 37#define ST_NOEXEC 8 38#define ST_SYNCHRONOUS 16 39#define ST_MANDLOCK 64 40#define ST_WRITE 128 41#define ST_APPEND 256 42#define ST_IMMUTABLE 512 43#define ST_NOATIME 1024 44#define ST_NODIRATIME 2048 45 46#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 47#define statvfs64 statvfs 48#define fstatvfs64 fstatvfs 49#define fsblkcnt64_t fsblkcnt_t 50#define fsfilcnt64_t fsfilcnt_t 51#endif 52 53#ifdef __cplusplus 54} 55#endif 56 57#endif 58