1#ifndef __ASM_SH_STAT_H 2#define __ASM_SH_STAT_H 3 4struct __old_kernel_stat { 5 unsigned short st_dev; 6 unsigned short st_ino; 7 unsigned short st_mode; 8 unsigned short st_nlink; 9 unsigned short st_uid; 10 unsigned short st_gid; 11 unsigned short st_rdev; 12 unsigned long st_size; 13 unsigned long st_atime; 14 unsigned long st_mtime; 15 unsigned long st_ctime; 16}; 17 18struct stat { 19 unsigned short st_dev; 20 unsigned short __pad1; 21 unsigned long st_ino; 22 unsigned short st_mode; 23 unsigned short st_nlink; 24 unsigned short st_uid; 25 unsigned short st_gid; 26 unsigned short st_rdev; 27 unsigned short __pad2; 28 unsigned long st_size; 29 unsigned long st_blksize; 30 unsigned long st_blocks; 31 unsigned long st_atime; 32 unsigned long __unused1; 33 unsigned long st_mtime; 34 unsigned long __unused2; 35 unsigned long st_ctime; 36 unsigned long __unused3; 37 unsigned long __unused4; 38 unsigned long __unused5; 39}; 40 41/* This matches struct stat64 in glibc2.1, hence the absolutely 42 * insane amounts of padding around dev_t's. 43 */ 44struct stat64 { 45#if defined(__BIG_ENDIAN__) 46 unsigned char __pad0b[6]; 47 unsigned short st_dev; 48#elif defined(__LITTLE_ENDIAN__) 49 unsigned short st_dev; 50 unsigned char __pad0b[6]; 51#else 52#error Must know endian to build stat64 structure! 53#endif 54 unsigned char __pad0[4]; 55 56 unsigned long st_ino; 57 unsigned int st_mode; 58 unsigned int st_nlink; 59 60 unsigned long st_uid; 61 unsigned long st_gid; 62 63#if defined(__BIG_ENDIAN__) 64 unsigned char __pad3b[6]; 65 unsigned short st_rdev; 66#else /* Must be little */ 67 unsigned short st_rdev; 68 unsigned char __pad3b[6]; 69#endif 70 unsigned char __pad3[4]; 71 72 long long st_size; 73 unsigned long st_blksize; 74 75#if defined(__BIG_ENDIAN__) 76 unsigned long __pad4; /* Future possible st_blocks hi bits */ 77 unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 78#else /* Must be little */ 79 unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 80 unsigned long __pad4; /* Future possible st_blocks hi bits */ 81#endif 82 83 unsigned long st_atime; 84 unsigned long __pad5; 85 86 unsigned long st_mtime; 87 unsigned long __pad6; 88 89 unsigned long st_ctime; 90 unsigned long __pad7; /* will be high 32 bits of ctime someday */ 91 92 unsigned long __unused1; 93 unsigned long __unused2; 94}; 95 96#endif /* __ASM_SH_STAT_H */ 97