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 */
9 struct stat {
10 	unsigned int st_dev;
11 	ino_t   st_ino;
12 	mode_t  st_mode;
13 	short   st_nlink;
14 	uid_t   st_uid;
15 	gid_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 
26 struct 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 */
52 struct stat {
53 	unsigned short	st_dev;
54 	ino_t		st_ino;
55 	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 
74 struct 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