1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _PARISC_STAT_H 3 #define _PARISC_STAT_H 4 5 #include <linux/types.h> 6 7 struct stat { 8 unsigned int st_dev; /* dev_t is 32 bits on parisc */ 9 unsigned int st_ino; /* 32 bits */ 10 unsigned short st_mode; /* 16 bits */ 11 unsigned short st_nlink; /* 16 bits */ 12 unsigned short st_reserved1; /* old st_uid */ 13 unsigned short st_reserved2; /* old st_gid */ 14 unsigned int st_rdev; 15 signed int st_size; 16 signed int st_atime; 17 unsigned int st_atime_nsec; 18 signed int st_mtime; 19 unsigned int st_mtime_nsec; 20 signed int st_ctime; 21 unsigned int st_ctime_nsec; 22 int st_blksize; 23 int st_blocks; 24 unsigned int __unused1; /* ACL stuff */ 25 unsigned int __unused2; /* network */ 26 unsigned int __unused3; /* network */ 27 unsigned int __unused4; /* cnodes */ 28 unsigned short __unused5; /* netsite */ 29 short st_fstype; 30 unsigned int st_realdev; 31 unsigned short st_basemode; 32 unsigned short st_spareshort; 33 unsigned int st_uid; 34 unsigned int st_gid; 35 unsigned int st_spare4[3]; 36 }; 37 38 #define STAT_HAVE_NSEC 39 40 /* This is the struct that 32-bit userspace applications are expecting. 41 * How 64-bit apps are going to be compiled, I have no idea. But at least 42 * this way, we don't have a wrapper in the kernel. 43 */ 44 struct stat64 { 45 unsigned long long st_dev; 46 unsigned int __pad1; 47 48 unsigned int __st_ino; /* Not actually filled in */ 49 unsigned int st_mode; 50 unsigned int st_nlink; 51 unsigned int st_uid; 52 unsigned int st_gid; 53 unsigned long long st_rdev; 54 unsigned int __pad2; 55 signed long long st_size; 56 signed int st_blksize; 57 58 signed long long st_blocks; 59 signed int st_atime; 60 unsigned int st_atime_nsec; 61 signed int st_mtime; 62 unsigned int st_mtime_nsec; 63 signed int st_ctime; 64 unsigned int st_ctime_nsec; 65 unsigned long long st_ino; 66 }; 67 68 #endif 69