cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

statfs.h (1854B)


      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 */