1#![stable(feature = "raw_ext", since = "1.1.0")]
4#![deprecated(
5 since = "1.8.0",
6 note = "these type aliases are no longer supported by \
7 the standard library, the `libc` crate on \
8 crates.io should be used instead for the correct \
9 definitions"
10)]
11#![allow(deprecated)]
12
13use crate::os::raw::c_ulong;
14
15#[stable(feature = "raw_ext", since = "1.1.0")]
16pub type dev_t = u64;
17#[stable(feature = "raw_ext", since = "1.1.0")]
18pub type mode_t = u32;
19
20#[stable(feature = "pthread_t", since = "1.8.0")]
21pub type pthread_t = c_ulong;
22
23#[doc(inline)]
24#[stable(feature = "raw_ext", since = "1.1.0")]
25pub use self::arch::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
26
27#[cfg(any(
28 target_arch = "x86",
29 target_arch = "m68k",
30 target_arch = "csky",
31 target_arch = "powerpc",
32 target_arch = "sparc",
33 target_arch = "arm",
34 target_arch = "wasm32"
35))]
36mod arch {
37 use crate::os::raw::{c_long, c_short, c_uint};
38
39 #[stable(feature = "raw_ext", since = "1.1.0")]
40 pub type blkcnt_t = u64;
41 #[stable(feature = "raw_ext", since = "1.1.0")]
42 pub type blksize_t = u64;
43 #[stable(feature = "raw_ext", since = "1.1.0")]
44 pub type ino_t = u64;
45 #[stable(feature = "raw_ext", since = "1.1.0")]
46 pub type nlink_t = u64;
47 #[stable(feature = "raw_ext", since = "1.1.0")]
48 pub type off_t = u64;
49 #[stable(feature = "raw_ext", since = "1.1.0")]
50 pub type time_t = i64;
51
52 #[repr(C)]
53 #[derive(Clone)]
54 #[stable(feature = "raw_ext", since = "1.1.0")]
55 pub struct stat {
56 #[stable(feature = "raw_ext", since = "1.1.0")]
57 pub st_dev: u64,
58 #[stable(feature = "raw_ext", since = "1.1.0")]
59 pub __pad1: c_short,
60 #[stable(feature = "raw_ext", since = "1.1.0")]
61 pub __st_ino: u32,
62 #[stable(feature = "raw_ext", since = "1.1.0")]
63 pub st_mode: u32,
64 #[stable(feature = "raw_ext", since = "1.1.0")]
65 pub st_nlink: u32,
66 #[stable(feature = "raw_ext", since = "1.1.0")]
67 pub st_uid: u32,
68 #[stable(feature = "raw_ext", since = "1.1.0")]
69 pub st_gid: u32,
70 #[stable(feature = "raw_ext", since = "1.1.0")]
71 pub st_rdev: u64,
72 #[stable(feature = "raw_ext", since = "1.1.0")]
73 pub __pad2: c_uint,
74 #[stable(feature = "raw_ext", since = "1.1.0")]
75 pub st_size: i64,
76 #[stable(feature = "raw_ext", since = "1.1.0")]
77 pub st_blksize: i32,
78 #[stable(feature = "raw_ext", since = "1.1.0")]
79 pub st_blocks: i64,
80 #[stable(feature = "raw_ext", since = "1.1.0")]
81 pub st_atime: i32,
82 #[stable(feature = "raw_ext", since = "1.1.0")]
83 pub st_atime_nsec: c_long,
84 #[stable(feature = "raw_ext", since = "1.1.0")]
85 pub st_mtime: i32,
86 #[stable(feature = "raw_ext", since = "1.1.0")]
87 pub st_mtime_nsec: c_long,
88 #[stable(feature = "raw_ext", since = "1.1.0")]
89 pub st_ctime: i32,
90 #[stable(feature = "raw_ext", since = "1.1.0")]
91 pub st_ctime_nsec: c_long,
92 #[stable(feature = "raw_ext", since = "1.1.0")]
93 pub st_ino: u64,
94 }
95}
96
97#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
98mod arch {
99 use crate::os::raw::{c_long, c_ulong};
100
101 #[cfg(target_env = "musl")]
102 #[stable(feature = "raw_ext", since = "1.1.0")]
103 pub type blkcnt_t = i64;
104 #[cfg(not(target_env = "musl"))]
105 #[stable(feature = "raw_ext", since = "1.1.0")]
106 pub type blkcnt_t = u64;
107 #[stable(feature = "raw_ext", since = "1.1.0")]
108 pub type blksize_t = u64;
109 #[cfg(target_env = "musl")]
110 #[stable(feature = "raw_ext", since = "1.1.0")]
111 pub type ino_t = u64;
112 #[cfg(not(target_env = "musl"))]
113 #[stable(feature = "raw_ext", since = "1.1.0")]
114 pub type ino_t = u64;
115 #[stable(feature = "raw_ext", since = "1.1.0")]
116 pub type nlink_t = u64;
117 #[cfg(target_env = "musl")]
118 #[stable(feature = "raw_ext", since = "1.1.0")]
119 pub type off_t = u64;
120 #[cfg(not(target_env = "musl"))]
121 #[stable(feature = "raw_ext", since = "1.1.0")]
122 pub type off_t = u64;
123 #[stable(feature = "raw_ext", since = "1.1.0")]
124 pub type time_t = i64;
125
126 #[repr(C)]
127 #[derive(Clone)]
128 #[stable(feature = "raw_ext", since = "1.1.0")]
129 pub struct stat {
130 #[stable(feature = "raw_ext", since = "1.1.0")]
131 pub st_dev: c_ulong,
132 #[stable(feature = "raw_ext", since = "1.1.0")]
133 pub st_pad1: [c_long; 3],
134 #[stable(feature = "raw_ext", since = "1.1.0")]
135 pub st_ino: u64,
136 #[stable(feature = "raw_ext", since = "1.1.0")]
137 pub st_mode: u32,
138 #[stable(feature = "raw_ext", since = "1.1.0")]
139 pub st_nlink: u32,
140 #[stable(feature = "raw_ext", since = "1.1.0")]
141 pub st_uid: u32,
142 #[stable(feature = "raw_ext", since = "1.1.0")]
143 pub st_gid: u32,
144 #[stable(feature = "raw_ext", since = "1.1.0")]
145 pub st_rdev: c_ulong,
146 #[stable(feature = "raw_ext", since = "1.1.0")]
147 pub st_pad2: [c_long; 2],
148 #[stable(feature = "raw_ext", since = "1.1.0")]
149 pub st_size: i64,
150 #[stable(feature = "raw_ext", since = "1.1.0")]
151 pub st_atime: i32,
152 #[stable(feature = "raw_ext", since = "1.1.0")]
153 pub st_atime_nsec: c_long,
154 #[stable(feature = "raw_ext", since = "1.1.0")]
155 pub st_mtime: i32,
156 #[stable(feature = "raw_ext", since = "1.1.0")]
157 pub st_mtime_nsec: c_long,
158 #[stable(feature = "raw_ext", since = "1.1.0")]
159 pub st_ctime: i32,
160 #[stable(feature = "raw_ext", since = "1.1.0")]
161 pub st_ctime_nsec: c_long,
162 #[stable(feature = "raw_ext", since = "1.1.0")]
163 pub st_blksize: i32,
164 #[stable(feature = "raw_ext", since = "1.1.0")]
165 pub st_blocks: i64,
166 #[stable(feature = "raw_ext", since = "1.1.0")]
167 pub st_pad5: [c_long; 14],
168 }
169}
170
171#[cfg(target_arch = "hexagon")]
172mod arch {
173 use crate::os::raw::{c_int, c_long, c_uint};
174
175 #[stable(feature = "raw_ext", since = "1.1.0")]
176 pub type blkcnt_t = i64;
177 #[stable(feature = "raw_ext", since = "1.1.0")]
178 pub type blksize_t = c_long;
179 #[stable(feature = "raw_ext", since = "1.1.0")]
180 pub type ino_t = u64;
181 #[stable(feature = "raw_ext", since = "1.1.0")]
182 pub type nlink_t = c_uint;
183 #[stable(feature = "raw_ext", since = "1.1.0")]
184 pub type off_t = i64;
185 #[stable(feature = "raw_ext", since = "1.1.0")]
186 pub type time_t = i64;
187
188 #[repr(C)]
189 #[derive(Clone)]
190 #[stable(feature = "raw_ext", since = "1.1.0")]
191 pub struct stat {
192 #[stable(feature = "raw_ext", since = "1.1.0")]
193 pub st_dev: u64,
194 #[stable(feature = "raw_ext", since = "1.1.0")]
195 pub st_ino: u64,
196 #[stable(feature = "raw_ext", since = "1.1.0")]
197 pub st_mode: u32,
198 #[stable(feature = "raw_ext", since = "1.1.0")]
199 pub st_nlink: u32,
200 #[stable(feature = "raw_ext", since = "1.1.0")]
201 pub st_uid: u32,
202 #[stable(feature = "raw_ext", since = "1.1.0")]
203 pub st_gid: u32,
204 #[stable(feature = "raw_ext", since = "1.1.0")]
205 pub st_rdev: u64,
206 #[stable(feature = "raw_ext", since = "1.1.0")]
207 pub __pad1: u32,
208 #[stable(feature = "raw_ext", since = "1.1.0")]
209 pub st_size: i64,
210 #[stable(feature = "raw_ext", since = "1.1.0")]
211 pub st_blksize: i32,
212 #[stable(feature = "raw_ext", since = "1.1.0")]
213 pub __pad2: i32,
214 #[stable(feature = "raw_ext", since = "1.1.0")]
215 pub st_blocks: i64,
216 #[stable(feature = "raw_ext", since = "1.1.0")]
217 pub st_atime: i64,
218 #[stable(feature = "raw_ext", since = "1.1.0")]
219 pub st_atime_nsec: c_long,
220 #[stable(feature = "raw_ext", since = "1.1.0")]
221 pub st_mtime: i64,
222 #[stable(feature = "raw_ext", since = "1.1.0")]
223 pub st_mtime_nsec: c_long,
224 #[stable(feature = "raw_ext", since = "1.1.0")]
225 pub st_ctime: i64,
226 #[stable(feature = "raw_ext", since = "1.1.0")]
227 pub st_ctime_nsec: c_long,
228 #[stable(feature = "raw_ext", since = "1.1.0")]
229 pub __pad3: [c_int; 2],
230 }
231}
232
233#[cfg(any(
234 target_arch = "loongarch32",
235 target_arch = "loongarch64",
236 target_arch = "mips64",
237 target_arch = "mips64r6",
238 target_arch = "s390x",
239 target_arch = "sparc64",
240 target_arch = "riscv64",
241 target_arch = "riscv32"
242))]
243mod arch {
244 #[stable(feature = "raw_ext", since = "1.1.0")]
245 pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
246}
247
248#[cfg(any(
249 target_arch = "aarch64",
250 all(doc, target_arch = "arm64ec")
252))]
253mod arch {
254 use crate::os::raw::{c_int, c_long};
255
256 #[stable(feature = "raw_ext", since = "1.1.0")]
257 pub type blkcnt_t = i64;
258 #[stable(feature = "raw_ext", since = "1.1.0")]
259 pub type blksize_t = i32;
260 #[stable(feature = "raw_ext", since = "1.1.0")]
261 pub type ino_t = u64;
262 #[stable(feature = "raw_ext", since = "1.1.0")]
263 pub type nlink_t = u32;
264 #[stable(feature = "raw_ext", since = "1.1.0")]
265 pub type off_t = i64;
266 #[stable(feature = "raw_ext", since = "1.1.0")]
267 pub type time_t = c_long;
268
269 #[repr(C)]
270 #[derive(Clone)]
271 #[stable(feature = "raw_ext", since = "1.1.0")]
272 pub struct stat {
273 #[stable(feature = "raw_ext", since = "1.1.0")]
274 pub st_dev: u64,
275 #[stable(feature = "raw_ext", since = "1.1.0")]
276 pub st_ino: u64,
277 #[stable(feature = "raw_ext", since = "1.1.0")]
278 pub st_mode: u32,
279 #[stable(feature = "raw_ext", since = "1.1.0")]
280 pub st_nlink: u32,
281 #[stable(feature = "raw_ext", since = "1.1.0")]
282 pub st_uid: u32,
283 #[stable(feature = "raw_ext", since = "1.1.0")]
284 pub st_gid: u32,
285 #[stable(feature = "raw_ext", since = "1.1.0")]
286 pub st_rdev: u64,
287 #[stable(feature = "raw_ext", since = "1.1.0")]
288 pub __pad1: u64,
289 #[stable(feature = "raw_ext", since = "1.1.0")]
290 pub st_size: i64,
291 #[stable(feature = "raw_ext", since = "1.1.0")]
292 pub st_blksize: i32,
293 #[stable(feature = "raw_ext", since = "1.1.0")]
294 pub __pad2: c_int,
295 #[stable(feature = "raw_ext", since = "1.1.0")]
296 pub st_blocks: i64,
297 #[stable(feature = "raw_ext", since = "1.1.0")]
298 pub st_atime: time_t,
299 #[stable(feature = "raw_ext", since = "1.1.0")]
300 pub st_atime_nsec: c_long,
301 #[stable(feature = "raw_ext", since = "1.1.0")]
302 pub st_mtime: time_t,
303 #[stable(feature = "raw_ext", since = "1.1.0")]
304 pub st_mtime_nsec: c_long,
305 #[stable(feature = "raw_ext", since = "1.1.0")]
306 pub st_ctime: time_t,
307 #[stable(feature = "raw_ext", since = "1.1.0")]
308 pub st_ctime_nsec: c_long,
309 #[stable(feature = "raw_ext", since = "1.1.0")]
310 pub __unused: [c_int; 2],
311 }
312}
313
314#[cfg(any(target_arch = "x86_64", target_arch = "powerpc64"))]
315mod arch {
316 use crate::os::raw::{c_int, c_long};
317
318 #[stable(feature = "raw_ext", since = "1.1.0")]
319 pub type blkcnt_t = u64;
320 #[stable(feature = "raw_ext", since = "1.1.0")]
321 pub type blksize_t = u64;
322 #[stable(feature = "raw_ext", since = "1.1.0")]
323 pub type ino_t = u64;
324 #[stable(feature = "raw_ext", since = "1.1.0")]
325 pub type nlink_t = u64;
326 #[stable(feature = "raw_ext", since = "1.1.0")]
327 pub type off_t = u64;
328 #[stable(feature = "raw_ext", since = "1.1.0")]
329 pub type time_t = i64;
330
331 #[repr(C)]
332 #[derive(Clone)]
333 #[stable(feature = "raw_ext", since = "1.1.0")]
334 pub struct stat {
335 #[stable(feature = "raw_ext", since = "1.1.0")]
336 pub st_dev: u64,
337 #[stable(feature = "raw_ext", since = "1.1.0")]
338 pub st_ino: u64,
339 #[stable(feature = "raw_ext", since = "1.1.0")]
340 pub st_nlink: u64,
341 #[stable(feature = "raw_ext", since = "1.1.0")]
342 pub st_mode: u32,
343 #[stable(feature = "raw_ext", since = "1.1.0")]
344 pub st_uid: u32,
345 #[stable(feature = "raw_ext", since = "1.1.0")]
346 pub st_gid: u32,
347 #[stable(feature = "raw_ext", since = "1.1.0")]
348 pub __pad0: c_int,
349 #[stable(feature = "raw_ext", since = "1.1.0")]
350 pub st_rdev: u64,
351 #[stable(feature = "raw_ext", since = "1.1.0")]
352 pub st_size: i64,
353 #[stable(feature = "raw_ext", since = "1.1.0")]
354 pub st_blksize: i64,
355 #[stable(feature = "raw_ext", since = "1.1.0")]
356 pub st_blocks: i64,
357 #[stable(feature = "raw_ext", since = "1.1.0")]
358 pub st_atime: i64,
359 #[stable(feature = "raw_ext", since = "1.1.0")]
360 pub st_atime_nsec: c_long,
361 #[stable(feature = "raw_ext", since = "1.1.0")]
362 pub st_mtime: i64,
363 #[stable(feature = "raw_ext", since = "1.1.0")]
364 pub st_mtime_nsec: c_long,
365 #[stable(feature = "raw_ext", since = "1.1.0")]
366 pub st_ctime: i64,
367 #[stable(feature = "raw_ext", since = "1.1.0")]
368 pub st_ctime_nsec: c_long,
369 #[stable(feature = "raw_ext", since = "1.1.0")]
370 pub __unused: [c_long; 3],
371 }
372}