linux/include/uapi/asm-generic/statfs.h
<<
>>
Prefs
   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
  23struct 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
  46struct 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
  69struct 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 */
  85