1 //! x86_64-specific definitions for 64-bit linux-like values
4 pub type wchar_t
= i32;
5 pub type nlink_t
= u64;
6 pub type blksize_t
= i64;
8 pub type suseconds_t
= i64;
9 pub type __u64
= ::c_ulonglong
;
12 pub struct sigaction
{
13 pub sa_sigaction
: ::sighandler_t
,
14 pub sa_mask
: ::sigset_t
,
15 #[cfg(target_arch = "sparc64")]
17 pub sa_flags
: ::c_int
,
18 pub sa_restorer
: ::Option
<extern fn()>,
22 pub f_type
: ::__fsword_t
,
23 pub f_bsize
: ::__fsword_t
,
24 pub f_blocks
: ::fsblkcnt_t
,
25 pub f_bfree
: ::fsblkcnt_t
,
26 pub f_bavail
: ::fsblkcnt_t
,
28 pub f_files
: ::fsfilcnt_t
,
29 pub f_ffree
: ::fsfilcnt_t
,
32 pub f_namelen
: ::__fsword_t
,
33 pub f_frsize
: ::__fsword_t
,
34 f_spare
: [::__fsword_t
; 5],
38 pub l_type
: ::c_short
,
39 pub l_whence
: ::c_short
,
46 pub l_type
: ::c_short
,
47 pub l_whence
: ::c_short
,
48 pub l_start
: ::off64_t
,
53 pub struct siginfo_t
{
54 pub si_signo
: ::c_int
,
55 pub si_errno
: ::c_int
,
60 note
="Please leave a comment on \
61 https://github.com/rust-lang/libc/pull/1316 if you're using \
64 pub _pad
: [::c_int
; 29],
69 pub ss_sp
: *mut ::c_void
,
70 pub ss_flags
: ::c_int
,
77 pub st_nlink
: ::nlink_t
,
78 pub st_mode
: ::mode_t
,
84 pub st_blksize
: ::blksize_t
,
85 pub st_blocks
: ::blkcnt_t
,
86 pub st_atime
: ::time_t
,
87 pub st_atime_nsec
: i64,
88 pub st_mtime
: ::time_t
,
89 pub st_mtime_nsec
: i64,
90 pub st_ctime
: ::time_t
,
91 pub st_ctime_nsec
: i64,
97 pub st_ino
: ::ino64_t
,
98 pub st_nlink
: ::nlink_t
,
99 pub st_mode
: ::mode_t
,
103 pub st_rdev
: ::dev_t
,
104 pub st_size
: ::off_t
,
105 pub st_blksize
: ::blksize_t
,
106 pub st_blocks
: ::blkcnt64_t
,
107 pub st_atime
: ::time_t
,
108 pub st_atime_nsec
: i64,
109 pub st_mtime
: ::time_t
,
110 pub st_mtime_nsec
: i64,
111 pub st_ctime
: ::time_t
,
112 pub st_ctime_nsec
: i64,
113 __reserved
: [i64; 3],
116 pub struct statfs64
{
117 pub f_type
: ::__fsword_t
,
118 pub f_bsize
: ::__fsword_t
,
124 pub f_fsid
: ::fsid_t
,
125 pub f_namelen
: ::__fsword_t
,
126 pub f_frsize
: ::__fsword_t
,
127 pub f_flags
: ::__fsword_t
,
128 pub f_spare
: [::__fsword_t
; 4],
131 pub struct statvfs64
{
132 pub f_bsize
: ::c_ulong
,
133 pub f_frsize
: ::c_ulong
,
140 pub f_fsid
: ::c_ulong
,
141 pub f_flag
: ::c_ulong
,
142 pub f_namemax
: ::c_ulong
,
143 __f_spare
: [::c_int
; 6],
146 pub struct pthread_attr_t
{
147 #[cfg(target_pointer_width = "32")]
149 #[cfg(target_pointer_width = "64")]
153 pub struct _libc_fpxreg
{
154 pub significand
: [u16; 4],
159 pub struct _libc_xmmreg
{
160 pub element
: [u32; 4],
163 pub struct _libc_fpstate
{
172 pub _st
: [_libc_fpxreg
; 8],
173 pub _xmm
: [_libc_xmmreg
; 16],
174 __private
: [u64; 12],
177 pub struct user_regs_struct
{
178 pub r15
: ::c_ulonglong
,
179 pub r14
: ::c_ulonglong
,
180 pub r13
: ::c_ulonglong
,
181 pub r12
: ::c_ulonglong
,
182 pub rbp
: ::c_ulonglong
,
183 pub rbx
: ::c_ulonglong
,
184 pub r11
: ::c_ulonglong
,
185 pub r10
: ::c_ulonglong
,
186 pub r9
: ::c_ulonglong
,
187 pub r8
: ::c_ulonglong
,
188 pub rax
: ::c_ulonglong
,
189 pub rcx
: ::c_ulonglong
,
190 pub rdx
: ::c_ulonglong
,
191 pub rsi
: ::c_ulonglong
,
192 pub rdi
: ::c_ulonglong
,
193 pub orig_rax
: ::c_ulonglong
,
194 pub rip
: ::c_ulonglong
,
195 pub cs
: ::c_ulonglong
,
196 pub eflags
: ::c_ulonglong
,
197 pub rsp
: ::c_ulonglong
,
198 pub ss
: ::c_ulonglong
,
199 pub fs_base
: ::c_ulonglong
,
200 pub gs_base
: ::c_ulonglong
,
201 pub ds
: ::c_ulonglong
,
202 pub es
: ::c_ulonglong
,
203 pub fs
: ::c_ulonglong
,
204 pub gs
: ::c_ulonglong
,
208 pub regs
: user_regs_struct
,
209 pub u_fpvalid
: ::c_int
,
210 pub i387
: user_fpregs_struct
,
211 pub u_tsize
: ::c_ulonglong
,
212 pub u_dsize
: ::c_ulonglong
,
213 pub u_ssize
: ::c_ulonglong
,
214 pub start_code
: ::c_ulonglong
,
215 pub start_stack
: ::c_ulonglong
,
216 pub signal
: ::c_longlong
,
218 #[cfg(target_pointer_width = "32")]
220 pub u_ar0
: *mut user_regs_struct
,
221 #[cfg(target_pointer_width = "32")]
223 pub u_fpstate
: *mut user_fpregs_struct
,
224 pub magic
: ::c_ulonglong
,
225 pub u_comm
: [::c_char
; 32],
226 pub u_debugreg
: [::c_ulonglong
; 8],
229 pub struct mcontext_t
{
230 pub gregs
: [greg_t
; 23],
231 pub fpregs
: *mut _libc_fpstate
,
235 pub struct ipc_perm
{
241 pub mode
: ::c_ushort
,
243 pub __seq
: ::c_ushort
,
249 pub struct shmid_ds
{
250 pub shm_perm
: ::ipc_perm
,
251 pub shm_segsz
: ::size_t
,
252 pub shm_atime
: ::time_t
,
253 pub shm_dtime
: ::time_t
,
254 pub shm_ctime
: ::time_t
,
255 pub shm_cpid
: ::pid_t
,
256 pub shm_lpid
: ::pid_t
,
257 pub shm_nattch
: ::shmatt_t
,
262 pub struct termios2
{
263 pub c_iflag
: ::tcflag_t
,
264 pub c_oflag
: ::tcflag_t
,
265 pub c_cflag
: ::tcflag_t
,
266 pub c_lflag
: ::tcflag_t
,
268 pub c_cc
: [::cc_t
; 19],
269 pub c_ispeed
: ::speed_t
,
270 pub c_ospeed
: ::speed_t
,
273 pub struct ip_mreqn
{
274 pub imr_multiaddr
: ::in_addr
,
275 pub imr_address
: ::in_addr
,
276 pub imr_ifindex
: ::c_int
,
281 pub struct user_fpregs_struct
{
286 pub rip
: ::c_ulonglong
,
287 pub rdp
: ::c_ulonglong
,
289 pub mxcr_mask
: ::c_uint
,
290 pub st_space
: [::c_uint
; 32],
291 pub xmm_space
: [::c_uint
; 64],
292 padding
: [::c_uint
; 24],
295 pub struct ucontext_t
{
296 pub uc_flags
: ::c_ulong
,
297 pub uc_link
: *mut ucontext_t
,
298 pub uc_stack
: ::stack_t
,
299 pub uc_mcontext
: mcontext_t
,
300 pub uc_sigmask
: ::sigset_t
,
301 __private
: [u8; 512],
302 // FIXME: the shadow stack field requires glibc >= 2.28.
303 // Re-add once we drop compatibility with glibc versions older than
306 // __ssp: [::c_ulonglong; 4],
311 if #[cfg(feature = "extra_traits")] {
312 impl PartialEq
for user_fpregs_struct
{
313 fn eq(&self, other
: &user_fpregs_struct
) -> bool
{
314 self.cwd
== other
.cwd
315 && self.swd
== other
.swd
316 && self.ftw
== other
.ftw
317 && self.fop
== other
.fop
318 && self.rip
== other
.rip
319 && self.rdp
== other
.rdp
320 && self.mxcsr
== other
.mxcsr
321 && self.mxcr_mask
== other
.mxcr_mask
322 && self.st_space
== other
.st_space
326 .zip(other
.xmm_space
.iter())
328 // Ignore padding field
332 impl Eq
for user_fpregs_struct {}
334 impl ::fmt
::Debug
for user_fpregs_struct
{
335 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
336 f
.debug_struct("user_fpregs_struct")
337 .field("cwd", &self.cwd
)
338 .field("ftw", &self.ftw
)
339 .field("fop", &self.fop
)
340 .field("rip", &self.rip
)
341 .field("rdp", &self.rdp
)
342 .field("mxcsr", &self.mxcsr
)
343 .field("mxcr_mask", &self.mxcr_mask
)
344 .field("st_space", &self.st_space
)
345 // FIXME: .field("xmm_space", &self.xmm_space)
346 // Ignore padding field
351 impl ::hash
::Hash
for user_fpregs_struct
{
352 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
353 self.cwd
.hash(state
);
354 self.ftw
.hash(state
);
355 self.fop
.hash(state
);
356 self.rip
.hash(state
);
357 self.rdp
.hash(state
);
358 self.mxcsr
.hash(state
);
359 self.mxcr_mask
.hash(state
);
360 self.st_space
.hash(state
);
361 self.xmm_space
.hash(state
);
362 // Ignore padding field
366 impl PartialEq
for ucontext_t
{
367 fn eq(&self, other
: &ucontext_t
) -> bool
{
368 self.uc_flags
== other
.uc_flags
369 && self.uc_link
== other
.uc_link
370 && self.uc_stack
== other
.uc_stack
371 && self.uc_mcontext
== other
.uc_mcontext
372 && self.uc_sigmask
== other
.uc_sigmask
373 // Ignore __private field
377 impl Eq
for ucontext_t {}
379 impl ::fmt
::Debug
for ucontext_t
{
380 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
381 f
.debug_struct("ucontext_t")
382 .field("uc_flags", &self.uc_flags
)
383 .field("uc_link", &self.uc_link
)
384 .field("uc_stack", &self.uc_stack
)
385 .field("uc_mcontext", &self.uc_mcontext
)
386 .field("uc_sigmask", &self.uc_sigmask
)
387 // Ignore __private field
392 impl ::hash
::Hash
for ucontext_t
{
393 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
394 self.uc_flags
.hash(state
);
395 self.uc_link
.hash(state
);
396 self.uc_stack
.hash(state
);
397 self.uc_mcontext
.hash(state
);
398 self.uc_sigmask
.hash(state
);
399 // Ignore __private field
405 pub const POSIX_FADV_DONTNEED
: ::c_int
= 4;
406 pub const POSIX_FADV_NOREUSE
: ::c_int
= 5;
408 pub const VEOF
: usize = 4;
409 pub const RTLD_DEEPBIND
: ::c_int
= 0x8;
410 pub const RTLD_GLOBAL
: ::c_int
= 0x100;
411 pub const RTLD_NOLOAD
: ::c_int
= 0x4;
412 pub const TIOCGSOFTCAR
: ::c_ulong
= 0x5419;
413 pub const TIOCSSOFTCAR
: ::c_ulong
= 0x541A;
414 pub const TIOCGRS485
: ::c_int
= 0x542E;
415 pub const TIOCSRS485
: ::c_int
= 0x542F;
417 pub const RLIMIT_RSS
: ::__rlimit_resource_t
= 5;
418 pub const RLIMIT_AS
: ::__rlimit_resource_t
= 9;
419 pub const RLIMIT_MEMLOCK
: ::__rlimit_resource_t
= 8;
420 pub const RLIMIT_NOFILE
: ::__rlimit_resource_t
= 7;
421 pub const RLIMIT_NPROC
: ::__rlimit_resource_t
= 6;
423 pub const O_APPEND
: ::c_int
= 1024;
424 pub const O_CREAT
: ::c_int
= 64;
425 pub const O_EXCL
: ::c_int
= 128;
426 pub const O_NOCTTY
: ::c_int
= 256;
427 pub const O_NONBLOCK
: ::c_int
= 2048;
428 pub const O_SYNC
: ::c_int
= 1052672;
429 pub const O_RSYNC
: ::c_int
= 1052672;
430 pub const O_DSYNC
: ::c_int
= 4096;
431 pub const O_FSYNC
: ::c_int
= 0x101000;
432 pub const O_NOATIME
: ::c_int
= 0o1000000;
433 pub const O_PATH
: ::c_int
= 0o10000000;
434 pub const O_TMPFILE
: ::c_int
= 0o20000000 | O_DIRECTORY
;
436 pub const MADV_SOFT_OFFLINE
: ::c_int
= 101;
437 pub const MAP_GROWSDOWN
: ::c_int
= 0x0100;
439 pub const EDEADLK
: ::c_int
= 35;
440 pub const ENAMETOOLONG
: ::c_int
= 36;
441 pub const ENOLCK
: ::c_int
= 37;
442 pub const ENOSYS
: ::c_int
= 38;
443 pub const ENOTEMPTY
: ::c_int
= 39;
444 pub const ELOOP
: ::c_int
= 40;
445 pub const ENOMSG
: ::c_int
= 42;
446 pub const EIDRM
: ::c_int
= 43;
447 pub const ECHRNG
: ::c_int
= 44;
448 pub const EL2NSYNC
: ::c_int
= 45;
449 pub const EL3HLT
: ::c_int
= 46;
450 pub const EL3RST
: ::c_int
= 47;
451 pub const ELNRNG
: ::c_int
= 48;
452 pub const EUNATCH
: ::c_int
= 49;
453 pub const ENOCSI
: ::c_int
= 50;
454 pub const EL2HLT
: ::c_int
= 51;
455 pub const EBADE
: ::c_int
= 52;
456 pub const EBADR
: ::c_int
= 53;
457 pub const EXFULL
: ::c_int
= 54;
458 pub const ENOANO
: ::c_int
= 55;
459 pub const EBADRQC
: ::c_int
= 56;
460 pub const EBADSLT
: ::c_int
= 57;
461 pub const EMULTIHOP
: ::c_int
= 72;
462 pub const EOVERFLOW
: ::c_int
= 75;
463 pub const ENOTUNIQ
: ::c_int
= 76;
464 pub const EBADFD
: ::c_int
= 77;
465 pub const EBADMSG
: ::c_int
= 74;
466 pub const EREMCHG
: ::c_int
= 78;
467 pub const ELIBACC
: ::c_int
= 79;
468 pub const ELIBBAD
: ::c_int
= 80;
469 pub const ELIBSCN
: ::c_int
= 81;
470 pub const ELIBMAX
: ::c_int
= 82;
471 pub const ELIBEXEC
: ::c_int
= 83;
472 pub const EILSEQ
: ::c_int
= 84;
473 pub const ERESTART
: ::c_int
= 85;
474 pub const ESTRPIPE
: ::c_int
= 86;
475 pub const EUSERS
: ::c_int
= 87;
476 pub const ENOTSOCK
: ::c_int
= 88;
477 pub const EDESTADDRREQ
: ::c_int
= 89;
478 pub const EMSGSIZE
: ::c_int
= 90;
479 pub const EPROTOTYPE
: ::c_int
= 91;
480 pub const ENOPROTOOPT
: ::c_int
= 92;
481 pub const EPROTONOSUPPORT
: ::c_int
= 93;
482 pub const ESOCKTNOSUPPORT
: ::c_int
= 94;
483 pub const EOPNOTSUPP
: ::c_int
= 95;
484 pub const EPFNOSUPPORT
: ::c_int
= 96;
485 pub const EAFNOSUPPORT
: ::c_int
= 97;
486 pub const EADDRINUSE
: ::c_int
= 98;
487 pub const EADDRNOTAVAIL
: ::c_int
= 99;
488 pub const ENETDOWN
: ::c_int
= 100;
489 pub const ENETUNREACH
: ::c_int
= 101;
490 pub const ENETRESET
: ::c_int
= 102;
491 pub const ECONNABORTED
: ::c_int
= 103;
492 pub const ECONNRESET
: ::c_int
= 104;
493 pub const ENOBUFS
: ::c_int
= 105;
494 pub const EISCONN
: ::c_int
= 106;
495 pub const ENOTCONN
: ::c_int
= 107;
496 pub const ESHUTDOWN
: ::c_int
= 108;
497 pub const ETOOMANYREFS
: ::c_int
= 109;
498 pub const ETIMEDOUT
: ::c_int
= 110;
499 pub const ECONNREFUSED
: ::c_int
= 111;
500 pub const EHOSTDOWN
: ::c_int
= 112;
501 pub const EHOSTUNREACH
: ::c_int
= 113;
502 pub const EALREADY
: ::c_int
= 114;
503 pub const EINPROGRESS
: ::c_int
= 115;
504 pub const ESTALE
: ::c_int
= 116;
505 pub const EDQUOT
: ::c_int
= 122;
506 pub const ENOMEDIUM
: ::c_int
= 123;
507 pub const EMEDIUMTYPE
: ::c_int
= 124;
508 pub const ECANCELED
: ::c_int
= 125;
509 pub const ENOKEY
: ::c_int
= 126;
510 pub const EKEYEXPIRED
: ::c_int
= 127;
511 pub const EKEYREVOKED
: ::c_int
= 128;
512 pub const EKEYREJECTED
: ::c_int
= 129;
513 pub const EOWNERDEAD
: ::c_int
= 130;
514 pub const ENOTRECOVERABLE
: ::c_int
= 131;
515 pub const EHWPOISON
: ::c_int
= 133;
516 pub const ERFKILL
: ::c_int
= 132;
518 pub const SOL_SOCKET
: ::c_int
= 1;
520 pub const SO_REUSEADDR
: ::c_int
= 2;
521 pub const SO_TYPE
: ::c_int
= 3;
522 pub const SO_ERROR
: ::c_int
= 4;
523 pub const SO_DONTROUTE
: ::c_int
= 5;
524 pub const SO_BROADCAST
: ::c_int
= 6;
525 pub const SO_SNDBUF
: ::c_int
= 7;
526 pub const SO_RCVBUF
: ::c_int
= 8;
527 pub const SO_SNDBUFFORCE
: ::c_int
= 32;
528 pub const SO_RCVBUFFORCE
: ::c_int
= 33;
529 pub const SO_KEEPALIVE
: ::c_int
= 9;
530 pub const SO_OOBINLINE
: ::c_int
= 10;
531 pub const SO_NO_CHECK
: ::c_int
= 11;
532 pub const SO_PRIORITY
: ::c_int
= 12;
533 pub const SO_LINGER
: ::c_int
= 13;
534 pub const SO_BSDCOMPAT
: ::c_int
= 14;
535 pub const SO_REUSEPORT
: ::c_int
= 15;
536 pub const SO_PASSCRED
: ::c_int
= 16;
537 pub const SO_PEERCRED
: ::c_int
= 17;
538 pub const SO_RCVLOWAT
: ::c_int
= 18;
539 pub const SO_SNDLOWAT
: ::c_int
= 19;
540 pub const SO_RCVTIMEO
: ::c_int
= 20;
541 pub const SO_SNDTIMEO
: ::c_int
= 21;
542 pub const SO_SECURITY_AUTHENTICATION
: ::c_int
= 22;
543 pub const SO_SECURITY_ENCRYPTION_TRANSPORT
: ::c_int
= 23;
544 pub const SO_SECURITY_ENCRYPTION_NETWORK
: ::c_int
= 24;
545 pub const SO_BINDTODEVICE
: ::c_int
= 25;
546 pub const SO_ATTACH_FILTER
: ::c_int
= 26;
547 pub const SO_DETACH_FILTER
: ::c_int
= 27;
548 pub const SO_GET_FILTER
: ::c_int
= SO_ATTACH_FILTER
;
549 pub const SO_PEERNAME
: ::c_int
= 28;
550 pub const SO_TIMESTAMP
: ::c_int
= 29;
551 pub const SO_ACCEPTCONN
: ::c_int
= 30;
552 pub const SO_PEERSEC
: ::c_int
= 31;
553 pub const SO_PASSSEC
: ::c_int
= 34;
554 pub const SO_TIMESTAMPNS
: ::c_int
= 35;
555 pub const SCM_TIMESTAMPNS
: ::c_int
= SO_TIMESTAMPNS
;
556 pub const SO_MARK
: ::c_int
= 36;
557 pub const SO_PROTOCOL
: ::c_int
= 38;
558 pub const SO_DOMAIN
: ::c_int
= 39;
559 pub const SO_RXQ_OVFL
: ::c_int
= 40;
560 pub const SO_WIFI_STATUS
: ::c_int
= 41;
561 pub const SCM_WIFI_STATUS
: ::c_int
= SO_WIFI_STATUS
;
562 pub const SO_PEEK_OFF
: ::c_int
= 42;
563 pub const SO_NOFCS
: ::c_int
= 43;
564 pub const SO_LOCK_FILTER
: ::c_int
= 44;
565 pub const SO_SELECT_ERR_QUEUE
: ::c_int
= 45;
566 pub const SO_BUSY_POLL
: ::c_int
= 46;
567 pub const SO_MAX_PACING_RATE
: ::c_int
= 47;
568 pub const SO_BPF_EXTENSIONS
: ::c_int
= 48;
569 pub const SO_INCOMING_CPU
: ::c_int
= 49;
570 pub const SO_ATTACH_BPF
: ::c_int
= 50;
571 pub const SO_DETACH_BPF
: ::c_int
= SO_DETACH_FILTER
;
573 pub const SOCK_STREAM
: ::c_int
= 1;
574 pub const SOCK_DGRAM
: ::c_int
= 2;
576 pub const SA_ONSTACK
: ::c_int
= 0x08000000;
577 pub const SA_SIGINFO
: ::c_int
= 0x00000004;
578 pub const SA_NOCLDWAIT
: ::c_int
= 0x00000002;
580 pub const SIGTTIN
: ::c_int
= 21;
581 pub const SIGTTOU
: ::c_int
= 22;
582 pub const SIGXCPU
: ::c_int
= 24;
583 pub const SIGXFSZ
: ::c_int
= 25;
584 pub const SIGVTALRM
: ::c_int
= 26;
585 pub const SIGPROF
: ::c_int
= 27;
586 pub const SIGWINCH
: ::c_int
= 28;
587 pub const SIGCHLD
: ::c_int
= 17;
588 pub const SIGBUS
: ::c_int
= 7;
589 pub const SIGUSR1
: ::c_int
= 10;
590 pub const SIGUSR2
: ::c_int
= 12;
591 pub const SIGCONT
: ::c_int
= 18;
592 pub const SIGSTOP
: ::c_int
= 19;
593 pub const SIGTSTP
: ::c_int
= 20;
594 pub const SIGURG
: ::c_int
= 23;
595 pub const SIGIO
: ::c_int
= 29;
596 pub const SIGSYS
: ::c_int
= 31;
597 pub const SIGSTKFLT
: ::c_int
= 16;
598 #[deprecated(since = "0.2.55", note = "Use SIGSYS instead")]
599 pub const SIGUNUSED
: ::c_int
= 31;
600 pub const SIGPOLL
: ::c_int
= 29;
601 pub const SIGPWR
: ::c_int
= 30;
602 pub const SIG_SETMASK
: ::c_int
= 2;
603 pub const SIG_BLOCK
: ::c_int
= 0x000000;
604 pub const SIG_UNBLOCK
: ::c_int
= 0x01;
606 pub const POLLWRNORM
: ::c_short
= 0x100;
607 pub const POLLWRBAND
: ::c_short
= 0x200;
609 pub const O_ASYNC
: ::c_int
= 0x2000;
610 pub const O_NDELAY
: ::c_int
= 0x800;
612 pub const PTRACE_DETACH
: ::c_uint
= 17;
614 pub const EFD_NONBLOCK
: ::c_int
= 0x800;
616 pub const F_GETLK
: ::c_int
= 5;
617 pub const F_GETOWN
: ::c_int
= 9;
618 pub const F_SETOWN
: ::c_int
= 8;
619 pub const F_SETLK
: ::c_int
= 6;
620 pub const F_SETLKW
: ::c_int
= 7;
622 pub const F_RDLCK
: ::c_int
= 0;
623 pub const F_WRLCK
: ::c_int
= 1;
624 pub const F_UNLCK
: ::c_int
= 2;
626 pub const SFD_NONBLOCK
: ::c_int
= 0x0800;
628 pub const TCSANOW
: ::c_int
= 0;
629 pub const TCSADRAIN
: ::c_int
= 1;
630 pub const TCSAFLUSH
: ::c_int
= 2;
632 pub const TIOCLINUX
: ::c_ulong
= 0x541C;
633 pub const TIOCGSERIAL
: ::c_ulong
= 0x541E;
634 pub const TIOCEXCL
: ::c_ulong
= 0x540C;
635 pub const TIOCNXCL
: ::c_ulong
= 0x540D;
636 pub const TIOCSCTTY
: ::c_ulong
= 0x540E;
637 pub const TIOCSTI
: ::c_ulong
= 0x5412;
638 pub const TIOCMGET
: ::c_ulong
= 0x5415;
639 pub const TIOCMBIS
: ::c_ulong
= 0x5416;
640 pub const TIOCMBIC
: ::c_ulong
= 0x5417;
641 pub const TIOCMSET
: ::c_ulong
= 0x5418;
642 pub const TIOCCONS
: ::c_ulong
= 0x541D;
644 pub const TIOCM_ST
: ::c_int
= 0x008;
645 pub const TIOCM_SR
: ::c_int
= 0x010;
646 pub const TIOCM_CTS
: ::c_int
= 0x020;
647 pub const TIOCM_CAR
: ::c_int
= 0x040;
648 pub const TIOCM_RNG
: ::c_int
= 0x080;
649 pub const TIOCM_DSR
: ::c_int
= 0x100;
651 pub const SFD_CLOEXEC
: ::c_int
= 0x080000;
653 pub const NCCS
: usize = 32;
655 pub const O_TRUNC
: ::c_int
= 512;
657 pub const O_CLOEXEC
: ::c_int
= 0x80000;
659 pub const EBFONT
: ::c_int
= 59;
660 pub const ENOSTR
: ::c_int
= 60;
661 pub const ENODATA
: ::c_int
= 61;
662 pub const ETIME
: ::c_int
= 62;
663 pub const ENOSR
: ::c_int
= 63;
664 pub const ENONET
: ::c_int
= 64;
665 pub const ENOPKG
: ::c_int
= 65;
666 pub const EREMOTE
: ::c_int
= 66;
667 pub const ENOLINK
: ::c_int
= 67;
668 pub const EADV
: ::c_int
= 68;
669 pub const ESRMNT
: ::c_int
= 69;
670 pub const ECOMM
: ::c_int
= 70;
671 pub const EPROTO
: ::c_int
= 71;
672 pub const EDOTDOT
: ::c_int
= 73;
674 pub const SA_NODEFER
: ::c_int
= 0x40000000;
675 pub const SA_RESETHAND
: ::c_int
= 0x80000000;
676 pub const SA_RESTART
: ::c_int
= 0x10000000;
677 pub const SA_NOCLDSTOP
: ::c_int
= 0x00000001;
679 pub const EPOLL_CLOEXEC
: ::c_int
= 0x80000;
681 pub const EFD_CLOEXEC
: ::c_int
= 0x80000;
683 pub const __SIZEOF_PTHREAD_CONDATTR_T
: usize = 4;
684 pub const __SIZEOF_PTHREAD_MUTEXATTR_T
: usize = 4;
686 pub const O_DIRECT
: ::c_int
= 0x4000;
687 pub const O_DIRECTORY
: ::c_int
= 0x10000;
688 pub const O_NOFOLLOW
: ::c_int
= 0x20000;
690 pub const MAP_HUGETLB
: ::c_int
= 0x040000;
691 pub const MAP_LOCKED
: ::c_int
= 0x02000;
692 pub const MAP_NORESERVE
: ::c_int
= 0x04000;
693 pub const MAP_32BIT
: ::c_int
= 0x0040;
694 pub const MAP_ANON
: ::c_int
= 0x0020;
695 pub const MAP_ANONYMOUS
: ::c_int
= 0x0020;
696 pub const MAP_DENYWRITE
: ::c_int
= 0x0800;
697 pub const MAP_EXECUTABLE
: ::c_int
= 0x01000;
698 pub const MAP_POPULATE
: ::c_int
= 0x08000;
699 pub const MAP_NONBLOCK
: ::c_int
= 0x010000;
700 pub const MAP_STACK
: ::c_int
= 0x020000;
702 pub const EDEADLOCK
: ::c_int
= 35;
703 pub const EUCLEAN
: ::c_int
= 117;
704 pub const ENOTNAM
: ::c_int
= 118;
705 pub const ENAVAIL
: ::c_int
= 119;
706 pub const EISNAM
: ::c_int
= 120;
707 pub const EREMOTEIO
: ::c_int
= 121;
709 pub const FIOCLEX
: ::c_ulong
= 0x5451;
710 pub const FIONCLEX
: ::c_ulong
= 0x5450;
711 pub const FIONBIO
: ::c_ulong
= 0x5421;
713 pub const PTRACE_GETFPREGS
: ::c_uint
= 14;
714 pub const PTRACE_SETFPREGS
: ::c_uint
= 15;
715 pub const PTRACE_GETFPXREGS
: ::c_uint
= 18;
716 pub const PTRACE_SETFPXREGS
: ::c_uint
= 19;
717 pub const PTRACE_GETREGS
: ::c_uint
= 12;
718 pub const PTRACE_SETREGS
: ::c_uint
= 13;
719 pub const PTRACE_PEEKSIGINFO_SHARED
: ::c_uint
= 1;
721 pub const MCL_CURRENT
: ::c_int
= 0x0001;
722 pub const MCL_FUTURE
: ::c_int
= 0x0002;
724 pub const SIGSTKSZ
: ::size_t
= 8192;
725 pub const MINSIGSTKSZ
: ::size_t
= 2048;
726 pub const CBAUD
: ::tcflag_t
= 0o0010017;
727 pub const TAB1
: ::tcflag_t
= 0x00000800;
728 pub const TAB2
: ::tcflag_t
= 0x00001000;
729 pub const TAB3
: ::tcflag_t
= 0x00001800;
730 pub const CR1
: ::tcflag_t
= 0x00000200;
731 pub const CR2
: ::tcflag_t
= 0x00000400;
732 pub const CR3
: ::tcflag_t
= 0x00000600;
733 pub const FF1
: ::tcflag_t
= 0x00008000;
734 pub const BS1
: ::tcflag_t
= 0x00002000;
735 pub const VT1
: ::tcflag_t
= 0x00004000;
736 pub const VWERASE
: usize = 14;
737 pub const VREPRINT
: usize = 12;
738 pub const VSUSP
: usize = 10;
739 pub const VSTART
: usize = 8;
740 pub const VSTOP
: usize = 9;
741 pub const VDISCARD
: usize = 13;
742 pub const VTIME
: usize = 5;
743 pub const IXON
: ::tcflag_t
= 0x00000400;
744 pub const IXOFF
: ::tcflag_t
= 0x00001000;
745 pub const ONLCR
: ::tcflag_t
= 0x4;
746 pub const CSIZE
: ::tcflag_t
= 0x00000030;
747 pub const CS6
: ::tcflag_t
= 0x00000010;
748 pub const CS7
: ::tcflag_t
= 0x00000020;
749 pub const CS8
: ::tcflag_t
= 0x00000030;
750 pub const CSTOPB
: ::tcflag_t
= 0x00000040;
751 pub const CREAD
: ::tcflag_t
= 0x00000080;
752 pub const PARENB
: ::tcflag_t
= 0x00000100;
753 pub const PARODD
: ::tcflag_t
= 0x00000200;
754 pub const HUPCL
: ::tcflag_t
= 0x00000400;
755 pub const CLOCAL
: ::tcflag_t
= 0x00000800;
756 pub const ECHOKE
: ::tcflag_t
= 0x00000800;
757 pub const ECHOE
: ::tcflag_t
= 0x00000010;
758 pub const ECHOK
: ::tcflag_t
= 0x00000020;
759 pub const ECHONL
: ::tcflag_t
= 0x00000040;
760 pub const ECHOPRT
: ::tcflag_t
= 0x00000400;
761 pub const ECHOCTL
: ::tcflag_t
= 0x00000200;
762 pub const ISIG
: ::tcflag_t
= 0x00000001;
763 pub const ICANON
: ::tcflag_t
= 0x00000002;
764 pub const PENDIN
: ::tcflag_t
= 0x00004000;
765 pub const NOFLSH
: ::tcflag_t
= 0x00000080;
766 pub const CIBAUD
: ::tcflag_t
= 0o02003600000;
767 pub const CBAUDEX
: ::tcflag_t
= 0o010000;
768 pub const VSWTC
: usize = 7;
769 pub const OLCUC
: ::tcflag_t
= 0o000002;
770 pub const NLDLY
: ::tcflag_t
= 0o000400;
771 pub const CRDLY
: ::tcflag_t
= 0o003000;
772 pub const TABDLY
: ::tcflag_t
= 0o014000;
773 pub const BSDLY
: ::tcflag_t
= 0o020000;
774 pub const FFDLY
: ::tcflag_t
= 0o100000;
775 pub const VTDLY
: ::tcflag_t
= 0o040000;
776 pub const XTABS
: ::tcflag_t
= 0o014000;
778 pub const B0
: ::speed_t
= 0o000000;
779 pub const B50
: ::speed_t
= 0o000001;
780 pub const B75
: ::speed_t
= 0o000002;
781 pub const B110
: ::speed_t
= 0o000003;
782 pub const B134
: ::speed_t
= 0o000004;
783 pub const B150
: ::speed_t
= 0o000005;
784 pub const B200
: ::speed_t
= 0o000006;
785 pub const B300
: ::speed_t
= 0o000007;
786 pub const B600
: ::speed_t
= 0o000010;
787 pub const B1200
: ::speed_t
= 0o000011;
788 pub const B1800
: ::speed_t
= 0o000012;
789 pub const B2400
: ::speed_t
= 0o000013;
790 pub const B4800
: ::speed_t
= 0o000014;
791 pub const B9600
: ::speed_t
= 0o000015;
792 pub const B19200
: ::speed_t
= 0o000016;
793 pub const B38400
: ::speed_t
= 0o000017;
794 pub const EXTA
: ::speed_t
= B19200
;
795 pub const EXTB
: ::speed_t
= B38400
;
796 pub const BOTHER
: ::speed_t
= 0o010000;
797 pub const B57600
: ::speed_t
= 0o010001;
798 pub const B115200
: ::speed_t
= 0o010002;
799 pub const B230400
: ::speed_t
= 0o010003;
800 pub const B460800
: ::speed_t
= 0o010004;
801 pub const B500000
: ::speed_t
= 0o010005;
802 pub const B576000
: ::speed_t
= 0o010006;
803 pub const B921600
: ::speed_t
= 0o010007;
804 pub const B1000000
: ::speed_t
= 0o010010;
805 pub const B1152000
: ::speed_t
= 0o010011;
806 pub const B1500000
: ::speed_t
= 0o010012;
807 pub const B2000000
: ::speed_t
= 0o010013;
808 pub const B2500000
: ::speed_t
= 0o010014;
809 pub const B3000000
: ::speed_t
= 0o010015;
810 pub const B3500000
: ::speed_t
= 0o010016;
811 pub const B4000000
: ::speed_t
= 0o010017;
813 pub const VEOL
: usize = 11;
814 pub const VEOL2
: usize = 16;
815 pub const VMIN
: usize = 6;
816 pub const IEXTEN
: ::tcflag_t
= 0x00008000;
817 pub const TOSTOP
: ::tcflag_t
= 0x00000100;
818 pub const FLUSHO
: ::tcflag_t
= 0x00001000;
819 pub const EXTPROC
: ::tcflag_t
= 0x00010000;
820 pub const TCGETS
: ::c_ulong
= 0x5401;
821 pub const TCSETS
: ::c_ulong
= 0x5402;
822 pub const TCSETSW
: ::c_ulong
= 0x5403;
823 pub const TCSETSF
: ::c_ulong
= 0x5404;
824 pub const TCGETA
: ::c_ulong
= 0x5405;
825 pub const TCSETA
: ::c_ulong
= 0x5406;
826 pub const TCSETAW
: ::c_ulong
= 0x5407;
827 pub const TCSETAF
: ::c_ulong
= 0x5408;
828 pub const TCSBRK
: ::c_ulong
= 0x5409;
829 pub const TCXONC
: ::c_ulong
= 0x540A;
830 pub const TCFLSH
: ::c_ulong
= 0x540B;
831 pub const TIOCINQ
: ::c_ulong
= 0x541B;
832 pub const TIOCGPGRP
: ::c_ulong
= 0x540F;
833 pub const TIOCSPGRP
: ::c_ulong
= 0x5410;
834 pub const TIOCOUTQ
: ::c_ulong
= 0x5411;
835 pub const TIOCGWINSZ
: ::c_ulong
= 0x5413;
836 pub const TIOCSWINSZ
: ::c_ulong
= 0x5414;
837 pub const FIONREAD
: ::c_ulong
= 0x541B;
839 // offsets in user_regs_structs, from sys/reg.h
840 pub const R15
: ::c_int
= 0;
841 pub const R14
: ::c_int
= 1;
842 pub const R13
: ::c_int
= 2;
843 pub const R12
: ::c_int
= 3;
844 pub const RBP
: ::c_int
= 4;
845 pub const RBX
: ::c_int
= 5;
846 pub const R11
: ::c_int
= 6;
847 pub const R10
: ::c_int
= 7;
848 pub const R9
: ::c_int
= 8;
849 pub const R8
: ::c_int
= 9;
850 pub const RAX
: ::c_int
= 10;
851 pub const RCX
: ::c_int
= 11;
852 pub const RDX
: ::c_int
= 12;
853 pub const RSI
: ::c_int
= 13;
854 pub const RDI
: ::c_int
= 14;
855 pub const ORIG_RAX
: ::c_int
= 15;
856 pub const RIP
: ::c_int
= 16;
857 pub const CS
: ::c_int
= 17;
858 pub const EFLAGS
: ::c_int
= 18;
859 pub const RSP
: ::c_int
= 19;
860 pub const SS
: ::c_int
= 20;
861 pub const FS_BASE
: ::c_int
= 21;
862 pub const GS_BASE
: ::c_int
= 22;
863 pub const DS
: ::c_int
= 23;
864 pub const ES
: ::c_int
= 24;
865 pub const FS
: ::c_int
= 25;
866 pub const GS
: ::c_int
= 26;
868 // offsets in mcontext_t.gregs from sys/ucontext.h
869 pub const REG_R8
: ::c_int
= 0;
870 pub const REG_R9
: ::c_int
= 1;
871 pub const REG_R10
: ::c_int
= 2;
872 pub const REG_R11
: ::c_int
= 3;
873 pub const REG_R12
: ::c_int
= 4;
874 pub const REG_R13
: ::c_int
= 5;
875 pub const REG_R14
: ::c_int
= 6;
876 pub const REG_R15
: ::c_int
= 7;
877 pub const REG_RDI
: ::c_int
= 8;
878 pub const REG_RSI
: ::c_int
= 9;
879 pub const REG_RBP
: ::c_int
= 10;
880 pub const REG_RBX
: ::c_int
= 11;
881 pub const REG_RDX
: ::c_int
= 12;
882 pub const REG_RAX
: ::c_int
= 13;
883 pub const REG_RCX
: ::c_int
= 14;
884 pub const REG_RSP
: ::c_int
= 15;
885 pub const REG_RIP
: ::c_int
= 16;
886 pub const REG_EFL
: ::c_int
= 17;
887 pub const REG_CSGSFS
: ::c_int
= 18;
888 pub const REG_ERR
: ::c_int
= 19;
889 pub const REG_TRAPNO
: ::c_int
= 20;
890 pub const REG_OLDMASK
: ::c_int
= 21;
891 pub const REG_CR2
: ::c_int
= 22;
894 pub fn getcontext(ucp
: *mut ucontext_t
) -> ::c_int
;
895 pub fn setcontext(ucp
: *const ucontext_t
) -> ::c_int
;
897 ucp
: *mut ucontext_t
,
898 func
: extern "C" fn(),
903 uocp
: *mut ucontext_t
,
904 ucp
: *const ucontext_t
,
906 pub fn iopl(level
: ::c_int
) -> ::c_int
;
915 if #[cfg(target_pointer_width = "32")] {
917 pub use self::x32
::*;
920 pub use self::not_x32
::*;
925 if #[cfg(libc_align)] {
927 pub use self::align
::*;