1//! Linux-specific raw type definitions.
2
3#![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 = "loongarch64",
235 target_arch = "mips64",
236 target_arch = "mips64r6",
237 target_arch = "s390x",
238 target_arch = "sparc64",
239 target_arch = "riscv64",
240 target_arch = "riscv32"
241))]
242mod arch {
243 #[stable(feature = "raw_ext", since = "1.1.0")]
244 pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
245}
246
247#[cfg(target_arch = "aarch64")]
248mod arch {
249 use crate::os::raw::{c_int, c_long};
250
251 #[stable(feature = "raw_ext", since = "1.1.0")]
252 pub type blkcnt_t = i64;
253 #[stable(feature = "raw_ext", since = "1.1.0")]
254 pub type blksize_t = i32;
255 #[stable(feature = "raw_ext", since = "1.1.0")]
256 pub type ino_t = u64;
257 #[stable(feature = "raw_ext", since = "1.1.0")]
258 pub type nlink_t = u32;
259 #[stable(feature = "raw_ext", since = "1.1.0")]
260 pub type off_t = i64;
261 #[stable(feature = "raw_ext", since = "1.1.0")]
262 pub type time_t = c_long;
263
264 #[repr(C)]
265 #[derive(Clone)]
266 #[stable(feature = "raw_ext", since = "1.1.0")]
267 pub struct stat {
268 #[stable(feature = "raw_ext", since = "1.1.0")]
269 pub st_dev: u64,
270 #[stable(feature = "raw_ext", since = "1.1.0")]
271 pub st_ino: u64,
272 #[stable(feature = "raw_ext", since = "1.1.0")]
273 pub st_mode: u32,
274 #[stable(feature = "raw_ext", since = "1.1.0")]
275 pub st_nlink: u32,
276 #[stable(feature = "raw_ext", since = "1.1.0")]
277 pub st_uid: u32,
278 #[stable(feature = "raw_ext", since = "1.1.0")]
279 pub st_gid: u32,
280 #[stable(feature = "raw_ext", since = "1.1.0")]
281 pub st_rdev: u64,
282 #[stable(feature = "raw_ext", since = "1.1.0")]
283 pub __pad1: u64,
284 #[stable(feature = "raw_ext", since = "1.1.0")]
285 pub st_size: i64,
286 #[stable(feature = "raw_ext", since = "1.1.0")]
287 pub st_blksize: i32,
288 #[stable(feature = "raw_ext", since = "1.1.0")]
289 pub __pad2: c_int,
290 #[stable(feature = "raw_ext", since = "1.1.0")]
291 pub st_blocks: i64,
292 #[stable(feature = "raw_ext", since = "1.1.0")]
293 pub st_atime: time_t,
294 #[stable(feature = "raw_ext", since = "1.1.0")]
295 pub st_atime_nsec: c_long,
296 #[stable(feature = "raw_ext", since = "1.1.0")]
297 pub st_mtime: time_t,
298 #[stable(feature = "raw_ext", since = "1.1.0")]
299 pub st_mtime_nsec: c_long,
300 #[stable(feature = "raw_ext", since = "1.1.0")]
301 pub st_ctime: time_t,
302 #[stable(feature = "raw_ext", since = "1.1.0")]
303 pub st_ctime_nsec: c_long,
304 #[stable(feature = "raw_ext", since = "1.1.0")]
305 pub __unused: [c_int; 2],
306 }
307}
308
309#[cfg(any(target_arch = "x86_64", target_arch = "powerpc64"))]
310mod arch {
311 use crate::os::raw::{c_int, c_long};
312
313 #[stable(feature = "raw_ext", since = "1.1.0")]
314 pub type blkcnt_t = u64;
315 #[stable(feature = "raw_ext", since = "1.1.0")]
316 pub type blksize_t = u64;
317 #[stable(feature = "raw_ext", since = "1.1.0")]
318 pub type ino_t = u64;
319 #[stable(feature = "raw_ext", since = "1.1.0")]
320 pub type nlink_t = u64;
321 #[stable(feature = "raw_ext", since = "1.1.0")]
322 pub type off_t = u64;
323 #[stable(feature = "raw_ext", since = "1.1.0")]
324 pub type time_t = i64;
325
326 #[repr(C)]
327 #[derive(Clone)]
328 #[stable(feature = "raw_ext", since = "1.1.0")]
329 pub struct stat {
330 #[stable(feature = "raw_ext", since = "1.1.0")]
331 pub st_dev: u64,
332 #[stable(feature = "raw_ext", since = "1.1.0")]
333 pub st_ino: u64,
334 #[stable(feature = "raw_ext", since = "1.1.0")]
335 pub st_nlink: u64,
336 #[stable(feature = "raw_ext", since = "1.1.0")]
337 pub st_mode: u32,
338 #[stable(feature = "raw_ext", since = "1.1.0")]
339 pub st_uid: u32,
340 #[stable(feature = "raw_ext", since = "1.1.0")]
341 pub st_gid: u32,
342 #[stable(feature = "raw_ext", since = "1.1.0")]
343 pub __pad0: c_int,
344 #[stable(feature = "raw_ext", since = "1.1.0")]
345 pub st_rdev: u64,
346 #[stable(feature = "raw_ext", since = "1.1.0")]
347 pub st_size: i64,
348 #[stable(feature = "raw_ext", since = "1.1.0")]
349 pub st_blksize: i64,
350 #[stable(feature = "raw_ext", since = "1.1.0")]
351 pub st_blocks: i64,
352 #[stable(feature = "raw_ext", since = "1.1.0")]
353 pub st_atime: i64,
354 #[stable(feature = "raw_ext", since = "1.1.0")]
355 pub st_atime_nsec: c_long,
356 #[stable(feature = "raw_ext", since = "1.1.0")]
357 pub st_mtime: i64,
358 #[stable(feature = "raw_ext", since = "1.1.0")]
359 pub st_mtime_nsec: c_long,
360 #[stable(feature = "raw_ext", since = "1.1.0")]
361 pub st_ctime: i64,
362 #[stable(feature = "raw_ext", since = "1.1.0")]
363 pub st_ctime_nsec: c_long,
364 #[stable(feature = "raw_ext", since = "1.1.0")]
365 pub __unused: [c_long; 3],
366 }
367}
368