1use crate::off64_t;
2use crate::prelude::*;
3
4pub type pthread_t = c_ulong;
5pub type __priority_which_t = c_uint;
6pub type __rlimit_resource_t = c_uint;
7pub type Lmid_t = c_long;
8pub type regoff_t = c_int;
9pub type __kernel_rwf_t = c_int;
10
11cfg_if! {
12 if #[cfg(doc)] {
13 pub(crate) type Ioctl = c_ulong;
15 } else {
16 #[doc(hidden)]
17 pub type Ioctl = c_ulong;
18 }
19}
20
21s! {
22 pub struct aiocb {
23 pub aio_fildes: c_int,
24 pub aio_lio_opcode: c_int,
25 pub aio_reqprio: c_int,
26 pub aio_buf: *mut c_void,
27 pub aio_nbytes: size_t,
28 pub aio_sigevent: crate::sigevent,
29 __next_prio: *mut aiocb,
30 __abs_prio: c_int,
31 __policy: c_int,
32 __error_code: c_int,
33 __return_value: ssize_t,
34 pub aio_offset: off_t,
35 #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))]
36 __unused1: [c_char; 4],
37 __glibc_reserved: [c_char; 32],
38 }
39
40 pub struct __exit_status {
41 pub e_termination: c_short,
42 pub e_exit: c_short,
43 }
44
45 pub struct __timeval {
46 pub tv_sec: i32,
47 pub tv_usec: i32,
48 }
49
50 pub struct glob64_t {
51 pub gl_pathc: size_t,
52 pub gl_pathv: *mut *mut c_char,
53 pub gl_offs: size_t,
54 pub gl_flags: c_int,
55
56 __unused1: *mut c_void,
57 __unused2: *mut c_void,
58 __unused3: *mut c_void,
59 __unused4: *mut c_void,
60 __unused5: *mut c_void,
61 }
62
63 pub struct msghdr {
64 pub msg_name: *mut c_void,
65 pub msg_namelen: crate::socklen_t,
66 pub msg_iov: *mut crate::iovec,
67 pub msg_iovlen: size_t,
68 pub msg_control: *mut c_void,
69 pub msg_controllen: size_t,
70 pub msg_flags: c_int,
71 }
72
73 pub struct cmsghdr {
74 pub cmsg_len: size_t,
75 pub cmsg_level: c_int,
76 pub cmsg_type: c_int,
77 }
78
79 pub struct termios {
80 pub c_iflag: crate::tcflag_t,
81 pub c_oflag: crate::tcflag_t,
82 pub c_cflag: crate::tcflag_t,
83 pub c_lflag: crate::tcflag_t,
84 pub c_line: crate::cc_t,
85 pub c_cc: [crate::cc_t; crate::NCCS],
86 #[cfg(not(any(
87 target_arch = "sparc",
88 target_arch = "sparc64",
89 target_arch = "mips",
90 target_arch = "mips32r6",
91 target_arch = "mips64",
92 target_arch = "mips64r6"
93 )))]
94 pub c_ispeed: crate::speed_t,
95 #[cfg(not(any(
96 target_arch = "sparc",
97 target_arch = "sparc64",
98 target_arch = "mips",
99 target_arch = "mips32r6",
100 target_arch = "mips64",
101 target_arch = "mips64r6"
102 )))]
103 pub c_ospeed: crate::speed_t,
104 }
105
106 pub struct mallinfo {
107 pub arena: c_int,
108 pub ordblks: c_int,
109 pub smblks: c_int,
110 pub hblks: c_int,
111 pub hblkhd: c_int,
112 pub usmblks: c_int,
113 pub fsmblks: c_int,
114 pub uordblks: c_int,
115 pub fordblks: c_int,
116 pub keepcost: c_int,
117 }
118
119 pub struct mallinfo2 {
120 pub arena: size_t,
121 pub ordblks: size_t,
122 pub smblks: size_t,
123 pub hblks: size_t,
124 pub hblkhd: size_t,
125 pub usmblks: size_t,
126 pub fsmblks: size_t,
127 pub uordblks: size_t,
128 pub fordblks: size_t,
129 pub keepcost: size_t,
130 }
131
132 pub struct nl_pktinfo {
133 pub group: u32,
134 }
135
136 pub struct nl_mmap_req {
137 pub nm_block_size: c_uint,
138 pub nm_block_nr: c_uint,
139 pub nm_frame_size: c_uint,
140 pub nm_frame_nr: c_uint,
141 }
142
143 pub struct nl_mmap_hdr {
144 pub nm_status: c_uint,
145 pub nm_len: c_uint,
146 pub nm_group: u32,
147 pub nm_pid: u32,
148 pub nm_uid: u32,
149 pub nm_gid: u32,
150 }
151
152 pub struct rtentry {
153 pub rt_pad1: c_ulong,
154 pub rt_dst: crate::sockaddr,
155 pub rt_gateway: crate::sockaddr,
156 pub rt_genmask: crate::sockaddr,
157 pub rt_flags: c_ushort,
158 pub rt_pad2: c_short,
159 pub rt_pad3: c_ulong,
160 pub rt_tos: c_uchar,
161 pub rt_class: c_uchar,
162 #[cfg(target_pointer_width = "64")]
163 pub rt_pad4: [c_short; 3usize],
164 #[cfg(not(target_pointer_width = "64"))]
165 pub rt_pad4: c_short,
166 pub rt_metric: c_short,
167 pub rt_dev: *mut c_char,
168 pub rt_mtu: c_ulong,
169 pub rt_window: c_ulong,
170 pub rt_irtt: c_ushort,
171 }
172
173 pub struct timex {
174 pub modes: c_uint,
175 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
176 pub offset: i64,
177 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
178 pub offset: c_long,
179 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
180 pub freq: i64,
181 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
182 pub freq: c_long,
183 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
184 pub maxerror: i64,
185 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
186 pub maxerror: c_long,
187 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
188 pub esterror: i64,
189 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
190 pub esterror: c_long,
191 pub status: c_int,
192 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
193 pub constant: i64,
194 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
195 pub constant: c_long,
196 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
197 pub precision: i64,
198 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
199 pub precision: c_long,
200 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
201 pub tolerance: i64,
202 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
203 pub tolerance: c_long,
204 pub time: crate::timeval,
205 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
206 pub tick: i64,
207 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
208 pub tick: c_long,
209 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
210 pub ppsfreq: i64,
211 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
212 pub ppsfreq: c_long,
213 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
214 pub jitter: i64,
215 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
216 pub jitter: c_long,
217 pub shift: c_int,
218 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
219 pub stabil: i64,
220 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
221 pub stabil: c_long,
222 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
223 pub jitcnt: i64,
224 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
225 pub jitcnt: c_long,
226 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
227 pub calcnt: i64,
228 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
229 pub calcnt: c_long,
230 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
231 pub errcnt: i64,
232 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
233 pub errcnt: c_long,
234 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
235 pub stbcnt: i64,
236 #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
237 pub stbcnt: c_long,
238 pub tai: c_int,
239 pub __unused1: i32,
240 pub __unused2: i32,
241 pub __unused3: i32,
242 pub __unused4: i32,
243 pub __unused5: i32,
244 pub __unused6: i32,
245 pub __unused7: i32,
246 pub __unused8: i32,
247 pub __unused9: i32,
248 pub __unused10: i32,
249 pub __unused11: i32,
250 }
251
252 pub struct ntptimeval {
253 pub time: crate::timeval,
254 pub maxerror: c_long,
255 pub esterror: c_long,
256 pub tai: c_long,
257 pub __glibc_reserved1: c_long,
258 pub __glibc_reserved2: c_long,
259 pub __glibc_reserved3: c_long,
260 pub __glibc_reserved4: c_long,
261 }
262
263 pub struct regex_t {
264 __buffer: *mut c_void,
265 __allocated: size_t,
266 __used: size_t,
267 __syntax: c_ulong,
268 __fastmap: *mut c_char,
269 __translate: *mut c_char,
270 __re_nsub: size_t,
271 __bitfield: u8,
272 }
273
274 pub struct Elf64_Chdr {
275 pub ch_type: crate::Elf64_Word,
276 pub ch_reserved: crate::Elf64_Word,
277 pub ch_size: crate::Elf64_Xword,
278 pub ch_addralign: crate::Elf64_Xword,
279 }
280
281 pub struct Elf32_Chdr {
282 pub ch_type: crate::Elf32_Word,
283 pub ch_size: crate::Elf32_Word,
284 pub ch_addralign: crate::Elf32_Word,
285 }
286
287 pub struct seminfo {
288 pub semmap: c_int,
289 pub semmni: c_int,
290 pub semmns: c_int,
291 pub semmnu: c_int,
292 pub semmsl: c_int,
293 pub semopm: c_int,
294 pub semume: c_int,
295 pub semusz: c_int,
296 pub semvmx: c_int,
297 pub semaem: c_int,
298 }
299
300 pub struct ptrace_peeksiginfo_args {
301 pub off: crate::__u64,
302 pub flags: crate::__u32,
303 pub nr: crate::__s32,
304 }
305
306 pub struct __c_anonymous_ptrace_syscall_info_entry {
307 pub nr: crate::__u64,
308 pub args: [crate::__u64; 6],
309 }
310
311 pub struct __c_anonymous_ptrace_syscall_info_exit {
312 pub sval: crate::__s64,
313 pub is_error: crate::__u8,
314 }
315
316 pub struct __c_anonymous_ptrace_syscall_info_seccomp {
317 pub nr: crate::__u64,
318 pub args: [crate::__u64; 6],
319 pub ret_data: crate::__u32,
320 }
321
322 pub struct ptrace_syscall_info {
323 pub op: crate::__u8,
324 pub pad: [crate::__u8; 3],
325 pub arch: crate::__u32,
326 pub instruction_pointer: crate::__u64,
327 pub stack_pointer: crate::__u64,
328 pub u: __c_anonymous_ptrace_syscall_info_data,
329 }
330
331 pub struct sockaddr_xdp {
334 pub sxdp_family: crate::__u16,
335 pub sxdp_flags: crate::__u16,
336 pub sxdp_ifindex: crate::__u32,
337 pub sxdp_queue_id: crate::__u32,
338 pub sxdp_shared_umem_fd: crate::__u32,
339 }
340
341 pub struct xdp_ring_offset {
342 pub producer: crate::__u64,
343 pub consumer: crate::__u64,
344 pub desc: crate::__u64,
345 pub flags: crate::__u64,
346 }
347
348 pub struct xdp_mmap_offsets {
349 pub rx: xdp_ring_offset,
350 pub tx: xdp_ring_offset,
351 pub fr: xdp_ring_offset,
352 pub cr: xdp_ring_offset,
353 }
354
355 pub struct xdp_ring_offset_v1 {
356 pub producer: crate::__u64,
357 pub consumer: crate::__u64,
358 pub desc: crate::__u64,
359 }
360
361 pub struct xdp_mmap_offsets_v1 {
362 pub rx: xdp_ring_offset_v1,
363 pub tx: xdp_ring_offset_v1,
364 pub fr: xdp_ring_offset_v1,
365 pub cr: xdp_ring_offset_v1,
366 }
367
368 pub struct xdp_umem_reg {
369 pub addr: crate::__u64,
370 pub len: crate::__u64,
371 pub chunk_size: crate::__u32,
372 pub headroom: crate::__u32,
373 pub flags: crate::__u32,
374 pub tx_metadata_len: crate::__u32,
375 }
376
377 pub struct xdp_umem_reg_v1 {
378 pub addr: crate::__u64,
379 pub len: crate::__u64,
380 pub chunk_size: crate::__u32,
381 pub headroom: crate::__u32,
382 }
383
384 pub struct xdp_statistics {
385 pub rx_dropped: crate::__u64,
386 pub rx_invalid_descs: crate::__u64,
387 pub tx_invalid_descs: crate::__u64,
388 pub rx_ring_full: crate::__u64,
389 pub rx_fill_ring_empty_descs: crate::__u64,
390 pub tx_ring_empty_descs: crate::__u64,
391 }
392
393 pub struct xdp_statistics_v1 {
394 pub rx_dropped: crate::__u64,
395 pub rx_invalid_descs: crate::__u64,
396 pub tx_invalid_descs: crate::__u64,
397 }
398
399 pub struct xdp_options {
400 pub flags: crate::__u32,
401 }
402
403 pub struct xdp_desc {
404 pub addr: crate::__u64,
405 pub len: crate::__u32,
406 pub options: crate::__u32,
407 }
408
409 pub struct iocb {
410 pub aio_data: crate::__u64,
411 #[cfg(target_endian = "little")]
412 pub aio_key: crate::__u32,
413 #[cfg(target_endian = "little")]
414 pub aio_rw_flags: crate::__kernel_rwf_t,
415 #[cfg(target_endian = "big")]
416 pub aio_rw_flags: crate::__kernel_rwf_t,
417 #[cfg(target_endian = "big")]
418 pub aio_key: crate::__u32,
419 pub aio_lio_opcode: crate::__u16,
420 pub aio_reqprio: crate::__s16,
421 pub aio_fildes: crate::__u32,
422 pub aio_buf: crate::__u64,
423 pub aio_nbytes: crate::__u64,
424 pub aio_offset: crate::__s64,
425 aio_reserved2: crate::__u64,
426 pub aio_flags: crate::__u32,
427 pub aio_resfd: crate::__u32,
428 }
429
430 pub struct tcp_info {
433 pub tcpi_state: u8,
434 pub tcpi_ca_state: u8,
435 pub tcpi_retransmits: u8,
436 pub tcpi_probes: u8,
437 pub tcpi_backoff: u8,
438 pub tcpi_options: u8,
439 pub tcpi_snd_rcv_wscale: u8,
442 pub tcpi_rto: u32,
443 pub tcpi_ato: u32,
444 pub tcpi_snd_mss: u32,
445 pub tcpi_rcv_mss: u32,
446 pub tcpi_unacked: u32,
447 pub tcpi_sacked: u32,
448 pub tcpi_lost: u32,
449 pub tcpi_retrans: u32,
450 pub tcpi_fackets: u32,
451 pub tcpi_last_data_sent: u32,
452 pub tcpi_last_ack_sent: u32,
453 pub tcpi_last_data_recv: u32,
454 pub tcpi_last_ack_recv: u32,
455 pub tcpi_pmtu: u32,
456 pub tcpi_rcv_ssthresh: u32,
457 pub tcpi_rtt: u32,
458 pub tcpi_rttvar: u32,
459 pub tcpi_snd_ssthresh: u32,
460 pub tcpi_snd_cwnd: u32,
461 pub tcpi_advmss: u32,
462 pub tcpi_reordering: u32,
463 pub tcpi_rcv_rtt: u32,
464 pub tcpi_rcv_space: u32,
465 pub tcpi_total_retrans: u32,
466 }
467
468 pub struct fanotify_event_info_pidfd {
469 pub hdr: crate::fanotify_event_info_header,
470 pub pidfd: crate::__s32,
471 }
472
473 pub struct fanotify_event_info_error {
474 pub hdr: crate::fanotify_event_info_header,
475 pub error: crate::__s32,
476 pub error_count: crate::__u32,
477 }
478
479 #[cfg_attr(target_pointer_width = "32", repr(align(4)))]
481 #[cfg_attr(target_pointer_width = "64", repr(align(8)))]
482 pub struct sem_t {
483 #[cfg(target_pointer_width = "32")]
484 __size: [c_char; 16],
485 #[cfg(target_pointer_width = "64")]
486 __size: [c_char; 32],
487 }
488}
489
490impl siginfo_t {
491 pub unsafe fn si_addr(&self) -> *mut c_void {
492 #[repr(C)]
493 struct siginfo_sigfault {
494 _si_signo: c_int,
495 _si_errno: c_int,
496 _si_code: c_int,
497 si_addr: *mut c_void,
498 }
499 (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr
500 }
501
502 pub unsafe fn si_value(&self) -> crate::sigval {
503 #[repr(C)]
504 struct siginfo_timer {
505 _si_signo: c_int,
506 _si_errno: c_int,
507 _si_code: c_int,
508 _si_tid: c_int,
509 _si_overrun: c_int,
510 si_sigval: crate::sigval,
511 }
512 (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval
513 }
514}
515
516#[repr(C)]
518struct sifields_sigchld {
519 si_pid: crate::pid_t,
520 si_uid: crate::uid_t,
521 si_status: c_int,
522 si_utime: c_long,
523 si_stime: c_long,
524}
525impl Copy for sifields_sigchld {}
526impl Clone for sifields_sigchld {
527 fn clone(&self) -> sifields_sigchld {
528 *self
529 }
530}
531
532#[repr(C)]
534union sifields {
535 _align_pointer: *mut c_void,
536 sigchld: sifields_sigchld,
537}
538
539#[repr(C)]
543struct siginfo_f {
544 _siginfo_base: [c_int; 3],
545 sifields: sifields,
546}
547
548impl siginfo_t {
549 unsafe fn sifields(&self) -> &sifields {
550 &(*(self as *const siginfo_t as *const siginfo_f)).sifields
551 }
552
553 pub unsafe fn si_pid(&self) -> crate::pid_t {
554 self.sifields().sigchld.si_pid
555 }
556
557 pub unsafe fn si_uid(&self) -> crate::uid_t {
558 self.sifields().sigchld.si_uid
559 }
560
561 pub unsafe fn si_status(&self) -> c_int {
562 self.sifields().sigchld.si_status
563 }
564
565 pub unsafe fn si_utime(&self) -> c_long {
566 self.sifields().sigchld.si_utime
567 }
568
569 pub unsafe fn si_stime(&self) -> c_long {
570 self.sifields().sigchld.si_stime
571 }
572}
573
574pub union __c_anonymous_ptrace_syscall_info_data {
575 pub entry: __c_anonymous_ptrace_syscall_info_entry,
576 pub exit: __c_anonymous_ptrace_syscall_info_exit,
577 pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp,
578}
579impl Copy for __c_anonymous_ptrace_syscall_info_data {}
580impl Clone for __c_anonymous_ptrace_syscall_info_data {
581 fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data {
582 *self
583 }
584}
585
586s_no_extra_traits! {
587 pub struct utmpx {
588 pub ut_type: c_short,
589 pub ut_pid: crate::pid_t,
590 pub ut_line: [c_char; __UT_LINESIZE],
591 pub ut_id: [c_char; 4],
592
593 pub ut_user: [c_char; __UT_NAMESIZE],
594 pub ut_host: [c_char; __UT_HOSTSIZE],
595 pub ut_exit: __exit_status,
596
597 #[cfg(any(
598 target_arch = "aarch64",
599 target_arch = "s390x",
600 target_arch = "loongarch64",
601 all(target_pointer_width = "32", not(target_arch = "x86_64"))
602 ))]
603 pub ut_session: c_long,
604 #[cfg(any(
605 target_arch = "aarch64",
606 target_arch = "s390x",
607 target_arch = "loongarch64",
608 all(target_pointer_width = "32", not(target_arch = "x86_64"))
609 ))]
610 pub ut_tv: crate::timeval,
611
612 #[cfg(not(any(
613 target_arch = "aarch64",
614 target_arch = "s390x",
615 target_arch = "loongarch64",
616 all(target_pointer_width = "32", not(target_arch = "x86_64"))
617 )))]
618 pub ut_session: i32,
619 #[cfg(not(any(
620 target_arch = "aarch64",
621 target_arch = "s390x",
622 target_arch = "loongarch64",
623 all(target_pointer_width = "32", not(target_arch = "x86_64"))
624 )))]
625 pub ut_tv: __timeval,
626
627 pub ut_addr_v6: [i32; 4],
628 __glibc_reserved: [c_char; 20],
629 }
630}
631
632cfg_if! {
633 if #[cfg(feature = "extra_traits")] {
634 impl PartialEq for utmpx {
635 fn eq(&self, other: &utmpx) -> bool {
636 self.ut_type == other.ut_type
637 && self.ut_pid == other.ut_pid
638 && self.ut_line == other.ut_line
639 && self.ut_id == other.ut_id
640 && self.ut_user == other.ut_user
641 && self
642 .ut_host
643 .iter()
644 .zip(other.ut_host.iter())
645 .all(|(a, b)| a == b)
646 && self.ut_exit == other.ut_exit
647 && self.ut_session == other.ut_session
648 && self.ut_tv == other.ut_tv
649 && self.ut_addr_v6 == other.ut_addr_v6
650 && self.__glibc_reserved == other.__glibc_reserved
651 }
652 }
653
654 impl Eq for utmpx {}
655
656 impl fmt::Debug for utmpx {
657 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
658 f.debug_struct("utmpx")
659 .field("ut_type", &self.ut_type)
660 .field("ut_pid", &self.ut_pid)
661 .field("ut_line", &self.ut_line)
662 .field("ut_id", &self.ut_id)
663 .field("ut_user", &self.ut_user)
664 .field("ut_exit", &self.ut_exit)
666 .field("ut_session", &self.ut_session)
667 .field("ut_tv", &self.ut_tv)
668 .field("ut_addr_v6", &self.ut_addr_v6)
669 .field("__glibc_reserved", &self.__glibc_reserved)
670 .finish()
671 }
672 }
673
674 impl hash::Hash for utmpx {
675 fn hash<H: hash::Hasher>(&self, state: &mut H) {
676 self.ut_type.hash(state);
677 self.ut_pid.hash(state);
678 self.ut_line.hash(state);
679 self.ut_id.hash(state);
680 self.ut_user.hash(state);
681 self.ut_host.hash(state);
682 self.ut_exit.hash(state);
683 self.ut_session.hash(state);
684 self.ut_tv.hash(state);
685 self.ut_addr_v6.hash(state);
686 self.__glibc_reserved.hash(state);
687 }
688 }
689
690 impl PartialEq for __c_anonymous_ptrace_syscall_info_data {
691 fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool {
692 unsafe {
693 self.entry == other.entry
694 || self.exit == other.exit
695 || self.seccomp == other.seccomp
696 }
697 }
698 }
699
700 impl Eq for __c_anonymous_ptrace_syscall_info_data {}
701
702 impl fmt::Debug for __c_anonymous_ptrace_syscall_info_data {
703 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
704 unsafe {
705 f.debug_struct("__c_anonymous_ptrace_syscall_info_data")
706 .field("entry", &self.entry)
707 .field("exit", &self.exit)
708 .field("seccomp", &self.seccomp)
709 .finish()
710 }
711 }
712 }
713
714 impl hash::Hash for __c_anonymous_ptrace_syscall_info_data {
715 fn hash<H: hash::Hasher>(&self, state: &mut H) {
716 unsafe {
717 self.entry.hash(state);
718 self.exit.hash(state);
719 self.seccomp.hash(state);
720 }
721 }
722 }
723 }
724}
725
726pub const HUGETLB_FLAG_ENCODE_SHIFT: c_int = 26;
728pub const HUGETLB_FLAG_ENCODE_MASK: c_int = 0x3f;
729
730pub const HUGETLB_FLAG_ENCODE_64KB: c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT;
731pub const HUGETLB_FLAG_ENCODE_512KB: c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT;
732pub const HUGETLB_FLAG_ENCODE_1MB: c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT;
733pub const HUGETLB_FLAG_ENCODE_2MB: c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT;
734pub const HUGETLB_FLAG_ENCODE_8MB: c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT;
735pub const HUGETLB_FLAG_ENCODE_16MB: c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT;
736pub const HUGETLB_FLAG_ENCODE_32MB: c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT;
737pub const HUGETLB_FLAG_ENCODE_256MB: c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT;
738pub const HUGETLB_FLAG_ENCODE_512MB: c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT;
739pub const HUGETLB_FLAG_ENCODE_1GB: c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT;
740pub const HUGETLB_FLAG_ENCODE_2GB: c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT;
741pub const HUGETLB_FLAG_ENCODE_16GB: c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT;
742
743pub const MAP_HUGE_SHIFT: c_int = HUGETLB_FLAG_ENCODE_SHIFT;
752pub const MAP_HUGE_MASK: c_int = HUGETLB_FLAG_ENCODE_MASK;
753
754pub const MAP_HUGE_64KB: c_int = HUGETLB_FLAG_ENCODE_64KB;
755pub const MAP_HUGE_512KB: c_int = HUGETLB_FLAG_ENCODE_512KB;
756pub const MAP_HUGE_1MB: c_int = HUGETLB_FLAG_ENCODE_1MB;
757pub const MAP_HUGE_2MB: c_int = HUGETLB_FLAG_ENCODE_2MB;
758pub const MAP_HUGE_8MB: c_int = HUGETLB_FLAG_ENCODE_8MB;
759pub const MAP_HUGE_16MB: c_int = HUGETLB_FLAG_ENCODE_16MB;
760pub const MAP_HUGE_32MB: c_int = HUGETLB_FLAG_ENCODE_32MB;
761pub const MAP_HUGE_256MB: c_int = HUGETLB_FLAG_ENCODE_256MB;
762pub const MAP_HUGE_512MB: c_int = HUGETLB_FLAG_ENCODE_512MB;
763pub const MAP_HUGE_1GB: c_int = HUGETLB_FLAG_ENCODE_1GB;
764pub const MAP_HUGE_2GB: c_int = HUGETLB_FLAG_ENCODE_2GB;
765pub const MAP_HUGE_16GB: c_int = HUGETLB_FLAG_ENCODE_16GB;
766
767pub const PRIO_PROCESS: crate::__priority_which_t = 0;
768pub const PRIO_PGRP: crate::__priority_which_t = 1;
769pub const PRIO_USER: crate::__priority_which_t = 2;
770
771pub const MS_RMT_MASK: c_ulong = 0x02800051;
772
773pub const __UT_LINESIZE: usize = 32;
774pub const __UT_NAMESIZE: usize = 32;
775pub const __UT_HOSTSIZE: usize = 256;
776pub const EMPTY: c_short = 0;
777pub const RUN_LVL: c_short = 1;
778pub const BOOT_TIME: c_short = 2;
779pub const NEW_TIME: c_short = 3;
780pub const OLD_TIME: c_short = 4;
781pub const INIT_PROCESS: c_short = 5;
782pub const LOGIN_PROCESS: c_short = 6;
783pub const USER_PROCESS: c_short = 7;
784pub const DEAD_PROCESS: c_short = 8;
785pub const ACCOUNTING: c_short = 9;
786
787pub const LM_ID_BASE: c_long = 0;
789pub const LM_ID_NEWLM: c_long = -1;
790
791pub const RTLD_DI_LMID: c_int = 1;
792pub const RTLD_DI_LINKMAP: c_int = 2;
793pub const RTLD_DI_CONFIGADDR: c_int = 3;
794pub const RTLD_DI_SERINFO: c_int = 4;
795pub const RTLD_DI_SERINFOSIZE: c_int = 5;
796pub const RTLD_DI_ORIGIN: c_int = 6;
797pub const RTLD_DI_PROFILENAME: c_int = 7;
798pub const RTLD_DI_PROFILEOUT: c_int = 8;
799pub const RTLD_DI_TLS_MODID: c_int = 9;
800pub const RTLD_DI_TLS_DATA: c_int = 10;
801
802pub const SOCK_NONBLOCK: c_int = O_NONBLOCK;
803pub const PIDFD_NONBLOCK: c_uint = O_NONBLOCK as c_uint;
804
805pub const SOL_RXRPC: c_int = 272;
806pub const SOL_PPPOL2TP: c_int = 273;
807pub const SOL_PNPIPE: c_int = 275;
808pub const SOL_RDS: c_int = 276;
809pub const SOL_IUCV: c_int = 277;
810pub const SOL_CAIF: c_int = 278;
811pub const SOL_NFC: c_int = 280;
812pub const SOL_XDP: c_int = 283;
813
814pub const MSG_TRYHARD: c_int = 4;
815
816pub const LC_PAPER: c_int = 7;
817pub const LC_NAME: c_int = 8;
818pub const LC_ADDRESS: c_int = 9;
819pub const LC_TELEPHONE: c_int = 10;
820pub const LC_MEASUREMENT: c_int = 11;
821pub const LC_IDENTIFICATION: c_int = 12;
822pub const LC_PAPER_MASK: c_int = 1 << LC_PAPER;
823pub const LC_NAME_MASK: c_int = 1 << LC_NAME;
824pub const LC_ADDRESS_MASK: c_int = 1 << LC_ADDRESS;
825pub const LC_TELEPHONE_MASK: c_int = 1 << LC_TELEPHONE;
826pub const LC_MEASUREMENT_MASK: c_int = 1 << LC_MEASUREMENT;
827pub const LC_IDENTIFICATION_MASK: c_int = 1 << LC_IDENTIFICATION;
828pub const LC_ALL_MASK: c_int = crate::LC_CTYPE_MASK
829 | crate::LC_NUMERIC_MASK
830 | crate::LC_TIME_MASK
831 | crate::LC_COLLATE_MASK
832 | crate::LC_MONETARY_MASK
833 | crate::LC_MESSAGES_MASK
834 | LC_PAPER_MASK
835 | LC_NAME_MASK
836 | LC_ADDRESS_MASK
837 | LC_TELEPHONE_MASK
838 | LC_MEASUREMENT_MASK
839 | LC_IDENTIFICATION_MASK;
840
841pub const ENOTSUP: c_int = EOPNOTSUPP;
842
843pub const SOCK_SEQPACKET: c_int = 5;
844pub const SOCK_DCCP: c_int = 6;
845pub const SOCK_PACKET: c_int = 10;
846
847pub const AF_IB: c_int = 27;
848pub const AF_MPLS: c_int = 28;
849pub const AF_NFC: c_int = 39;
850pub const AF_VSOCK: c_int = 40;
851pub const AF_XDP: c_int = 44;
852pub const PF_IB: c_int = AF_IB;
853pub const PF_MPLS: c_int = AF_MPLS;
854pub const PF_NFC: c_int = AF_NFC;
855pub const PF_VSOCK: c_int = AF_VSOCK;
856pub const PF_XDP: c_int = AF_XDP;
857
858pub const SIGEV_THREAD_ID: c_int = 4;
859
860pub const BUFSIZ: c_uint = 8192;
861pub const TMP_MAX: c_uint = 238328;
862pub const FOPEN_MAX: c_uint = 16;
863pub const FILENAME_MAX: c_uint = 4096;
864pub const POSIX_MADV_DONTNEED: c_int = 4;
865pub const _CS_GNU_LIBC_VERSION: c_int = 2;
866pub const _CS_GNU_LIBPTHREAD_VERSION: c_int = 3;
867pub const _CS_V6_ENV: c_int = 1148;
868pub const _CS_V7_ENV: c_int = 1149;
869pub const _SC_EQUIV_CLASS_MAX: c_int = 41;
870pub const _SC_CHARCLASS_NAME_MAX: c_int = 45;
871pub const _SC_PII: c_int = 53;
872pub const _SC_PII_XTI: c_int = 54;
873pub const _SC_PII_SOCKET: c_int = 55;
874pub const _SC_PII_INTERNET: c_int = 56;
875pub const _SC_PII_OSI: c_int = 57;
876pub const _SC_POLL: c_int = 58;
877pub const _SC_SELECT: c_int = 59;
878pub const _SC_PII_INTERNET_STREAM: c_int = 61;
879pub const _SC_PII_INTERNET_DGRAM: c_int = 62;
880pub const _SC_PII_OSI_COTS: c_int = 63;
881pub const _SC_PII_OSI_CLTS: c_int = 64;
882pub const _SC_PII_OSI_M: c_int = 65;
883pub const _SC_T_IOV_MAX: c_int = 66;
884pub const _SC_2_C_VERSION: c_int = 96;
885pub const _SC_CHAR_BIT: c_int = 101;
886pub const _SC_CHAR_MAX: c_int = 102;
887pub const _SC_CHAR_MIN: c_int = 103;
888pub const _SC_INT_MAX: c_int = 104;
889pub const _SC_INT_MIN: c_int = 105;
890pub const _SC_LONG_BIT: c_int = 106;
891pub const _SC_WORD_BIT: c_int = 107;
892pub const _SC_MB_LEN_MAX: c_int = 108;
893pub const _SC_SSIZE_MAX: c_int = 110;
894pub const _SC_SCHAR_MAX: c_int = 111;
895pub const _SC_SCHAR_MIN: c_int = 112;
896pub const _SC_SHRT_MAX: c_int = 113;
897pub const _SC_SHRT_MIN: c_int = 114;
898pub const _SC_UCHAR_MAX: c_int = 115;
899pub const _SC_UINT_MAX: c_int = 116;
900pub const _SC_ULONG_MAX: c_int = 117;
901pub const _SC_USHRT_MAX: c_int = 118;
902pub const _SC_NL_ARGMAX: c_int = 119;
903pub const _SC_NL_LANGMAX: c_int = 120;
904pub const _SC_NL_MSGMAX: c_int = 121;
905pub const _SC_NL_NMAX: c_int = 122;
906pub const _SC_NL_SETMAX: c_int = 123;
907pub const _SC_NL_TEXTMAX: c_int = 124;
908pub const _SC_BASE: c_int = 134;
909pub const _SC_C_LANG_SUPPORT: c_int = 135;
910pub const _SC_C_LANG_SUPPORT_R: c_int = 136;
911pub const _SC_DEVICE_IO: c_int = 140;
912pub const _SC_DEVICE_SPECIFIC: c_int = 141;
913pub const _SC_DEVICE_SPECIFIC_R: c_int = 142;
914pub const _SC_FD_MGMT: c_int = 143;
915pub const _SC_FIFO: c_int = 144;
916pub const _SC_PIPE: c_int = 145;
917pub const _SC_FILE_ATTRIBUTES: c_int = 146;
918pub const _SC_FILE_LOCKING: c_int = 147;
919pub const _SC_FILE_SYSTEM: c_int = 148;
920pub const _SC_MULTI_PROCESS: c_int = 150;
921pub const _SC_SINGLE_PROCESS: c_int = 151;
922pub const _SC_NETWORKING: c_int = 152;
923pub const _SC_REGEX_VERSION: c_int = 156;
924pub const _SC_SIGNALS: c_int = 158;
925pub const _SC_SYSTEM_DATABASE: c_int = 162;
926pub const _SC_SYSTEM_DATABASE_R: c_int = 163;
927pub const _SC_USER_GROUPS: c_int = 166;
928pub const _SC_USER_GROUPS_R: c_int = 167;
929pub const _SC_LEVEL1_ICACHE_SIZE: c_int = 185;
930pub const _SC_LEVEL1_ICACHE_ASSOC: c_int = 186;
931pub const _SC_LEVEL1_ICACHE_LINESIZE: c_int = 187;
932pub const _SC_LEVEL1_DCACHE_SIZE: c_int = 188;
933pub const _SC_LEVEL1_DCACHE_ASSOC: c_int = 189;
934pub const _SC_LEVEL1_DCACHE_LINESIZE: c_int = 190;
935pub const _SC_LEVEL2_CACHE_SIZE: c_int = 191;
936pub const _SC_LEVEL2_CACHE_ASSOC: c_int = 192;
937pub const _SC_LEVEL2_CACHE_LINESIZE: c_int = 193;
938pub const _SC_LEVEL3_CACHE_SIZE: c_int = 194;
939pub const _SC_LEVEL3_CACHE_ASSOC: c_int = 195;
940pub const _SC_LEVEL3_CACHE_LINESIZE: c_int = 196;
941pub const _SC_LEVEL4_CACHE_SIZE: c_int = 197;
942pub const _SC_LEVEL4_CACHE_ASSOC: c_int = 198;
943pub const _SC_LEVEL4_CACHE_LINESIZE: c_int = 199;
944pub const O_ACCMODE: c_int = 3;
945pub const ST_RELATIME: c_ulong = 4096;
946pub const NI_MAXHOST: crate::socklen_t = 1025;
947
948cfg_if! {
952 if #[cfg(not(target_arch = "s390x"))] {
953 pub const BINDERFS_SUPER_MAGIC: c_long = 0x6c6f6f70;
954 pub const XFS_SUPER_MAGIC: c_long = 0x58465342;
955 } else if #[cfg(target_arch = "s390x")] {
956 pub const BINDERFS_SUPER_MAGIC: c_uint = 0x6c6f6f70;
957 pub const XFS_SUPER_MAGIC: c_uint = 0x58465342;
958 }
959}
960
961pub const CPU_SETSIZE: c_int = 0x400;
962
963pub const PTRACE_TRACEME: c_uint = 0;
964pub const PTRACE_PEEKTEXT: c_uint = 1;
965pub const PTRACE_PEEKDATA: c_uint = 2;
966pub const PTRACE_PEEKUSER: c_uint = 3;
967pub const PTRACE_POKETEXT: c_uint = 4;
968pub const PTRACE_POKEDATA: c_uint = 5;
969pub const PTRACE_POKEUSER: c_uint = 6;
970pub const PTRACE_CONT: c_uint = 7;
971pub const PTRACE_KILL: c_uint = 8;
972pub const PTRACE_SINGLESTEP: c_uint = 9;
973pub const PTRACE_ATTACH: c_uint = 16;
974pub const PTRACE_SYSCALL: c_uint = 24;
975pub const PTRACE_SETOPTIONS: c_uint = 0x4200;
976pub const PTRACE_GETEVENTMSG: c_uint = 0x4201;
977pub const PTRACE_GETSIGINFO: c_uint = 0x4202;
978pub const PTRACE_SETSIGINFO: c_uint = 0x4203;
979pub const PTRACE_GETREGSET: c_uint = 0x4204;
980pub const PTRACE_SETREGSET: c_uint = 0x4205;
981pub const PTRACE_SEIZE: c_uint = 0x4206;
982pub const PTRACE_INTERRUPT: c_uint = 0x4207;
983pub const PTRACE_LISTEN: c_uint = 0x4208;
984pub const PTRACE_PEEKSIGINFO: c_uint = 0x4209;
985pub const PTRACE_GETSIGMASK: c_uint = 0x420a;
986pub const PTRACE_SETSIGMASK: c_uint = 0x420b;
987pub const PTRACE_GET_SYSCALL_INFO: c_uint = 0x420e;
988pub const PTRACE_SYSCALL_INFO_NONE: crate::__u8 = 0;
989pub const PTRACE_SYSCALL_INFO_ENTRY: crate::__u8 = 1;
990pub const PTRACE_SYSCALL_INFO_EXIT: crate::__u8 = 2;
991pub const PTRACE_SYSCALL_INFO_SECCOMP: crate::__u8 = 3;
992
993pub const RWF_HIPRI: c_int = 0x00000001;
997pub const RWF_DSYNC: c_int = 0x00000002;
998pub const RWF_SYNC: c_int = 0x00000004;
999pub const RWF_NOWAIT: c_int = 0x00000008;
1000pub const RWF_APPEND: c_int = 0x00000010;
1001
1002pub const TCA_PAD: c_ushort = 9;
1004pub const TCA_DUMP_INVISIBLE: c_ushort = 10;
1005pub const TCA_CHAIN: c_ushort = 11;
1006pub const TCA_HW_OFFLOAD: c_ushort = 12;
1007
1008pub const RTM_DELNETCONF: u16 = 81;
1009pub const RTM_NEWSTATS: u16 = 92;
1010pub const RTM_GETSTATS: u16 = 94;
1011pub const RTM_NEWCACHEREPORT: u16 = 96;
1012
1013pub const RTM_F_LOOKUP_TABLE: c_uint = 0x1000;
1014pub const RTM_F_FIB_MATCH: c_uint = 0x2000;
1015
1016pub const RTA_VIA: c_ushort = 18;
1017pub const RTA_NEWDST: c_ushort = 19;
1018pub const RTA_PREF: c_ushort = 20;
1019pub const RTA_ENCAP_TYPE: c_ushort = 21;
1020pub const RTA_ENCAP: c_ushort = 22;
1021pub const RTA_EXPIRES: c_ushort = 23;
1022pub const RTA_PAD: c_ushort = 24;
1023pub const RTA_UID: c_ushort = 25;
1024pub const RTA_TTL_PROPAGATE: c_ushort = 26;
1025
1026pub const NTF_EXT_LEARNED: u8 = 0x10;
1028pub const NTF_OFFLOADED: u8 = 0x20;
1029
1030pub const NDA_MASTER: c_ushort = 9;
1031pub const NDA_LINK_NETNSID: c_ushort = 10;
1032pub const NDA_SRC_VNI: c_ushort = 11;
1033
1034pub const UNAME26: c_int = 0x0020000;
1036pub const FDPIC_FUNCPTRS: c_int = 0x0080000;
1037
1038pub const MAX_LINKS: c_int = 32;
1039
1040pub const GENL_UNS_ADMIN_PERM: c_int = 0x10;
1041
1042pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1;
1043pub const GENL_ID_PMCRAID: c_int = crate::NLMSG_MIN_TYPE + 2;
1044
1045pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0;
1047pub const XDP_COPY: crate::__u16 = 1 << 1;
1048pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2;
1049pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3;
1050pub const XDP_USE_SG: crate::__u16 = 1 << 4;
1051
1052pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0;
1053
1054pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0;
1055
1056pub const XDP_MMAP_OFFSETS: c_int = 1;
1057pub const XDP_RX_RING: c_int = 2;
1058pub const XDP_TX_RING: c_int = 3;
1059pub const XDP_UMEM_REG: c_int = 4;
1060pub const XDP_UMEM_FILL_RING: c_int = 5;
1061pub const XDP_UMEM_COMPLETION_RING: c_int = 6;
1062pub const XDP_STATISTICS: c_int = 7;
1063pub const XDP_OPTIONS: c_int = 8;
1064
1065pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0;
1066
1067pub const XDP_PGOFF_RX_RING: off_t = 0;
1068pub const XDP_PGOFF_TX_RING: off_t = 0x80000000;
1069pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000;
1070pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000;
1071
1072pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48;
1073pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1;
1074
1075pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0;
1076
1077pub const ELFOSABI_ARM_AEABI: u8 = 64;
1078
1079pub const CLONE_NEWTIME: c_int = 0x80;
1081pub const CLONE_CLEAR_SIGHAND: c_int = 0x100000000;
1083pub const CLONE_INTO_CGROUP: c_int = 0x200000000;
1084
1085pub const KEYCTL_DH_COMPUTE: u32 = 23;
1087pub const KEYCTL_PKEY_QUERY: u32 = 24;
1088pub const KEYCTL_PKEY_ENCRYPT: u32 = 25;
1089pub const KEYCTL_PKEY_DECRYPT: u32 = 26;
1090pub const KEYCTL_PKEY_SIGN: u32 = 27;
1091pub const KEYCTL_PKEY_VERIFY: u32 = 28;
1092pub const KEYCTL_RESTRICT_KEYRING: u32 = 29;
1093
1094pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01;
1095pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02;
1096pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04;
1097pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08;
1098cfg_if! {
1099 if #[cfg(not(any(
1100 target_arch = "mips",
1101 target_arch = "mips32r6",
1102 target_arch = "mips64",
1103 target_arch = "mips64r6"
1104 )))] {
1105 pub const KEYCTL_MOVE: u32 = 30;
1106 pub const KEYCTL_CAPABILITIES: u32 = 31;
1107
1108 pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01;
1109 pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02;
1110 pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04;
1111 pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08;
1112 pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10;
1113 pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20;
1114 pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40;
1115 pub const KEYCTL_CAPS0_MOVE: u32 = 0x80;
1116 pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01;
1117 pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02;
1118 }
1119}
1120
1121pub const M_MXFAST: c_int = 1;
1122pub const M_NLBLKS: c_int = 2;
1123pub const M_GRAIN: c_int = 3;
1124pub const M_KEEP: c_int = 4;
1125pub const M_TRIM_THRESHOLD: c_int = -1;
1126pub const M_TOP_PAD: c_int = -2;
1127pub const M_MMAP_THRESHOLD: c_int = -3;
1128pub const M_MMAP_MAX: c_int = -4;
1129pub const M_CHECK_ACTION: c_int = -5;
1130pub const M_PERTURB: c_int = -6;
1131pub const M_ARENA_TEST: c_int = -7;
1132pub const M_ARENA_MAX: c_int = -8;
1133
1134pub const SOMAXCONN: c_int = 4096;
1135
1136pub const MOVE_MOUNT_F_SYMLINKS: c_uint = 0x00000001;
1138pub const MOVE_MOUNT_F_AUTOMOUNTS: c_uint = 0x00000002;
1139pub const MOVE_MOUNT_F_EMPTY_PATH: c_uint = 0x00000004;
1140pub const MOVE_MOUNT_T_SYMLINKS: c_uint = 0x00000010;
1141pub const MOVE_MOUNT_T_AUTOMOUNTS: c_uint = 0x00000020;
1142pub const MOVE_MOUNT_T_EMPTY_PATH: c_uint = 0x00000040;
1143pub const MOVE_MOUNT_SET_GROUP: c_uint = 0x00000100;
1144pub const MOVE_MOUNT_BENEATH: c_uint = 0x00000200;
1145
1146pub const ADJ_OFFSET: c_uint = 0x0001;
1148pub const ADJ_FREQUENCY: c_uint = 0x0002;
1149pub const ADJ_MAXERROR: c_uint = 0x0004;
1150pub const ADJ_ESTERROR: c_uint = 0x0008;
1151pub const ADJ_STATUS: c_uint = 0x0010;
1152pub const ADJ_TIMECONST: c_uint = 0x0020;
1153pub const ADJ_TAI: c_uint = 0x0080;
1154pub const ADJ_SETOFFSET: c_uint = 0x0100;
1155pub const ADJ_MICRO: c_uint = 0x1000;
1156pub const ADJ_NANO: c_uint = 0x2000;
1157pub const ADJ_TICK: c_uint = 0x4000;
1158pub const ADJ_OFFSET_SINGLESHOT: c_uint = 0x8001;
1159pub const ADJ_OFFSET_SS_READ: c_uint = 0xa001;
1160pub const MOD_OFFSET: c_uint = ADJ_OFFSET;
1161pub const MOD_FREQUENCY: c_uint = ADJ_FREQUENCY;
1162pub const MOD_MAXERROR: c_uint = ADJ_MAXERROR;
1163pub const MOD_ESTERROR: c_uint = ADJ_ESTERROR;
1164pub const MOD_STATUS: c_uint = ADJ_STATUS;
1165pub const MOD_TIMECONST: c_uint = ADJ_TIMECONST;
1166pub const MOD_CLKB: c_uint = ADJ_TICK;
1167pub const MOD_CLKA: c_uint = ADJ_OFFSET_SINGLESHOT;
1168pub const MOD_TAI: c_uint = ADJ_TAI;
1169pub const MOD_MICRO: c_uint = ADJ_MICRO;
1170pub const MOD_NANO: c_uint = ADJ_NANO;
1171pub const STA_PLL: c_int = 0x0001;
1172pub const STA_PPSFREQ: c_int = 0x0002;
1173pub const STA_PPSTIME: c_int = 0x0004;
1174pub const STA_FLL: c_int = 0x0008;
1175pub const STA_INS: c_int = 0x0010;
1176pub const STA_DEL: c_int = 0x0020;
1177pub const STA_UNSYNC: c_int = 0x0040;
1178pub const STA_FREQHOLD: c_int = 0x0080;
1179pub const STA_PPSSIGNAL: c_int = 0x0100;
1180pub const STA_PPSJITTER: c_int = 0x0200;
1181pub const STA_PPSWANDER: c_int = 0x0400;
1182pub const STA_PPSERROR: c_int = 0x0800;
1183pub const STA_CLOCKERR: c_int = 0x1000;
1184pub const STA_NANO: c_int = 0x2000;
1185pub const STA_MODE: c_int = 0x4000;
1186pub const STA_CLK: c_int = 0x8000;
1187pub const STA_RONLY: c_int = STA_PPSSIGNAL
1188 | STA_PPSJITTER
1189 | STA_PPSWANDER
1190 | STA_PPSERROR
1191 | STA_CLOCKERR
1192 | STA_NANO
1193 | STA_MODE
1194 | STA_CLK;
1195pub const NTP_API: c_int = 4;
1196pub const TIME_OK: c_int = 0;
1197pub const TIME_INS: c_int = 1;
1198pub const TIME_DEL: c_int = 2;
1199pub const TIME_OOP: c_int = 3;
1200pub const TIME_WAIT: c_int = 4;
1201pub const TIME_ERROR: c_int = 5;
1202pub const TIME_BAD: c_int = TIME_ERROR;
1203pub const MAXTC: c_long = 6;
1204
1205pub const GLOB_PERIOD: c_int = 1 << 7;
1208pub const GLOB_ALTDIRFUNC: c_int = 1 << 9;
1209pub const GLOB_BRACE: c_int = 1 << 10;
1210pub const GLOB_NOMAGIC: c_int = 1 << 11;
1211pub const GLOB_TILDE: c_int = 1 << 12;
1212pub const GLOB_ONLYDIR: c_int = 1 << 13;
1213pub const GLOB_TILDE_CHECK: c_int = 1 << 14;
1214
1215pub const MADV_COLLAPSE: c_int = 25;
1216
1217cfg_if! {
1218 if #[cfg(any(
1219 target_arch = "arm",
1220 target_arch = "x86",
1221 target_arch = "x86_64",
1222 target_arch = "s390x",
1223 target_arch = "riscv64",
1224 target_arch = "riscv32"
1225 ))] {
1226 pub const PTHREAD_STACK_MIN: size_t = 16384;
1227 } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] {
1228 pub const PTHREAD_STACK_MIN: size_t = 0x6000;
1229 } else {
1230 pub const PTHREAD_STACK_MIN: size_t = 131072;
1231 }
1232}
1233pub const PTHREAD_MUTEX_ADAPTIVE_NP: c_int = 3;
1234
1235pub const REG_STARTEND: c_int = 4;
1236
1237pub const REG_EEND: c_int = 14;
1238pub const REG_ESIZE: c_int = 15;
1239pub const REG_ERPAREN: c_int = 16;
1240
1241cfg_if! {
1242 if #[cfg(any(
1243 target_arch = "x86",
1244 target_arch = "x86_64",
1245 target_arch = "arm",
1246 target_arch = "aarch64",
1247 target_arch = "loongarch64",
1248 target_arch = "riscv64",
1249 target_arch = "s390x"
1250 ))] {
1251 pub const TUNSETCARRIER: Ioctl = 0x400454e2;
1252 pub const TUNGETDEVNETNS: Ioctl = 0x54e3;
1253 } else if #[cfg(any(
1254 target_arch = "mips",
1255 target_arch = "mips64",
1256 target_arch = "powerpc",
1257 target_arch = "powerpc64",
1258 target_arch = "sparc",
1259 target_arch = "sparc64"
1260 ))] {
1261 pub const TUNSETCARRIER: Ioctl = 0x800454e2;
1262 pub const TUNGETDEVNETNS: Ioctl = 0x200054e3;
1263 } else {
1264 }
1266}
1267
1268extern "C" {
1269 pub fn fgetspent_r(
1270 fp: *mut crate::FILE,
1271 spbuf: *mut crate::spwd,
1272 buf: *mut c_char,
1273 buflen: size_t,
1274 spbufp: *mut *mut crate::spwd,
1275 ) -> c_int;
1276 pub fn sgetspent_r(
1277 s: *const c_char,
1278 spbuf: *mut crate::spwd,
1279 buf: *mut c_char,
1280 buflen: size_t,
1281 spbufp: *mut *mut crate::spwd,
1282 ) -> c_int;
1283 pub fn getspent_r(
1284 spbuf: *mut crate::spwd,
1285 buf: *mut c_char,
1286 buflen: size_t,
1287 spbufp: *mut *mut crate::spwd,
1288 ) -> c_int;
1289 pub fn qsort_r(
1290 base: *mut c_void,
1291 num: size_t,
1292 size: size_t,
1293 compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
1294 arg: *mut c_void,
1295 );
1296 pub fn sendmmsg(
1297 sockfd: c_int,
1298 msgvec: *mut crate::mmsghdr,
1299 vlen: c_uint,
1300 flags: c_int,
1301 ) -> c_int;
1302 pub fn recvmmsg(
1303 sockfd: c_int,
1304 msgvec: *mut crate::mmsghdr,
1305 vlen: c_uint,
1306 flags: c_int,
1307 timeout: *mut crate::timespec,
1308 ) -> c_int;
1309
1310 pub fn getrlimit64(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit64) -> c_int;
1311 pub fn setrlimit64(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit64)
1312 -> c_int;
1313 pub fn getrlimit(resource: crate::__rlimit_resource_t, rlim: *mut crate::rlimit) -> c_int;
1314 pub fn setrlimit(resource: crate::__rlimit_resource_t, rlim: *const crate::rlimit) -> c_int;
1315 pub fn prlimit(
1316 pid: crate::pid_t,
1317 resource: crate::__rlimit_resource_t,
1318 new_limit: *const crate::rlimit,
1319 old_limit: *mut crate::rlimit,
1320 ) -> c_int;
1321 pub fn prlimit64(
1322 pid: crate::pid_t,
1323 resource: crate::__rlimit_resource_t,
1324 new_limit: *const crate::rlimit64,
1325 old_limit: *mut crate::rlimit64,
1326 ) -> c_int;
1327 pub fn utmpname(file: *const c_char) -> c_int;
1328 pub fn utmpxname(file: *const c_char) -> c_int;
1329 pub fn getutxent() -> *mut utmpx;
1330 pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
1331 pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
1332 pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
1333 pub fn setutxent();
1334 pub fn endutxent();
1335 pub fn getpt() -> c_int;
1336 pub fn mallopt(param: c_int, value: c_int) -> c_int;
1337 pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int;
1338 pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int;
1339 pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t;
1340 pub fn getauxval(type_: c_ulong) -> c_ulong;
1341
1342 pub fn adjtimex(buf: *mut timex) -> c_int;
1343 pub fn ntp_adjtime(buf: *mut timex) -> c_int;
1344 #[link_name = "ntp_gettimex"]
1345 pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int;
1346 pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int;
1347
1348 pub fn fanotify_mark(
1349 fd: c_int,
1350 flags: c_uint,
1351 mask: u64,
1352 dirfd: c_int,
1353 path: *const c_char,
1354 ) -> c_int;
1355 pub fn preadv2(
1356 fd: c_int,
1357 iov: *const crate::iovec,
1358 iovcnt: c_int,
1359 offset: off_t,
1360 flags: c_int,
1361 ) -> ssize_t;
1362 pub fn pwritev2(
1363 fd: c_int,
1364 iov: *const crate::iovec,
1365 iovcnt: c_int,
1366 offset: off_t,
1367 flags: c_int,
1368 ) -> ssize_t;
1369 pub fn preadv64v2(
1370 fd: c_int,
1371 iov: *const crate::iovec,
1372 iovcnt: c_int,
1373 offset: off64_t,
1374 flags: c_int,
1375 ) -> ssize_t;
1376 pub fn pwritev64v2(
1377 fd: c_int,
1378 iov: *const crate::iovec,
1379 iovcnt: c_int,
1380 offset: off64_t,
1381 flags: c_int,
1382 ) -> ssize_t;
1383 pub fn renameat2(
1384 olddirfd: c_int,
1385 oldpath: *const c_char,
1386 newdirfd: c_int,
1387 newpath: *const c_char,
1388 flags: c_uint,
1389 ) -> c_int;
1390
1391 pub fn explicit_bzero(s: *mut c_void, len: size_t);
1393 pub fn reallocarray(ptr: *mut c_void, nmemb: size_t, size: size_t) -> *mut c_void;
1395
1396 pub fn ctermid(s: *mut c_char) -> *mut c_char;
1397 pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int;
1398 pub fn glob64(
1399 pattern: *const c_char,
1400 flags: c_int,
1401 errfunc: Option<extern "C" fn(epath: *const c_char, errno: c_int) -> c_int>,
1402 pglob: *mut glob64_t,
1403 ) -> c_int;
1404 pub fn globfree64(pglob: *mut glob64_t);
1405 pub fn ptrace(request: c_uint, ...) -> c_long;
1406 pub fn pthread_attr_getaffinity_np(
1407 attr: *const crate::pthread_attr_t,
1408 cpusetsize: size_t,
1409 cpuset: *mut crate::cpu_set_t,
1410 ) -> c_int;
1411 pub fn pthread_attr_setaffinity_np(
1412 attr: *mut crate::pthread_attr_t,
1413 cpusetsize: size_t,
1414 cpuset: *const crate::cpu_set_t,
1415 ) -> c_int;
1416 pub fn getpriority(which: crate::__priority_which_t, who: crate::id_t) -> c_int;
1417 pub fn setpriority(which: crate::__priority_which_t, who: crate::id_t, prio: c_int) -> c_int;
1418 pub fn pthread_rwlockattr_getkind_np(
1419 attr: *const crate::pthread_rwlockattr_t,
1420 val: *mut c_int,
1421 ) -> c_int;
1422 pub fn pthread_rwlockattr_setkind_np(
1423 attr: *mut crate::pthread_rwlockattr_t,
1424 val: c_int,
1425 ) -> c_int;
1426 pub fn pthread_sigqueue(thread: crate::pthread_t, sig: c_int, value: crate::sigval) -> c_int;
1427 pub fn mallinfo() -> crate::mallinfo;
1428 pub fn mallinfo2() -> crate::mallinfo2;
1429 pub fn malloc_stats();
1430 pub fn malloc_info(options: c_int, stream: *mut crate::FILE) -> c_int;
1431 pub fn malloc_usable_size(ptr: *mut c_void) -> size_t;
1432 pub fn getpwent_r(
1433 pwd: *mut crate::passwd,
1434 buf: *mut c_char,
1435 buflen: size_t,
1436 result: *mut *mut crate::passwd,
1437 ) -> c_int;
1438 pub fn getgrent_r(
1439 grp: *mut crate::group,
1440 buf: *mut c_char,
1441 buflen: size_t,
1442 result: *mut *mut crate::group,
1443 ) -> c_int;
1444 pub fn fgetpwent_r(
1445 stream: *mut crate::FILE,
1446 pwd: *mut crate::passwd,
1447 buf: *mut c_char,
1448 buflen: size_t,
1449 result: *mut *mut crate::passwd,
1450 ) -> c_int;
1451 pub fn fgetgrent_r(
1452 stream: *mut crate::FILE,
1453 grp: *mut crate::group,
1454 buf: *mut c_char,
1455 buflen: size_t,
1456 result: *mut *mut crate::group,
1457 ) -> c_int;
1458
1459 pub fn putpwent(p: *const crate::passwd, stream: *mut crate::FILE) -> c_int;
1460 pub fn putgrent(grp: *const crate::group, stream: *mut crate::FILE) -> c_int;
1461
1462 pub fn sethostid(hostid: c_long) -> c_int;
1463
1464 pub fn memfd_create(name: *const c_char, flags: c_uint) -> c_int;
1465 pub fn mlock2(addr: *const c_void, len: size_t, flags: c_uint) -> c_int;
1466
1467 pub fn euidaccess(pathname: *const c_char, mode: c_int) -> c_int;
1468 pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int;
1469
1470 pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char;
1471 pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char;
1472
1473 pub fn dirname(path: *mut c_char) -> *mut c_char;
1474 #[link_name = "__xpg_basename"]
1476 pub fn posix_basename(path: *mut c_char) -> *mut c_char;
1477 #[link_name = "basename"]
1479 pub fn gnu_basename(path: *const c_char) -> *mut c_char;
1480 pub fn dlmopen(lmid: Lmid_t, filename: *const c_char, flag: c_int) -> *mut c_void;
1481 pub fn dlinfo(handle: *mut c_void, request: c_int, info: *mut c_void) -> c_int;
1482 pub fn dladdr1(
1483 addr: *const c_void,
1484 info: *mut crate::Dl_info,
1485 extra_info: *mut *mut c_void,
1486 flags: c_int,
1487 ) -> c_int;
1488 pub fn malloc_trim(__pad: size_t) -> c_int;
1489 pub fn gnu_get_libc_release() -> *const c_char;
1490 pub fn gnu_get_libc_version() -> *const c_char;
1491
1492 pub fn posix_spawn_file_actions_addchdir_np(
1495 actions: *mut crate::posix_spawn_file_actions_t,
1496 path: *const c_char,
1497 ) -> c_int;
1498 pub fn posix_spawn_file_actions_addfchdir_np(
1500 actions: *mut crate::posix_spawn_file_actions_t,
1501 fd: c_int,
1502 ) -> c_int;
1503 pub fn posix_spawn_file_actions_addclosefrom_np(
1505 actions: *mut crate::posix_spawn_file_actions_t,
1506 from: c_int,
1507 ) -> c_int;
1508 pub fn posix_spawn_file_actions_addtcsetpgrp_np(
1510 actions: *mut crate::posix_spawn_file_actions_t,
1511 tcfd: c_int,
1512 ) -> c_int;
1513
1514 pub fn getmntent_r(
1516 stream: *mut crate::FILE,
1517 mntbuf: *mut crate::mntent,
1518 buf: *mut c_char,
1519 buflen: c_int,
1520 ) -> *mut crate::mntent;
1521
1522 pub fn execveat(
1523 dirfd: c_int,
1524 pathname: *const c_char,
1525 argv: *const *mut c_char,
1526 envp: *const *mut c_char,
1527 flags: c_int,
1528 ) -> c_int;
1529
1530 pub fn close_range(first: c_uint, last: c_uint, flags: c_int) -> c_int;
1532
1533 pub fn mq_notify(mqdes: crate::mqd_t, sevp: *const crate::sigevent) -> c_int;
1534
1535 pub fn epoll_pwait2(
1536 epfd: c_int,
1537 events: *mut crate::epoll_event,
1538 maxevents: c_int,
1539 timeout: *const crate::timespec,
1540 sigmask: *const crate::sigset_t,
1541 ) -> c_int;
1542
1543 pub fn mempcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void;
1544}
1545
1546cfg_if! {
1547 if #[cfg(any(
1548 target_arch = "x86",
1549 target_arch = "arm",
1550 target_arch = "m68k",
1551 target_arch = "csky",
1552 target_arch = "mips",
1553 target_arch = "mips32r6",
1554 target_arch = "powerpc",
1555 target_arch = "sparc",
1556 target_arch = "riscv32"
1557 ))] {
1558 mod b32;
1559 pub use self::b32::*;
1560 } else if #[cfg(any(
1561 target_arch = "x86_64",
1562 target_arch = "aarch64",
1563 target_arch = "powerpc64",
1564 target_arch = "mips64",
1565 target_arch = "mips64r6",
1566 target_arch = "s390x",
1567 target_arch = "sparc64",
1568 target_arch = "riscv64",
1569 target_arch = "loongarch64"
1570 ))] {
1571 mod b64;
1572 pub use self::b64::*;
1573 } else {
1574 }
1576}