diff options
Diffstat (limited to 'libc/sysdeps/linux/sh')
| -rw-r--r-- | libc/sysdeps/linux/sh/bits/kernel_stat.h | 55 | 
1 files changed, 55 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/sh/bits/kernel_stat.h b/libc/sysdeps/linux/sh/bits/kernel_stat.h index a932a8b79..3dc6ebdbf 100644 --- a/libc/sysdeps/linux/sh/bits/kernel_stat.h +++ b/libc/sysdeps/linux/sh/bits/kernel_stat.h @@ -6,6 +6,7 @@   * different opinion on the subject... */  #include <endian.h> +#ifndef __USE_FILE_OFFSET64  struct stat {  	unsigned short st_dev;  	unsigned short __pad1; @@ -28,6 +29,60 @@ struct stat {  	unsigned long  __unused4;  	unsigned long  __unused5;  }; +#else +struct stat { +#if defined(__BIG_ENDIAN__) +	unsigned char   __pad0b[6]; +	unsigned short	st_dev; +#elif defined(__LITTLE_ENDIAN__) +	unsigned short	st_dev; +	unsigned char	__pad0b[6]; +#else +#error Must know endian to build stat64 structure! +#endif +	unsigned char	__pad0[4]; + +	unsigned long	st_ino; +	unsigned int	st_mode; +	unsigned int	st_nlink; + +	unsigned long	st_uid; +	unsigned long	st_gid; + +#if defined(__BIG_ENDIAN__) +	unsigned char	__pad3b[6]; +	unsigned short	st_rdev; +#else /* Must be little */ +	unsigned short	st_rdev; +	unsigned char	__pad3b[6]; +#endif +	unsigned char	__pad3[4]; + +	long long	st_size; +	unsigned long	st_blksize; + +#if defined(__BIG_ENDIAN__) +	unsigned long	__pad4;		/* Future possible st_blocks hi bits */ +	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */ +#else /* Must be little */ +	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */ +	unsigned long	__pad4;		/* Future possible st_blocks hi bits */ +#endif + +	unsigned long	st_atime; +	unsigned long	__pad5; + +	unsigned long	st_mtime; +	unsigned long	__pad6; + +	unsigned long	st_ctime; +	unsigned long	__pad7;		/* will be high 32 bits of ctime someday */ + +	unsigned long	__unused1; +	unsigned long	__unused2; +}; +#endif +  #ifdef __USE_LARGEFILE64  struct stat64 {  #if defined(__BIG_ENDIAN__)  | 
