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