130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI_GENERIC_STATFS_H 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI_GENERIC_STATFS_H 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'. 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Yes, they differ in signedness as well as size. 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Special cases can override it for themselves -- except for S390x, which 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * is just a little too special for us. And MIPS, which I'm not touching 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * with a 10' pole. 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __statfs_word 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#if __BITS_PER_LONG == 64 16e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define __statfs_word __kernel_long_t 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#else 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define __statfs_word __u32 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2230692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct statfs { 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_type; 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_bsize; 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_blocks; 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_bfree; 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_bavail; 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_files; 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_ffree; 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_fsid_t f_fsid; 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_namelen; 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_frsize; 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_flags; 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_spare[4]; 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ARM needs to avoid the 32-bit padding at the end, for consistency 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * between EABI and OABI 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef ARCH_PACK_STATFS64 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ARCH_PACK_STATFS64 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct statfs64 { 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_type; 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_bsize; 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_blocks; 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_bfree; 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_bavail; 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_files; 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_ffree; 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_fsid_t f_fsid; 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_namelen; 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_frsize; 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_flags; 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __statfs_word f_spare[4]; 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} ARCH_PACK_STATFS64; 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * IA64 and x86_64 need to avoid the 32-bit padding at the end, 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * to be compatible with the i386 ABI 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef ARCH_PACK_COMPAT_STATFS64 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ARCH_PACK_COMPAT_STATFS64 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct compat_statfs64 { 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_type; 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_bsize; 7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_blocks; 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_bfree; 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_bavail; 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_files; 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u64 f_ffree; 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_fsid_t f_fsid; 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_namelen; 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_frsize; 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_flags; 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 f_spare[4]; 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} ARCH_PACK_COMPAT_STATFS64; 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI_GENERIC_STATFS_H */ 84