xref: /linux/arch/parisc/include/uapi/asm/stat.h (revision b889fcf63cb62e7fdb7816565e28f44dbe4a76a5)
1 #ifndef _PARISC_STAT_H
2 #define _PARISC_STAT_H
3 
4 #include <linux/types.h>
5 
6 struct stat {
7 	unsigned int	st_dev;		/* dev_t is 32 bits on parisc */
8 	ino_t		st_ino;		/* 32 bits */
9 	mode_t		st_mode;	/* 16 bits */
10 	unsigned short	st_nlink;	/* 16 bits */
11 	unsigned short	st_reserved1;	/* old st_uid */
12 	unsigned short	st_reserved2;	/* old st_gid */
13 	unsigned int	st_rdev;
14 	off_t		st_size;
15 	time_t		st_atime;
16 	unsigned int	st_atime_nsec;
17 	time_t		st_mtime;
18 	unsigned int	st_mtime_nsec;
19 	time_t		st_ctime;
20 	unsigned int	st_ctime_nsec;
21 	int		st_blksize;
22 	int		st_blocks;
23 	unsigned int	__unused1;	/* ACL stuff */
24 	unsigned int	__unused2;	/* network */
25 	ino_t		__unused3;	/* network */
26 	unsigned int	__unused4;	/* cnodes */
27 	unsigned short	__unused5;	/* netsite */
28 	short		st_fstype;
29 	unsigned int	st_realdev;
30 	unsigned short	st_basemode;
31 	unsigned short	st_spareshort;
32 	uid_t		st_uid;
33 	gid_t		st_gid;
34 	unsigned int	st_spare4[3];
35 };
36 
37 #define STAT_HAVE_NSEC
38 
39 typedef __kernel_off64_t	off64_t;
40 
41 struct hpux_stat64 {
42 	unsigned int	st_dev;		/* dev_t is 32 bits on parisc */
43 	ino_t           st_ino;         /* 32 bits */
44 	mode_t		st_mode;	/* 16 bits */
45 	unsigned short	st_nlink;	/* 16 bits */
46 	unsigned short	st_reserved1;	/* old st_uid */
47 	unsigned short	st_reserved2;	/* old st_gid */
48 	unsigned int	st_rdev;
49 	off64_t		st_size;
50 	time_t		st_atime;
51 	unsigned int	st_spare1;
52 	time_t		st_mtime;
53 	unsigned int	st_spare2;
54 	time_t		st_ctime;
55 	unsigned int	st_spare3;
56 	int		st_blksize;
57 	__u64		st_blocks;
58 	unsigned int	__unused1;	/* ACL stuff */
59 	unsigned int	__unused2;	/* network */
60 	ino_t           __unused3;      /* network */
61 	unsigned int	__unused4;	/* cnodes */
62 	unsigned short	__unused5;	/* netsite */
63 	short		st_fstype;
64 	unsigned int	st_realdev;
65 	unsigned short	st_basemode;
66 	unsigned short	st_spareshort;
67 	uid_t		st_uid;
68 	gid_t		st_gid;
69 	unsigned int	st_spare4[3];
70 };
71 
72 /* This is the struct that 32-bit userspace applications are expecting.
73  * How 64-bit apps are going to be compiled, I have no idea.  But at least
74  * this way, we don't have a wrapper in the kernel.
75  */
76 struct stat64 {
77 	unsigned long long	st_dev;
78 	unsigned int		__pad1;
79 
80 	unsigned int		__st_ino;	/* Not actually filled in */
81 	unsigned int		st_mode;
82 	unsigned int		st_nlink;
83 	unsigned int		st_uid;
84 	unsigned int		st_gid;
85 	unsigned long long	st_rdev;
86 	unsigned int		__pad2;
87 	signed long long	st_size;
88 	signed int		st_blksize;
89 
90 	signed long long	st_blocks;
91 	signed int		st_atime;
92 	unsigned int		st_atime_nsec;
93 	signed int		st_mtime;
94 	unsigned int		st_mtime_nsec;
95 	signed int		st_ctime;
96 	unsigned int		st_ctime_nsec;
97 	unsigned long long	st_ino;
98 };
99 
100 #endif
101