linux-headers (unknown)

(root)/
include/
asm-generic/
statfs.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef _GENERIC_STATFS_H
       3  #define _GENERIC_STATFS_H
       4  
       5  #include <linux/types.h>
       6  
       7  
       8  /*
       9   * Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'.
      10   * Yes, they differ in signedness as well as size.
      11   * Special cases can override it for themselves -- except for S390x, which
      12   * is just a little too special for us. And MIPS, which I'm not touching
      13   * with a 10' pole.
      14   */
      15  #ifndef __statfs_word
      16  #if __BITS_PER_LONG == 64
      17  #define __statfs_word __kernel_long_t
      18  #else
      19  #define __statfs_word __u32
      20  #endif
      21  #endif
      22  
      23  struct statfs {
      24  	__statfs_word f_type;
      25  	__statfs_word f_bsize;
      26  	__statfs_word f_blocks;
      27  	__statfs_word f_bfree;
      28  	__statfs_word f_bavail;
      29  	__statfs_word f_files;
      30  	__statfs_word f_ffree;
      31  	__kernel_fsid_t f_fsid;
      32  	__statfs_word f_namelen;
      33  	__statfs_word f_frsize;
      34  	__statfs_word f_flags;
      35  	__statfs_word f_spare[4];
      36  };
      37  
      38  /*
      39   * ARM needs to avoid the 32-bit padding at the end, for consistency
      40   * between EABI and OABI 
      41   */
      42  #ifndef ARCH_PACK_STATFS64
      43  #define ARCH_PACK_STATFS64
      44  #endif
      45  
      46  struct statfs64 {
      47  	__statfs_word f_type;
      48  	__statfs_word f_bsize;
      49  	__u64 f_blocks;
      50  	__u64 f_bfree;
      51  	__u64 f_bavail;
      52  	__u64 f_files;
      53  	__u64 f_ffree;
      54  	__kernel_fsid_t f_fsid;
      55  	__statfs_word f_namelen;
      56  	__statfs_word f_frsize;
      57  	__statfs_word f_flags;
      58  	__statfs_word f_spare[4];
      59  } ARCH_PACK_STATFS64;
      60  
      61  /* 
      62   * IA64 and x86_64 need to avoid the 32-bit padding at the end,
      63   * to be compatible with the i386 ABI
      64   */
      65  #ifndef ARCH_PACK_COMPAT_STATFS64
      66  #define ARCH_PACK_COMPAT_STATFS64
      67  #endif
      68  
      69  struct compat_statfs64 {
      70  	__u32 f_type;
      71  	__u32 f_bsize;
      72  	__u64 f_blocks;
      73  	__u64 f_bfree;
      74  	__u64 f_bavail;
      75  	__u64 f_files;
      76  	__u64 f_ffree;
      77  	__kernel_fsid_t f_fsid;
      78  	__u32 f_namelen;
      79  	__u32 f_frsize;
      80  	__u32 f_flags;
      81  	__u32 f_spare[4];
      82  } ARCH_PACK_COMPAT_STATFS64;
      83  
      84  #endif /* _GENERIC_STATFS_H */