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