#ifndef _GENERIC_STATFS_H | |
#define _GENERIC_STATFS_H | |
#include <linux/types.h> | |
#ifdef __KERNEL__ | |
typedef __kernel_fsid_t fsid_t; | |
#endif | |
/* | |
* Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'. | |
* Yes, they differ in signedness as well as size. | |
* Special cases can override it for themselves -- except for S390x, which | |
* is just a little too special for us. And MIPS, which I'm not touching | |
* with a 10' pole. | |
*/ | |
#ifndef __statfs_word | |
#if BITS_PER_LONG == 64 | |
#define __statfs_word long | |
#else | |
#define __statfs_word __u32 | |
#endif | |
#endif | |
struct statfs { | |
__statfs_word f_type; | |
__statfs_word f_bsize; | |
__statfs_word f_blocks; | |
__statfs_word f_bfree; | |
__statfs_word f_bavail; | |
__statfs_word f_files; | |
__statfs_word f_ffree; | |
__kernel_fsid_t f_fsid; | |
__statfs_word f_namelen; | |
__statfs_word f_frsize; | |
__statfs_word f_spare[5]; | |
}; | |
/* | |
* ARM needs to avoid the 32-bit padding at the end, for consistency | |
* between EABI and OABI | |
*/ | |
#ifndef ARCH_PACK_STATFS64 | |
#define ARCH_PACK_STATFS64 | |
#endif | |
struct statfs64 { | |
__statfs_word f_type; | |
__statfs_word f_bsize; | |
__u64 f_blocks; | |
__u64 f_bfree; | |
__u64 f_bavail; | |
__u64 f_files; | |
__u64 f_ffree; | |
__kernel_fsid_t f_fsid; | |
__statfs_word f_namelen; | |
__statfs_word f_frsize; | |
__statfs_word f_spare[5]; | |
} ARCH_PACK_STATFS64; | |
/* | |
* IA64 and x86_64 need to avoid the 32-bit padding at the end, | |
* to be compatible with the i386 ABI | |
*/ | |
#ifndef ARCH_PACK_COMPAT_STATFS64 | |
#define ARCH_PACK_COMPAT_STATFS64 | |
#endif | |
struct compat_statfs64 { | |
__u32 f_type; | |
__u32 f_bsize; | |
__u64 f_blocks; | |
__u64 f_bfree; | |
__u64 f_bavail; | |
__u64 f_files; | |
__u64 f_ffree; | |
__kernel_fsid_t f_fsid; | |
__u32 f_namelen; | |
__u32 f_frsize; | |
__u32 f_spare[5]; | |
} ARCH_PACK_COMPAT_STATFS64; | |
#endif |