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