1 //! PowerPC64-specific definitions for 64-bit linux-like values
2 
3 use crate::prelude::*;
4 use crate::{off64_t, off_t, pthread_mutex_t};
5 
6 pub type wchar_t = i32;
7 pub type nlink_t = u64;
8 pub type blksize_t = i64;
9 pub type suseconds_t = i64;
10 pub type __u64 = c_ulong;
11 pub type __s64 = c_long;
12 
13 s! {
14     pub struct sigaction {
15         pub sa_sigaction: crate::sighandler_t,
16         pub sa_mask: crate::sigset_t,
17         #[cfg(target_arch = "sparc64")]
18         __reserved0: c_int,
19         pub sa_flags: c_int,
20         pub sa_restorer: Option<extern "C" fn()>,
21     }
22 
23     pub struct statfs {
24         pub f_type: crate::__fsword_t,
25         pub f_bsize: crate::__fsword_t,
26         pub f_blocks: crate::fsblkcnt_t,
27         pub f_bfree: crate::fsblkcnt_t,
28         pub f_bavail: crate::fsblkcnt_t,
29 
30         pub f_files: crate::fsfilcnt_t,
31         pub f_ffree: crate::fsfilcnt_t,
32         pub f_fsid: crate::fsid_t,
33 
34         pub f_namelen: crate::__fsword_t,
35         pub f_frsize: crate::__fsword_t,
36         f_spare: [crate::__fsword_t; 5],
37     }
38 
39     pub struct flock {
40         pub l_type: c_short,
41         pub l_whence: c_short,
42         pub l_start: off_t,
43         pub l_len: off_t,
44         pub l_pid: crate::pid_t,
45     }
46 
47     pub struct flock64 {
48         pub l_type: c_short,
49         pub l_whence: c_short,
50         pub l_start: off64_t,
51         pub l_len: off64_t,
52         pub l_pid: crate::pid_t,
53     }
54 
55     pub struct stat {
56         pub st_dev: crate::dev_t,
57         pub st_ino: crate::ino_t,
58         pub st_nlink: crate::nlink_t,
59         pub st_mode: crate::mode_t,
60         pub st_uid: crate::uid_t,
61         pub st_gid: crate::gid_t,
62         __pad0: c_int,
63         pub st_rdev: crate::dev_t,
64         pub st_size: off_t,
65         pub st_blksize: crate::blksize_t,
66         pub st_blocks: crate::blkcnt_t,
67         pub st_atime: crate::time_t,
68         pub st_atime_nsec: c_long,
69         pub st_mtime: crate::time_t,
70         pub st_mtime_nsec: c_long,
71         pub st_ctime: crate::time_t,
72         pub st_ctime_nsec: c_long,
73         __unused: [c_long; 3],
74     }
75 
76     pub struct stat64 {
77         pub st_dev: crate::dev_t,
78         pub st_ino: crate::ino64_t,
79         pub st_nlink: crate::nlink_t,
80         pub st_mode: crate::mode_t,
81         pub st_uid: crate::uid_t,
82         pub st_gid: crate::gid_t,
83         __pad0: c_int,
84         pub st_rdev: crate::dev_t,
85         pub st_size: off64_t,
86         pub st_blksize: crate::blksize_t,
87         pub st_blocks: crate::blkcnt64_t,
88         pub st_atime: crate::time_t,
89         pub st_atime_nsec: c_long,
90         pub st_mtime: crate::time_t,
91         pub st_mtime_nsec: c_long,
92         pub st_ctime: crate::time_t,
93         pub st_ctime_nsec: c_long,
94         __reserved: [c_long; 3],
95     }
96 
97     pub struct statfs64 {
98         pub f_type: crate::__fsword_t,
99         pub f_bsize: crate::__fsword_t,
100         pub f_blocks: u64,
101         pub f_bfree: u64,
102         pub f_bavail: u64,
103         pub f_files: u64,
104         pub f_ffree: u64,
105         pub f_fsid: crate::fsid_t,
106         pub f_namelen: crate::__fsword_t,
107         pub f_frsize: crate::__fsword_t,
108         pub f_flags: crate::__fsword_t,
109         pub f_spare: [crate::__fsword_t; 4],
110     }
111 
112     pub struct statvfs {
113         pub f_bsize: c_ulong,
114         pub f_frsize: c_ulong,
115         pub f_blocks: crate::fsblkcnt_t,
116         pub f_bfree: crate::fsblkcnt_t,
117         pub f_bavail: crate::fsblkcnt_t,
118         pub f_files: crate::fsfilcnt_t,
119         pub f_ffree: crate::fsfilcnt_t,
120         pub f_favail: crate::fsfilcnt_t,
121         pub f_fsid: c_ulong,
122         pub f_flag: c_ulong,
123         pub f_namemax: c_ulong,
124         __f_spare: [c_int; 6],
125     }
126 
127     pub struct statvfs64 {
128         pub f_bsize: c_ulong,
129         pub f_frsize: c_ulong,
130         pub f_blocks: u64,
131         pub f_bfree: u64,
132         pub f_bavail: u64,
133         pub f_files: u64,
134         pub f_ffree: u64,
135         pub f_favail: u64,
136         pub f_fsid: c_ulong,
137         pub f_flag: c_ulong,
138         pub f_namemax: c_ulong,
139         __f_spare: [c_int; 6],
140     }
141 
142     pub struct pthread_attr_t {
143         __size: [u64; 7],
144     }
145 
146     pub struct ipc_perm {
147         pub __key: crate::key_t,
148         pub uid: crate::uid_t,
149         pub gid: crate::gid_t,
150         pub cuid: crate::uid_t,
151         pub cgid: crate::gid_t,
152         pub mode: crate::mode_t,
153         pub __seq: u32,
154         __pad1: u32,
155         __unused1: u64,
156         __unused2: c_ulong,
157     }
158 
159     pub struct shmid_ds {
160         pub shm_perm: crate::ipc_perm,
161         pub shm_atime: crate::time_t,
162         pub shm_dtime: crate::time_t,
163         pub shm_ctime: crate::time_t,
164         pub shm_segsz: size_t,
165         pub shm_cpid: crate::pid_t,
166         pub shm_lpid: crate::pid_t,
167         pub shm_nattch: crate::shmatt_t,
168         __unused4: c_ulong,
169         __unused5: c_ulong,
170     }
171 
172     pub struct siginfo_t {
173         pub si_signo: c_int,
174         pub si_errno: c_int,
175         pub si_code: c_int,
176         #[doc(hidden)]
177         #[deprecated(
178             since = "0.2.54",
179             note = "Please leave a comment on \
180                   https://github.com/rust-lang/libc/pull/1316 if you're using \
181                   this field"
182         )]
183         pub _pad: [c_int; 29],
184         _align: [usize; 0],
185     }
186 
187     pub struct stack_t {
188         pub ss_sp: *mut c_void,
189         pub ss_flags: c_int,
190         pub ss_size: size_t,
191     }
192 }
193 
194 s_no_extra_traits! {
195     #[allow(missing_debug_implementations)]
196     #[repr(align(16))]
197     pub struct max_align_t {
198         priv_: [i64; 4],
199     }
200 }
201 
202 pub const POSIX_FADV_DONTNEED: c_int = 4;
203 pub const POSIX_FADV_NOREUSE: c_int = 5;
204 
205 pub const RTLD_DEEPBIND: c_int = 0x8;
206 pub const RTLD_GLOBAL: c_int = 0x100;
207 pub const RTLD_NOLOAD: c_int = 0x4;
208 pub const VEOF: usize = 4;
209 pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
210 pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
211 
212 pub const O_APPEND: c_int = 1024;
213 pub const O_CREAT: c_int = 64;
214 pub const O_EXCL: c_int = 128;
215 pub const O_NOCTTY: c_int = 256;
216 pub const O_NONBLOCK: c_int = 2048;
217 pub const O_SYNC: c_int = 1052672;
218 pub const O_RSYNC: c_int = 1052672;
219 pub const O_DSYNC: c_int = 4096;
220 pub const O_FSYNC: c_int = 0x101000;
221 pub const O_NOATIME: c_int = 0o1000000;
222 pub const O_PATH: c_int = 0o10000000;
223 pub const O_TMPFILE: c_int = 0o20000000 | O_DIRECTORY;
224 
225 pub const MADV_SOFT_OFFLINE: c_int = 101;
226 pub const MAP_GROWSDOWN: c_int = 0x0100;
227 pub const MAP_ANON: c_int = 0x0020;
228 pub const MAP_ANONYMOUS: c_int = 0x0020;
229 pub const MAP_DENYWRITE: c_int = 0x0800;
230 pub const MAP_EXECUTABLE: c_int = 0x01000;
231 pub const MAP_POPULATE: c_int = 0x08000;
232 pub const MAP_NONBLOCK: c_int = 0x010000;
233 pub const MAP_STACK: c_int = 0x020000;
234 pub const MAP_HUGETLB: c_int = 0x040000;
235 
236 pub const EDEADLK: c_int = 35;
237 pub const ENAMETOOLONG: c_int = 36;
238 pub const ENOLCK: c_int = 37;
239 pub const ENOSYS: c_int = 38;
240 pub const ENOTEMPTY: c_int = 39;
241 pub const ELOOP: c_int = 40;
242 pub const ENOMSG: c_int = 42;
243 pub const EIDRM: c_int = 43;
244 pub const ECHRNG: c_int = 44;
245 pub const EL2NSYNC: c_int = 45;
246 pub const EL3HLT: c_int = 46;
247 pub const EL3RST: c_int = 47;
248 pub const ELNRNG: c_int = 48;
249 pub const EUNATCH: c_int = 49;
250 pub const ENOCSI: c_int = 50;
251 pub const EL2HLT: c_int = 51;
252 pub const EBADE: c_int = 52;
253 pub const EBADR: c_int = 53;
254 pub const EXFULL: c_int = 54;
255 pub const ENOANO: c_int = 55;
256 pub const EBADRQC: c_int = 56;
257 pub const EBADSLT: c_int = 57;
258 pub const EMULTIHOP: c_int = 72;
259 pub const EOVERFLOW: c_int = 75;
260 pub const ENOTUNIQ: c_int = 76;
261 pub const EBADFD: c_int = 77;
262 pub const EBADMSG: c_int = 74;
263 pub const EREMCHG: c_int = 78;
264 pub const ELIBACC: c_int = 79;
265 pub const ELIBBAD: c_int = 80;
266 pub const ELIBSCN: c_int = 81;
267 pub const ELIBMAX: c_int = 82;
268 pub const ELIBEXEC: c_int = 83;
269 pub const EILSEQ: c_int = 84;
270 pub const ERESTART: c_int = 85;
271 pub const ESTRPIPE: c_int = 86;
272 pub const EUSERS: c_int = 87;
273 pub const ENOTSOCK: c_int = 88;
274 pub const EDESTADDRREQ: c_int = 89;
275 pub const EMSGSIZE: c_int = 90;
276 pub const EPROTOTYPE: c_int = 91;
277 pub const ENOPROTOOPT: c_int = 92;
278 pub const EPROTONOSUPPORT: c_int = 93;
279 pub const ESOCKTNOSUPPORT: c_int = 94;
280 pub const EOPNOTSUPP: c_int = 95;
281 pub const EPFNOSUPPORT: c_int = 96;
282 pub const EAFNOSUPPORT: c_int = 97;
283 pub const EADDRINUSE: c_int = 98;
284 pub const EADDRNOTAVAIL: c_int = 99;
285 pub const ENETDOWN: c_int = 100;
286 pub const ENETUNREACH: c_int = 101;
287 pub const ENETRESET: c_int = 102;
288 pub const ECONNABORTED: c_int = 103;
289 pub const ECONNRESET: c_int = 104;
290 pub const ENOBUFS: c_int = 105;
291 pub const EISCONN: c_int = 106;
292 pub const ENOTCONN: c_int = 107;
293 pub const ESHUTDOWN: c_int = 108;
294 pub const ETOOMANYREFS: c_int = 109;
295 pub const ETIMEDOUT: c_int = 110;
296 pub const ECONNREFUSED: c_int = 111;
297 pub const EHOSTDOWN: c_int = 112;
298 pub const EHOSTUNREACH: c_int = 113;
299 pub const EALREADY: c_int = 114;
300 pub const EINPROGRESS: c_int = 115;
301 pub const ESTALE: c_int = 116;
302 pub const EDQUOT: c_int = 122;
303 pub const ENOMEDIUM: c_int = 123;
304 pub const EMEDIUMTYPE: c_int = 124;
305 pub const ECANCELED: c_int = 125;
306 pub const ENOKEY: c_int = 126;
307 pub const EKEYEXPIRED: c_int = 127;
308 pub const EKEYREVOKED: c_int = 128;
309 pub const EKEYREJECTED: c_int = 129;
310 pub const EOWNERDEAD: c_int = 130;
311 pub const ENOTRECOVERABLE: c_int = 131;
312 pub const EHWPOISON: c_int = 133;
313 pub const ERFKILL: c_int = 132;
314 
315 pub const SOCK_STREAM: c_int = 1;
316 pub const SOCK_DGRAM: c_int = 2;
317 
318 pub const SA_ONSTACK: c_int = 0x08000000;
319 pub const SA_SIGINFO: c_int = 0x00000004;
320 pub const SA_NOCLDWAIT: c_int = 0x00000002;
321 
322 pub const SIGTTIN: c_int = 21;
323 pub const SIGTTOU: c_int = 22;
324 pub const SIGXCPU: c_int = 24;
325 pub const SIGXFSZ: c_int = 25;
326 pub const SIGVTALRM: c_int = 26;
327 pub const SIGPROF: c_int = 27;
328 pub const SIGWINCH: c_int = 28;
329 pub const SIGCHLD: c_int = 17;
330 pub const SIGBUS: c_int = 7;
331 pub const SIGUSR1: c_int = 10;
332 pub const SIGUSR2: c_int = 12;
333 pub const SIGCONT: c_int = 18;
334 pub const SIGSTOP: c_int = 19;
335 pub const SIGTSTP: c_int = 20;
336 pub const SIGURG: c_int = 23;
337 pub const SIGIO: c_int = 29;
338 pub const SIGSYS: c_int = 31;
339 pub const SIGSTKFLT: c_int = 16;
340 #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")]
341 pub const SIGUNUSED: c_int = 31;
342 pub const SIGPOLL: c_int = 29;
343 pub const SIGPWR: c_int = 30;
344 pub const SIG_SETMASK: c_int = 2;
345 pub const SIG_BLOCK: c_int = 0x000000;
346 pub const SIG_UNBLOCK: c_int = 0x01;
347 
348 pub const POLLWRNORM: c_short = 0x100;
349 pub const POLLWRBAND: c_short = 0x200;
350 
351 pub const O_ASYNC: c_int = 0x2000;
352 pub const O_NDELAY: c_int = 0x800;
353 
354 pub const PTRACE_DETACH: c_uint = 17;
355 
356 pub const EFD_NONBLOCK: c_int = 0x800;
357 
358 pub const F_GETLK: c_int = 5;
359 pub const F_GETOWN: c_int = 9;
360 pub const F_SETOWN: c_int = 8;
361 pub const F_SETLK: c_int = 6;
362 pub const F_SETLKW: c_int = 7;
363 pub const F_OFD_GETLK: c_int = 36;
364 pub const F_OFD_SETLK: c_int = 37;
365 pub const F_OFD_SETLKW: c_int = 38;
366 
367 pub const F_RDLCK: c_int = 0;
368 pub const F_WRLCK: c_int = 1;
369 pub const F_UNLCK: c_int = 2;
370 
371 pub const SFD_NONBLOCK: c_int = 0x0800;
372 
373 pub const TCSANOW: c_int = 0;
374 pub const TCSADRAIN: c_int = 1;
375 pub const TCSAFLUSH: c_int = 2;
376 
377 pub const SFD_CLOEXEC: c_int = 0x080000;
378 
379 pub const NCCS: usize = 32;
380 
381 pub const O_TRUNC: c_int = 512;
382 
383 pub const O_CLOEXEC: c_int = 0x80000;
384 
385 pub const EBFONT: c_int = 59;
386 pub const ENOSTR: c_int = 60;
387 pub const ENODATA: c_int = 61;
388 pub const ETIME: c_int = 62;
389 pub const ENOSR: c_int = 63;
390 pub const ENONET: c_int = 64;
391 pub const ENOPKG: c_int = 65;
392 pub const EREMOTE: c_int = 66;
393 pub const ENOLINK: c_int = 67;
394 pub const EADV: c_int = 68;
395 pub const ESRMNT: c_int = 69;
396 pub const ECOMM: c_int = 70;
397 pub const EPROTO: c_int = 71;
398 pub const EDOTDOT: c_int = 73;
399 
400 pub const SA_NODEFER: c_int = 0x40000000;
401 pub const SA_RESETHAND: c_int = 0x80000000;
402 pub const SA_RESTART: c_int = 0x10000000;
403 pub const SA_NOCLDSTOP: c_int = 0x00000001;
404 
405 pub const EPOLL_CLOEXEC: c_int = 0x80000;
406 
407 pub const EFD_CLOEXEC: c_int = 0x80000;
408 
409 pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
410 pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
411 pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
412 pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
413 
414 #[cfg(target_endian = "little")]
415 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
416     size: [
417         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419     ],
420 };
421 #[cfg(target_endian = "little")]
422 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
423     size: [
424         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426     ],
427 };
428 #[cfg(target_endian = "little")]
429 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
430     size: [
431         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433     ],
434 };
435 #[cfg(target_endian = "big")]
436 pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
437     size: [
438         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
439         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440     ],
441 };
442 #[cfg(target_endian = "big")]
443 pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
444     size: [
445         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
446         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447     ],
448 };
449 #[cfg(target_endian = "big")]
450 pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: crate::pthread_mutex_t = pthread_mutex_t {
451     size: [
452         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
453         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454     ],
455 };
456 
457 pub const O_DIRECTORY: c_int = 0x4000;
458 pub const O_NOFOLLOW: c_int = 0x8000;
459 pub const O_DIRECT: c_int = 0x20000;
460 
461 pub const MAP_LOCKED: c_int = 0x00080;
462 pub const MAP_NORESERVE: c_int = 0x00040;
463 pub const MAP_SYNC: c_int = 0x080000;
464 
465 pub const EDEADLOCK: c_int = 58;
466 pub const EUCLEAN: c_int = 117;
467 pub const ENOTNAM: c_int = 118;
468 pub const ENAVAIL: c_int = 119;
469 pub const EISNAM: c_int = 120;
470 pub const EREMOTEIO: c_int = 121;
471 
472 pub const MCL_CURRENT: c_int = 0x2000;
473 pub const MCL_FUTURE: c_int = 0x4000;
474 pub const MCL_ONFAULT: c_int = 0x8000;
475 
476 pub const SIGSTKSZ: size_t = 0x4000;
477 pub const MINSIGSTKSZ: size_t = 4096;
478 pub const CBAUD: crate::tcflag_t = 0xff;
479 pub const TAB1: crate::tcflag_t = 0x400;
480 pub const TAB2: crate::tcflag_t = 0x800;
481 pub const TAB3: crate::tcflag_t = 0xc00;
482 pub const CR1: crate::tcflag_t = 0x1000;
483 pub const CR2: crate::tcflag_t = 0x2000;
484 pub const CR3: crate::tcflag_t = 0x3000;
485 pub const FF1: crate::tcflag_t = 0x4000;
486 pub const BS1: crate::tcflag_t = 0x8000;
487 pub const VT1: crate::tcflag_t = 0x10000;
488 pub const VWERASE: usize = 0xa;
489 pub const VREPRINT: usize = 0xb;
490 pub const VSUSP: usize = 0xc;
491 pub const VSTART: usize = 0xd;
492 pub const VSTOP: usize = 0xe;
493 pub const VDISCARD: usize = 0x10;
494 pub const VTIME: usize = 0x7;
495 pub const IXON: crate::tcflag_t = 0x200;
496 pub const IXOFF: crate::tcflag_t = 0x400;
497 pub const ONLCR: crate::tcflag_t = 0x2;
498 pub const CSIZE: crate::tcflag_t = 0x300;
499 pub const CS6: crate::tcflag_t = 0x100;
500 pub const CS7: crate::tcflag_t = 0x200;
501 pub const CS8: crate::tcflag_t = 0x300;
502 pub const CSTOPB: crate::tcflag_t = 0x400;
503 pub const CREAD: crate::tcflag_t = 0x800;
504 pub const PARENB: crate::tcflag_t = 0x1000;
505 pub const PARODD: crate::tcflag_t = 0x2000;
506 pub const HUPCL: crate::tcflag_t = 0x4000;
507 pub const CLOCAL: crate::tcflag_t = 0x8000;
508 pub const ECHOKE: crate::tcflag_t = 0x1;
509 pub const ECHOE: crate::tcflag_t = 0x2;
510 pub const ECHOK: crate::tcflag_t = 0x4;
511 pub const ECHONL: crate::tcflag_t = 0x10;
512 pub const ECHOPRT: crate::tcflag_t = 0x20;
513 pub const ECHOCTL: crate::tcflag_t = 0x40;
514 pub const ISIG: crate::tcflag_t = 0x80;
515 pub const ICANON: crate::tcflag_t = 0x100;
516 pub const PENDIN: crate::tcflag_t = 0x20000000;
517 pub const NOFLSH: crate::tcflag_t = 0x80000000;
518 pub const VSWTC: usize = 9;
519 pub const OLCUC: crate::tcflag_t = 0o000004;
520 pub const NLDLY: crate::tcflag_t = 0o001400;
521 pub const CRDLY: crate::tcflag_t = 0o030000;
522 pub const TABDLY: crate::tcflag_t = 0o006000;
523 pub const BSDLY: crate::tcflag_t = 0o100000;
524 pub const FFDLY: crate::tcflag_t = 0o040000;
525 pub const VTDLY: crate::tcflag_t = 0o200000;
526 pub const XTABS: crate::tcflag_t = 0o006000;
527 
528 pub const B0: crate::speed_t = 0o000000;
529 pub const B50: crate::speed_t = 0o000001;
530 pub const B75: crate::speed_t = 0o000002;
531 pub const B110: crate::speed_t = 0o000003;
532 pub const B134: crate::speed_t = 0o000004;
533 pub const B150: crate::speed_t = 0o000005;
534 pub const B200: crate::speed_t = 0o000006;
535 pub const B300: crate::speed_t = 0o000007;
536 pub const B600: crate::speed_t = 0o000010;
537 pub const B1200: crate::speed_t = 0o000011;
538 pub const B1800: crate::speed_t = 0o000012;
539 pub const B2400: crate::speed_t = 0o000013;
540 pub const B4800: crate::speed_t = 0o000014;
541 pub const B9600: crate::speed_t = 0o000015;
542 pub const B19200: crate::speed_t = 0o000016;
543 pub const B38400: crate::speed_t = 0o000017;
544 pub const EXTA: crate::speed_t = B19200;
545 pub const EXTB: crate::speed_t = B38400;
546 pub const CBAUDEX: crate::speed_t = 0o000020;
547 pub const B57600: crate::speed_t = 0o0020;
548 pub const B115200: crate::speed_t = 0o0021;
549 pub const B230400: crate::speed_t = 0o0022;
550 pub const B460800: crate::speed_t = 0o0023;
551 pub const B500000: crate::speed_t = 0o0024;
552 pub const B576000: crate::speed_t = 0o0025;
553 pub const B921600: crate::speed_t = 0o0026;
554 pub const B1000000: crate::speed_t = 0o0027;
555 pub const B1152000: crate::speed_t = 0o0030;
556 pub const B1500000: crate::speed_t = 0o0031;
557 pub const B2000000: crate::speed_t = 0o0032;
558 pub const B2500000: crate::speed_t = 0o0033;
559 pub const B3000000: crate::speed_t = 0o0034;
560 pub const B3500000: crate::speed_t = 0o0035;
561 pub const B4000000: crate::speed_t = 0o0036;
562 
563 pub const VEOL: usize = 6;
564 pub const VEOL2: usize = 8;
565 pub const VMIN: usize = 5;
566 pub const IEXTEN: crate::tcflag_t = 0x400;
567 pub const TOSTOP: crate::tcflag_t = 0x400000;
568 pub const FLUSHO: crate::tcflag_t = 0x800000;
569 pub const EXTPROC: crate::tcflag_t = 0x10000000;
570 
571 // Syscall table
572 pub const SYS_restart_syscall: c_long = 0;
573 pub const SYS_exit: c_long = 1;
574 pub const SYS_fork: c_long = 2;
575 pub const SYS_read: c_long = 3;
576 pub const SYS_write: c_long = 4;
577 pub const SYS_open: c_long = 5;
578 pub const SYS_close: c_long = 6;
579 pub const SYS_waitpid: c_long = 7;
580 pub const SYS_creat: c_long = 8;
581 pub const SYS_link: c_long = 9;
582 pub const SYS_unlink: c_long = 10;
583 pub const SYS_execve: c_long = 11;
584 pub const SYS_chdir: c_long = 12;
585 pub const SYS_time: c_long = 13;
586 pub const SYS_mknod: c_long = 14;
587 pub const SYS_chmod: c_long = 15;
588 pub const SYS_lchown: c_long = 16;
589 pub const SYS_break: c_long = 17;
590 pub const SYS_oldstat: c_long = 18;
591 pub const SYS_lseek: c_long = 19;
592 pub const SYS_getpid: c_long = 20;
593 pub const SYS_mount: c_long = 21;
594 pub const SYS_umount: c_long = 22;
595 pub const SYS_setuid: c_long = 23;
596 pub const SYS_getuid: c_long = 24;
597 pub const SYS_stime: c_long = 25;
598 pub const SYS_ptrace: c_long = 26;
599 pub const SYS_alarm: c_long = 27;
600 pub const SYS_oldfstat: c_long = 28;
601 pub const SYS_pause: c_long = 29;
602 pub const SYS_utime: c_long = 30;
603 pub const SYS_stty: c_long = 31;
604 pub const SYS_gtty: c_long = 32;
605 pub const SYS_access: c_long = 33;
606 pub const SYS_nice: c_long = 34;
607 pub const SYS_ftime: c_long = 35;
608 pub const SYS_sync: c_long = 36;
609 pub const SYS_kill: c_long = 37;
610 pub const SYS_rename: c_long = 38;
611 pub const SYS_mkdir: c_long = 39;
612 pub const SYS_rmdir: c_long = 40;
613 pub const SYS_dup: c_long = 41;
614 pub const SYS_pipe: c_long = 42;
615 pub const SYS_times: c_long = 43;
616 pub const SYS_prof: c_long = 44;
617 pub const SYS_brk: c_long = 45;
618 pub const SYS_setgid: c_long = 46;
619 pub const SYS_getgid: c_long = 47;
620 pub const SYS_signal: c_long = 48;
621 pub const SYS_geteuid: c_long = 49;
622 pub const SYS_getegid: c_long = 50;
623 pub const SYS_acct: c_long = 51;
624 pub const SYS_umount2: c_long = 52;
625 pub const SYS_lock: c_long = 53;
626 pub const SYS_ioctl: c_long = 54;
627 pub const SYS_fcntl: c_long = 55;
628 pub const SYS_mpx: c_long = 56;
629 pub const SYS_setpgid: c_long = 57;
630 pub const SYS_ulimit: c_long = 58;
631 pub const SYS_oldolduname: c_long = 59;
632 pub const SYS_umask: c_long = 60;
633 pub const SYS_chroot: c_long = 61;
634 pub const SYS_ustat: c_long = 62;
635 pub const SYS_dup2: c_long = 63;
636 pub const SYS_getppid: c_long = 64;
637 pub const SYS_getpgrp: c_long = 65;
638 pub const SYS_setsid: c_long = 66;
639 pub const SYS_sigaction: c_long = 67;
640 pub const SYS_sgetmask: c_long = 68;
641 pub const SYS_ssetmask: c_long = 69;
642 pub const SYS_setreuid: c_long = 70;
643 pub const SYS_setregid: c_long = 71;
644 pub const SYS_sigsuspend: c_long = 72;
645 pub const SYS_sigpending: c_long = 73;
646 pub const SYS_sethostname: c_long = 74;
647 pub const SYS_setrlimit: c_long = 75;
648 pub const SYS_getrlimit: c_long = 76;
649 pub const SYS_getrusage: c_long = 77;
650 pub const SYS_gettimeofday: c_long = 78;
651 pub const SYS_settimeofday: c_long = 79;
652 pub const SYS_getgroups: c_long = 80;
653 pub const SYS_setgroups: c_long = 81;
654 pub const SYS_select: c_long = 82;
655 pub const SYS_symlink: c_long = 83;
656 pub const SYS_oldlstat: c_long = 84;
657 pub const SYS_readlink: c_long = 85;
658 pub const SYS_uselib: c_long = 86;
659 pub const SYS_swapon: c_long = 87;
660 pub const SYS_reboot: c_long = 88;
661 pub const SYS_readdir: c_long = 89;
662 pub const SYS_mmap: c_long = 90;
663 pub const SYS_munmap: c_long = 91;
664 pub const SYS_truncate: c_long = 92;
665 pub const SYS_ftruncate: c_long = 93;
666 pub const SYS_fchmod: c_long = 94;
667 pub const SYS_fchown: c_long = 95;
668 pub const SYS_getpriority: c_long = 96;
669 pub const SYS_setpriority: c_long = 97;
670 pub const SYS_profil: c_long = 98;
671 pub const SYS_statfs: c_long = 99;
672 pub const SYS_fstatfs: c_long = 100;
673 pub const SYS_ioperm: c_long = 101;
674 pub const SYS_socketcall: c_long = 102;
675 pub const SYS_syslog: c_long = 103;
676 pub const SYS_setitimer: c_long = 104;
677 pub const SYS_getitimer: c_long = 105;
678 pub const SYS_stat: c_long = 106;
679 pub const SYS_lstat: c_long = 107;
680 pub const SYS_fstat: c_long = 108;
681 pub const SYS_olduname: c_long = 109;
682 pub const SYS_iopl: c_long = 110;
683 pub const SYS_vhangup: c_long = 111;
684 pub const SYS_idle: c_long = 112;
685 pub const SYS_vm86: c_long = 113;
686 pub const SYS_wait4: c_long = 114;
687 pub const SYS_swapoff: c_long = 115;
688 pub const SYS_sysinfo: c_long = 116;
689 pub const SYS_ipc: c_long = 117;
690 pub const SYS_fsync: c_long = 118;
691 pub const SYS_sigreturn: c_long = 119;
692 pub const SYS_clone: c_long = 120;
693 pub const SYS_setdomainname: c_long = 121;
694 pub const SYS_uname: c_long = 122;
695 pub const SYS_modify_ldt: c_long = 123;
696 pub const SYS_adjtimex: c_long = 124;
697 pub const SYS_mprotect: c_long = 125;
698 pub const SYS_sigprocmask: c_long = 126;
699 #[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")]
700 pub const SYS_create_module: c_long = 127;
701 pub const SYS_init_module: c_long = 128;
702 pub const SYS_delete_module: c_long = 129;
703 #[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")]
704 pub const SYS_get_kernel_syms: c_long = 130;
705 pub const SYS_quotactl: c_long = 131;
706 pub const SYS_getpgid: c_long = 132;
707 pub const SYS_fchdir: c_long = 133;
708 pub const SYS_bdflush: c_long = 134;
709 pub const SYS_sysfs: c_long = 135;
710 pub const SYS_personality: c_long = 136;
711 pub const SYS_afs_syscall: c_long = 137; /* Syscall for Andrew File System */
712 pub const SYS_setfsuid: c_long = 138;
713 pub const SYS_setfsgid: c_long = 139;
714 pub const SYS__llseek: c_long = 140;
715 pub const SYS_getdents: c_long = 141;
716 pub const SYS__newselect: c_long = 142;
717 pub const SYS_flock: c_long = 143;
718 pub const SYS_msync: c_long = 144;
719 pub const SYS_readv: c_long = 145;
720 pub const SYS_writev: c_long = 146;
721 pub const SYS_getsid: c_long = 147;
722 pub const SYS_fdatasync: c_long = 148;
723 pub const SYS__sysctl: c_long = 149;
724 pub const SYS_mlock: c_long = 150;
725 pub const SYS_munlock: c_long = 151;
726 pub const SYS_mlockall: c_long = 152;
727 pub const SYS_munlockall: c_long = 153;
728 pub const SYS_sched_setparam: c_long = 154;
729 pub const SYS_sched_getparam: c_long = 155;
730 pub const SYS_sched_setscheduler: c_long = 156;
731 pub const SYS_sched_getscheduler: c_long = 157;
732 pub const SYS_sched_yield: c_long = 158;
733 pub const SYS_sched_get_priority_max: c_long = 159;
734 pub const SYS_sched_get_priority_min: c_long = 160;
735 pub const SYS_sched_rr_get_interval: c_long = 161;
736 pub const SYS_nanosleep: c_long = 162;
737 pub const SYS_mremap: c_long = 163;
738 pub const SYS_setresuid: c_long = 164;
739 pub const SYS_getresuid: c_long = 165;
740 #[deprecated(since = "0.2.70", note = "Functional up to 2.6 kernel")]
741 pub const SYS_query_module: c_long = 166;
742 pub const SYS_poll: c_long = 167;
743 pub const SYS_nfsservctl: c_long = 168;
744 pub const SYS_setresgid: c_long = 169;
745 pub const SYS_getresgid: c_long = 170;
746 pub const SYS_prctl: c_long = 171;
747 pub const SYS_rt_sigreturn: c_long = 172;
748 pub const SYS_rt_sigaction: c_long = 173;
749 pub const SYS_rt_sigprocmask: c_long = 174;
750 pub const SYS_rt_sigpending: c_long = 175;
751 pub const SYS_rt_sigtimedwait: c_long = 176;
752 pub const SYS_rt_sigqueueinfo: c_long = 177;
753 pub const SYS_rt_sigsuspend: c_long = 178;
754 pub const SYS_pread64: c_long = 179;
755 pub const SYS_pwrite64: c_long = 180;
756 pub const SYS_chown: c_long = 181;
757 pub const SYS_getcwd: c_long = 182;
758 pub const SYS_capget: c_long = 183;
759 pub const SYS_capset: c_long = 184;
760 pub const SYS_sigaltstack: c_long = 185;
761 pub const SYS_sendfile: c_long = 186;
762 pub const SYS_getpmsg: c_long = 187; /* some people actually want streams */
763 pub const SYS_putpmsg: c_long = 188; /* some people actually want streams */
764 pub const SYS_vfork: c_long = 189;
765 pub const SYS_ugetrlimit: c_long = 190; /* SuS compliant getrlimit */
766 pub const SYS_readahead: c_long = 191;
767 pub const SYS_pciconfig_read: c_long = 198;
768 pub const SYS_pciconfig_write: c_long = 199;
769 pub const SYS_pciconfig_iobase: c_long = 200;
770 pub const SYS_multiplexer: c_long = 201;
771 pub const SYS_getdents64: c_long = 202;
772 pub const SYS_pivot_root: c_long = 203;
773 pub const SYS_madvise: c_long = 205;
774 pub const SYS_mincore: c_long = 206;
775 pub const SYS_gettid: c_long = 207;
776 pub const SYS_tkill: c_long = 208;
777 pub const SYS_setxattr: c_long = 209;
778 pub const SYS_lsetxattr: c_long = 210;
779 pub const SYS_fsetxattr: c_long = 211;
780 pub const SYS_getxattr: c_long = 212;
781 pub const SYS_lgetxattr: c_long = 213;
782 pub const SYS_fgetxattr: c_long = 214;
783 pub const SYS_listxattr: c_long = 215;
784 pub const SYS_llistxattr: c_long = 216;
785 pub const SYS_flistxattr: c_long = 217;
786 pub const SYS_removexattr: c_long = 218;
787 pub const SYS_lremovexattr: c_long = 219;
788 pub const SYS_fremovexattr: c_long = 220;
789 pub const SYS_futex: c_long = 221;
790 pub const SYS_sched_setaffinity: c_long = 222;
791 pub const SYS_sched_getaffinity: c_long = 223;
792 pub const SYS_tuxcall: c_long = 225;
793 pub const SYS_io_setup: c_long = 227;
794 pub const SYS_io_destroy: c_long = 228;
795 pub const SYS_io_getevents: c_long = 229;
796 pub const SYS_io_submit: c_long = 230;
797 pub const SYS_io_cancel: c_long = 231;
798 pub const SYS_set_tid_address: c_long = 232;
799 pub const SYS_exit_group: c_long = 234;
800 pub const SYS_lookup_dcookie: c_long = 235;
801 pub const SYS_epoll_create: c_long = 236;
802 pub const SYS_epoll_ctl: c_long = 237;
803 pub const SYS_epoll_wait: c_long = 238;
804 pub const SYS_remap_file_pages: c_long = 239;
805 pub const SYS_timer_create: c_long = 240;
806 pub const SYS_timer_settime: c_long = 241;
807 pub const SYS_timer_gettime: c_long = 242;
808 pub const SYS_timer_getoverrun: c_long = 243;
809 pub const SYS_timer_delete: c_long = 244;
810 pub const SYS_clock_settime: c_long = 245;
811 pub const SYS_clock_gettime: c_long = 246;
812 pub const SYS_clock_getres: c_long = 247;
813 pub const SYS_clock_nanosleep: c_long = 248;
814 pub const SYS_swapcontext: c_long = 249;
815 pub const SYS_tgkill: c_long = 250;
816 pub const SYS_utimes: c_long = 251;
817 pub const SYS_statfs64: c_long = 252;
818 pub const SYS_fstatfs64: c_long = 253;
819 pub const SYS_rtas: c_long = 255;
820 pub const SYS_sys_debug_setcontext: c_long = 256;
821 pub const SYS_migrate_pages: c_long = 258;
822 pub const SYS_mbind: c_long = 259;
823 pub const SYS_get_mempolicy: c_long = 260;
824 pub const SYS_set_mempolicy: c_long = 261;
825 pub const SYS_mq_open: c_long = 262;
826 pub const SYS_mq_unlink: c_long = 263;
827 pub const SYS_mq_timedsend: c_long = 264;
828 pub const SYS_mq_timedreceive: c_long = 265;
829 pub const SYS_mq_notify: c_long = 266;
830 pub const SYS_mq_getsetattr: c_long = 267;
831 pub const SYS_kexec_load: c_long = 268;
832 pub const SYS_add_key: c_long = 269;
833 pub const SYS_request_key: c_long = 270;
834 pub const SYS_keyctl: c_long = 271;
835 pub const SYS_waitid: c_long = 272;
836 pub const SYS_ioprio_set: c_long = 273;
837 pub const SYS_ioprio_get: c_long = 274;
838 pub const SYS_inotify_init: c_long = 275;
839 pub const SYS_inotify_add_watch: c_long = 276;
840 pub const SYS_inotify_rm_watch: c_long = 277;
841 pub const SYS_spu_run: c_long = 278;
842 pub const SYS_spu_create: c_long = 279;
843 pub const SYS_pselect6: c_long = 280;
844 pub const SYS_ppoll: c_long = 281;
845 pub const SYS_unshare: c_long = 282;
846 pub const SYS_splice: c_long = 283;
847 pub const SYS_tee: c_long = 284;
848 pub const SYS_vmsplice: c_long = 285;
849 pub const SYS_openat: c_long = 286;
850 pub const SYS_mkdirat: c_long = 287;
851 pub const SYS_mknodat: c_long = 288;
852 pub const SYS_fchownat: c_long = 289;
853 pub const SYS_futimesat: c_long = 290;
854 pub const SYS_newfstatat: c_long = 291;
855 pub const SYS_unlinkat: c_long = 292;
856 pub const SYS_renameat: c_long = 293;
857 pub const SYS_linkat: c_long = 294;
858 pub const SYS_symlinkat: c_long = 295;
859 pub const SYS_readlinkat: c_long = 296;
860 pub const SYS_fchmodat: c_long = 297;
861 pub const SYS_faccessat: c_long = 298;
862 pub const SYS_get_robust_list: c_long = 299;
863 pub const SYS_set_robust_list: c_long = 300;
864 pub const SYS_move_pages: c_long = 301;
865 pub const SYS_getcpu: c_long = 302;
866 pub const SYS_epoll_pwait: c_long = 303;
867 pub const SYS_utimensat: c_long = 304;
868 pub const SYS_signalfd: c_long = 305;
869 pub const SYS_timerfd_create: c_long = 306;
870 pub const SYS_eventfd: c_long = 307;
871 pub const SYS_sync_file_range2: c_long = 308;
872 pub const SYS_fallocate: c_long = 309;
873 pub const SYS_subpage_prot: c_long = 310;
874 pub const SYS_timerfd_settime: c_long = 311;
875 pub const SYS_timerfd_gettime: c_long = 312;
876 pub const SYS_signalfd4: c_long = 313;
877 pub const SYS_eventfd2: c_long = 314;
878 pub const SYS_epoll_create1: c_long = 315;
879 pub const SYS_dup3: c_long = 316;
880 pub const SYS_pipe2: c_long = 317;
881 pub const SYS_inotify_init1: c_long = 318;
882 pub const SYS_perf_event_open: c_long = 319;
883 pub const SYS_preadv: c_long = 320;
884 pub const SYS_pwritev: c_long = 321;
885 pub const SYS_rt_tgsigqueueinfo: c_long = 322;
886 pub const SYS_fanotify_init: c_long = 323;
887 pub const SYS_fanotify_mark: c_long = 324;
888 pub const SYS_prlimit64: c_long = 325;
889 pub const SYS_socket: c_long = 326;
890 pub const SYS_bind: c_long = 327;
891 pub const SYS_connect: c_long = 328;
892 pub const SYS_listen: c_long = 329;
893 pub const SYS_accept: c_long = 330;
894 pub const SYS_getsockname: c_long = 331;
895 pub const SYS_getpeername: c_long = 332;
896 pub const SYS_socketpair: c_long = 333;
897 pub const SYS_send: c_long = 334;
898 pub const SYS_sendto: c_long = 335;
899 pub const SYS_recv: c_long = 336;
900 pub const SYS_recvfrom: c_long = 337;
901 pub const SYS_shutdown: c_long = 338;
902 pub const SYS_setsockopt: c_long = 339;
903 pub const SYS_getsockopt: c_long = 340;
904 pub const SYS_sendmsg: c_long = 341;
905 pub const SYS_recvmsg: c_long = 342;
906 pub const SYS_recvmmsg: c_long = 343;
907 pub const SYS_accept4: c_long = 344;
908 pub const SYS_name_to_handle_at: c_long = 345;
909 pub const SYS_open_by_handle_at: c_long = 346;
910 pub const SYS_clock_adjtime: c_long = 347;
911 pub const SYS_syncfs: c_long = 348;
912 pub const SYS_sendmmsg: c_long = 349;
913 pub const SYS_setns: c_long = 350;
914 pub const SYS_process_vm_readv: c_long = 351;
915 pub const SYS_process_vm_writev: c_long = 352;
916 pub const SYS_finit_module: c_long = 353;
917 pub const SYS_kcmp: c_long = 354;
918 pub const SYS_sched_setattr: c_long = 355;
919 pub const SYS_sched_getattr: c_long = 356;
920 pub const SYS_renameat2: c_long = 357;
921 pub const SYS_seccomp: c_long = 358;
922 pub const SYS_getrandom: c_long = 359;
923 pub const SYS_memfd_create: c_long = 360;
924 pub const SYS_bpf: c_long = 361;
925 pub const SYS_execveat: c_long = 362;
926 pub const SYS_switch_endian: c_long = 363;
927 pub const SYS_userfaultfd: c_long = 364;
928 pub const SYS_membarrier: c_long = 365;
929 pub const SYS_mlock2: c_long = 378;
930 pub const SYS_copy_file_range: c_long = 379;
931 pub const SYS_preadv2: c_long = 380;
932 pub const SYS_pwritev2: c_long = 381;
933 pub const SYS_kexec_file_load: c_long = 382;
934 pub const SYS_statx: c_long = 383;
935 pub const SYS_rseq: c_long = 387;
936 pub const SYS_pidfd_send_signal: c_long = 424;
937 pub const SYS_io_uring_setup: c_long = 425;
938 pub const SYS_io_uring_enter: c_long = 426;
939 pub const SYS_io_uring_register: c_long = 427;
940 pub const SYS_open_tree: c_long = 428;
941 pub const SYS_move_mount: c_long = 429;
942 pub const SYS_fsopen: c_long = 430;
943 pub const SYS_fsconfig: c_long = 431;
944 pub const SYS_fsmount: c_long = 432;
945 pub const SYS_fspick: c_long = 433;
946 pub const SYS_pidfd_open: c_long = 434;
947 pub const SYS_clone3: c_long = 435;
948 pub const SYS_close_range: c_long = 436;
949 pub const SYS_openat2: c_long = 437;
950 pub const SYS_pidfd_getfd: c_long = 438;
951 pub const SYS_faccessat2: c_long = 439;
952 pub const SYS_process_madvise: c_long = 440;
953 pub const SYS_epoll_pwait2: c_long = 441;
954 pub const SYS_mount_setattr: c_long = 442;
955 pub const SYS_quotactl_fd: c_long = 443;
956 pub const SYS_landlock_create_ruleset: c_long = 444;
957 pub const SYS_landlock_add_rule: c_long = 445;
958 pub const SYS_landlock_restrict_self: c_long = 446;
959 pub const SYS_memfd_secret: c_long = 447;
960 pub const SYS_process_mrelease: c_long = 448;
961 pub const SYS_futex_waitv: c_long = 449;
962 pub const SYS_set_mempolicy_home_node: c_long = 450;
963 
964 extern "C" {
965     pub fn sysctl(
966         name: *mut c_int,
967         namelen: c_int,
968         oldp: *mut c_void,
969         oldlenp: *mut size_t,
970         newp: *mut c_void,
971         newlen: size_t,
972     ) -> c_int;
973 }
974