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