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