GNU Linux-libre 4.19.286-gnu1
[releases.git] / arch / sparc / include / uapi / asm / stat.h
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         off_t   st_size;
18         time_t  st_atime;
19         time_t  st_mtime;
20         time_t  st_ctime;
21         off_t   st_blksize;
22         off_t   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         off_t           st_size;
61         time_t          st_atime;
62         unsigned long   st_atime_nsec;
63         time_t          st_mtime;
64         unsigned long   st_mtime_nsec;
65         time_t          st_ctime;
66         unsigned long   st_ctime_nsec;
67         off_t           st_blksize;
68         off_t           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 */