]> git.proxmox.com Git - rustc.git/blob - vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs
New upstream version 1.55.0+dfsg1
[rustc.git] / vendor / libc / src / unix / linux_like / linux / gnu / b32 / mod.rs
1 //! 32-bit specific definitions for linux-like values
2
3 use pthread_mutex_t;
4
5 pub type c_long = i32;
6 pub type c_ulong = u32;
7 pub type clock_t = i32;
8
9 pub type shmatt_t = ::c_ulong;
10 pub type msgqnum_t = ::c_ulong;
11 pub type msglen_t = ::c_ulong;
12 pub type nlink_t = u32;
13 pub type __u64 = ::c_ulonglong;
14 pub type __fsword_t = i32;
15 pub type fsblkcnt64_t = u64;
16 pub type fsfilcnt64_t = u64;
17 pub type __syscall_ulong_t = ::c_ulong;
18
19 cfg_if! {
20 if #[cfg(target_arch = "riscv32")] {
21 pub type time_t = i64;
22 pub type suseconds_t = i64;
23 pub type ino_t = u64;
24 pub type off_t = i64;
25 pub type blkcnt_t = i64;
26 pub type fsblkcnt_t = u64;
27 pub type fsfilcnt_t = u64;
28 pub type rlim_t = u64;
29 pub type blksize_t = i64;
30 } else {
31 pub type time_t = i32;
32 pub type suseconds_t = i32;
33 pub type ino_t = u32;
34 pub type off_t = i32;
35 pub type blkcnt_t = i32;
36 pub type fsblkcnt_t = ::c_ulong;
37 pub type fsfilcnt_t = ::c_ulong;
38 pub type rlim_t = c_ulong;
39 pub type blksize_t = i32;
40 }
41 }
42
43 s! {
44 pub struct stat {
45 #[cfg(not(target_arch = "mips"))]
46 pub st_dev: ::dev_t,
47 #[cfg(target_arch = "mips")]
48 pub st_dev: ::c_ulong,
49
50 #[cfg(not(target_arch = "mips"))]
51 __pad1: ::c_short,
52 #[cfg(target_arch = "mips")]
53 st_pad1: [::c_long; 3],
54 pub st_ino: ::ino_t,
55 pub st_mode: ::mode_t,
56 pub st_nlink: ::nlink_t,
57 pub st_uid: ::uid_t,
58 pub st_gid: ::gid_t,
59 #[cfg(not(target_arch = "mips"))]
60 pub st_rdev: ::dev_t,
61 #[cfg(target_arch = "mips")]
62 pub st_rdev: ::c_ulong,
63 #[cfg(not(target_arch = "mips"))]
64 __pad2: ::c_short,
65 #[cfg(target_arch = "mips")]
66 st_pad2: [::c_long; 2],
67 pub st_size: ::off_t,
68 #[cfg(target_arch = "mips")]
69 st_pad3: ::c_long,
70 #[cfg(not(target_arch = "mips"))]
71 pub st_blksize: ::blksize_t,
72 #[cfg(not(target_arch = "mips"))]
73 pub st_blocks: ::blkcnt_t,
74 pub st_atime: ::time_t,
75 pub st_atime_nsec: ::c_long,
76 pub st_mtime: ::time_t,
77 pub st_mtime_nsec: ::c_long,
78 pub st_ctime: ::time_t,
79 pub st_ctime_nsec: ::c_long,
80 #[cfg(not(target_arch = "mips"))]
81 __unused4: ::c_long,
82 #[cfg(not(target_arch = "mips"))]
83 __unused5: ::c_long,
84 #[cfg(target_arch = "mips")]
85 pub st_blksize: ::blksize_t,
86 #[cfg(target_arch = "mips")]
87 pub st_blocks: ::blkcnt_t,
88 #[cfg(target_arch = "mips")]
89 st_pad5: [::c_long; 14],
90 }
91
92 pub struct statvfs {
93 pub f_bsize: ::c_ulong,
94 pub f_frsize: ::c_ulong,
95 pub f_blocks: ::fsblkcnt_t,
96 pub f_bfree: ::fsblkcnt_t,
97 pub f_bavail: ::fsblkcnt_t,
98 pub f_files: ::fsfilcnt_t,
99 pub f_ffree: ::fsfilcnt_t,
100 pub f_favail: ::fsfilcnt_t,
101 pub f_fsid: ::c_ulong,
102 __f_unused: ::c_int,
103 pub f_flag: ::c_ulong,
104 pub f_namemax: ::c_ulong,
105 __f_spare: [::c_int; 6],
106 }
107
108 pub struct pthread_attr_t {
109 __size: [u32; 9]
110 }
111
112 pub struct sigset_t {
113 __val: [::c_ulong; 32],
114 }
115
116 pub struct sysinfo {
117 pub uptime: ::c_long,
118 pub loads: [::c_ulong; 3],
119 pub totalram: ::c_ulong,
120 pub freeram: ::c_ulong,
121 pub sharedram: ::c_ulong,
122 pub bufferram: ::c_ulong,
123 pub totalswap: ::c_ulong,
124 pub freeswap: ::c_ulong,
125 pub procs: ::c_ushort,
126 #[deprecated(
127 since = "0.2.58",
128 note = "This padding field might become private in the future"
129 )]
130 pub pad: ::c_ushort,
131 pub totalhigh: ::c_ulong,
132 pub freehigh: ::c_ulong,
133 pub mem_unit: ::c_uint,
134 pub _f: [::c_char; 8],
135 }
136
137 pub struct ip_mreqn {
138 pub imr_multiaddr: ::in_addr,
139 pub imr_address: ::in_addr,
140 pub imr_ifindex: ::c_int,
141 }
142
143 pub struct semid_ds {
144 pub sem_perm: ipc_perm,
145 #[cfg(target_arch = "powerpc")]
146 __reserved: ::__syscall_ulong_t,
147 pub sem_otime: ::time_t,
148 #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
149 __reserved: ::__syscall_ulong_t,
150 #[cfg(target_arch = "powerpc")]
151 __reserved2: ::__syscall_ulong_t,
152 pub sem_ctime: ::time_t,
153 #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
154 __reserved2: ::__syscall_ulong_t,
155 pub sem_nsems: ::__syscall_ulong_t,
156 __glibc_reserved3: ::__syscall_ulong_t,
157 __glibc_reserved4: ::__syscall_ulong_t,
158 }
159 }
160
161 pub const POSIX_FADV_DONTNEED: ::c_int = 4;
162 pub const POSIX_FADV_NOREUSE: ::c_int = 5;
163
164 pub const F_OFD_GETLK: ::c_int = 36;
165 pub const F_OFD_SETLK: ::c_int = 37;
166 pub const F_OFD_SETLKW: ::c_int = 38;
167
168 pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
169 pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
170 pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
171 pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
172 pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
173
174 cfg_if! {
175 if #[cfg(target_arch = "sparc")] {
176 pub const O_NOATIME: ::c_int = 0x200000;
177 pub const O_PATH: ::c_int = 0x1000000;
178 pub const O_TMPFILE: ::c_int = 0x2000000 | O_DIRECTORY;
179
180 pub const SA_ONSTACK: ::c_int = 1;
181
182 pub const PTRACE_DETACH: ::c_uint = 11;
183
184 pub const F_SETLK: ::c_int = 8;
185 pub const F_SETLKW: ::c_int = 9;
186
187 pub const F_RDLCK: ::c_int = 1;
188 pub const F_WRLCK: ::c_int = 2;
189 pub const F_UNLCK: ::c_int = 3;
190
191 pub const SFD_CLOEXEC: ::c_int = 0x400000;
192
193 pub const NCCS: usize = 17;
194
195 pub const O_TRUNC: ::c_int = 0x400;
196 pub const O_CLOEXEC: ::c_int = 0x400000;
197
198 pub const EBFONT: ::c_int = 109;
199 pub const ENOSTR: ::c_int = 72;
200 pub const ENODATA: ::c_int = 111;
201 pub const ETIME: ::c_int = 73;
202 pub const ENOSR: ::c_int = 74;
203 pub const ENONET: ::c_int = 80;
204 pub const ENOPKG: ::c_int = 113;
205 pub const EREMOTE: ::c_int = 71;
206 pub const ENOLINK: ::c_int = 82;
207 pub const EADV: ::c_int = 83;
208 pub const ESRMNT: ::c_int = 84;
209 pub const ECOMM: ::c_int = 85;
210 pub const EPROTO: ::c_int = 86;
211 pub const EDOTDOT: ::c_int = 88;
212
213 pub const SA_NODEFER: ::c_int = 0x20;
214 pub const SA_RESETHAND: ::c_int = 0x4;
215 pub const SA_RESTART: ::c_int = 0x2;
216 pub const SA_NOCLDSTOP: ::c_int = 0x00000008;
217
218 pub const EPOLL_CLOEXEC: ::c_int = 0x400000;
219
220 pub const EFD_CLOEXEC: ::c_int = 0x400000;
221 } else {
222 pub const O_NOATIME: ::c_int = 0o1000000;
223 pub const O_PATH: ::c_int = 0o10000000;
224 pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;
225
226 pub const SA_ONSTACK: ::c_int = 0x08000000;
227
228 pub const PTRACE_DETACH: ::c_uint = 17;
229
230 pub const F_SETLK: ::c_int = 6;
231 pub const F_SETLKW: ::c_int = 7;
232
233 pub const F_RDLCK: ::c_int = 0;
234 pub const F_WRLCK: ::c_int = 1;
235 pub const F_UNLCK: ::c_int = 2;
236
237 pub const SFD_CLOEXEC: ::c_int = 0x080000;
238
239 pub const NCCS: usize = 32;
240
241 pub const O_TRUNC: ::c_int = 512;
242 pub const O_CLOEXEC: ::c_int = 0x80000;
243 pub const EBFONT: ::c_int = 59;
244 pub const ENOSTR: ::c_int = 60;
245 pub const ENODATA: ::c_int = 61;
246 pub const ETIME: ::c_int = 62;
247 pub const ENOSR: ::c_int = 63;
248 pub const ENONET: ::c_int = 64;
249 pub const ENOPKG: ::c_int = 65;
250 pub const EREMOTE: ::c_int = 66;
251 pub const ENOLINK: ::c_int = 67;
252 pub const EADV: ::c_int = 68;
253 pub const ESRMNT: ::c_int = 69;
254 pub const ECOMM: ::c_int = 70;
255 pub const EPROTO: ::c_int = 71;
256 pub const EDOTDOT: ::c_int = 73;
257
258 pub const SA_NODEFER: ::c_int = 0x40000000;
259 pub const SA_RESETHAND: ::c_int = 0x80000000;
260 pub const SA_RESTART: ::c_int = 0x10000000;
261 pub const SA_NOCLDSTOP: ::c_int = 0x00000001;
262
263 pub const EPOLL_CLOEXEC: ::c_int = 0x80000;
264
265 pub const EFD_CLOEXEC: ::c_int = 0x80000;
266 }
267 }
268
269 align_const! {
270 #[cfg(target_endian = "little")]
271 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
272 pthread_mutex_t {
273 size: [
274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
275 0, 0, 0,
276 ],
277 };
278 #[cfg(target_endian = "little")]
279 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
280 pthread_mutex_t {
281 size: [
282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0,
284 ],
285 };
286 #[cfg(target_endian = "little")]
287 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
288 pthread_mutex_t {
289 size: [
290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
291 0, 0, 0,
292 ],
293 };
294 #[cfg(target_endian = "big")]
295 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
296 pthread_mutex_t {
297 size: [
298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
299 0, 0, 0,
300 ],
301 };
302 #[cfg(target_endian = "big")]
303 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
304 pthread_mutex_t {
305 size: [
306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
307 0, 0, 0,
308 ],
309 };
310 #[cfg(target_endian = "big")]
311 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
312 pthread_mutex_t {
313 size: [
314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
315 0, 0, 0,
316 ],
317 };
318 }
319
320 pub const PTRACE_GETFPREGS: ::c_uint = 14;
321 pub const PTRACE_SETFPREGS: ::c_uint = 15;
322 pub const PTRACE_GETREGS: ::c_uint = 12;
323 pub const PTRACE_SETREGS: ::c_uint = 13;
324
325 pub const TIOCSBRK: ::c_int = 0x5427;
326 pub const TIOCCBRK: ::c_int = 0x5428;
327
328 extern "C" {
329 pub fn sysctl(
330 name: *mut ::c_int,
331 namelen: ::c_int,
332 oldp: *mut ::c_void,
333 oldlenp: *mut ::size_t,
334 newp: *mut ::c_void,
335 newlen: ::size_t,
336 ) -> ::c_int;
337 }
338
339 cfg_if! {
340 if #[cfg(target_arch = "x86")] {
341 mod x86;
342 pub use self::x86::*;
343 } else if #[cfg(target_arch = "arm")] {
344 mod arm;
345 pub use self::arm::*;
346 } else if #[cfg(target_arch = "mips")] {
347 mod mips;
348 pub use self::mips::*;
349 } else if #[cfg(target_arch = "powerpc")] {
350 mod powerpc;
351 pub use self::powerpc::*;
352 } else if #[cfg(target_arch = "sparc")] {
353 mod sparc;
354 pub use self::sparc::*;
355 } else if #[cfg(target_arch = "riscv32")] {
356 mod riscv32;
357 pub use self::riscv32::*;
358 } else {
359 // Unknown target_arch
360 }
361 }