]>
git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
1 /* Definition for struct stat.
2 Copyright (C) 2020-2023 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
19 #if !defined _SYS_STAT_H && !defined _FCNTL_H
20 # error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
23 #ifndef _BITS_STRUCT_STAT_H
24 #define _BITS_STRUCT_STAT_H 1
26 #include <bits/wordsize.h>
31 __dev_t st_dev
; /* Device. */
32 __ino_t st_ino
; /* File serial number. */
33 __nlink_t st_nlink
; /* Link count. */
34 __mode_t st_mode
; /* File mode. */
35 __uid_t st_uid
; /* User ID of the file's owner. */
36 __gid_t st_gid
; /* Group ID of the file's group.*/
37 int __glibc_reserved0
;
38 __dev_t st_rdev
; /* Device number, if device. */
39 __off_t st_size
; /* Size of file, in bytes. */
41 /* Nanosecond resolution timestamps are stored in a format
42 equivalent to 'struct timespec'. This is the type used
43 whenever possible but the Unix namespace rules do not allow the
44 identifier 'timespec' to appear in the <sys/stat.h> header.
45 Therefore we have to handle the use of this header in strictly
46 standard-compliant sources special. */
47 struct timespec st_atim
; /* Time of last access. */
48 struct timespec st_mtim
; /* Time of last modification. */
49 struct timespec st_ctim
; /* Time of last status change. */
50 # define st_atime st_atim.tv_sec /* Backward compatibility. */
51 # define st_mtime st_mtim.tv_sec
52 # define st_ctime st_ctim.tv_sec
54 __time_t st_atime
; /* Time of last access. */
55 unsigned long int st_atimensec
; /* Nscecs of last access. */
56 __time_t st_mtime
; /* Time of last modification. */
57 unsigned long int st_mtimensec
; /* Nsecs of last modification. */
58 __time_t st_ctime
; /* Time of last status change. */
59 unsigned long int st_ctimensec
; /* Nsecs of last status change. */
61 __blksize_t st_blksize
; /* Optimal block size for I/O. */
62 __blkcnt_t st_blocks
; /* Nr. 512-byte blocks allocated. */
63 long int __glibc_reserved
[3];
68 # ifdef __USE_TIME_BITS64
69 # include <bits/struct_stat_time64_helper.h>
71 __dev_t st_dev
; /* Device. */
73 # ifndef __USE_FILE_OFFSET64
74 __ino_t st_ino
; /* File serial number. */
76 __ino_t __st_ino
; /* 32bit file serial number. */
78 __mode_t st_mode
; /* File mode. */
79 __nlink_t st_nlink
; /* Link count. */
80 __uid_t st_uid
; /* User ID of the file's owner. */
81 __gid_t st_gid
; /* Group ID of the file's group.*/
82 __dev_t st_rdev
; /* Device number, if device. */
84 # ifndef __USE_FILE_OFFSET64
85 __off_t st_size
; /* Size of file, in bytes. */
87 __off64_t st_size
; /* Size of file, in bytes. */
89 __blksize_t st_blksize
; /* Optimal block size for I/O. */
91 # ifndef __USE_FILE_OFFSET64
92 __blkcnt_t st_blocks
; /* Number 512-byte blocks allocated. */
94 __blkcnt64_t st_blocks
; /* Number 512-byte blocks allocated. */
96 # ifdef __USE_XOPEN2K8
97 /* Nanosecond resolution timestamps are stored in a format
98 equivalent to 'struct timespec'. This is the type used
99 whenever possible but the Unix namespace rules do not allow the
100 identifier 'timespec' to appear in the <sys/stat.h> header.
101 Therefore we have to handle the use of this header in strictly
102 standard-compliant sources special. */
103 struct timespec st_atim
; /* Time of last access. */
104 struct timespec st_mtim
; /* Time of last modification. */
105 struct timespec st_ctim
; /* Time of last status change. */
106 # define st_atime st_atim.tv_sec /* Backward compatibility. */
107 # define st_mtime st_mtim.tv_sec
108 # define st_ctime st_ctim.tv_sec
110 __time_t st_atime
; /* Time of last access. */
111 unsigned long int st_atimensec
; /* Nscecs of last access. */
112 __time_t st_mtime
; /* Time of last modification. */
113 unsigned long int st_mtimensec
; /* Nsecs of last modification. */
114 __time_t st_ctime
; /* Time of last status change. */
115 unsigned long int st_ctimensec
; /* Nsecs of last status change. */
117 # ifndef __USE_FILE_OFFSET64
118 unsigned long int __glibc_reserved4
;
119 unsigned long int __glibc_reserved5
;
121 __ino64_t st_ino
; /* File serial number. */
127 #ifdef __USE_LARGEFILE64
128 # if __WORDSIZE == 64
129 /* Note stat64 is the same shape as stat. */
132 __dev_t st_dev
; /* Device. */
133 __ino64_t st_ino
; /* File serial number. */
134 __nlink_t st_nlink
; /* Link count. */
135 __mode_t st_mode
; /* File mode. */
136 __uid_t st_uid
; /* User ID of the file's owner. */
137 __gid_t st_gid
; /* Group ID of the file's group.*/
138 int __glibc_reserved0
;
139 __dev_t st_rdev
; /* Device number, if device. */
140 __off_t st_size
; /* Size of file, in bytes. */
141 # ifdef __USE_XOPEN2K8
142 /* Nanosecond resolution timestamps are stored in a format
143 equivalent to 'struct timespec'. This is the type used
144 whenever possible but the Unix namespace rules do not allow the
145 identifier 'timespec' to appear in the <sys/stat.h> header.
146 Therefore we have to handle the use of this header in strictly
147 standard-compliant sources special. */
148 struct timespec st_atim
; /* Time of last access. */
149 struct timespec st_mtim
; /* Time of last modification. */
150 struct timespec st_ctim
; /* Time of last status change. */
151 # define st_atime st_atim.tv_sec /* Backward compatibility. */
152 # define st_mtime st_mtim.tv_sec
153 # define st_ctime st_ctim.tv_sec
155 __time_t st_atime
; /* Time of last access. */
156 unsigned long int st_atimensec
; /* Nscecs of last access. */
157 __time_t st_mtime
; /* Time of last modification. */
158 unsigned long int st_mtimensec
; /* Nsecs of last modification. */
159 __time_t st_ctime
; /* Time of last status change. */
160 unsigned long int st_ctimensec
; /* Nsecs of last status change. */
162 __blksize_t st_blksize
; /* Optimal block size for I/O. */
163 __blkcnt64_t st_blocks
; /* Nr. 512-byte blocks allocated. */
164 long int __glibc_reserved
[3];
169 # ifdef __USE_TIME_BITS64
170 # include <bits/struct_stat_time64_helper.h>
172 __dev_t st_dev
; /* Device. */
175 __ino_t __st_ino
; /* 32bit file serial number. */
176 __mode_t st_mode
; /* File mode. */
177 __nlink_t st_nlink
; /* Link count. */
178 __uid_t st_uid
; /* User ID of the file's owner. */
179 __gid_t st_gid
; /* Group ID of the file's group.*/
180 __dev_t st_rdev
; /* Device number, if device. */
182 __off64_t st_size
; /* Size of file, in bytes. */
183 __blksize_t st_blksize
; /* Optimal block size for I/O. */
185 __blkcnt64_t st_blocks
; /* Number 512-byte blocks allocated. */
186 # ifdef __USE_XOPEN2K8
187 /* Nanosecond resolution timestamps are stored in a format
188 equivalent to 'struct timespec'. This is the type used
189 whenever possible but the Unix namespace rules do not allow the
190 identifier 'timespec' to appear in the <sys/stat.h> header.
191 Therefore we have to handle the use of this header in strictly
192 standard-compliant sources special. */
193 struct timespec st_atim
; /* Time of last access. */
194 struct timespec st_mtim
; /* Time of last modification. */
195 struct timespec st_ctim
; /* Time of last status change. */
196 # define st_atime st_atim.tv_sec /* Backward compatibility. */
197 # define st_mtime st_mtim.tv_sec
198 # define st_ctime st_ctim.tv_sec
200 __time_t st_atime
; /* Time of last access. */
201 unsigned long int st_atimensec
; /* Nscecs of last access. */
202 __time_t st_mtime
; /* Time of last modification. */
203 unsigned long int st_mtimensec
; /* Nsecs of last modification. */
204 __time_t st_ctime
; /* Time of last status change. */
205 unsigned long int st_ctimensec
; /* Nsecs of last status change. */
207 __ino64_t st_ino
; /* File serial number. */
213 /* Tell code we have these members. */
214 #define _STATBUF_ST_BLKSIZE
215 #define _STATBUF_ST_RDEV
216 /* Nanosecond resolution time values are supported. */
217 #define _STATBUF_ST_NSEC
219 #endif /* _BITS_STRUCT_STAT_H */