diff options
Diffstat (limited to 'include/asm-generic/stat.h')
| -rw-r--r-- | include/asm-generic/stat.h | 72 | 
1 files changed, 72 insertions, 0 deletions
diff --git a/include/asm-generic/stat.h b/include/asm-generic/stat.h new file mode 100644 index 000000000000..47e64170305d --- /dev/null +++ b/include/asm-generic/stat.h @@ -0,0 +1,72 @@ +#ifndef __ASM_GENERIC_STAT_H +#define __ASM_GENERIC_STAT_H + +/* + * Everybody gets this wrong and has to stick with it for all + * eternity. Hopefully, this version gets used by new architectures + * so they don't fall into the same traps. + * + * stat64 is copied from powerpc64, with explicit padding added. + * stat is the same structure layout on 64-bit, without the 'long long' + * types. + * + * By convention, 64 bit architectures use the stat interface, while + * 32 bit architectures use the stat64 interface. Note that we don't + * provide an __old_kernel_stat here, which new architecture should + * not have to start with. + */ + +#include <asm/bitsperlong.h> + +#define STAT_HAVE_NSEC 1 + +struct stat { +	unsigned long	st_dev;		/* Device.  */ +	unsigned long	st_ino;		/* File serial number.  */ +	unsigned int	st_mode;	/* File mode.  */ +	unsigned int	st_nlink;	/* Link count.  */ +	unsigned int	st_uid;		/* User ID of the file's owner.  */ +	unsigned int	st_gid;		/* Group ID of the file's group. */ +	unsigned long	st_rdev;	/* Device number, if device.  */ +	unsigned long	__pad1; +	long		st_size;	/* Size of file, in bytes.  */ +	int		st_blksize;	/* Optimal block size for I/O.  */ +	int		__pad2; +	long		st_blocks;	/* Number 512-byte blocks allocated. */ +	int		st_atime;	/* Time of last access.  */ +	unsigned int	st_atime_nsec; +	int		st_mtime;	/* Time of last modification.  */ +	unsigned int	st_mtime_nsec; +	int		st_ctime;	/* Time of last status change.  */ +	unsigned int	st_ctime_nsec; +	unsigned int	__unused4; +	unsigned int	__unused5; +}; + +#if __BITS_PER_LONG != 64 +/* This matches struct stat64 in glibc2.1. Only used for 32 bit. */ +struct stat64 { +	unsigned long long st_dev;	/* Device.  */ +	unsigned long long st_ino;	/* File serial number.  */ +	unsigned int	st_mode;	/* File mode.  */ +	unsigned int	st_nlink;	/* Link count.  */ +	unsigned int	st_uid;		/* User ID of the file's owner.  */ +	unsigned int	st_gid;		/* Group ID of the file's group. */ +	unsigned long long st_rdev;	/* Device number, if device.  */ +	unsigned long long __pad1; +	long long	st_size;	/* Size of file, in bytes.  */ +	int		st_blksize;	/* Optimal block size for I/O.  */ +	int		__pad2; +	long long	st_blocks;	/* Number 512-byte blocks allocated. */ +	int		st_atime;	/* Time of last access.  */ +	unsigned int	st_atime_nsec; +	int		st_mtime;	/* Time of last modification.  */ +	unsigned int	st_mtime_nsec; +	int		st_ctime;	/* Time of last status change.  */ +	unsigned int	st_ctime_nsec; +	unsigned int	__unused4; +	unsigned int	__unused5; +}; +#endif + +#endif /* __ASM_GENERIC_STAT_H */  |