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