1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef __ASM_SH_STAT_H 3 #define __ASM_SH_STAT_H 4 5 struct __old_kernel_stat { 6 unsigned short st_dev; 7 unsigned short st_ino; 8 unsigned short st_mode; 9 unsigned short st_nlink; 10 unsigned short st_uid; 11 unsigned short st_gid; 12 unsigned short st_rdev; 13 unsigned long st_size; 14 unsigned long st_atime; 15 unsigned long st_mtime; 16 unsigned long st_ctime; 17 }; 18 19 struct stat { 20 unsigned long st_dev; 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 long st_rdev; 27 unsigned long st_size; 28 unsigned long st_blksize; 29 unsigned long st_blocks; 30 unsigned long st_atime; 31 unsigned long st_atime_nsec; 32 unsigned long st_mtime; 33 unsigned long st_mtime_nsec; 34 unsigned long st_ctime; 35 unsigned long st_ctime_nsec; 36 unsigned long __unused4; 37 unsigned long __unused5; 38 }; 39 40 /* This matches struct stat64 in glibc2.1, hence the absolutely 41 * insane amounts of padding around dev_t's. 42 */ 43 struct stat64 { 44 unsigned long long st_dev; 45 unsigned char __pad0[4]; 46 47 #define STAT64_HAS_BROKEN_ST_INO 1 48 unsigned long __st_ino; 49 50 unsigned int st_mode; 51 unsigned int st_nlink; 52 53 unsigned long st_uid; 54 unsigned long st_gid; 55 56 unsigned long long st_rdev; 57 unsigned char __pad3[4]; 58 59 long long st_size; 60 unsigned long st_blksize; 61 62 unsigned long long st_blocks; /* Number 512-byte blocks allocated. */ 63 64 unsigned long st_atime; 65 unsigned long st_atime_nsec; 66 67 unsigned long st_mtime; 68 unsigned long st_mtime_nsec; 69 70 unsigned long st_ctime; 71 unsigned long st_ctime_nsec; 72 73 unsigned long long st_ino; 74 }; 75 76 #define STAT_HAVE_NSEC 1 77 78 #endif /* __ASM_SH_STAT_H */ 79