root/include/uapi/asm-generic/statfs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 #ifndef _UAPI_GENERIC_STATFS_H
   3 #define _UAPI_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 /* _UAPI_GENERIC_STATFS_H */

/* [<][>][^][v][top][bottom][index][help] */