]> git.lizzy.rs Git - rust.git/blob - library/std/src/os/linux/raw.rs
Fix font color for help button in ayu and dark themes
[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 #![rustc_deprecated(
5     since = "1.8.0",
6     reason = "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 #![allow(missing_debug_implementations)]
13
14 use crate::os::raw::c_ulong;
15
16 #[stable(feature = "raw_ext", since = "1.1.0")]
17 pub type dev_t = u64;
18 #[stable(feature = "raw_ext", since = "1.1.0")]
19 pub type mode_t = u32;
20
21 #[stable(feature = "pthread_t", since = "1.8.0")]
22 pub type pthread_t = c_ulong;
23
24 #[doc(inline)]
25 #[stable(feature = "raw_ext", since = "1.1.0")]
26 pub use self::arch::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
27
28 #[cfg(any(
29     target_arch = "x86",
30     target_arch = "le32",
31     target_arch = "powerpc",
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_longlong, c_ulonglong};
174
175     #[stable(feature = "raw_ext", since = "1.1.0")]
176     pub type blkcnt_t = c_longlong;
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 = c_ulonglong;
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 = c_longlong;
185     #[stable(feature = "raw_ext", since = "1.1.0")]
186     pub type time_t = c_long;
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: ::dev_t,
194         #[stable(feature = "raw_ext", since = "1.1.0")]
195         pub st_ino: ::c_ulonglong,
196         #[stable(feature = "raw_ext", since = "1.1.0")]
197         pub st_mode: ::c_uint,
198         #[stable(feature = "raw_ext", since = "1.1.0")]
199         pub st_nlink: ::c_uint,
200         #[stable(feature = "raw_ext", since = "1.1.0")]
201         pub st_uid: ::c_uint,
202         #[stable(feature = "raw_ext", since = "1.1.0")]
203         pub st_gid: ::c_uint,
204         #[stable(feature = "raw_ext", since = "1.1.0")]
205         pub st_rdev: ::c_ulonglong,
206         #[stable(feature = "raw_ext", since = "1.1.0")]
207         pub __pad1: ::c_ulong,
208         #[stable(feature = "raw_ext", since = "1.1.0")]
209         pub st_size: ::c_longlong,
210         #[stable(feature = "raw_ext", since = "1.1.0")]
211         pub st_blksize: ::blksize_t,
212         #[stable(feature = "raw_ext", since = "1.1.0")]
213         pub __pad2: ::c_int,
214         #[stable(feature = "raw_ext", since = "1.1.0")]
215         pub st_blocks: ::blkcnt_t,
216         #[stable(feature = "raw_ext", since = "1.1.0")]
217         pub st_atime: ::time_t,
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: ::time_t,
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: ::time_t,
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 ))]
239 mod arch {
240     pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
241 }
242
243 #[cfg(target_arch = "aarch64")]
244 mod arch {
245     use crate::os::raw::{c_int, c_long};
246
247     #[stable(feature = "raw_ext", since = "1.1.0")]
248     pub type blkcnt_t = u64;
249     #[stable(feature = "raw_ext", since = "1.1.0")]
250     pub type blksize_t = u64;
251     #[stable(feature = "raw_ext", since = "1.1.0")]
252     pub type ino_t = u64;
253     #[stable(feature = "raw_ext", since = "1.1.0")]
254     pub type nlink_t = u64;
255     #[stable(feature = "raw_ext", since = "1.1.0")]
256     pub type off_t = u64;
257     #[stable(feature = "raw_ext", since = "1.1.0")]
258     pub type time_t = i64;
259
260     #[repr(C)]
261     #[derive(Clone)]
262     #[stable(feature = "raw_ext", since = "1.1.0")]
263     pub struct stat {
264         #[stable(feature = "raw_ext", since = "1.1.0")]
265         pub st_dev: u64,
266         #[stable(feature = "raw_ext", since = "1.1.0")]
267         pub st_ino: u64,
268         #[stable(feature = "raw_ext", since = "1.1.0")]
269         pub st_mode: u32,
270         #[stable(feature = "raw_ext", since = "1.1.0")]
271         pub st_nlink: u32,
272         #[stable(feature = "raw_ext", since = "1.1.0")]
273         pub st_uid: u32,
274         #[stable(feature = "raw_ext", since = "1.1.0")]
275         pub st_gid: u32,
276         #[stable(feature = "raw_ext", since = "1.1.0")]
277         pub st_rdev: u64,
278         #[stable(feature = "raw_ext", since = "1.1.0")]
279         pub __pad1: u64,
280         #[stable(feature = "raw_ext", since = "1.1.0")]
281         pub st_size: i64,
282         #[stable(feature = "raw_ext", since = "1.1.0")]
283         pub st_blksize: i32,
284         #[stable(feature = "raw_ext", since = "1.1.0")]
285         pub __pad2: c_int,
286         #[stable(feature = "raw_ext", since = "1.1.0")]
287         pub st_blocks: i64,
288         #[stable(feature = "raw_ext", since = "1.1.0")]
289         pub st_atime: i64,
290         #[stable(feature = "raw_ext", since = "1.1.0")]
291         pub st_atime_nsec: c_long,
292         #[stable(feature = "raw_ext", since = "1.1.0")]
293         pub st_mtime: i64,
294         #[stable(feature = "raw_ext", since = "1.1.0")]
295         pub st_mtime_nsec: c_long,
296         #[stable(feature = "raw_ext", since = "1.1.0")]
297         pub st_ctime: i64,
298         #[stable(feature = "raw_ext", since = "1.1.0")]
299         pub st_ctime_nsec: c_long,
300         #[stable(feature = "raw_ext", since = "1.1.0")]
301         pub __unused: [c_int; 2],
302     }
303 }
304
305 #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64"))]
306 mod arch {
307     use crate::os::raw::{c_int, c_long};
308
309     #[stable(feature = "raw_ext", since = "1.1.0")]
310     pub type blkcnt_t = u64;
311     #[stable(feature = "raw_ext", since = "1.1.0")]
312     pub type blksize_t = u64;
313     #[stable(feature = "raw_ext", since = "1.1.0")]
314     pub type ino_t = u64;
315     #[stable(feature = "raw_ext", since = "1.1.0")]
316     pub type nlink_t = u64;
317     #[stable(feature = "raw_ext", since = "1.1.0")]
318     pub type off_t = u64;
319     #[stable(feature = "raw_ext", since = "1.1.0")]
320     pub type time_t = i64;
321
322     #[repr(C)]
323     #[derive(Clone)]
324     #[stable(feature = "raw_ext", since = "1.1.0")]
325     pub struct stat {
326         #[stable(feature = "raw_ext", since = "1.1.0")]
327         pub st_dev: u64,
328         #[stable(feature = "raw_ext", since = "1.1.0")]
329         pub st_ino: u64,
330         #[stable(feature = "raw_ext", since = "1.1.0")]
331         pub st_nlink: u64,
332         #[stable(feature = "raw_ext", since = "1.1.0")]
333         pub st_mode: u32,
334         #[stable(feature = "raw_ext", since = "1.1.0")]
335         pub st_uid: u32,
336         #[stable(feature = "raw_ext", since = "1.1.0")]
337         pub st_gid: u32,
338         #[stable(feature = "raw_ext", since = "1.1.0")]
339         pub __pad0: c_int,
340         #[stable(feature = "raw_ext", since = "1.1.0")]
341         pub st_rdev: u64,
342         #[stable(feature = "raw_ext", since = "1.1.0")]
343         pub st_size: i64,
344         #[stable(feature = "raw_ext", since = "1.1.0")]
345         pub st_blksize: i64,
346         #[stable(feature = "raw_ext", since = "1.1.0")]
347         pub st_blocks: i64,
348         #[stable(feature = "raw_ext", since = "1.1.0")]
349         pub st_atime: i64,
350         #[stable(feature = "raw_ext", since = "1.1.0")]
351         pub st_atime_nsec: c_long,
352         #[stable(feature = "raw_ext", since = "1.1.0")]
353         pub st_mtime: i64,
354         #[stable(feature = "raw_ext", since = "1.1.0")]
355         pub st_mtime_nsec: c_long,
356         #[stable(feature = "raw_ext", since = "1.1.0")]
357         pub st_ctime: i64,
358         #[stable(feature = "raw_ext", since = "1.1.0")]
359         pub st_ctime_nsec: c_long,
360         #[stable(feature = "raw_ext", since = "1.1.0")]
361         pub __unused: [c_long; 3],
362     }
363 }