1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _CRIS_STAT_H 3 #define _CRIS_STAT_H 4 5 /* Keep this a verbatim copy of i386 version; tweak CRIS-specific bits in 6 the kernel if necessary. */ 7 8 struct __old_kernel_stat { 9 unsigned short st_dev; 10 unsigned short st_ino; 11 unsigned short st_mode; 12 unsigned short st_nlink; 13 unsigned short st_uid; 14 unsigned short st_gid; 15 unsigned short st_rdev; 16 unsigned long st_size; 17 unsigned long st_atime; 18 unsigned long st_mtime; 19 unsigned long st_ctime; 20 }; 21 22 #define STAT_HAVE_NSEC 1 23 24 struct stat { 25 unsigned long st_dev; 26 unsigned long st_ino; 27 unsigned short st_mode; 28 unsigned short st_nlink; 29 unsigned short st_uid; 30 unsigned short st_gid; 31 unsigned long st_rdev; 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 52 #define STAT64_HAS_BROKEN_ST_INO 1 53 unsigned long __st_ino; 54 55 unsigned int st_mode; 56 unsigned int st_nlink; 57 58 unsigned long st_uid; 59 unsigned long st_gid; 60 61 unsigned long long st_rdev; 62 unsigned char __pad3[4]; 63 64 long long st_size; 65 unsigned long st_blksize; 66 67 unsigned long st_blocks; /* Number 512-byte blocks allocated. */ 68 unsigned long __pad4; /* future possible st_blocks high bits */ 69 70 unsigned long st_atime; 71 unsigned long st_atime_nsec; 72 73 unsigned long st_mtime; 74 unsigned long st_mtime_nsec; 75 76 unsigned long st_ctime; 77 unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */ 78 79 unsigned long long st_ino; 80 }; 81 82 #endif 83