]> git.lizzy.rs Git - rust.git/blob - library/std/src/os/linux/raw.rs
Auto merge of #107443 - cjgillot:generator-less-query, r=compiler-errors
[rust.git] / library / std / src / os / linux / raw.rs
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
13 use crate::os::raw::c_ulong;
14
15 #[stable(feature = "raw_ext", since = "1.1.0")]
16 pub type dev_t = u64;
17 #[stable(feature = "raw_ext", since = "1.1.0")]
18 pub type mode_t = u32;
19
20 #[stable(feature = "pthread_t", since = "1.8.0")]
21 pub type pthread_t = c_ulong;
22
23 #[doc(inline)]
24 #[stable(feature = "raw_ext", since = "1.1.0")]
25 pub 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 = "powerpc",
31     target_arch = "sparc",
32     target_arch = "arm",
33     target_arch = "asmjs",
34     target_arch = "wasm32"
35 ))]
36 mod 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(target_arch = "mips")]
98 mod 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")]
172 mod 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 = "mips64",
235     target_arch = "s390x",
236     target_arch = "sparc64",
237     target_arch = "riscv64",
238     target_arch = "riscv32"
239 ))]
240 mod arch {
241     #[stable(feature = "raw_ext", since = "1.1.0")]
242     pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
243 }
244
245 #[cfg(target_arch = "aarch64")]
246 mod arch {
247     use crate::os::raw::{c_int, c_long};
248
249     #[stable(feature = "raw_ext", since = "1.1.0")]
250     pub type blkcnt_t = i64;
251     #[stable(feature = "raw_ext", since = "1.1.0")]
252     pub type blksize_t = i32;
253     #[stable(feature = "raw_ext", since = "1.1.0")]
254     pub type ino_t = u64;
255     #[stable(feature = "raw_ext", since = "1.1.0")]
256     pub type nlink_t = u32;
257     #[stable(feature = "raw_ext", since = "1.1.0")]
258     pub type off_t = i64;
259     #[stable(feature = "raw_ext", since = "1.1.0")]
260     pub type time_t = c_long;
261
262     #[repr(C)]
263     #[derive(Clone)]
264     #[stable(feature = "raw_ext", since = "1.1.0")]
265     pub struct stat {
266         #[stable(feature = "raw_ext", since = "1.1.0")]
267         pub st_dev: u64,
268         #[stable(feature = "raw_ext", since = "1.1.0")]
269         pub st_ino: u64,
270         #[stable(feature = "raw_ext", since = "1.1.0")]
271         pub st_mode: u32,
272         #[stable(feature = "raw_ext", since = "1.1.0")]
273         pub st_nlink: u32,
274         #[stable(feature = "raw_ext", since = "1.1.0")]
275         pub st_uid: u32,
276         #[stable(feature = "raw_ext", since = "1.1.0")]
277         pub st_gid: u32,
278         #[stable(feature = "raw_ext", since = "1.1.0")]
279         pub st_rdev: u64,
280         #[stable(feature = "raw_ext", since = "1.1.0")]
281         pub __pad1: u64,
282         #[stable(feature = "raw_ext", since = "1.1.0")]
283         pub st_size: i64,
284         #[stable(feature = "raw_ext", since = "1.1.0")]
285         pub st_blksize: i32,
286         #[stable(feature = "raw_ext", since = "1.1.0")]
287         pub __pad2: c_int,
288         #[stable(feature = "raw_ext", since = "1.1.0")]
289         pub st_blocks: i64,
290         #[stable(feature = "raw_ext", since = "1.1.0")]
291         pub st_atime: time_t,
292         #[stable(feature = "raw_ext", since = "1.1.0")]
293         pub st_atime_nsec: c_long,
294         #[stable(feature = "raw_ext", since = "1.1.0")]
295         pub st_mtime: time_t,
296         #[stable(feature = "raw_ext", since = "1.1.0")]
297         pub st_mtime_nsec: c_long,
298         #[stable(feature = "raw_ext", since = "1.1.0")]
299         pub st_ctime: time_t,
300         #[stable(feature = "raw_ext", since = "1.1.0")]
301         pub st_ctime_nsec: c_long,
302         #[stable(feature = "raw_ext", since = "1.1.0")]
303         pub __unused: [c_int; 2],
304     }
305 }
306
307 #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64"))]
308 mod arch {
309     use crate::os::raw::{c_int, c_long};
310
311     #[stable(feature = "raw_ext", since = "1.1.0")]
312     pub type blkcnt_t = u64;
313     #[stable(feature = "raw_ext", since = "1.1.0")]
314     pub type blksize_t = u64;
315     #[stable(feature = "raw_ext", since = "1.1.0")]
316     pub type ino_t = u64;
317     #[stable(feature = "raw_ext", since = "1.1.0")]
318     pub type nlink_t = u64;
319     #[stable(feature = "raw_ext", since = "1.1.0")]
320     pub type off_t = u64;
321     #[stable(feature = "raw_ext", since = "1.1.0")]
322     pub type time_t = i64;
323
324     #[repr(C)]
325     #[derive(Clone)]
326     #[stable(feature = "raw_ext", since = "1.1.0")]
327     pub struct stat {
328         #[stable(feature = "raw_ext", since = "1.1.0")]
329         pub st_dev: u64,
330         #[stable(feature = "raw_ext", since = "1.1.0")]
331         pub st_ino: u64,
332         #[stable(feature = "raw_ext", since = "1.1.0")]
333         pub st_nlink: u64,
334         #[stable(feature = "raw_ext", since = "1.1.0")]
335         pub st_mode: u32,
336         #[stable(feature = "raw_ext", since = "1.1.0")]
337         pub st_uid: u32,
338         #[stable(feature = "raw_ext", since = "1.1.0")]
339         pub st_gid: u32,
340         #[stable(feature = "raw_ext", since = "1.1.0")]
341         pub __pad0: c_int,
342         #[stable(feature = "raw_ext", since = "1.1.0")]
343         pub st_rdev: u64,
344         #[stable(feature = "raw_ext", since = "1.1.0")]
345         pub st_size: i64,
346         #[stable(feature = "raw_ext", since = "1.1.0")]
347         pub st_blksize: i64,
348         #[stable(feature = "raw_ext", since = "1.1.0")]
349         pub st_blocks: i64,
350         #[stable(feature = "raw_ext", since = "1.1.0")]
351         pub st_atime: i64,
352         #[stable(feature = "raw_ext", since = "1.1.0")]
353         pub st_atime_nsec: c_long,
354         #[stable(feature = "raw_ext", since = "1.1.0")]
355         pub st_mtime: i64,
356         #[stable(feature = "raw_ext", since = "1.1.0")]
357         pub st_mtime_nsec: c_long,
358         #[stable(feature = "raw_ext", since = "1.1.0")]
359         pub st_ctime: i64,
360         #[stable(feature = "raw_ext", since = "1.1.0")]
361         pub st_ctime_nsec: c_long,
362         #[stable(feature = "raw_ext", since = "1.1.0")]
363         pub __unused: [c_long; 3],
364     }
365 }