1 #ifndef _BITS_STAT_STRUCT_H 2 #define _BITS_STAT_STRUCT_H 3 4 /* This file provides whatever this particular arch's kernel thinks 5 * struct kernel_stat should look like... It turns out each arch has a 6 * different opinion on the subject... */ 7 8 #include <sgidefs.h> 9 10 #if _MIPS_SIM == _MIPS_SIM_ABI64 11 typedef struct { 12 unsigned int tv_sec; 13 unsigned int tv_nsec; 14 } __ktimespec_t; 15 #else 16 typedef struct { 17 #if defined(__UCLIBC_USE_TIME64__) 18 __S32_TYPE tv_sec; 19 #else 20 time_t tv_sec; 21 #endif 22 unsigned long tv_nsec; 23 } __ktimespec_t; 24 #endif 25 26 #if _MIPS_SIM == _MIPS_SIM_ABI64 27 /* The memory layout is the same as of struct stat64 of the 32-bit kernel. */ 28 struct kernel_stat { 29 __kernel_dev_t st_dev; 30 unsigned int st_pad1[3]; 31 __kernel_ino_t st_ino; 32 __kernel_mode_t st_mode; 33 __kernel_nlink_t st_nlink; 34 __kernel_uid_t st_uid; 35 __kernel_gid_t st_gid; 36 __kernel_dev_t st_rdev; 37 unsigned int st_pad2[3]; 38 __kernel_off_t st_size; 39 __ktimespec_t st_atim; 40 __ktimespec_t st_mtim; 41 __ktimespec_t st_ctim; 42 unsigned int st_blksize; 43 unsigned int reserved3; 44 unsigned long st_blocks; 45 }; 46 #define kernel_stat64 kernel_stat 47 #elif _MIPS_SIM == _MIPS_SIM_NABI32 48 /* The memory layout is the same as of struct stat64 of the 32-bit kernel. */ 49 struct kernel_stat { 50 unsigned int st_dev; 51 unsigned int st_pad1[3]; 52 unsigned long long st_ino; 53 __kernel_mode_t st_mode; 54 __kernel_nlink_t st_nlink; 55 __kernel_uid_t st_uid; 56 __kernel_gid_t st_gid; 57 unsigned int st_rdev; 58 unsigned int st_pad2[3]; 59 unsigned long long st_size; 60 __ktimespec_t st_atim; 61 __ktimespec_t st_mtim; 62 __ktimespec_t st_ctim; 63 unsigned int st_blksize; 64 unsigned int reserved3; 65 unsigned long long st_blocks; 66 }; 67 #define kernel_stat64 kernel_stat 68 #else /* O32 */ 69 struct kernel_stat { 70 __kernel_dev_t st_dev; 71 long st_pad1[3]; 72 __kernel_ino_t st_ino; 73 __kernel_mode_t st_mode; 74 __kernel_nlink_t st_nlink; 75 __kernel_uid_t st_uid; 76 __kernel_gid_t st_gid; 77 __kernel_dev_t st_rdev; 78 long st_pad2[2]; 79 __kernel_off_t st_size; 80 long st_pad3; 81 __ktimespec_t st_atim; 82 __ktimespec_t st_mtim; 83 __ktimespec_t st_ctim; 84 long st_blksize; 85 long st_blocks; 86 long st_pad4[14]; 87 }; 88 89 struct kernel_stat64 { 90 unsigned long st_dev; 91 unsigned long st_pad0[3]; /* Reserved for st_dev expansion */ 92 unsigned long long st_ino; 93 __kernel_mode_t st_mode; 94 __kernel_nlink_t st_nlink; 95 __kernel_uid_t st_uid; 96 __kernel_gid_t st_gid; 97 unsigned long st_rdev; 98 unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */ 99 long long st_size; 100 __ktimespec_t st_atim; 101 __ktimespec_t st_mtim; 102 __ktimespec_t st_ctim; 103 unsigned long st_blksize; 104 unsigned long st_pad2; 105 long long st_blocks; 106 }; 107 #endif /* O32 */ 108 109 #endif /* _BITS_STAT_STRUCT_H */ 110 111