2005-04-17 02:20:36 +04:00
# ifndef _GENERIC_STATFS_H
# define _GENERIC_STATFS_H
2009-02-26 02:51:45 +03:00
# include <linux/types.h>
# ifdef __KERNEL__
2005-04-17 02:20:36 +04:00
typedef __kernel_fsid_t fsid_t ;
# endif
2008-09-01 17:07:11 +04:00
/*
* 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
2005-04-17 02:20:36 +04:00
struct statfs {
2008-09-01 17:07:11 +04:00
__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 ;
2005-04-17 02:20:36 +04:00
__kernel_fsid_t f_fsid ;
2008-09-01 17:07:11 +04:00
__statfs_word f_namelen ;
__statfs_word f_frsize ;
2010-07-07 20:53:25 +04:00
__statfs_word f_flags ;
__statfs_word f_spare [ 4 ] ;
2005-04-17 02:20:36 +04:00
} ;
2008-09-01 17:07:11 +04:00
/*
* 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
2005-04-17 02:20:36 +04:00
struct statfs64 {
2008-09-01 17:07:11 +04:00
__statfs_word f_type ;
__statfs_word f_bsize ;
2005-04-17 02:20:36 +04:00
__u64 f_blocks ;
__u64 f_bfree ;
__u64 f_bavail ;
__u64 f_files ;
__u64 f_ffree ;
__kernel_fsid_t f_fsid ;
2008-09-01 17:07:11 +04:00
__statfs_word f_namelen ;
__statfs_word f_frsize ;
2010-07-07 20:53:25 +04:00
__statfs_word f_flags ;
__statfs_word f_spare [ 4 ] ;
2008-09-01 17:07:11 +04:00
} 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
2005-04-17 02:20:36 +04:00
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 ;
2010-07-07 20:53:25 +04:00
__u32 f_flags ;
__u32 f_spare [ 4 ] ;
2008-09-01 17:07:11 +04:00
} ARCH_PACK_COMPAT_STATFS64 ;
2005-04-17 02:20:36 +04:00
# endif