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