1 #ifndef _ASM_M32R_STAT_H 2 #define _ASM_M32R_STAT_H 3 4 #include <asm/byteorder.h> 5 6 struct __old_kernel_stat { 7 unsigned short st_dev; 8 unsigned short st_ino; 9 unsigned short st_mode; 10 unsigned short st_nlink; 11 unsigned short st_uid; 12 unsigned short st_gid; 13 unsigned short st_rdev; 14 unsigned long st_size; 15 unsigned long st_atime; 16 unsigned long st_mtime; 17 unsigned long st_ctime; 18 }; 19 20 #define STAT_HAVE_NSEC 1 21 22 struct stat { 23 unsigned short st_dev; 24 unsigned short __pad1; 25 unsigned long st_ino; 26 unsigned short st_mode; 27 unsigned short st_nlink; 28 unsigned short st_uid; 29 unsigned short st_gid; 30 unsigned short st_rdev; 31 unsigned short __pad2; 32 unsigned long st_size; 33 unsigned long st_blksize; 34 unsigned long st_blocks; 35 unsigned long st_atime; 36 unsigned long st_atime_nsec; 37 unsigned long st_mtime; 38 unsigned long st_mtime_nsec; 39 unsigned long st_ctime; 40 unsigned long st_ctime_nsec; 41 unsigned long __unused4; 42 unsigned long __unused5; 43 }; 44 45 /* This matches struct stat64 in glibc2.1, hence the absolutely 46 * insane amounts of padding around dev_t's. 47 */ 48 struct stat64 { 49 unsigned long long st_dev; 50 unsigned char __pad0[4]; 51 #define STAT64_HAS_BROKEN_ST_INO 52 unsigned long __st_ino; 53 54 unsigned int st_mode; 55 unsigned int st_nlink; 56 57 unsigned long st_uid; 58 unsigned long st_gid; 59 60 unsigned long long st_rdev; 61 unsigned char __pad3[4]; 62 63 long long st_size; 64 unsigned long st_blksize; 65 66 #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) 67 unsigned long __pad4; /* future possible st_blocks high bits */ 68 unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 69 #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) 70 unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 71 unsigned long __pad4; /* future possible st_blocks high bits */ 72 #else 73 #error no endian defined 74 #endif 75 unsigned long st_atime; 76 unsigned long st_atime_nsec; 77 78 unsigned long st_mtime; 79 unsigned long st_mtime_nsec; 80 81 unsigned long st_ctime; 82 unsigned long st_ctime_nsec; 83 84 unsigned long long st_ino; 85 }; 86 87 #endif /* _ASM_M32R_STAT_H */ 88