1 #ifndef _LINUX_STATFS_H
2 #define _LINUX_STATFS_H
3 
4 #include <linux/types.h>
5 #include <asm/statfs.h>
6 
7 struct kstatfs {
8 	long f_type;
9 	long f_bsize;
10 	u64 f_blocks;
11 	u64 f_bfree;
12 	u64 f_bavail;
13 	u64 f_files;
14 	u64 f_ffree;
15 	__kernel_fsid_t f_fsid;
16 	long f_namelen;
17 	long f_frsize;
18 	long f_flags;
19 	long f_spare[4];
20 };
21 
22 /*
23  * Definitions for the flag in f_flag.
24  *
25  * Generally these flags are equivalent to the MS_ flags used in the mount
26  * ABI.  The exception is ST_VALID which has the same value as MS_REMOUNT
27  * which doesn't make any sense for statfs.
28  */
29 #define ST_RDONLY	0x0001	/* mount read-only */
30 #define ST_NOSUID	0x0002	/* ignore suid and sgid bits */
31 #define ST_NODEV	0x0004	/* disallow access to device special files */
32 #define ST_NOEXEC	0x0008	/* disallow program execution */
33 #define ST_SYNCHRONOUS	0x0010	/* writes are synced at once */
34 #define ST_VALID	0x0020	/* f_flags support is implemented */
35 #define ST_MANDLOCK	0x0040	/* allow mandatory locks on an FS */
36 /* 0x0080 used for ST_WRITE in glibc */
37 /* 0x0100 used for ST_APPEND in glibc */
38 /* 0x0200 used for ST_IMMUTABLE in glibc */
39 #define ST_NOATIME	0x0400	/* do not update access times */
40 #define ST_NODIRATIME	0x0800	/* do not update directory access times */
41 #define ST_RELATIME	0x1000	/* update atime relative to mtime/ctime */
42 
43 #endif
44