diff options
Diffstat (limited to 'libc/sysdeps/linux/sh/bits')
-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__) |