1*65f23e6aSgnzlbg pub type pthread_t = c_ulong;
2*65f23e6aSgnzlbg pub type __priority_which_t = ::c_uint;
3*65f23e6aSgnzlbg pub type __rlimit_resource_t = ::c_uint;
4*65f23e6aSgnzlbg 
5*65f23e6aSgnzlbg s! {
6*65f23e6aSgnzlbg     pub struct statx {
7*65f23e6aSgnzlbg         pub stx_mask: u32,
8*65f23e6aSgnzlbg         pub stx_blksize: u32,
9*65f23e6aSgnzlbg         pub stx_attributes: u64,
10*65f23e6aSgnzlbg         pub stx_nlink: u32,
11*65f23e6aSgnzlbg         pub stx_uid: u32,
12*65f23e6aSgnzlbg         pub stx_gid: u32,
13*65f23e6aSgnzlbg         pub stx_mode: u16,
14*65f23e6aSgnzlbg         pub __statx_pad1: [u16; 1],
15*65f23e6aSgnzlbg         pub stx_ino: u64,
16*65f23e6aSgnzlbg         pub stx_size: u64,
17*65f23e6aSgnzlbg         pub stx_blocks: u64,
18*65f23e6aSgnzlbg         pub stx_attributes_mask: u64,
19*65f23e6aSgnzlbg         pub stx_atime: ::statx_timestamp,
20*65f23e6aSgnzlbg         pub stx_btime: ::statx_timestamp,
21*65f23e6aSgnzlbg         pub stx_ctime: ::statx_timestamp,
22*65f23e6aSgnzlbg         pub stx_mtime: ::statx_timestamp,
23*65f23e6aSgnzlbg         pub stx_rdev_major: u32,
24*65f23e6aSgnzlbg         pub stx_rdev_minor: u32,
25*65f23e6aSgnzlbg         pub stx_dev_major: u32,
26*65f23e6aSgnzlbg         pub stx_dev_minor: u32,
27*65f23e6aSgnzlbg         pub __statx_pad2: [u64; 14],
28*65f23e6aSgnzlbg     }
29*65f23e6aSgnzlbg 
30*65f23e6aSgnzlbg     pub struct statx_timestamp {
31*65f23e6aSgnzlbg         pub tv_sec: i64,
32*65f23e6aSgnzlbg         pub tv_nsec: u32,
33*65f23e6aSgnzlbg         pub __statx_timestamp_pad1: [i32; 1],
34*65f23e6aSgnzlbg     }
35*65f23e6aSgnzlbg 
36*65f23e6aSgnzlbg     pub struct aiocb {
37*65f23e6aSgnzlbg         pub aio_fildes: ::c_int,
38*65f23e6aSgnzlbg         pub aio_lio_opcode: ::c_int,
39*65f23e6aSgnzlbg         pub aio_reqprio: ::c_int,
40*65f23e6aSgnzlbg         pub aio_buf: *mut ::c_void,
41*65f23e6aSgnzlbg         pub aio_nbytes: ::size_t,
42*65f23e6aSgnzlbg         pub aio_sigevent: ::sigevent,
43*65f23e6aSgnzlbg         __next_prio: *mut aiocb,
44*65f23e6aSgnzlbg         __abs_prio: ::c_int,
45*65f23e6aSgnzlbg         __policy: ::c_int,
46*65f23e6aSgnzlbg         __error_code: ::c_int,
47*65f23e6aSgnzlbg         __return_value: ::ssize_t,
48*65f23e6aSgnzlbg         pub aio_offset: off_t,
49*65f23e6aSgnzlbg         #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))]
50*65f23e6aSgnzlbg         __unused1: [::c_char; 4],
51*65f23e6aSgnzlbg         __glibc_reserved: [::c_char; 32]
52*65f23e6aSgnzlbg     }
53*65f23e6aSgnzlbg 
54*65f23e6aSgnzlbg     pub struct __exit_status {
55*65f23e6aSgnzlbg         pub e_termination: ::c_short,
56*65f23e6aSgnzlbg         pub e_exit: ::c_short,
57*65f23e6aSgnzlbg     }
58*65f23e6aSgnzlbg 
59*65f23e6aSgnzlbg     pub struct __timeval {
60*65f23e6aSgnzlbg         pub tv_sec: i32,
61*65f23e6aSgnzlbg         pub tv_usec: i32,
62*65f23e6aSgnzlbg     }
63*65f23e6aSgnzlbg 
64*65f23e6aSgnzlbg 
65*65f23e6aSgnzlbg     pub struct stack_t {
66*65f23e6aSgnzlbg         pub ss_sp: *mut ::c_void,
67*65f23e6aSgnzlbg         pub ss_flags: ::c_int,
68*65f23e6aSgnzlbg         pub ss_size: ::size_t
69*65f23e6aSgnzlbg     }
70*65f23e6aSgnzlbg 
71*65f23e6aSgnzlbg     pub struct siginfo_t {
72*65f23e6aSgnzlbg         pub si_signo: ::c_int,
73*65f23e6aSgnzlbg         pub si_errno: ::c_int,
74*65f23e6aSgnzlbg         pub si_code: ::c_int,
75*65f23e6aSgnzlbg         #[doc(hidden)]
76*65f23e6aSgnzlbg         #[deprecated(
77*65f23e6aSgnzlbg             since="0.2.54",
78*65f23e6aSgnzlbg             note="Please leave a comment on \
79*65f23e6aSgnzlbg                 https://github.com/rust-lang/libc/pull/1316 if you're using \
80*65f23e6aSgnzlbg                 this field"
81*65f23e6aSgnzlbg         )]
82*65f23e6aSgnzlbg         pub _pad: [::c_int; 29],
83*65f23e6aSgnzlbg         #[cfg(target_arch = "s390x")]
84*65f23e6aSgnzlbg         _pad2: [::c_long; 14],
85*65f23e6aSgnzlbg         #[cfg(target_arch = "x86_64")]
86*65f23e6aSgnzlbg         _align: [u64; 0],
87*65f23e6aSgnzlbg         #[cfg(not(target_arch = "x86_64"))]
88*65f23e6aSgnzlbg         _align: [usize; 0],
89*65f23e6aSgnzlbg     }
90*65f23e6aSgnzlbg 
91*65f23e6aSgnzlbg     pub struct glob64_t {
92*65f23e6aSgnzlbg         pub gl_pathc: ::size_t,
93*65f23e6aSgnzlbg         pub gl_pathv: *mut *mut ::c_char,
94*65f23e6aSgnzlbg         pub gl_offs: ::size_t,
95*65f23e6aSgnzlbg         pub gl_flags: ::c_int,
96*65f23e6aSgnzlbg 
97*65f23e6aSgnzlbg         __unused1: *mut ::c_void,
98*65f23e6aSgnzlbg         __unused2: *mut ::c_void,
99*65f23e6aSgnzlbg         __unused3: *mut ::c_void,
100*65f23e6aSgnzlbg         __unused4: *mut ::c_void,
101*65f23e6aSgnzlbg         __unused5: *mut ::c_void,
102*65f23e6aSgnzlbg     }
103*65f23e6aSgnzlbg 
104*65f23e6aSgnzlbg     pub struct statfs {
105*65f23e6aSgnzlbg         pub f_type: __fsword_t,
106*65f23e6aSgnzlbg         pub f_bsize: __fsword_t,
107*65f23e6aSgnzlbg         pub f_blocks: ::fsblkcnt_t,
108*65f23e6aSgnzlbg         pub f_bfree: ::fsblkcnt_t,
109*65f23e6aSgnzlbg         pub f_bavail: ::fsblkcnt_t,
110*65f23e6aSgnzlbg 
111*65f23e6aSgnzlbg         pub f_files: ::fsfilcnt_t,
112*65f23e6aSgnzlbg         pub f_ffree: ::fsfilcnt_t,
113*65f23e6aSgnzlbg         pub f_fsid: ::fsid_t,
114*65f23e6aSgnzlbg 
115*65f23e6aSgnzlbg         pub f_namelen: __fsword_t,
116*65f23e6aSgnzlbg         pub f_frsize: __fsword_t,
117*65f23e6aSgnzlbg         #[cfg(not(target_arch = "s390x"))]
118*65f23e6aSgnzlbg         f_spare: [__fsword_t; 5],
119*65f23e6aSgnzlbg         #[cfg(target_arch = "s390x")]
120*65f23e6aSgnzlbg         pub f_flags: ::c_uint,
121*65f23e6aSgnzlbg         #[cfg(target_arch = "s390x")]
122*65f23e6aSgnzlbg         f_spare: [::c_uint; 4],
123*65f23e6aSgnzlbg     }
124*65f23e6aSgnzlbg 
125*65f23e6aSgnzlbg     pub struct msghdr {
126*65f23e6aSgnzlbg         pub msg_name: *mut ::c_void,
127*65f23e6aSgnzlbg         pub msg_namelen: ::socklen_t,
128*65f23e6aSgnzlbg         pub msg_iov: *mut ::iovec,
129*65f23e6aSgnzlbg         pub msg_iovlen: ::size_t,
130*65f23e6aSgnzlbg         pub msg_control: *mut ::c_void,
131*65f23e6aSgnzlbg         pub msg_controllen: ::size_t,
132*65f23e6aSgnzlbg         pub msg_flags: ::c_int,
133*65f23e6aSgnzlbg     }
134*65f23e6aSgnzlbg 
135*65f23e6aSgnzlbg     pub struct cmsghdr {
136*65f23e6aSgnzlbg         pub cmsg_len: ::size_t,
137*65f23e6aSgnzlbg         pub cmsg_level: ::c_int,
138*65f23e6aSgnzlbg         pub cmsg_type: ::c_int,
139*65f23e6aSgnzlbg     }
140*65f23e6aSgnzlbg 
141*65f23e6aSgnzlbg     pub struct termios {
142*65f23e6aSgnzlbg         pub c_iflag: ::tcflag_t,
143*65f23e6aSgnzlbg         pub c_oflag: ::tcflag_t,
144*65f23e6aSgnzlbg         pub c_cflag: ::tcflag_t,
145*65f23e6aSgnzlbg         pub c_lflag: ::tcflag_t,
146*65f23e6aSgnzlbg         pub c_line: ::cc_t,
147*65f23e6aSgnzlbg         pub c_cc: [::cc_t; ::NCCS],
148*65f23e6aSgnzlbg         #[cfg(not(target_arch = "sparc64"))]
149*65f23e6aSgnzlbg         pub c_ispeed: ::speed_t,
150*65f23e6aSgnzlbg         #[cfg(not(target_arch = "sparc64"))]
151*65f23e6aSgnzlbg         pub c_ospeed: ::speed_t,
152*65f23e6aSgnzlbg     }
153*65f23e6aSgnzlbg 
154*65f23e6aSgnzlbg     pub struct flock {
155*65f23e6aSgnzlbg         pub l_type: ::c_short,
156*65f23e6aSgnzlbg         pub l_whence: ::c_short,
157*65f23e6aSgnzlbg         pub l_start: ::off_t,
158*65f23e6aSgnzlbg         pub l_len: ::off_t,
159*65f23e6aSgnzlbg         pub l_pid: ::pid_t,
160*65f23e6aSgnzlbg     }
161*65f23e6aSgnzlbg 
162*65f23e6aSgnzlbg     pub struct mallinfo {
163*65f23e6aSgnzlbg         pub arena: ::c_int,
164*65f23e6aSgnzlbg         pub ordblks: ::c_int,
165*65f23e6aSgnzlbg         pub smblks: ::c_int,
166*65f23e6aSgnzlbg         pub hblks: ::c_int,
167*65f23e6aSgnzlbg         pub hblkhd: ::c_int,
168*65f23e6aSgnzlbg         pub usmblks: ::c_int,
169*65f23e6aSgnzlbg         pub fsmblks: ::c_int,
170*65f23e6aSgnzlbg         pub uordblks: ::c_int,
171*65f23e6aSgnzlbg         pub fordblks: ::c_int,
172*65f23e6aSgnzlbg         pub keepcost: ::c_int,
173*65f23e6aSgnzlbg     }
174*65f23e6aSgnzlbg 
175*65f23e6aSgnzlbg     pub struct nlmsghdr {
176*65f23e6aSgnzlbg         pub nlmsg_len: u32,
177*65f23e6aSgnzlbg         pub nlmsg_type: u16,
178*65f23e6aSgnzlbg         pub nlmsg_flags: u16,
179*65f23e6aSgnzlbg         pub nlmsg_seq: u32,
180*65f23e6aSgnzlbg         pub nlmsg_pid: u32,
181*65f23e6aSgnzlbg     }
182*65f23e6aSgnzlbg 
183*65f23e6aSgnzlbg     pub struct nlmsgerr {
184*65f23e6aSgnzlbg         pub error: ::c_int,
185*65f23e6aSgnzlbg         pub msg: nlmsghdr,
186*65f23e6aSgnzlbg     }
187*65f23e6aSgnzlbg 
188*65f23e6aSgnzlbg     pub struct nl_pktinfo {
189*65f23e6aSgnzlbg         pub group: u32,
190*65f23e6aSgnzlbg     }
191*65f23e6aSgnzlbg 
192*65f23e6aSgnzlbg     pub struct nl_mmap_req {
193*65f23e6aSgnzlbg         pub nm_block_size: ::c_uint,
194*65f23e6aSgnzlbg         pub nm_block_nr: ::c_uint,
195*65f23e6aSgnzlbg         pub nm_frame_size: ::c_uint,
196*65f23e6aSgnzlbg         pub nm_frame_nr: ::c_uint,
197*65f23e6aSgnzlbg     }
198*65f23e6aSgnzlbg 
199*65f23e6aSgnzlbg     pub struct nl_mmap_hdr {
200*65f23e6aSgnzlbg         pub nm_status: ::c_uint,
201*65f23e6aSgnzlbg         pub nm_len: ::c_uint,
202*65f23e6aSgnzlbg         pub nm_group: u32,
203*65f23e6aSgnzlbg         pub nm_pid: u32,
204*65f23e6aSgnzlbg         pub nm_uid: u32,
205*65f23e6aSgnzlbg         pub nm_gid: u32,
206*65f23e6aSgnzlbg     }
207*65f23e6aSgnzlbg 
208*65f23e6aSgnzlbg     pub struct nlattr {
209*65f23e6aSgnzlbg         pub nla_len: u16,
210*65f23e6aSgnzlbg         pub nla_type: u16,
211*65f23e6aSgnzlbg     }
212*65f23e6aSgnzlbg 
213*65f23e6aSgnzlbg     pub struct rtentry {
214*65f23e6aSgnzlbg         pub rt_pad1: ::c_ulong,
215*65f23e6aSgnzlbg         pub rt_dst: ::sockaddr,
216*65f23e6aSgnzlbg         pub rt_gateway: ::sockaddr,
217*65f23e6aSgnzlbg         pub rt_genmask: ::sockaddr,
218*65f23e6aSgnzlbg         pub rt_flags: ::c_ushort,
219*65f23e6aSgnzlbg         pub rt_pad2: ::c_short,
220*65f23e6aSgnzlbg         pub rt_pad3: ::c_ulong,
221*65f23e6aSgnzlbg         pub rt_tos: ::c_uchar,
222*65f23e6aSgnzlbg         pub rt_class: ::c_uchar,
223*65f23e6aSgnzlbg         #[cfg(target_pointer_width = "64")]
224*65f23e6aSgnzlbg         pub rt_pad4: [::c_short; 3usize],
225*65f23e6aSgnzlbg         #[cfg(not(target_pointer_width = "64"))]
226*65f23e6aSgnzlbg         pub rt_pad4: ::c_short,
227*65f23e6aSgnzlbg         pub rt_metric: ::c_short,
228*65f23e6aSgnzlbg         pub rt_dev: *mut ::c_char,
229*65f23e6aSgnzlbg         pub rt_mtu: ::c_ulong,
230*65f23e6aSgnzlbg         pub rt_window: ::c_ulong,
231*65f23e6aSgnzlbg         pub rt_irtt: ::c_ushort,
232*65f23e6aSgnzlbg     }
233*65f23e6aSgnzlbg }
234*65f23e6aSgnzlbg 
235*65f23e6aSgnzlbg impl siginfo_t {
236*65f23e6aSgnzlbg     pub unsafe fn si_addr(&self) -> *mut ::c_void {
237*65f23e6aSgnzlbg         #[repr(C)]
238*65f23e6aSgnzlbg         struct siginfo_sigfault {
239*65f23e6aSgnzlbg             _si_signo: ::c_int,
240*65f23e6aSgnzlbg             _si_errno: ::c_int,
241*65f23e6aSgnzlbg             _si_code: ::c_int,
242*65f23e6aSgnzlbg             si_addr: *mut ::c_void
243*65f23e6aSgnzlbg         }
244*65f23e6aSgnzlbg         (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr
245*65f23e6aSgnzlbg     }
246*65f23e6aSgnzlbg }
247*65f23e6aSgnzlbg 
248*65f23e6aSgnzlbg s_no_extra_traits! {
249*65f23e6aSgnzlbg     pub struct utmpx {
250*65f23e6aSgnzlbg         pub ut_type: ::c_short,
251*65f23e6aSgnzlbg         pub ut_pid: ::pid_t,
252*65f23e6aSgnzlbg         pub ut_line: [::c_char; __UT_LINESIZE],
253*65f23e6aSgnzlbg         pub ut_id: [::c_char; 4],
254*65f23e6aSgnzlbg 
255*65f23e6aSgnzlbg         pub ut_user: [::c_char; __UT_NAMESIZE],
256*65f23e6aSgnzlbg         pub ut_host: [::c_char; __UT_HOSTSIZE],
257*65f23e6aSgnzlbg         pub ut_exit: __exit_status,
258*65f23e6aSgnzlbg 
259*65f23e6aSgnzlbg         #[cfg(any(target_arch = "aarch64",
260*65f23e6aSgnzlbg                   all(target_pointer_width = "32",
261*65f23e6aSgnzlbg                       not(target_arch = "x86_64"))))]
262*65f23e6aSgnzlbg         pub ut_session: ::c_long,
263*65f23e6aSgnzlbg         #[cfg(any(target_arch = "aarch64",
264*65f23e6aSgnzlbg                   all(target_pointer_width = "32",
265*65f23e6aSgnzlbg                       not(target_arch = "x86_64"))))]
266*65f23e6aSgnzlbg         pub ut_tv: ::timeval,
267*65f23e6aSgnzlbg 
268*65f23e6aSgnzlbg         #[cfg(not(any(target_arch = "aarch64",
269*65f23e6aSgnzlbg                       all(target_pointer_width = "32",
270*65f23e6aSgnzlbg                           not(target_arch = "x86_64")))))]
271*65f23e6aSgnzlbg         pub ut_session: i32,
272*65f23e6aSgnzlbg         #[cfg(not(any(target_arch = "aarch64",
273*65f23e6aSgnzlbg                       all(target_pointer_width = "32",
274*65f23e6aSgnzlbg                           not(target_arch = "x86_64")))))]
275*65f23e6aSgnzlbg         pub ut_tv: __timeval,
276*65f23e6aSgnzlbg 
277*65f23e6aSgnzlbg         pub ut_addr_v6: [i32; 4],
278*65f23e6aSgnzlbg         __glibc_reserved: [::c_char; 20],
279*65f23e6aSgnzlbg     }
280*65f23e6aSgnzlbg }
281*65f23e6aSgnzlbg 
282*65f23e6aSgnzlbg cfg_if! {
283*65f23e6aSgnzlbg     if #[cfg(feature = "extra_traits")] {
284*65f23e6aSgnzlbg         impl PartialEq for utmpx {
285*65f23e6aSgnzlbg             fn eq(&self, other: &utmpx) -> bool {
286*65f23e6aSgnzlbg                 self.ut_type == other.ut_type
287*65f23e6aSgnzlbg                     && self.ut_pid == other.ut_pid
288*65f23e6aSgnzlbg                     && self.ut_line == other.ut_line
289*65f23e6aSgnzlbg                     && self.ut_id == other.ut_id
290*65f23e6aSgnzlbg                     && self.ut_user == other.ut_user
291*65f23e6aSgnzlbg                     && self
292*65f23e6aSgnzlbg                     .ut_host
293*65f23e6aSgnzlbg                     .iter()
294*65f23e6aSgnzlbg                     .zip(other.ut_host.iter())
295*65f23e6aSgnzlbg                     .all(|(a,b)| a == b)
296*65f23e6aSgnzlbg                     && self.ut_exit == other.ut_exit
297*65f23e6aSgnzlbg                     && self.ut_session == other.ut_session
298*65f23e6aSgnzlbg                     && self.ut_tv == other.ut_tv
299*65f23e6aSgnzlbg                     && self.ut_addr_v6 == other.ut_addr_v6
300*65f23e6aSgnzlbg                     && self.__glibc_reserved == other.__glibc_reserved
301*65f23e6aSgnzlbg             }
302*65f23e6aSgnzlbg         }
303*65f23e6aSgnzlbg 
304*65f23e6aSgnzlbg         impl Eq for utmpx {}
305*65f23e6aSgnzlbg 
306*65f23e6aSgnzlbg         impl ::fmt::Debug for utmpx {
307*65f23e6aSgnzlbg             fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
308*65f23e6aSgnzlbg                 f.debug_struct("utmpx")
309*65f23e6aSgnzlbg                     .field("ut_type", &self.ut_type)
310*65f23e6aSgnzlbg                     .field("ut_pid", &self.ut_pid)
311*65f23e6aSgnzlbg                     .field("ut_line", &self.ut_line)
312*65f23e6aSgnzlbg                     .field("ut_id", &self.ut_id)
313*65f23e6aSgnzlbg                     .field("ut_user", &self.ut_user)
314*65f23e6aSgnzlbg                 // FIXME: .field("ut_host", &self.ut_host)
315*65f23e6aSgnzlbg                     .field("ut_exit", &self.ut_exit)
316*65f23e6aSgnzlbg                     .field("ut_session", &self.ut_session)
317*65f23e6aSgnzlbg                     .field("ut_tv", &self.ut_tv)
318*65f23e6aSgnzlbg                     .field("ut_addr_v6", &self.ut_addr_v6)
319*65f23e6aSgnzlbg                     .field("__glibc_reserved", &self.__glibc_reserved)
320*65f23e6aSgnzlbg                     .finish()
321*65f23e6aSgnzlbg             }
322*65f23e6aSgnzlbg         }
323*65f23e6aSgnzlbg 
324*65f23e6aSgnzlbg         impl ::hash::Hash for utmpx {
325*65f23e6aSgnzlbg             fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
326*65f23e6aSgnzlbg                 self.ut_type.hash(state);
327*65f23e6aSgnzlbg                 self.ut_pid.hash(state);
328*65f23e6aSgnzlbg                 self.ut_line.hash(state);
329*65f23e6aSgnzlbg                 self.ut_id.hash(state);
330*65f23e6aSgnzlbg                 self.ut_user.hash(state);
331*65f23e6aSgnzlbg                 self.ut_host.hash(state);
332*65f23e6aSgnzlbg                 self.ut_exit.hash(state);
333*65f23e6aSgnzlbg                 self.ut_session.hash(state);
334*65f23e6aSgnzlbg                 self.ut_tv.hash(state);
335*65f23e6aSgnzlbg                 self.ut_addr_v6.hash(state);
336*65f23e6aSgnzlbg                 self.__glibc_reserved.hash(state);
337*65f23e6aSgnzlbg             }
338*65f23e6aSgnzlbg         }
339*65f23e6aSgnzlbg     }
340*65f23e6aSgnzlbg }
341*65f23e6aSgnzlbg 
342*65f23e6aSgnzlbg pub const RLIMIT_CPU: ::__rlimit_resource_t = 0;
343*65f23e6aSgnzlbg pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1;
344*65f23e6aSgnzlbg pub const RLIMIT_DATA: ::__rlimit_resource_t = 2;
345*65f23e6aSgnzlbg pub const RLIMIT_STACK: ::__rlimit_resource_t = 3;
346*65f23e6aSgnzlbg pub const RLIMIT_CORE: ::__rlimit_resource_t = 4;
347*65f23e6aSgnzlbg pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10;
348*65f23e6aSgnzlbg pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11;
349*65f23e6aSgnzlbg pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12;
350*65f23e6aSgnzlbg pub const RLIMIT_NICE: ::__rlimit_resource_t = 13;
351*65f23e6aSgnzlbg pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14;
352*65f23e6aSgnzlbg 
353*65f23e6aSgnzlbg pub const MADV_SOFT_OFFLINE: ::c_int = 101;
354*65f23e6aSgnzlbg pub const MS_RMT_MASK: ::c_ulong = 0x02800051;
355*65f23e6aSgnzlbg 
356*65f23e6aSgnzlbg pub const __UT_LINESIZE: usize = 32;
357*65f23e6aSgnzlbg pub const __UT_NAMESIZE: usize = 32;
358*65f23e6aSgnzlbg pub const __UT_HOSTSIZE: usize = 256;
359*65f23e6aSgnzlbg pub const EMPTY: ::c_short = 0;
360*65f23e6aSgnzlbg pub const RUN_LVL: ::c_short = 1;
361*65f23e6aSgnzlbg pub const BOOT_TIME: ::c_short = 2;
362*65f23e6aSgnzlbg pub const NEW_TIME: ::c_short = 3;
363*65f23e6aSgnzlbg pub const OLD_TIME: ::c_short = 4;
364*65f23e6aSgnzlbg pub const INIT_PROCESS: ::c_short = 5;
365*65f23e6aSgnzlbg pub const LOGIN_PROCESS: ::c_short = 6;
366*65f23e6aSgnzlbg pub const USER_PROCESS: ::c_short = 7;
367*65f23e6aSgnzlbg pub const DEAD_PROCESS: ::c_short = 8;
368*65f23e6aSgnzlbg pub const ACCOUNTING: ::c_short = 9;
369*65f23e6aSgnzlbg 
370*65f23e6aSgnzlbg pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
371*65f23e6aSgnzlbg pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
372*65f23e6aSgnzlbg pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
373*65f23e6aSgnzlbg pub const RLIM_INFINITY: ::rlim_t = !0;
374*65f23e6aSgnzlbg pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15;
375*65f23e6aSgnzlbg pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = 16;
376*65f23e6aSgnzlbg 
377*65f23e6aSgnzlbg pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
378*65f23e6aSgnzlbg 
379*65f23e6aSgnzlbg pub const SOL_RXRPC: ::c_int = 272;
380*65f23e6aSgnzlbg pub const SOL_PPPOL2TP: ::c_int = 273;
381*65f23e6aSgnzlbg pub const SOL_PNPIPE: ::c_int = 275;
382*65f23e6aSgnzlbg pub const SOL_RDS: ::c_int = 276;
383*65f23e6aSgnzlbg pub const SOL_IUCV: ::c_int = 277;
384*65f23e6aSgnzlbg pub const SOL_CAIF: ::c_int = 278;
385*65f23e6aSgnzlbg pub const SOL_NFC: ::c_int = 280;
386*65f23e6aSgnzlbg pub const SOL_XDP: ::c_int = 283;
387*65f23e6aSgnzlbg 
388*65f23e6aSgnzlbg pub const MSG_TRYHARD: ::c_int = 4;
389*65f23e6aSgnzlbg 
390*65f23e6aSgnzlbg pub const LC_PAPER: ::c_int = 7;
391*65f23e6aSgnzlbg pub const LC_NAME: ::c_int = 8;
392*65f23e6aSgnzlbg pub const LC_ADDRESS: ::c_int = 9;
393*65f23e6aSgnzlbg pub const LC_TELEPHONE: ::c_int = 10;
394*65f23e6aSgnzlbg pub const LC_MEASUREMENT: ::c_int = 11;
395*65f23e6aSgnzlbg pub const LC_IDENTIFICATION: ::c_int = 12;
396*65f23e6aSgnzlbg pub const LC_PAPER_MASK: ::c_int = (1 << LC_PAPER);
397*65f23e6aSgnzlbg pub const LC_NAME_MASK: ::c_int = (1 << LC_NAME);
398*65f23e6aSgnzlbg pub const LC_ADDRESS_MASK: ::c_int = (1 << LC_ADDRESS);
399*65f23e6aSgnzlbg pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE);
400*65f23e6aSgnzlbg pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT);
401*65f23e6aSgnzlbg pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION);
402*65f23e6aSgnzlbg pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK
403*65f23e6aSgnzlbg                                | ::LC_NUMERIC_MASK
404*65f23e6aSgnzlbg                                | ::LC_TIME_MASK
405*65f23e6aSgnzlbg                                | ::LC_COLLATE_MASK
406*65f23e6aSgnzlbg                                | ::LC_MONETARY_MASK
407*65f23e6aSgnzlbg                                | ::LC_MESSAGES_MASK
408*65f23e6aSgnzlbg                                | LC_PAPER_MASK
409*65f23e6aSgnzlbg                                | LC_NAME_MASK
410*65f23e6aSgnzlbg                                | LC_ADDRESS_MASK
411*65f23e6aSgnzlbg                                | LC_TELEPHONE_MASK
412*65f23e6aSgnzlbg                                | LC_MEASUREMENT_MASK
413*65f23e6aSgnzlbg                                | LC_IDENTIFICATION_MASK;
414*65f23e6aSgnzlbg 
415*65f23e6aSgnzlbg pub const MAP_ANON: ::c_int = 0x0020;
416*65f23e6aSgnzlbg pub const MAP_ANONYMOUS: ::c_int = 0x0020;
417*65f23e6aSgnzlbg pub const MAP_DENYWRITE: ::c_int = 0x0800;
418*65f23e6aSgnzlbg pub const MAP_EXECUTABLE: ::c_int = 0x01000;
419*65f23e6aSgnzlbg pub const MAP_POPULATE: ::c_int = 0x08000;
420*65f23e6aSgnzlbg pub const MAP_NONBLOCK: ::c_int = 0x010000;
421*65f23e6aSgnzlbg pub const MAP_STACK: ::c_int = 0x020000;
422*65f23e6aSgnzlbg pub const MAP_SHARED_VALIDATE: ::c_int = 0x3;
423*65f23e6aSgnzlbg pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000;
424*65f23e6aSgnzlbg 
425*65f23e6aSgnzlbg pub const ENOTSUP: ::c_int = EOPNOTSUPP;
426*65f23e6aSgnzlbg pub const EUCLEAN: ::c_int = 117;
427*65f23e6aSgnzlbg pub const ENOTNAM: ::c_int = 118;
428*65f23e6aSgnzlbg pub const ENAVAIL: ::c_int = 119;
429*65f23e6aSgnzlbg pub const EISNAM: ::c_int = 120;
430*65f23e6aSgnzlbg pub const EREMOTEIO: ::c_int = 121;
431*65f23e6aSgnzlbg 
432*65f23e6aSgnzlbg pub const SOCK_STREAM: ::c_int = 1;
433*65f23e6aSgnzlbg pub const SOCK_DGRAM: ::c_int = 2;
434*65f23e6aSgnzlbg pub const SOCK_SEQPACKET: ::c_int = 5;
435*65f23e6aSgnzlbg pub const SOCK_DCCP: ::c_int = 6;
436*65f23e6aSgnzlbg pub const SOCK_PACKET: ::c_int = 10;
437*65f23e6aSgnzlbg 
438*65f23e6aSgnzlbg pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15;
439*65f23e6aSgnzlbg pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16;
440*65f23e6aSgnzlbg pub const TCP_THIN_DUPACK: ::c_int = 17;
441*65f23e6aSgnzlbg pub const TCP_USER_TIMEOUT: ::c_int = 18;
442*65f23e6aSgnzlbg pub const TCP_REPAIR: ::c_int = 19;
443*65f23e6aSgnzlbg pub const TCP_REPAIR_QUEUE: ::c_int = 20;
444*65f23e6aSgnzlbg pub const TCP_QUEUE_SEQ: ::c_int = 21;
445*65f23e6aSgnzlbg pub const TCP_REPAIR_OPTIONS: ::c_int = 22;
446*65f23e6aSgnzlbg pub const TCP_FASTOPEN: ::c_int = 23;
447*65f23e6aSgnzlbg pub const TCP_TIMESTAMP: ::c_int = 24;
448*65f23e6aSgnzlbg 
449*65f23e6aSgnzlbg /* DCCP socket options */
450*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1;
451*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2;
452*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3;
453*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4;
454*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5;
455*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6;
456*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10;
457*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11;
458*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12;
459*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_CCID: ::c_int = 13;
460*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14;
461*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15;
462*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16;
463*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17;
464*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128;
465*65f23e6aSgnzlbg pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192;
466*65f23e6aSgnzlbg 
467*65f23e6aSgnzlbg /// maximum number of services provided on the same listening port
468*65f23e6aSgnzlbg pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32;
469*65f23e6aSgnzlbg 
470*65f23e6aSgnzlbg pub const SIGTTIN: ::c_int = 21;
471*65f23e6aSgnzlbg pub const SIGTTOU: ::c_int = 22;
472*65f23e6aSgnzlbg pub const SIGXCPU: ::c_int = 24;
473*65f23e6aSgnzlbg pub const SIGXFSZ: ::c_int = 25;
474*65f23e6aSgnzlbg pub const SIGVTALRM: ::c_int = 26;
475*65f23e6aSgnzlbg pub const SIGPROF: ::c_int = 27;
476*65f23e6aSgnzlbg pub const SIGWINCH: ::c_int = 28;
477*65f23e6aSgnzlbg 
478*65f23e6aSgnzlbg pub const SIGEV_THREAD_ID: ::c_int = 4;
479*65f23e6aSgnzlbg 
480*65f23e6aSgnzlbg pub const BUFSIZ: ::c_uint = 8192;
481*65f23e6aSgnzlbg pub const TMP_MAX: ::c_uint = 238328;
482*65f23e6aSgnzlbg pub const FOPEN_MAX: ::c_uint = 16;
483*65f23e6aSgnzlbg pub const POSIX_FADV_DONTNEED: ::c_int = 4;
484*65f23e6aSgnzlbg pub const POSIX_FADV_NOREUSE: ::c_int = 5;
485*65f23e6aSgnzlbg pub const POSIX_MADV_DONTNEED: ::c_int = 4;
486*65f23e6aSgnzlbg pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41;
487*65f23e6aSgnzlbg pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45;
488*65f23e6aSgnzlbg pub const _SC_PII: ::c_int = 53;
489*65f23e6aSgnzlbg pub const _SC_PII_XTI: ::c_int = 54;
490*65f23e6aSgnzlbg pub const _SC_PII_SOCKET: ::c_int = 55;
491*65f23e6aSgnzlbg pub const _SC_PII_INTERNET: ::c_int = 56;
492*65f23e6aSgnzlbg pub const _SC_PII_OSI: ::c_int = 57;
493*65f23e6aSgnzlbg pub const _SC_POLL: ::c_int = 58;
494*65f23e6aSgnzlbg pub const _SC_SELECT: ::c_int = 59;
495*65f23e6aSgnzlbg pub const _SC_PII_INTERNET_STREAM: ::c_int = 61;
496*65f23e6aSgnzlbg pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62;
497*65f23e6aSgnzlbg pub const _SC_PII_OSI_COTS: ::c_int = 63;
498*65f23e6aSgnzlbg pub const _SC_PII_OSI_CLTS: ::c_int = 64;
499*65f23e6aSgnzlbg pub const _SC_PII_OSI_M: ::c_int = 65;
500*65f23e6aSgnzlbg pub const _SC_T_IOV_MAX: ::c_int = 66;
501*65f23e6aSgnzlbg pub const _SC_2_C_VERSION: ::c_int = 96;
502*65f23e6aSgnzlbg pub const _SC_CHAR_BIT: ::c_int = 101;
503*65f23e6aSgnzlbg pub const _SC_CHAR_MAX: ::c_int = 102;
504*65f23e6aSgnzlbg pub const _SC_CHAR_MIN: ::c_int = 103;
505*65f23e6aSgnzlbg pub const _SC_INT_MAX: ::c_int = 104;
506*65f23e6aSgnzlbg pub const _SC_INT_MIN: ::c_int = 105;
507*65f23e6aSgnzlbg pub const _SC_LONG_BIT: ::c_int = 106;
508*65f23e6aSgnzlbg pub const _SC_WORD_BIT: ::c_int = 107;
509*65f23e6aSgnzlbg pub const _SC_MB_LEN_MAX: ::c_int = 108;
510*65f23e6aSgnzlbg pub const _SC_SSIZE_MAX: ::c_int = 110;
511*65f23e6aSgnzlbg pub const _SC_SCHAR_MAX: ::c_int = 111;
512*65f23e6aSgnzlbg pub const _SC_SCHAR_MIN: ::c_int = 112;
513*65f23e6aSgnzlbg pub const _SC_SHRT_MAX: ::c_int = 113;
514*65f23e6aSgnzlbg pub const _SC_SHRT_MIN: ::c_int = 114;
515*65f23e6aSgnzlbg pub const _SC_UCHAR_MAX: ::c_int = 115;
516*65f23e6aSgnzlbg pub const _SC_UINT_MAX: ::c_int = 116;
517*65f23e6aSgnzlbg pub const _SC_ULONG_MAX: ::c_int = 117;
518*65f23e6aSgnzlbg pub const _SC_USHRT_MAX: ::c_int = 118;
519*65f23e6aSgnzlbg pub const _SC_NL_ARGMAX: ::c_int = 119;
520*65f23e6aSgnzlbg pub const _SC_NL_LANGMAX: ::c_int = 120;
521*65f23e6aSgnzlbg pub const _SC_NL_MSGMAX: ::c_int = 121;
522*65f23e6aSgnzlbg pub const _SC_NL_NMAX: ::c_int = 122;
523*65f23e6aSgnzlbg pub const _SC_NL_SETMAX: ::c_int = 123;
524*65f23e6aSgnzlbg pub const _SC_NL_TEXTMAX: ::c_int = 124;
525*65f23e6aSgnzlbg pub const _SC_BASE: ::c_int = 134;
526*65f23e6aSgnzlbg pub const _SC_C_LANG_SUPPORT: ::c_int = 135;
527*65f23e6aSgnzlbg pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136;
528*65f23e6aSgnzlbg pub const _SC_DEVICE_IO: ::c_int = 140;
529*65f23e6aSgnzlbg pub const _SC_DEVICE_SPECIFIC: ::c_int = 141;
530*65f23e6aSgnzlbg pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142;
531*65f23e6aSgnzlbg pub const _SC_FD_MGMT: ::c_int = 143;
532*65f23e6aSgnzlbg pub const _SC_FIFO: ::c_int = 144;
533*65f23e6aSgnzlbg pub const _SC_PIPE: ::c_int = 145;
534*65f23e6aSgnzlbg pub const _SC_FILE_ATTRIBUTES: ::c_int = 146;
535*65f23e6aSgnzlbg pub const _SC_FILE_LOCKING: ::c_int = 147;
536*65f23e6aSgnzlbg pub const _SC_FILE_SYSTEM: ::c_int = 148;
537*65f23e6aSgnzlbg pub const _SC_MULTI_PROCESS: ::c_int = 150;
538*65f23e6aSgnzlbg pub const _SC_SINGLE_PROCESS: ::c_int = 151;
539*65f23e6aSgnzlbg pub const _SC_NETWORKING: ::c_int = 152;
540*65f23e6aSgnzlbg pub const _SC_REGEX_VERSION: ::c_int = 156;
541*65f23e6aSgnzlbg pub const _SC_SIGNALS: ::c_int = 158;
542*65f23e6aSgnzlbg pub const _SC_SYSTEM_DATABASE: ::c_int = 162;
543*65f23e6aSgnzlbg pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163;
544*65f23e6aSgnzlbg pub const _SC_USER_GROUPS: ::c_int = 166;
545*65f23e6aSgnzlbg pub const _SC_USER_GROUPS_R: ::c_int = 167;
546*65f23e6aSgnzlbg pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185;
547*65f23e6aSgnzlbg pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186;
548*65f23e6aSgnzlbg pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187;
549*65f23e6aSgnzlbg pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188;
550*65f23e6aSgnzlbg pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189;
551*65f23e6aSgnzlbg pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190;
552*65f23e6aSgnzlbg pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191;
553*65f23e6aSgnzlbg pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192;
554*65f23e6aSgnzlbg pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193;
555*65f23e6aSgnzlbg pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194;
556*65f23e6aSgnzlbg pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195;
557*65f23e6aSgnzlbg pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196;
558*65f23e6aSgnzlbg pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197;
559*65f23e6aSgnzlbg pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198;
560*65f23e6aSgnzlbg pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199;
561*65f23e6aSgnzlbg pub const O_ACCMODE: ::c_int = 3;
562*65f23e6aSgnzlbg pub const ST_RELATIME: ::c_ulong = 4096;
563*65f23e6aSgnzlbg pub const NI_MAXHOST: ::socklen_t = 1025;
564*65f23e6aSgnzlbg 
565*65f23e6aSgnzlbg pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5;
566*65f23e6aSgnzlbg pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff;
567*65f23e6aSgnzlbg pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245;
568*65f23e6aSgnzlbg pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45;
569*65f23e6aSgnzlbg pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53;
570*65f23e6aSgnzlbg pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53;
571*65f23e6aSgnzlbg pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53;
572*65f23e6aSgnzlbg pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53;
573*65f23e6aSgnzlbg pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849;
574*65f23e6aSgnzlbg pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6;
575*65f23e6aSgnzlbg pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660;
576*65f23e6aSgnzlbg pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6;
577*65f23e6aSgnzlbg pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f;
578*65f23e6aSgnzlbg pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f;
579*65f23e6aSgnzlbg pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468;
580*65f23e6aSgnzlbg pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478;
581*65f23e6aSgnzlbg pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44;
582*65f23e6aSgnzlbg pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c;
583*65f23e6aSgnzlbg pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969;
584*65f23e6aSgnzlbg pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1;
585*65f23e6aSgnzlbg pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0;
586*65f23e6aSgnzlbg pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f;
587*65f23e6aSgnzlbg pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973;
588*65f23e6aSgnzlbg pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b;
589*65f23e6aSgnzlbg pub const TMPFS_MAGIC: ::c_long = 0x01021994;
590*65f23e6aSgnzlbg pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2;
591*65f23e6aSgnzlbg 
592*65f23e6aSgnzlbg pub const VEOF: usize = 4;
593*65f23e6aSgnzlbg 
594*65f23e6aSgnzlbg pub const CPU_SETSIZE: ::c_int = 0x400;
595*65f23e6aSgnzlbg 
596*65f23e6aSgnzlbg pub const PTRACE_TRACEME: ::c_uint = 0;
597*65f23e6aSgnzlbg pub const PTRACE_PEEKTEXT: ::c_uint = 1;
598*65f23e6aSgnzlbg pub const PTRACE_PEEKDATA: ::c_uint = 2;
599*65f23e6aSgnzlbg pub const PTRACE_PEEKUSER: ::c_uint = 3;
600*65f23e6aSgnzlbg pub const PTRACE_POKETEXT: ::c_uint = 4;
601*65f23e6aSgnzlbg pub const PTRACE_POKEDATA: ::c_uint = 5;
602*65f23e6aSgnzlbg pub const PTRACE_POKEUSER: ::c_uint = 6;
603*65f23e6aSgnzlbg pub const PTRACE_CONT: ::c_uint = 7;
604*65f23e6aSgnzlbg pub const PTRACE_KILL: ::c_uint = 8;
605*65f23e6aSgnzlbg pub const PTRACE_SINGLESTEP: ::c_uint = 9;
606*65f23e6aSgnzlbg pub const PTRACE_ATTACH: ::c_uint = 16;
607*65f23e6aSgnzlbg pub const PTRACE_SYSCALL: ::c_uint = 24;
608*65f23e6aSgnzlbg pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200;
609*65f23e6aSgnzlbg pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201;
610*65f23e6aSgnzlbg pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202;
611*65f23e6aSgnzlbg pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203;
612*65f23e6aSgnzlbg pub const PTRACE_GETREGSET: ::c_uint = 0x4204;
613*65f23e6aSgnzlbg pub const PTRACE_SETREGSET: ::c_uint = 0x4205;
614*65f23e6aSgnzlbg pub const PTRACE_SEIZE: ::c_uint = 0x4206;
615*65f23e6aSgnzlbg pub const PTRACE_INTERRUPT: ::c_uint = 0x4207;
616*65f23e6aSgnzlbg pub const PTRACE_LISTEN: ::c_uint = 0x4208;
617*65f23e6aSgnzlbg pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209;
618*65f23e6aSgnzlbg 
619*65f23e6aSgnzlbg pub const EPOLLWAKEUP: ::c_int = 0x20000000;
620*65f23e6aSgnzlbg 
621*65f23e6aSgnzlbg pub const MAP_HUGETLB: ::c_int = 0x040000;
622*65f23e6aSgnzlbg 
623*65f23e6aSgnzlbg pub const SEEK_DATA: ::c_int = 3;
624*65f23e6aSgnzlbg pub const SEEK_HOLE: ::c_int = 4;
625*65f23e6aSgnzlbg 
626*65f23e6aSgnzlbg pub const TCSANOW: ::c_int = 0;
627*65f23e6aSgnzlbg pub const TCSADRAIN: ::c_int = 1;
628*65f23e6aSgnzlbg pub const TCSAFLUSH: ::c_int = 2;
629*65f23e6aSgnzlbg 
630*65f23e6aSgnzlbg pub const TIOCLINUX: ::c_ulong = 0x541C;
631*65f23e6aSgnzlbg pub const TIOCGSERIAL: ::c_ulong = 0x541E;
632*65f23e6aSgnzlbg 
633*65f23e6aSgnzlbg pub const RTLD_DEEPBIND: ::c_int = 0x8;
634*65f23e6aSgnzlbg pub const RTLD_GLOBAL: ::c_int = 0x100;
635*65f23e6aSgnzlbg pub const RTLD_NOLOAD: ::c_int = 0x4;
636*65f23e6aSgnzlbg 
637*65f23e6aSgnzlbg pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead;
638*65f23e6aSgnzlbg pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793;
639*65f23e6aSgnzlbg pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278;
640*65f23e6aSgnzlbg pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448;
641*65f23e6aSgnzlbg pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216;
642*65f23e6aSgnzlbg 
643*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567;
644*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123;
645*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF;
646*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000;
647*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC;
648*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4;
649*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2;
650*65f23e6aSgnzlbg pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543;
651*65f23e6aSgnzlbg 
652*65f23e6aSgnzlbg // linux/rtnetlink.h
653*65f23e6aSgnzlbg pub const TCA_PAD: ::c_ushort = 9;
654*65f23e6aSgnzlbg pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10;
655*65f23e6aSgnzlbg pub const TCA_CHAIN: ::c_ushort = 11;
656*65f23e6aSgnzlbg pub const TCA_HW_OFFLOAD: ::c_ushort = 12;
657*65f23e6aSgnzlbg 
658*65f23e6aSgnzlbg pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000;
659*65f23e6aSgnzlbg pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000;
660*65f23e6aSgnzlbg 
661*65f23e6aSgnzlbg pub const RTA_VIA: ::c_ushort = 18;
662*65f23e6aSgnzlbg pub const RTA_NEWDST: ::c_ushort = 19;
663*65f23e6aSgnzlbg pub const RTA_PREF: ::c_ushort = 20;
664*65f23e6aSgnzlbg pub const RTA_ENCAP_TYPE: ::c_ushort = 21;
665*65f23e6aSgnzlbg pub const RTA_ENCAP: ::c_ushort = 22;
666*65f23e6aSgnzlbg pub const RTA_EXPIRES: ::c_ushort = 23;
667*65f23e6aSgnzlbg pub const RTA_PAD: ::c_ushort = 24;
668*65f23e6aSgnzlbg pub const RTA_UID: ::c_ushort = 25;
669*65f23e6aSgnzlbg pub const RTA_TTL_PROPAGATE: ::c_ushort = 26;
670*65f23e6aSgnzlbg 
671*65f23e6aSgnzlbg // linux/neighbor.h
672*65f23e6aSgnzlbg pub const NTF_EXT_LEARNED: u8 = 0x10;
673*65f23e6aSgnzlbg pub const NTF_OFFLOADED: u8 = 0x20;
674*65f23e6aSgnzlbg 
675*65f23e6aSgnzlbg pub const NDA_MASTER: ::c_ushort = 9;
676*65f23e6aSgnzlbg pub const NDA_LINK_NETNSID: ::c_ushort = 10;
677*65f23e6aSgnzlbg pub const NDA_SRC_VNI: ::c_ushort = 11;
678*65f23e6aSgnzlbg 
679*65f23e6aSgnzlbg // linux/if_addr.h
680*65f23e6aSgnzlbg pub const IFA_FLAGS: ::c_ushort = 8;
681*65f23e6aSgnzlbg 
682*65f23e6aSgnzlbg pub const IFA_F_MANAGETEMPADDR: u32 = 0x100;
683*65f23e6aSgnzlbg pub const IFA_F_NOPREFIXROUTE: u32 = 0x200;
684*65f23e6aSgnzlbg pub const IFA_F_MCAUTOJOIN: u32 = 0x400;
685*65f23e6aSgnzlbg pub const IFA_F_STABLE_PRIVACY: u32 = 0x800;
686*65f23e6aSgnzlbg 
687*65f23e6aSgnzlbg pub const NETLINK_ROUTE: ::c_int = 0;
688*65f23e6aSgnzlbg pub const NETLINK_UNUSED: ::c_int = 1;
689*65f23e6aSgnzlbg pub const NETLINK_USERSOCK: ::c_int = 2;
690*65f23e6aSgnzlbg pub const NETLINK_FIREWALL: ::c_int = 3;
691*65f23e6aSgnzlbg pub const NETLINK_SOCK_DIAG: ::c_int = 4;
692*65f23e6aSgnzlbg pub const NETLINK_NFLOG: ::c_int = 5;
693*65f23e6aSgnzlbg pub const NETLINK_XFRM: ::c_int = 6;
694*65f23e6aSgnzlbg pub const NETLINK_SELINUX: ::c_int = 7;
695*65f23e6aSgnzlbg pub const NETLINK_ISCSI: ::c_int = 8;
696*65f23e6aSgnzlbg pub const NETLINK_AUDIT: ::c_int = 9;
697*65f23e6aSgnzlbg pub const NETLINK_FIB_LOOKUP: ::c_int = 10;
698*65f23e6aSgnzlbg pub const NETLINK_CONNECTOR: ::c_int = 11;
699*65f23e6aSgnzlbg pub const NETLINK_NETFILTER: ::c_int = 12;
700*65f23e6aSgnzlbg pub const NETLINK_IP6_FW: ::c_int = 13;
701*65f23e6aSgnzlbg pub const NETLINK_DNRTMSG: ::c_int = 14;
702*65f23e6aSgnzlbg pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15;
703*65f23e6aSgnzlbg pub const NETLINK_GENERIC: ::c_int = 16;
704*65f23e6aSgnzlbg pub const NETLINK_SCSITRANSPORT: ::c_int = 18;
705*65f23e6aSgnzlbg pub const NETLINK_ECRYPTFS: ::c_int = 19;
706*65f23e6aSgnzlbg pub const NETLINK_RDMA: ::c_int = 20;
707*65f23e6aSgnzlbg pub const NETLINK_CRYPTO: ::c_int = 21;
708*65f23e6aSgnzlbg pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG;
709*65f23e6aSgnzlbg 
710*65f23e6aSgnzlbg pub const MAX_LINKS: ::c_int = 32;
711*65f23e6aSgnzlbg 
712*65f23e6aSgnzlbg pub const NLM_F_REQUEST: ::c_int = 1;
713*65f23e6aSgnzlbg pub const NLM_F_MULTI: ::c_int = 2;
714*65f23e6aSgnzlbg pub const NLM_F_ACK: ::c_int = 4;
715*65f23e6aSgnzlbg pub const NLM_F_ECHO: ::c_int = 8;
716*65f23e6aSgnzlbg pub const NLM_F_DUMP_INTR: ::c_int = 16;
717*65f23e6aSgnzlbg pub const NLM_F_DUMP_FILTERED: ::c_int = 32;
718*65f23e6aSgnzlbg 
719*65f23e6aSgnzlbg pub const NLM_F_ROOT: ::c_int = 0x100;
720*65f23e6aSgnzlbg pub const NLM_F_MATCH: ::c_int = 0x200;
721*65f23e6aSgnzlbg pub const NLM_F_ATOMIC: ::c_int = 0x400;
722*65f23e6aSgnzlbg pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH;
723*65f23e6aSgnzlbg 
724*65f23e6aSgnzlbg pub const NLM_F_REPLACE: ::c_int = 0x100;
725*65f23e6aSgnzlbg pub const NLM_F_EXCL: ::c_int = 0x200;
726*65f23e6aSgnzlbg pub const NLM_F_CREATE: ::c_int = 0x400;
727*65f23e6aSgnzlbg pub const NLM_F_APPEND: ::c_int = 0x800;
728*65f23e6aSgnzlbg 
729*65f23e6aSgnzlbg pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1;
730*65f23e6aSgnzlbg pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2;
731*65f23e6aSgnzlbg pub const NETLINK_PKTINFO: ::c_int = 3;
732*65f23e6aSgnzlbg pub const NETLINK_BROADCAST_ERROR: ::c_int = 4;
733*65f23e6aSgnzlbg pub const NETLINK_NO_ENOBUFS: ::c_int = 5;
734*65f23e6aSgnzlbg pub const NETLINK_RX_RING: ::c_int = 6;
735*65f23e6aSgnzlbg pub const NETLINK_TX_RING: ::c_int = 7;
736*65f23e6aSgnzlbg pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8;
737*65f23e6aSgnzlbg pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9;
738*65f23e6aSgnzlbg pub const NETLINK_CAP_ACK: ::c_int = 10;
739*65f23e6aSgnzlbg 
740*65f23e6aSgnzlbg pub const NLA_F_NESTED: ::c_int = 1 << 15;
741*65f23e6aSgnzlbg pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14;
742*65f23e6aSgnzlbg pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER);
743*65f23e6aSgnzlbg 
744*65f23e6aSgnzlbg pub const NLA_ALIGNTO: ::c_int = 4;
745*65f23e6aSgnzlbg 
746*65f23e6aSgnzlbg pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10;
747*65f23e6aSgnzlbg 
748*65f23e6aSgnzlbg pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1;
749*65f23e6aSgnzlbg pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2;
750*65f23e6aSgnzlbg 
751*65f23e6aSgnzlbg pub const TIOCM_LE: ::c_int = 0x001;
752*65f23e6aSgnzlbg pub const TIOCM_DTR: ::c_int = 0x002;
753*65f23e6aSgnzlbg pub const TIOCM_RTS: ::c_int = 0x004;
754*65f23e6aSgnzlbg pub const TIOCM_ST: ::c_int = 0x008;
755*65f23e6aSgnzlbg pub const TIOCM_SR: ::c_int = 0x010;
756*65f23e6aSgnzlbg pub const TIOCM_CTS: ::c_int = 0x020;
757*65f23e6aSgnzlbg pub const TIOCM_CAR: ::c_int = 0x040;
758*65f23e6aSgnzlbg pub const TIOCM_RNG: ::c_int = 0x080;
759*65f23e6aSgnzlbg pub const TIOCM_DSR: ::c_int = 0x100;
760*65f23e6aSgnzlbg pub const TIOCM_CD: ::c_int = TIOCM_CAR;
761*65f23e6aSgnzlbg pub const TIOCM_RI: ::c_int = TIOCM_RNG;
762*65f23e6aSgnzlbg 
763*65f23e6aSgnzlbg pub const NF_NETDEV_INGRESS: ::c_int = 0;
764*65f23e6aSgnzlbg pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
765*65f23e6aSgnzlbg 
766*65f23e6aSgnzlbg pub const NFPROTO_INET: ::c_int = 1;
767*65f23e6aSgnzlbg pub const NFPROTO_NETDEV: ::c_int = 5;
768*65f23e6aSgnzlbg 
769*65f23e6aSgnzlbg // linux/netfilter/nf_tables.h
770*65f23e6aSgnzlbg pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256;
771*65f23e6aSgnzlbg pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256;
772*65f23e6aSgnzlbg pub const NFT_SET_MAXNAMELEN: ::c_int = 256;
773*65f23e6aSgnzlbg pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256;
774*65f23e6aSgnzlbg pub const NFT_USERDATA_MAXLEN: ::c_int = 256;
775*65f23e6aSgnzlbg 
776*65f23e6aSgnzlbg pub const NFT_REG_VERDICT: ::c_int = 0;
777*65f23e6aSgnzlbg pub const NFT_REG_1: ::c_int = 1;
778*65f23e6aSgnzlbg pub const NFT_REG_2: ::c_int = 2;
779*65f23e6aSgnzlbg pub const NFT_REG_3: ::c_int = 3;
780*65f23e6aSgnzlbg pub const NFT_REG_4: ::c_int = 4;
781*65f23e6aSgnzlbg pub const __NFT_REG_MAX: ::c_int = 5;
782*65f23e6aSgnzlbg pub const NFT_REG32_00: ::c_int = 8;
783*65f23e6aSgnzlbg pub const NFT_REG32_01: ::c_int = 9;
784*65f23e6aSgnzlbg pub const NFT_REG32_02: ::c_int = 10;
785*65f23e6aSgnzlbg pub const NFT_REG32_03: ::c_int = 11;
786*65f23e6aSgnzlbg pub const NFT_REG32_04: ::c_int = 12;
787*65f23e6aSgnzlbg pub const NFT_REG32_05: ::c_int = 13;
788*65f23e6aSgnzlbg pub const NFT_REG32_06: ::c_int = 14;
789*65f23e6aSgnzlbg pub const NFT_REG32_07: ::c_int = 15;
790*65f23e6aSgnzlbg pub const NFT_REG32_08: ::c_int = 16;
791*65f23e6aSgnzlbg pub const NFT_REG32_09: ::c_int = 17;
792*65f23e6aSgnzlbg pub const NFT_REG32_10: ::c_int = 18;
793*65f23e6aSgnzlbg pub const NFT_REG32_11: ::c_int = 19;
794*65f23e6aSgnzlbg pub const NFT_REG32_12: ::c_int = 20;
795*65f23e6aSgnzlbg pub const NFT_REG32_13: ::c_int = 21;
796*65f23e6aSgnzlbg pub const NFT_REG32_14: ::c_int = 22;
797*65f23e6aSgnzlbg pub const NFT_REG32_15: ::c_int = 23;
798*65f23e6aSgnzlbg 
799*65f23e6aSgnzlbg pub const NFT_REG_SIZE: ::c_int = 16;
800*65f23e6aSgnzlbg pub const NFT_REG32_SIZE: ::c_int = 4;
801*65f23e6aSgnzlbg 
802*65f23e6aSgnzlbg pub const NFT_CONTINUE: ::c_int = -1;
803*65f23e6aSgnzlbg pub const NFT_BREAK: ::c_int = -2;
804*65f23e6aSgnzlbg pub const NFT_JUMP: ::c_int = -3;
805*65f23e6aSgnzlbg pub const NFT_GOTO: ::c_int = -4;
806*65f23e6aSgnzlbg pub const NFT_RETURN: ::c_int = -5;
807*65f23e6aSgnzlbg 
808*65f23e6aSgnzlbg pub const NFT_MSG_NEWTABLE: ::c_int = 0;
809*65f23e6aSgnzlbg pub const NFT_MSG_GETTABLE: ::c_int = 1;
810*65f23e6aSgnzlbg pub const NFT_MSG_DELTABLE: ::c_int = 2;
811*65f23e6aSgnzlbg pub const NFT_MSG_NEWCHAIN: ::c_int = 3;
812*65f23e6aSgnzlbg pub const NFT_MSG_GETCHAIN: ::c_int = 4;
813*65f23e6aSgnzlbg pub const NFT_MSG_DELCHAIN: ::c_int = 5;
814*65f23e6aSgnzlbg pub const NFT_MSG_NEWRULE: ::c_int = 6;
815*65f23e6aSgnzlbg pub const NFT_MSG_GETRULE: ::c_int = 7;
816*65f23e6aSgnzlbg pub const NFT_MSG_DELRULE: ::c_int = 8;
817*65f23e6aSgnzlbg pub const NFT_MSG_NEWSET: ::c_int = 9;
818*65f23e6aSgnzlbg pub const NFT_MSG_GETSET: ::c_int = 10;
819*65f23e6aSgnzlbg pub const NFT_MSG_DELSET: ::c_int = 11;
820*65f23e6aSgnzlbg pub const NFT_MSG_NEWSETELEM: ::c_int = 12;
821*65f23e6aSgnzlbg pub const NFT_MSG_GETSETELEM: ::c_int = 13;
822*65f23e6aSgnzlbg pub const NFT_MSG_DELSETELEM: ::c_int = 14;
823*65f23e6aSgnzlbg pub const NFT_MSG_NEWGEN: ::c_int = 15;
824*65f23e6aSgnzlbg pub const NFT_MSG_GETGEN: ::c_int = 16;
825*65f23e6aSgnzlbg pub const NFT_MSG_TRACE: ::c_int = 17;
826*65f23e6aSgnzlbg cfg_if! {
827*65f23e6aSgnzlbg     if #[cfg(not(target_arch = "sparc64"))] {
828*65f23e6aSgnzlbg         pub const NFT_MSG_NEWOBJ: ::c_int = 18;
829*65f23e6aSgnzlbg         pub const NFT_MSG_GETOBJ: ::c_int = 19;
830*65f23e6aSgnzlbg         pub const NFT_MSG_DELOBJ: ::c_int = 20;
831*65f23e6aSgnzlbg         pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21;
832*65f23e6aSgnzlbg     }
833*65f23e6aSgnzlbg }
834*65f23e6aSgnzlbg pub const NFT_MSG_MAX: ::c_int = 25;
835*65f23e6aSgnzlbg 
836*65f23e6aSgnzlbg pub const NFT_SET_ANONYMOUS: ::c_int = 0x1;
837*65f23e6aSgnzlbg pub const NFT_SET_CONSTANT: ::c_int = 0x2;
838*65f23e6aSgnzlbg pub const NFT_SET_INTERVAL: ::c_int = 0x4;
839*65f23e6aSgnzlbg pub const NFT_SET_MAP: ::c_int = 0x8;
840*65f23e6aSgnzlbg pub const NFT_SET_TIMEOUT: ::c_int = 0x10;
841*65f23e6aSgnzlbg pub const NFT_SET_EVAL: ::c_int = 0x20;
842*65f23e6aSgnzlbg 
843*65f23e6aSgnzlbg pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0;
844*65f23e6aSgnzlbg pub const NFT_SET_POL_MEMORY: ::c_int = 1;
845*65f23e6aSgnzlbg 
846*65f23e6aSgnzlbg pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1;
847*65f23e6aSgnzlbg 
848*65f23e6aSgnzlbg pub const NFT_DATA_VALUE: ::c_uint = 0;
849*65f23e6aSgnzlbg pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00;
850*65f23e6aSgnzlbg 
851*65f23e6aSgnzlbg pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00;
852*65f23e6aSgnzlbg 
853*65f23e6aSgnzlbg pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64;
854*65f23e6aSgnzlbg 
855*65f23e6aSgnzlbg pub const NFT_BYTEORDER_NTOH: ::c_int = 0;
856*65f23e6aSgnzlbg pub const NFT_BYTEORDER_HTON: ::c_int = 1;
857*65f23e6aSgnzlbg 
858*65f23e6aSgnzlbg pub const NFT_CMP_EQ: ::c_int = 0;
859*65f23e6aSgnzlbg pub const NFT_CMP_NEQ: ::c_int = 1;
860*65f23e6aSgnzlbg pub const NFT_CMP_LT: ::c_int = 2;
861*65f23e6aSgnzlbg pub const NFT_CMP_LTE: ::c_int = 3;
862*65f23e6aSgnzlbg pub const NFT_CMP_GT: ::c_int = 4;
863*65f23e6aSgnzlbg pub const NFT_CMP_GTE: ::c_int = 5;
864*65f23e6aSgnzlbg 
865*65f23e6aSgnzlbg pub const NFT_RANGE_EQ: ::c_int = 0;
866*65f23e6aSgnzlbg pub const NFT_RANGE_NEQ: ::c_int = 1;
867*65f23e6aSgnzlbg 
868*65f23e6aSgnzlbg pub const NFT_LOOKUP_F_INV: ::c_int = (1 << 0);
869*65f23e6aSgnzlbg 
870*65f23e6aSgnzlbg pub const NFT_DYNSET_OP_ADD: ::c_int = 0;
871*65f23e6aSgnzlbg pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1;
872*65f23e6aSgnzlbg 
873*65f23e6aSgnzlbg pub const NFT_DYNSET_F_INV: ::c_int = (1 << 0);
874*65f23e6aSgnzlbg 
875*65f23e6aSgnzlbg pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0;
876*65f23e6aSgnzlbg pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1;
877*65f23e6aSgnzlbg pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2;
878*65f23e6aSgnzlbg 
879*65f23e6aSgnzlbg pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0;
880*65f23e6aSgnzlbg pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1;
881*65f23e6aSgnzlbg 
882*65f23e6aSgnzlbg pub const NFT_META_LEN: ::c_int = 0;
883*65f23e6aSgnzlbg pub const NFT_META_PROTOCOL: ::c_int = 1;
884*65f23e6aSgnzlbg pub const NFT_META_PRIORITY: ::c_int = 2;
885*65f23e6aSgnzlbg pub const NFT_META_MARK: ::c_int = 3;
886*65f23e6aSgnzlbg pub const NFT_META_IIF: ::c_int = 4;
887*65f23e6aSgnzlbg pub const NFT_META_OIF: ::c_int = 5;
888*65f23e6aSgnzlbg pub const NFT_META_IIFNAME: ::c_int = 6;
889*65f23e6aSgnzlbg pub const NFT_META_OIFNAME: ::c_int = 7;
890*65f23e6aSgnzlbg pub const NFT_META_IIFTYPE: ::c_int = 8;
891*65f23e6aSgnzlbg pub const NFT_META_OIFTYPE: ::c_int = 9;
892*65f23e6aSgnzlbg pub const NFT_META_SKUID: ::c_int = 10;
893*65f23e6aSgnzlbg pub const NFT_META_SKGID: ::c_int = 11;
894*65f23e6aSgnzlbg pub const NFT_META_NFTRACE: ::c_int = 12;
895*65f23e6aSgnzlbg pub const NFT_META_RTCLASSID: ::c_int = 13;
896*65f23e6aSgnzlbg pub const NFT_META_SECMARK: ::c_int = 14;
897*65f23e6aSgnzlbg pub const NFT_META_NFPROTO: ::c_int = 15;
898*65f23e6aSgnzlbg pub const NFT_META_L4PROTO: ::c_int = 16;
899*65f23e6aSgnzlbg pub const NFT_META_BRI_IIFNAME: ::c_int = 17;
900*65f23e6aSgnzlbg pub const NFT_META_BRI_OIFNAME: ::c_int = 18;
901*65f23e6aSgnzlbg pub const NFT_META_PKTTYPE: ::c_int = 19;
902*65f23e6aSgnzlbg pub const NFT_META_CPU: ::c_int = 20;
903*65f23e6aSgnzlbg pub const NFT_META_IIFGROUP: ::c_int = 21;
904*65f23e6aSgnzlbg pub const NFT_META_OIFGROUP: ::c_int = 22;
905*65f23e6aSgnzlbg pub const NFT_META_CGROUP: ::c_int = 23;
906*65f23e6aSgnzlbg pub const NFT_META_PRANDOM: ::c_int = 24;
907*65f23e6aSgnzlbg 
908*65f23e6aSgnzlbg pub const NFT_CT_STATE: ::c_int = 0;
909*65f23e6aSgnzlbg pub const NFT_CT_DIRECTION: ::c_int = 1;
910*65f23e6aSgnzlbg pub const NFT_CT_STATUS: ::c_int = 2;
911*65f23e6aSgnzlbg pub const NFT_CT_MARK: ::c_int = 3;
912*65f23e6aSgnzlbg pub const NFT_CT_SECMARK: ::c_int = 4;
913*65f23e6aSgnzlbg pub const NFT_CT_EXPIRATION: ::c_int = 5;
914*65f23e6aSgnzlbg pub const NFT_CT_HELPER: ::c_int = 6;
915*65f23e6aSgnzlbg pub const NFT_CT_L3PROTOCOL: ::c_int = 7;
916*65f23e6aSgnzlbg pub const NFT_CT_SRC: ::c_int = 8;
917*65f23e6aSgnzlbg pub const NFT_CT_DST: ::c_int = 9;
918*65f23e6aSgnzlbg pub const NFT_CT_PROTOCOL: ::c_int = 10;
919*65f23e6aSgnzlbg pub const NFT_CT_PROTO_SRC: ::c_int = 11;
920*65f23e6aSgnzlbg pub const NFT_CT_PROTO_DST: ::c_int = 12;
921*65f23e6aSgnzlbg pub const NFT_CT_LABELS: ::c_int = 13;
922*65f23e6aSgnzlbg pub const NFT_CT_PKTS: ::c_int = 14;
923*65f23e6aSgnzlbg pub const NFT_CT_BYTES: ::c_int = 15;
924*65f23e6aSgnzlbg 
925*65f23e6aSgnzlbg pub const NFT_LIMIT_PKTS: ::c_int = 0;
926*65f23e6aSgnzlbg pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1;
927*65f23e6aSgnzlbg 
928*65f23e6aSgnzlbg pub const NFT_LIMIT_F_INV: ::c_int = (1 << 0);
929*65f23e6aSgnzlbg 
930*65f23e6aSgnzlbg pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01;
931*65f23e6aSgnzlbg pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02;
932*65f23e6aSgnzlbg pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03;
933*65f23e6aSgnzlbg 
934*65f23e6aSgnzlbg pub const NFT_QUOTA_F_INV: ::c_int = (1 << 0);
935*65f23e6aSgnzlbg 
936*65f23e6aSgnzlbg pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0;
937*65f23e6aSgnzlbg pub const NFT_REJECT_TCP_RST: ::c_int = 1;
938*65f23e6aSgnzlbg pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2;
939*65f23e6aSgnzlbg 
940*65f23e6aSgnzlbg pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0;
941*65f23e6aSgnzlbg pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1;
942*65f23e6aSgnzlbg pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2;
943*65f23e6aSgnzlbg pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3;
944*65f23e6aSgnzlbg 
945*65f23e6aSgnzlbg pub const NFT_NAT_SNAT: ::c_int = 0;
946*65f23e6aSgnzlbg pub const NFT_NAT_DNAT: ::c_int = 1;
947*65f23e6aSgnzlbg 
948*65f23e6aSgnzlbg pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0;
949*65f23e6aSgnzlbg pub const NFT_TRACETYPE_POLICY: ::c_int = 1;
950*65f23e6aSgnzlbg pub const NFT_TRACETYPE_RETURN: ::c_int = 2;
951*65f23e6aSgnzlbg pub const NFT_TRACETYPE_RULE: ::c_int = 3;
952*65f23e6aSgnzlbg 
953*65f23e6aSgnzlbg pub const NFT_NG_INCREMENTAL: ::c_int = 0;
954*65f23e6aSgnzlbg pub const NFT_NG_RANDOM: ::c_int = 1;
955*65f23e6aSgnzlbg 
956*65f23e6aSgnzlbg pub const M_MXFAST: ::c_int = 1;
957*65f23e6aSgnzlbg pub const M_NLBLKS: ::c_int = 2;
958*65f23e6aSgnzlbg pub const M_GRAIN: ::c_int = 3;
959*65f23e6aSgnzlbg pub const M_KEEP: ::c_int = 4;
960*65f23e6aSgnzlbg pub const M_TRIM_THRESHOLD: ::c_int = -1;
961*65f23e6aSgnzlbg pub const M_TOP_PAD: ::c_int = -2;
962*65f23e6aSgnzlbg pub const M_MMAP_THRESHOLD: ::c_int = -3;
963*65f23e6aSgnzlbg pub const M_MMAP_MAX: ::c_int = -4;
964*65f23e6aSgnzlbg pub const M_CHECK_ACTION: ::c_int = -5;
965*65f23e6aSgnzlbg pub const M_PERTURB: ::c_int = -6;
966*65f23e6aSgnzlbg pub const M_ARENA_TEST: ::c_int = -7;
967*65f23e6aSgnzlbg pub const M_ARENA_MAX: ::c_int = -8;
968*65f23e6aSgnzlbg 
969*65f23e6aSgnzlbg #[doc(hidden)]
970*65f23e6aSgnzlbg #[deprecated(
971*65f23e6aSgnzlbg     since = "0.2.55",
972*65f23e6aSgnzlbg     note = "If you are using this report to: \
973*65f23e6aSgnzlbg             https://github.com/rust-lang/libc/issues/665"
974*65f23e6aSgnzlbg )]
975*65f23e6aSgnzlbg pub const AF_MAX: ::c_int = 45;
976*65f23e6aSgnzlbg #[doc(hidden)]
977*65f23e6aSgnzlbg #[deprecated(
978*65f23e6aSgnzlbg     since = "0.2.55",
979*65f23e6aSgnzlbg     note = "If you are using this report to: \
980*65f23e6aSgnzlbg             https://github.com/rust-lang/libc/issues/665"
981*65f23e6aSgnzlbg )]
982*65f23e6aSgnzlbg #[allow(deprecated)]
983*65f23e6aSgnzlbg pub const PF_MAX: ::c_int = AF_MAX;
984*65f23e6aSgnzlbg 
985*65f23e6aSgnzlbg pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000;
986*65f23e6aSgnzlbg pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000;
987*65f23e6aSgnzlbg pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000;
988*65f23e6aSgnzlbg pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000;
989*65f23e6aSgnzlbg pub const STATX_TYPE: ::c_uint = 0x0001;
990*65f23e6aSgnzlbg pub const STATX_MODE: ::c_uint = 0x0002;
991*65f23e6aSgnzlbg pub const STATX_NLINK: ::c_uint = 0x0004;
992*65f23e6aSgnzlbg pub const STATX_UID: ::c_uint = 0x0008;
993*65f23e6aSgnzlbg pub const STATX_GID: ::c_uint = 0x0010;
994*65f23e6aSgnzlbg pub const STATX_ATIME: ::c_uint = 0x0020;
995*65f23e6aSgnzlbg pub const STATX_MTIME: ::c_uint = 0x0040;
996*65f23e6aSgnzlbg pub const STATX_CTIME: ::c_uint = 0x0080;
997*65f23e6aSgnzlbg pub const STATX_INO: ::c_uint = 0x0100;
998*65f23e6aSgnzlbg pub const STATX_SIZE: ::c_uint = 0x0200;
999*65f23e6aSgnzlbg pub const STATX_BLOCKS: ::c_uint = 0x0400;
1000*65f23e6aSgnzlbg pub const STATX_BASIC_STATS: ::c_uint = 0x07ff;
1001*65f23e6aSgnzlbg pub const STATX_BTIME: ::c_uint = 0x0800;
1002*65f23e6aSgnzlbg pub const STATX_ALL: ::c_uint = 0x0fff;
1003*65f23e6aSgnzlbg pub const STATX__RESERVED: ::c_int = 0x80000000;
1004*65f23e6aSgnzlbg pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004;
1005*65f23e6aSgnzlbg pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010;
1006*65f23e6aSgnzlbg pub const STATX_ATTR_APPEND: ::c_int = 0x0020;
1007*65f23e6aSgnzlbg pub const STATX_ATTR_NODUMP: ::c_int = 0x0040;
1008*65f23e6aSgnzlbg pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800;
1009*65f23e6aSgnzlbg pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000;
1010*65f23e6aSgnzlbg 
1011*65f23e6aSgnzlbg cfg_if! {
1012*65f23e6aSgnzlbg     if #[cfg(any(target_arch = "arm", target_arch = "x86",
1013*65f23e6aSgnzlbg                  target_arch = "x86_64"))] {
1014*65f23e6aSgnzlbg         pub const PTHREAD_STACK_MIN: ::size_t = 16384;
1015*65f23e6aSgnzlbg     } else if #[cfg(target_arch = "sparc64")] {
1016*65f23e6aSgnzlbg         pub const PTHREAD_STACK_MIN: ::size_t = 0x6000;
1017*65f23e6aSgnzlbg     } else {
1018*65f23e6aSgnzlbg         pub const PTHREAD_STACK_MIN: ::size_t = 131072;
1019*65f23e6aSgnzlbg     }
1020*65f23e6aSgnzlbg }
1021*65f23e6aSgnzlbg pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3;
1022*65f23e6aSgnzlbg 
1023*65f23e6aSgnzlbg f! {
1024*65f23e6aSgnzlbg     pub fn NLA_ALIGN(len: ::c_int) -> ::c_int {
1025*65f23e6aSgnzlbg         return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1)
1026*65f23e6aSgnzlbg     }
1027*65f23e6aSgnzlbg }
1028*65f23e6aSgnzlbg 
1029*65f23e6aSgnzlbg extern {
1030*65f23e6aSgnzlbg     pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint,
1031*65f23e6aSgnzlbg                     flags: ::c_int) -> ::c_int;
1032*65f23e6aSgnzlbg     pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint,
1033*65f23e6aSgnzlbg                     flags: ::c_int, timeout: *mut ::timespec) -> ::c_int;
1034*65f23e6aSgnzlbg 
1035*65f23e6aSgnzlbg     pub fn getrlimit64(resource: ::__rlimit_resource_t,
1036*65f23e6aSgnzlbg                        rlim: *mut ::rlimit64) -> ::c_int;
1037*65f23e6aSgnzlbg     pub fn setrlimit64(resource: ::__rlimit_resource_t,
1038*65f23e6aSgnzlbg                        rlim: *const ::rlimit64) -> ::c_int;
1039*65f23e6aSgnzlbg     pub fn getrlimit(resource: ::__rlimit_resource_t,
1040*65f23e6aSgnzlbg                      rlim: *mut ::rlimit) -> ::c_int;
1041*65f23e6aSgnzlbg     pub fn setrlimit(resource: ::__rlimit_resource_t,
1042*65f23e6aSgnzlbg                      rlim: *const ::rlimit) -> ::c_int;
1043*65f23e6aSgnzlbg     pub fn prlimit(pid: ::pid_t,
1044*65f23e6aSgnzlbg                    resource: ::__rlimit_resource_t, new_limit: *const ::rlimit,
1045*65f23e6aSgnzlbg                    old_limit: *mut ::rlimit) -> ::c_int;
1046*65f23e6aSgnzlbg     pub fn prlimit64(pid: ::pid_t,
1047*65f23e6aSgnzlbg                      resource: ::__rlimit_resource_t,
1048*65f23e6aSgnzlbg                      new_limit: *const ::rlimit64,
1049*65f23e6aSgnzlbg                      old_limit: *mut ::rlimit64) -> ::c_int;
1050*65f23e6aSgnzlbg     pub fn utmpxname(file: *const ::c_char) -> ::c_int;
1051*65f23e6aSgnzlbg     pub fn getutxent() -> *mut utmpx;
1052*65f23e6aSgnzlbg     pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
1053*65f23e6aSgnzlbg     pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
1054*65f23e6aSgnzlbg     pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
1055*65f23e6aSgnzlbg     pub fn setutxent();
1056*65f23e6aSgnzlbg     pub fn endutxent();
1057*65f23e6aSgnzlbg     pub fn getpt() -> ::c_int;
1058*65f23e6aSgnzlbg     pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int;
1059*65f23e6aSgnzlbg     pub fn gettimeofday(tp: *mut ::timeval,
1060*65f23e6aSgnzlbg                         tz: *mut ::timezone) -> ::c_int;
1061*65f23e6aSgnzlbg     pub fn statx(dirfd: ::c_int, pathname: *const c_char, flags: ::c_int,
1062*65f23e6aSgnzlbg                  mask: ::c_uint, statxbuf: *mut statx) -> ::c_int;
1063*65f23e6aSgnzlbg }
1064*65f23e6aSgnzlbg 
1065*65f23e6aSgnzlbg #[link(name = "util")]
1066*65f23e6aSgnzlbg extern {
1067*65f23e6aSgnzlbg     pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
1068*65f23e6aSgnzlbg     pub fn backtrace(buf: *mut *mut ::c_void,
1069*65f23e6aSgnzlbg                      sz: ::c_int) -> ::c_int;
1070*65f23e6aSgnzlbg     pub fn glob64(pattern: *const ::c_char,
1071*65f23e6aSgnzlbg                   flags: ::c_int,
1072*65f23e6aSgnzlbg                   errfunc: ::Option<extern fn(epath: *const ::c_char,
1073*65f23e6aSgnzlbg                                                    errno: ::c_int)
1074*65f23e6aSgnzlbg                                                    -> ::c_int>,
1075*65f23e6aSgnzlbg                   pglob: *mut glob64_t) -> ::c_int;
1076*65f23e6aSgnzlbg     pub fn globfree64(pglob: *mut glob64_t);
1077*65f23e6aSgnzlbg     pub fn ptrace(request: ::c_uint, ...) -> ::c_long;
1078*65f23e6aSgnzlbg     pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t,
1079*65f23e6aSgnzlbg                                        cpusetsize: ::size_t,
1080*65f23e6aSgnzlbg                                        cpuset: *mut ::cpu_set_t) -> ::c_int;
1081*65f23e6aSgnzlbg     pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t,
1082*65f23e6aSgnzlbg                                        cpusetsize: ::size_t,
1083*65f23e6aSgnzlbg                                        cpuset: *const ::cpu_set_t) -> ::c_int;
1084*65f23e6aSgnzlbg     pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int;
1085*65f23e6aSgnzlbg     pub fn setpriority(which: ::__priority_which_t, who: ::id_t,
1086*65f23e6aSgnzlbg                                        prio: ::c_int) -> ::c_int;
1087*65f23e6aSgnzlbg     pub fn pthread_getaffinity_np(thread: ::pthread_t,
1088*65f23e6aSgnzlbg                                   cpusetsize: ::size_t,
1089*65f23e6aSgnzlbg                                   cpuset: *mut ::cpu_set_t) -> ::c_int;
1090*65f23e6aSgnzlbg     pub fn pthread_setaffinity_np(thread: ::pthread_t,
1091*65f23e6aSgnzlbg                                   cpusetsize: ::size_t,
1092*65f23e6aSgnzlbg                                   cpuset: *const ::cpu_set_t) -> ::c_int;
1093*65f23e6aSgnzlbg     pub fn pthread_rwlockattr_getkind_np(attr: *const ::pthread_rwlockattr_t,
1094*65f23e6aSgnzlbg                                          val: *mut ::c_int) -> ::c_int;
1095*65f23e6aSgnzlbg     pub fn pthread_rwlockattr_setkind_np(attr: *mut ::pthread_rwlockattr_t,
1096*65f23e6aSgnzlbg                                          val: ::c_int) -> ::c_int;
1097*65f23e6aSgnzlbg     pub fn sched_getcpu() -> ::c_int;
1098*65f23e6aSgnzlbg     pub fn mallinfo() -> ::mallinfo;
1099*65f23e6aSgnzlbg     pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t;
1100*65f23e6aSgnzlbg     pub fn getauxval(type_: ::c_ulong) -> ::c_ulong;
1101*65f23e6aSgnzlbg     #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")]
1102*65f23e6aSgnzlbg     #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwent_r")]
1103*65f23e6aSgnzlbg     pub fn getpwent_r(pwd: *mut ::passwd,
1104*65f23e6aSgnzlbg                       buf: *mut ::c_char,
1105*65f23e6aSgnzlbg                       buflen: ::size_t,
1106*65f23e6aSgnzlbg                       result: *mut *mut ::passwd) -> ::c_int;
1107*65f23e6aSgnzlbg     #[cfg_attr(target_os = "netbsd", link_name = "__getgrent_r50")]
1108*65f23e6aSgnzlbg     #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrent_r")]
1109*65f23e6aSgnzlbg     pub fn getgrent_r(grp: *mut ::group,
1110*65f23e6aSgnzlbg                       buf: *mut ::c_char,
1111*65f23e6aSgnzlbg                       buflen: ::size_t,
1112*65f23e6aSgnzlbg                       result: *mut *mut ::group) -> ::c_int;
1113*65f23e6aSgnzlbg }
1114*65f23e6aSgnzlbg 
1115*65f23e6aSgnzlbg cfg_if! {
1116*65f23e6aSgnzlbg     if #[cfg(any(target_arch = "x86",
1117*65f23e6aSgnzlbg                  target_arch = "arm",
1118*65f23e6aSgnzlbg                  target_arch = "powerpc"))] {
1119*65f23e6aSgnzlbg         mod b32;
1120*65f23e6aSgnzlbg         pub use self::b32::*;
1121*65f23e6aSgnzlbg     } else if #[cfg(any(target_arch = "x86_64",
1122*65f23e6aSgnzlbg                         target_arch = "aarch64",
1123*65f23e6aSgnzlbg                         target_arch = "powerpc64",
1124*65f23e6aSgnzlbg                         target_arch = "s390x",
1125*65f23e6aSgnzlbg                         target_arch = "sparc64"))] {
1126*65f23e6aSgnzlbg         mod b64;
1127*65f23e6aSgnzlbg         pub use self::b64::*;
1128*65f23e6aSgnzlbg     } else {
1129*65f23e6aSgnzlbg         // Unknown target_arch
1130*65f23e6aSgnzlbg     }
1131*65f23e6aSgnzlbg }
1132*65f23e6aSgnzlbg 
1133*65f23e6aSgnzlbg cfg_if! {
1134*65f23e6aSgnzlbg     if #[cfg(libc_align)] {
1135*65f23e6aSgnzlbg         mod align;
1136*65f23e6aSgnzlbg         pub use self::align::*;
1137*65f23e6aSgnzlbg     } else {
1138*65f23e6aSgnzlbg         mod no_align;
1139*65f23e6aSgnzlbg         pub use self::no_align::*;
1140*65f23e6aSgnzlbg     }
1141*65f23e6aSgnzlbg }
1142