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