1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef __SPARC_STAT_H
3#define __SPARC_STAT_H
4
5#include <linux/types.h>
6
7#if defined(__sparc__) && defined(__arch64__)
8/* 64 bit sparc */
9struct stat {
10	unsigned int st_dev;
11	__kernel_ino_t st_ino;
12	__kernel_mode_t st_mode;
13	short   st_nlink;
14	__kernel_uid32_t st_uid;
15	__kernel_gid32_t st_gid;
16	unsigned int st_rdev;
17	long    st_size;
18	long    st_atime;
19	long    st_mtime;
20	long    st_ctime;
21	long    st_blksize;
22	long    st_blocks;
23	unsigned long  __unused4[2];
24};
25
26struct stat64 {
27	unsigned long	st_dev;
28	unsigned long	st_ino;
29	unsigned long	st_nlink;
30
31	unsigned int	st_mode;
32	unsigned int	st_uid;
33	unsigned int	st_gid;
34	unsigned int	__pad0;
35
36	unsigned long	st_rdev;
37	long		st_size;
38	long		st_blksize;
39	long		st_blocks;
40
41	unsigned long	st_atime;
42	unsigned long	st_atime_nsec;
43	unsigned long	st_mtime;
44	unsigned long	st_mtime_nsec;
45	unsigned long	st_ctime;
46	unsigned long	st_ctime_nsec;
47	long		__unused[3];
48};
49
50#else
51/* 32 bit sparc */
52struct stat {
53	unsigned short	st_dev;
54	__kernel_ino_t	st_ino;
55	__kernel_mode_t	st_mode;
56	short		st_nlink;
57	unsigned short	st_uid;
58	unsigned short	st_gid;
59	unsigned short	st_rdev;
60	long		st_size;
61	long		st_atime;
62	unsigned long	st_atime_nsec;
63	long		st_mtime;
64	unsigned long	st_mtime_nsec;
65	long		st_ctime;
66	unsigned long	st_ctime_nsec;
67	long		st_blksize;
68	long		st_blocks;
69	unsigned long	__unused4[2];
70};
71
72#define STAT_HAVE_NSEC 1
73
74struct stat64 {
75	unsigned long long st_dev;
76
77	unsigned long long st_ino;
78
79	unsigned int	st_mode;
80	unsigned int	st_nlink;
81
82	unsigned int	st_uid;
83	unsigned int	st_gid;
84
85	unsigned long long st_rdev;
86
87	unsigned char	__pad3[8];
88
89	long long	st_size;
90	unsigned int	st_blksize;
91
92	unsigned char	__pad4[8];
93	unsigned int	st_blocks;
94
95	unsigned int	st_atime;
96	unsigned int	st_atime_nsec;
97
98	unsigned int	st_mtime;
99	unsigned int	st_mtime_nsec;
100
101	unsigned int	st_ctime;
102	unsigned int	st_ctime_nsec;
103
104	unsigned int	__unused4;
105	unsigned int	__unused5;
106};
107#endif /* defined(__sparc__) && defined(__arch64__) */
108#endif /* __SPARC_STAT_H */
109