]> git.proxmox.com Git - rustc.git/blob - library/std/src/os/linux/raw.rs
New upstream version 1.48.0~beta.8+dfsg1
[rustc.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 = "sparc",
33 target_arch = "arm",
34 target_arch = "asmjs",
35 target_arch = "wasm32"
36 ))]
37 mod arch {
38 use crate::os::raw::{c_long, c_short, c_uint};
39
40 #[stable(feature = "raw_ext", since = "1.1.0")]
41 pub type blkcnt_t = u64;
42 #[stable(feature = "raw_ext", since = "1.1.0")]
43 pub type blksize_t = u64;
44 #[stable(feature = "raw_ext", since = "1.1.0")]
45 pub type ino_t = u64;
46 #[stable(feature = "raw_ext", since = "1.1.0")]
47 pub type nlink_t = u64;
48 #[stable(feature = "raw_ext", since = "1.1.0")]
49 pub type off_t = u64;
50 #[stable(feature = "raw_ext", since = "1.1.0")]
51 pub type time_t = i64;
52
53 #[repr(C)]
54 #[derive(Clone)]
55 #[stable(feature = "raw_ext", since = "1.1.0")]
56 pub struct stat {
57 #[stable(feature = "raw_ext", since = "1.1.0")]
58 pub st_dev: u64,
59 #[stable(feature = "raw_ext", since = "1.1.0")]
60 pub __pad1: c_short,
61 #[stable(feature = "raw_ext", since = "1.1.0")]
62 pub __st_ino: u32,
63 #[stable(feature = "raw_ext", since = "1.1.0")]
64 pub st_mode: u32,
65 #[stable(feature = "raw_ext", since = "1.1.0")]
66 pub st_nlink: u32,
67 #[stable(feature = "raw_ext", since = "1.1.0")]
68 pub st_uid: u32,
69 #[stable(feature = "raw_ext", since = "1.1.0")]
70 pub st_gid: u32,
71 #[stable(feature = "raw_ext", since = "1.1.0")]
72 pub st_rdev: u64,
73 #[stable(feature = "raw_ext", since = "1.1.0")]
74 pub __pad2: c_uint,
75 #[stable(feature = "raw_ext", since = "1.1.0")]
76 pub st_size: i64,
77 #[stable(feature = "raw_ext", since = "1.1.0")]
78 pub st_blksize: i32,
79 #[stable(feature = "raw_ext", since = "1.1.0")]
80 pub st_blocks: i64,
81 #[stable(feature = "raw_ext", since = "1.1.0")]
82 pub st_atime: i32,
83 #[stable(feature = "raw_ext", since = "1.1.0")]
84 pub st_atime_nsec: c_long,
85 #[stable(feature = "raw_ext", since = "1.1.0")]
86 pub st_mtime: i32,
87 #[stable(feature = "raw_ext", since = "1.1.0")]
88 pub st_mtime_nsec: c_long,
89 #[stable(feature = "raw_ext", since = "1.1.0")]
90 pub st_ctime: i32,
91 #[stable(feature = "raw_ext", since = "1.1.0")]
92 pub st_ctime_nsec: c_long,
93 #[stable(feature = "raw_ext", since = "1.1.0")]
94 pub st_ino: u64,
95 }
96 }
97
98 #[cfg(target_arch = "mips")]
99 mod arch {
100 use crate::os::raw::{c_long, c_ulong};
101
102 #[cfg(target_env = "musl")]
103 #[stable(feature = "raw_ext", since = "1.1.0")]
104 pub type blkcnt_t = i64;
105 #[cfg(not(target_env = "musl"))]
106 #[stable(feature = "raw_ext", since = "1.1.0")]
107 pub type blkcnt_t = u64;
108 #[stable(feature = "raw_ext", since = "1.1.0")]
109 pub type blksize_t = u64;
110 #[cfg(target_env = "musl")]
111 #[stable(feature = "raw_ext", since = "1.1.0")]
112 pub type ino_t = u64;
113 #[cfg(not(target_env = "musl"))]
114 #[stable(feature = "raw_ext", since = "1.1.0")]
115 pub type ino_t = u64;
116 #[stable(feature = "raw_ext", since = "1.1.0")]
117 pub type nlink_t = u64;
118 #[cfg(target_env = "musl")]
119 #[stable(feature = "raw_ext", since = "1.1.0")]
120 pub type off_t = u64;
121 #[cfg(not(target_env = "musl"))]
122 #[stable(feature = "raw_ext", since = "1.1.0")]
123 pub type off_t = u64;
124 #[stable(feature = "raw_ext", since = "1.1.0")]
125 pub type time_t = i64;
126
127 #[repr(C)]
128 #[derive(Clone)]
129 #[stable(feature = "raw_ext", since = "1.1.0")]
130 pub struct stat {
131 #[stable(feature = "raw_ext", since = "1.1.0")]
132 pub st_dev: c_ulong,
133 #[stable(feature = "raw_ext", since = "1.1.0")]
134 pub st_pad1: [c_long; 3],
135 #[stable(feature = "raw_ext", since = "1.1.0")]
136 pub st_ino: u64,
137 #[stable(feature = "raw_ext", since = "1.1.0")]
138 pub st_mode: u32,
139 #[stable(feature = "raw_ext", since = "1.1.0")]
140 pub st_nlink: u32,
141 #[stable(feature = "raw_ext", since = "1.1.0")]
142 pub st_uid: u32,
143 #[stable(feature = "raw_ext", since = "1.1.0")]
144 pub st_gid: u32,
145 #[stable(feature = "raw_ext", since = "1.1.0")]
146 pub st_rdev: c_ulong,
147 #[stable(feature = "raw_ext", since = "1.1.0")]
148 pub st_pad2: [c_long; 2],
149 #[stable(feature = "raw_ext", since = "1.1.0")]
150 pub st_size: i64,
151 #[stable(feature = "raw_ext", since = "1.1.0")]
152 pub st_atime: i32,
153 #[stable(feature = "raw_ext", since = "1.1.0")]
154 pub st_atime_nsec: c_long,
155 #[stable(feature = "raw_ext", since = "1.1.0")]
156 pub st_mtime: i32,
157 #[stable(feature = "raw_ext", since = "1.1.0")]
158 pub st_mtime_nsec: c_long,
159 #[stable(feature = "raw_ext", since = "1.1.0")]
160 pub st_ctime: i32,
161 #[stable(feature = "raw_ext", since = "1.1.0")]
162 pub st_ctime_nsec: c_long,
163 #[stable(feature = "raw_ext", since = "1.1.0")]
164 pub st_blksize: i32,
165 #[stable(feature = "raw_ext", since = "1.1.0")]
166 pub st_blocks: i64,
167 #[stable(feature = "raw_ext", since = "1.1.0")]
168 pub st_pad5: [c_long; 14],
169 }
170 }
171
172 #[cfg(target_arch = "hexagon")]
173 mod arch {
174 use crate::os::raw::{c_int, c_long, c_uint};
175
176 #[stable(feature = "raw_ext", since = "1.1.0")]
177 pub type blkcnt_t = i64;
178 #[stable(feature = "raw_ext", since = "1.1.0")]
179 pub type blksize_t = c_long;
180 #[stable(feature = "raw_ext", since = "1.1.0")]
181 pub type ino_t = u64;
182 #[stable(feature = "raw_ext", since = "1.1.0")]
183 pub type nlink_t = c_uint;
184 #[stable(feature = "raw_ext", since = "1.1.0")]
185 pub type off_t = i64;
186 #[stable(feature = "raw_ext", since = "1.1.0")]
187 pub type time_t = i64;
188
189 #[repr(C)]
190 #[derive(Clone)]
191 #[stable(feature = "raw_ext", since = "1.1.0")]
192 pub struct stat {
193 #[stable(feature = "raw_ext", since = "1.1.0")]
194 pub st_dev: u64,
195 #[stable(feature = "raw_ext", since = "1.1.0")]
196 pub st_ino: u64,
197 #[stable(feature = "raw_ext", since = "1.1.0")]
198 pub st_mode: u32,
199 #[stable(feature = "raw_ext", since = "1.1.0")]
200 pub st_nlink: u32,
201 #[stable(feature = "raw_ext", since = "1.1.0")]
202 pub st_uid: u32,
203 #[stable(feature = "raw_ext", since = "1.1.0")]
204 pub st_gid: u32,
205 #[stable(feature = "raw_ext", since = "1.1.0")]
206 pub st_rdev: u64,
207 #[stable(feature = "raw_ext", since = "1.1.0")]
208 pub __pad1: u32,
209 #[stable(feature = "raw_ext", since = "1.1.0")]
210 pub st_size: i64,
211 #[stable(feature = "raw_ext", since = "1.1.0")]
212 pub st_blksize: i32,
213 #[stable(feature = "raw_ext", since = "1.1.0")]
214 pub __pad2: i32,
215 #[stable(feature = "raw_ext", since = "1.1.0")]
216 pub st_blocks: i64,
217 #[stable(feature = "raw_ext", since = "1.1.0")]
218 pub st_atime: i64,
219 #[stable(feature = "raw_ext", since = "1.1.0")]
220 pub st_atime_nsec: c_long,
221 #[stable(feature = "raw_ext", since = "1.1.0")]
222 pub st_mtime: i64,
223 #[stable(feature = "raw_ext", since = "1.1.0")]
224 pub st_mtime_nsec: c_long,
225 #[stable(feature = "raw_ext", since = "1.1.0")]
226 pub st_ctime: i64,
227 #[stable(feature = "raw_ext", since = "1.1.0")]
228 pub st_ctime_nsec: c_long,
229 #[stable(feature = "raw_ext", since = "1.1.0")]
230 pub __pad3: [c_int; 2],
231 }
232 }
233
234 #[cfg(any(
235 target_arch = "mips64",
236 target_arch = "s390x",
237 target_arch = "sparc64",
238 target_arch = "riscv64",
239 target_arch = "riscv32"
240 ))]
241 mod arch {
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 = u64;
251 #[stable(feature = "raw_ext", since = "1.1.0")]
252 pub type blksize_t = u64;
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 = u64;
257 #[stable(feature = "raw_ext", since = "1.1.0")]
258 pub type off_t = u64;
259 #[stable(feature = "raw_ext", since = "1.1.0")]
260 pub type time_t = i64;
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: i64,
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: i64,
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: i64,
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 }