[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200805050031.40054.arnd@arndb.de>
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