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
7struct 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 */
44struct 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