lkml.org 
[lkml]   [2008]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH 42/56] microblaze_v2: stats headers
Date
On Sunday 04 May 2008, monstr@seznam.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 <><


\
 
 \ /
  Last update: 2008-05-05 00:35    [W:0.788 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site