Re: [PATCH 42/56] microblaze_v2: stats headers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 04 May 2008, monstr@xxxxxxxxx wrote:
> +struct stat {
> +	unsigned int	st_dev;
> +	unsigned long	st_ino;
> +	unsigned int	st_mode;
> +	unsigned int	st_nlink;
> +	unsigned int	st_uid;
> +	unsigned int	st_gid;
> +	unsigned int	st_rdev;
> +	long		st_size;
> +	unsigned long	st_blksize;
> +	unsigned long	st_blocks;
> +	unsigned long	st_atime;
> +	unsigned long	__unused1;
> +	unsigned long	st_mtime;
> +	unsigned long	__unused2;
> +	unsigned long	st_ctime;
> +	unsigned long	__unused3;
> +	unsigned long	__unused4;
> +	unsigned long	__unused5;
> +};
> +
> +struct stat64 {
> +	unsigned long long	st_dev;
> +	unsigned long	__unused1;
> +
> +	unsigned long long	st_ino;
> +
> +	unsigned int	st_mode;
> +	unsigned int	st_nlink;
> +
> +	unsigned int	st_uid;
> +	unsigned int	st_gid;
> +
> +	unsigned long long	st_rdev;
> +	unsigned long	__unused3;
> +
> +	long long	st_size;
> +	unsigned long	st_blksize;
> +
> +	unsigned long	st_blocks; /* No. of 512-byte blocks allocated */
> +	unsigned long	__unused4; /* future possible st_blocks high bits */
> +
> +	unsigned long	st_atime;
> +	unsigned long	st_atime_nsec;
> +
> +	unsigned long	st_mtime;
> +	unsigned long	st_mtime_nsec;
> +
> +	unsigned long	st_ctime;
> +	unsigned long	st_ctime_nsec;
> +
> +	unsigned long	__unused8;
> +};

There should only be a 'struct stat', not stat64, and it would be nice
to have that in asm-generic/stat.h.

I think it should be defined as

struct stat {
	unsigned long long	st_dev;

	unsigned long long	st_ino;

	unsigned int		st_mode;
	unsigned int		st_nlink;

	unsigned int		st_uid;
	unsigned int		st_gid;

	unsigned long long	st_rdev;

	long long		st_size;

	unsigned int		st_blksize;
	unsigned int		__unused1;

	unsigned long long	st_blocks; /* No. of 512-byte blocks allocated */

	unsigned int		st_atime;
	unsigned int		st_atime_nsec;

	unsigned int		st_mtime;
	unsigned int		st_mtime_nsec;

	unsigned int		st_ctime;
	unsigned int		st_ctime_nsec;

	unsigned int		__unused2;
	unsigned int		__unused3;
};

This way, you don't have any unnecessary padding, and the structure
is compatible in 32 and 64 bit architectures.

	Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux