mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 22:26:12 +00:00 
			
		
		
		
	 92a7507926
			
		
	
	
		92a7507926
		
	
	
	
	
		
			
			At the moment, 64-bit platforms (other than Alpha) are all redefining things for themselves instead of using <asm-generic/statfs.h>. As is ARM, since it has special requirements w.r.t. padding. Make <asm-generic/statfs.h> more generic, and they can use it directly. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _GENERIC_STATFS_H
 | |
| #define _GENERIC_STATFS_H
 | |
| 
 | |
| #ifndef __KERNEL_STRICT_NAMES
 | |
| # include <linux/types.h>
 | |
| 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
 |