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 #include <endian.h> 15 16 struct 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 31 int statvfs (const char *__restrict, struct statvfs *__restrict); 32 int 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 #define ST_RELATIME 4096 46 47 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 48 #define statvfs64 statvfs 49 #define fstatvfs64 fstatvfs 50 #define fsblkcnt64_t fsblkcnt_t 51 #define fsfilcnt64_t fsfilcnt_t 52 #endif 53 54 #ifdef __cplusplus 55 } 56 #endif 57 58 #endif 59