Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 113627
b: refs/heads/master
c: 92a7507
h: refs/heads/master
i:
  113625: 98bf92c
  113623: 922a144
v: v3
  • Loading branch information
David Woodhouse authored and David Woodhouse committed Sep 4, 2008
1 parent 944f8df commit 4c9d210
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: aa7a7fb3990ffc74945494cbd2fc6e920825ee2c
refs/heads/master: 92a7507926b0698711ed010288b57582776eec31
4 changes: 4 additions & 0 deletions trunk/arch/alpha/include/asm/statfs.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
#ifndef _ALPHA_STATFS_H
#define _ALPHA_STATFS_H

/* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't
even seem to implement statfs64 */
#define __statfs_word __u32

#include <asm-generic/statfs.h>

#endif
65 changes: 48 additions & 17 deletions trunk/include/asm-generic/statfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,64 @@
typedef __kernel_fsid_t fsid_t;
#endif

/*
* Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'.
* Yes, they differ in signedness as well as size.
* Special cases can override it for themselves -- except for S390x, which
* is just a little too special for us. And MIPS, which I'm not touching
* with a 10' pole.
*/
#ifndef __statfs_word
#if BITS_PER_LONG == 64
#define __statfs_word long
#else
#define __statfs_word __u32
#endif
#endif

struct statfs {
__u32 f_type;
__u32 f_bsize;
__u32 f_blocks;
__u32 f_bfree;
__u32 f_bavail;
__u32 f_files;
__u32 f_ffree;
__statfs_word f_type;
__statfs_word f_bsize;
__statfs_word f_blocks;
__statfs_word f_bfree;
__statfs_word f_bavail;
__statfs_word f_files;
__statfs_word f_ffree;
__kernel_fsid_t f_fsid;
__u32 f_namelen;
__u32 f_frsize;
__u32 f_spare[5];
__statfs_word f_namelen;
__statfs_word f_frsize;
__statfs_word f_spare[5];
};

/*
* ARM needs to avoid the 32-bit padding at the end, for consistency
* between EABI and OABI
*/
#ifndef ARCH_PACK_STATFS64
#define ARCH_PACK_STATFS64
#endif

struct statfs64 {
__u32 f_type;
__u32 f_bsize;
__statfs_word f_type;
__statfs_word f_bsize;
__u64 f_blocks;
__u64 f_bfree;
__u64 f_bavail;
__u64 f_files;
__u64 f_ffree;
__kernel_fsid_t f_fsid;
__u32 f_namelen;
__u32 f_frsize;
__u32 f_spare[5];
};
__statfs_word f_namelen;
__statfs_word f_frsize;
__statfs_word f_spare[5];
} ARCH_PACK_STATFS64;

/*
* IA64 and x86_64 need to avoid the 32-bit padding at the end,
* to be compatible with the i386 ABI
*/
#ifndef ARCH_PACK_COMPAT_STATFS64
#define ARCH_PACK_COMPAT_STATFS64
#endif

struct compat_statfs64 {
__u32 f_type;
Expand All @@ -46,6 +77,6 @@ struct compat_statfs64 {
__u32 f_namelen;
__u32 f_frsize;
__u32 f_spare[5];
};
} ARCH_PACK_COMPAT_STATFS64;

#endif

0 comments on commit 4c9d210

Please sign in to comment.