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