lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 5 May 2008 00:31:38 +0200
From:	Arnd Bergmann <arnd@...db.de>
To:	monstr@...nam.cz
Cc:	linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
	stephen.neuendorffer@...inx.com, John.Linn@...inx.com,
	john.williams@...alogix.com, matthew@....cx, will.newton@...il.com,
	drepper@...hat.com, microblaze-uclinux@...e.uq.edu.au,
	grant.likely@...retlab.ca, Michal Simek <monstr@...str.eu>
Subject: Re: [PATCH 42/56] microblaze_v2: stats headers

On Sunday 04 May 2008, monstr@...nam.cz 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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ