]> git.proxmox.com Git - rustc.git/blame - src/liblibc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
New upstream version 1.27.1+dfsg1
[rustc.git] / src / liblibc / src / unix / bsd / netbsdlike / openbsdlike / mod.rs
CommitLineData
3b2f2976
XL
1use unix::bsd::O_SYNC;
2
9cc50fc6 3pub type clock_t = i64;
476ff2be 4pub type suseconds_t = ::c_long;
9cc50fc6
SL
5pub type dev_t = i32;
6pub type sigset_t = ::c_uint;
7pub type blksize_t = ::int32_t;
8pub type fsblkcnt_t = ::uint64_t;
9pub type fsfilcnt_t = ::uint64_t;
10pub type pthread_attr_t = *mut ::c_void;
11pub type pthread_mutex_t = *mut ::c_void;
12pub type pthread_mutexattr_t = *mut ::c_void;
13pub type pthread_cond_t = *mut ::c_void;
5bcae85e 14pub type pthread_condattr_t = *mut ::c_void;
9cc50fc6 15pub type pthread_rwlock_t = *mut ::c_void;
3b2f2976 16pub type pthread_rwlockattr_t = *mut ::c_void;
9cc50fc6 17
92a42be0 18s! {
9cc50fc6
SL
19 pub struct dirent {
20 pub d_fileno: ::ino_t,
21 pub d_off: ::off_t,
22 pub d_reclen: u16,
23 pub d_type: u8,
24 pub d_namlen: u8,
25 __d_padding: [u8; 4],
26 pub d_name: [::c_char; 256],
27 }
28
92a42be0
SL
29 pub struct glob_t {
30 pub gl_pathc: ::c_int,
9e0c209e 31 pub gl_matchc: ::c_int,
92a42be0 32 pub gl_offs: ::c_int,
9e0c209e 33 pub gl_flags: ::c_int,
92a42be0 34 pub gl_pathv: *mut *mut ::c_char,
9e0c209e
SL
35 __unused1: *mut ::c_void,
36 __unused2: *mut ::c_void,
92a42be0 37 __unused3: *mut ::c_void,
92a42be0
SL
38 __unused4: *mut ::c_void,
39 __unused5: *mut ::c_void,
40 __unused6: *mut ::c_void,
41 __unused7: *mut ::c_void,
9e0c209e
SL
42 }
43
44 pub struct kevent {
45 pub ident: ::uintptr_t,
46 pub filter: ::c_short,
47 pub flags: ::c_ushort,
48 pub fflags: ::c_uint,
49 pub data: ::int64_t,
50 pub udata: *mut ::c_void,
92a42be0 51 }
9cc50fc6
SL
52
53 pub struct stat {
54 pub st_mode: ::mode_t,
55 pub st_dev: ::dev_t,
56 pub st_ino: ::ino_t,
57 pub st_nlink: ::nlink_t,
58 pub st_uid: ::uid_t,
59 pub st_gid: ::gid_t,
60 pub st_rdev: ::dev_t,
61 pub st_atime: ::time_t,
62 pub st_atime_nsec: ::c_long,
63 pub st_mtime: ::time_t,
64 pub st_mtime_nsec: ::c_long,
65 pub st_ctime: ::time_t,
66 pub st_ctime_nsec: ::c_long,
67 pub st_size: ::off_t,
68 pub st_blocks: ::blkcnt_t,
69 pub st_blksize: ::blksize_t,
70 pub st_flags: ::uint32_t,
71 pub st_gen: ::uint32_t,
72 pub st_birthtime: ::time_t,
73 pub st_birthtime_nsec: ::c_long,
74 }
75
76 pub struct statvfs {
77 pub f_bsize: ::c_ulong,
78 pub f_frsize: ::c_ulong,
79 pub f_blocks: ::fsblkcnt_t,
80 pub f_bfree: ::fsblkcnt_t,
81 pub f_bavail: ::fsblkcnt_t,
82 pub f_files: ::fsfilcnt_t,
83 pub f_ffree: ::fsfilcnt_t,
84 pub f_favail: ::fsfilcnt_t,
85 pub f_fsid: ::c_ulong,
86 pub f_flag: ::c_ulong,
87 pub f_namemax: ::c_ulong,
88 }
89
90 pub struct addrinfo {
91 pub ai_flags: ::c_int,
92 pub ai_family: ::c_int,
93 pub ai_socktype: ::c_int,
94 pub ai_protocol: ::c_int,
95 pub ai_addrlen: ::socklen_t,
96 pub ai_addr: *mut ::sockaddr,
97 pub ai_canonname: *mut ::c_char,
98 pub ai_next: *mut ::addrinfo,
99 }
100
101 pub struct sockaddr_storage {
102 pub ss_len: u8,
103 pub ss_family: ::sa_family_t,
104 __ss_pad1: [u8; 6],
105 __ss_pad2: i64,
106 __ss_pad3: [u8; 240],
107 }
108
109 pub struct siginfo_t {
110 pub si_signo: ::c_int,
111 pub si_code: ::c_int,
112 pub si_errno: ::c_int,
113 pub si_addr: *mut ::c_char,
476ff2be
SL
114 #[cfg(target_pointer_width = "32")]
115 __pad: [u8; 112],
116 #[cfg(target_pointer_width = "64")]
9cc50fc6
SL
117 __pad: [u8; 108],
118 }
119
120 pub struct Dl_info {
121 pub dli_fname: *const ::c_char,
122 pub dli_fbase: *mut ::c_void,
123 pub dli_sname: *const ::c_char,
124 pub dli_saddr: *mut ::c_void,
125 }
54a0048b 126
9e0c209e
SL
127 pub struct lastlog {
128 ll_time: ::time_t,
129 ll_line: [::c_char; UT_LINESIZE],
130 ll_host: [::c_char; UT_HOSTSIZE],
131 }
132
133 pub struct utmp {
134 pub ut_line: [::c_char; UT_LINESIZE],
135 pub ut_name: [::c_char; UT_NAMESIZE],
136 pub ut_host: [::c_char; UT_HOSTSIZE],
137 pub ut_time: ::time_t,
54a0048b 138 }
3b2f2976
XL
139
140 pub struct if_data {
141 pub ifi_type: ::c_uchar,
142 pub ifi_addrlen: ::c_uchar,
143 pub ifi_hdrlen: ::c_uchar,
144 pub ifi_link_state: ::c_uchar,
145 pub ifi_mtu: u32,
146 pub ifi_metric: u32,
147 pub ifi_rdomain: u32,
148 pub ifi_baudrate: u64,
149 pub ifi_ipackets: u64,
150 pub ifi_ierrors: u64,
151 pub ifi_opackets: u64,
152 pub ifi_oerrors: u64,
153 pub ifi_collisions: u64,
154 pub ifi_ibytes: u64,
155 pub ifi_obytes: u64,
156 pub ifi_imcasts: u64,
157 pub ifi_omcasts: u64,
158 pub ifi_iqdrops: u64,
159 pub ifi_oqdrops: u64,
160 pub ifi_noproto: u64,
161 pub ifi_capabilities: u32,
162 pub ifi_lastchange: ::timeval,
163 }
164
165 pub struct if_msghdr {
166 pub ifm_msglen: ::c_ushort,
167 pub ifm_version: ::c_uchar,
168 pub ifm_type: ::c_uchar,
169 pub ifm_hdrlen: ::c_ushort,
170 pub ifm_index: ::c_ushort,
171 pub ifm_tableid: ::c_ushort,
172 pub ifm_pad1: ::c_uchar,
173 pub ifm_pad2: ::c_uchar,
174 pub ifm_addrs: ::c_int,
175 pub ifm_flags: ::c_int,
176 pub ifm_xflags: ::c_int,
177 pub ifm_data: if_data,
178 }
ff7c6d11
XL
179
180 pub struct sockaddr_dl {
181 pub sdl_len: ::c_uchar,
182 pub sdl_family: ::c_uchar,
183 pub sdl_index: ::c_ushort,
184 pub sdl_type: ::c_uchar,
185 pub sdl_nlen: ::c_uchar,
186 pub sdl_alen: ::c_uchar,
187 pub sdl_slen: ::c_uchar,
188 pub sdl_data: [::c_char; 24],
189 }
83c7162d
XL
190
191 pub struct sockpeercred {
192 pub uid: ::uid_t,
193 pub gid: ::gid_t,
194 pub pid: ::pid_t,
195 }
92a42be0
SL
196}
197
9e0c209e
SL
198pub const UT_NAMESIZE: usize = 32;
199pub const UT_LINESIZE: usize = 8;
200pub const UT_HOSTSIZE: usize = 256;
201
9cc50fc6 202pub const O_CLOEXEC: ::c_int = 0x10000;
3b2f2976
XL
203pub const O_DIRECTORY: ::c_int = 0x20000;
204pub const O_RSYNC: ::c_int = O_SYNC;
9cc50fc6
SL
205
206pub const MS_SYNC : ::c_int = 0x0002;
207pub const MS_INVALIDATE : ::c_int = 0x0004;
208
209pub const PTHREAD_STACK_MIN : ::size_t = 2048;
210
3b2f2976
XL
211pub const POLLNORM: ::c_short = ::POLLRDNORM;
212
9cc50fc6
SL
213pub const ENOATTR : ::c_int = 83;
214pub const EILSEQ : ::c_int = 84;
215pub const EOVERFLOW : ::c_int = 87;
216pub const ECANCELED : ::c_int = 88;
217pub const EIDRM : ::c_int = 89;
218pub const ENOMSG : ::c_int = 90;
219pub const ENOTSUP : ::c_int = 91;
ff7c6d11
XL
220pub const EBADMSG : ::c_int = 92;
221pub const ENOTRECOVERABLE : ::c_int = 93;
222pub const EOWNERDEAD : ::c_int = 94;
223pub const EPROTO : ::c_int = 95;
224pub const ELAST : ::c_int = 95;
9cc50fc6
SL
225
226pub const F_DUPFD_CLOEXEC : ::c_int = 10;
227
cc61c64b
XL
228pub const AT_FDCWD: ::c_int = -100;
229pub const AT_EACCESS: ::c_int = 0x01;
230pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02;
231pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04;
232pub const AT_REMOVEDIR: ::c_int = 0x08;
233
9cc50fc6
SL
234pub const RLIM_NLIMITS: ::c_int = 9;
235
3b2f2976 236pub const SO_TIMESTAMP: ::c_int = 0x0800;
9cc50fc6
SL
237pub const SO_SNDTIMEO: ::c_int = 0x1005;
238pub const SO_RCVTIMEO: ::c_int = 0x1006;
cc61c64b
XL
239pub const SO_BINDANY: ::c_int = 0x1000;
240pub const SO_NETPROC: ::c_int = 0x1020;
241pub const SO_RTABLE: ::c_int = 0x1021;
242pub const SO_PEERCRED: ::c_int = 0x1022;
243pub const SO_SPLICE: ::c_int = 0x1023;
244
3b2f2976
XL
245// sys/netinet/in.h
246// Protocols (RFC 1700)
247// NOTE: These are in addition to the constants defined in src/unix/mod.rs
248
249// IPPROTO_IP defined in src/unix/mod.rs
250/// Hop-by-hop option header
251pub const IPPROTO_HOPOPTS: ::c_int = 0;
252// IPPROTO_ICMP defined in src/unix/mod.rs
253/// group mgmt protocol
254pub const IPPROTO_IGMP: ::c_int = 2;
255/// gateway^2 (deprecated)
256pub const IPPROTO_GGP: ::c_int = 3;
257/// for compatibility
258pub const IPPROTO_IPIP: ::c_int = 4;
259// IPPROTO_TCP defined in src/unix/mod.rs
260/// exterior gateway protocol
261pub const IPPROTO_EGP: ::c_int = 8;
262/// pup
263pub const IPPROTO_PUP: ::c_int = 12;
264// IPPROTO_UDP defined in src/unix/mod.rs
265/// xns idp
266pub const IPPROTO_IDP: ::c_int = 22;
267/// tp-4 w/ class negotiation
268pub const IPPROTO_TP: ::c_int = 29;
269// IPPROTO_IPV6 defined in src/unix/mod.rs
270/// IP6 routing header
271pub const IPPROTO_ROUTING: ::c_int = 43;
272/// IP6 fragmentation header
273pub const IPPROTO_FRAGMENT: ::c_int = 44;
274/// resource reservation
275pub const IPPROTO_RSVP: ::c_int = 46;
276/// General Routing Encap.
277pub const IPPROTO_GRE: ::c_int = 47;
278/// IP6 Encap Sec. Payload
279pub const IPPROTO_ESP: ::c_int = 50;
280/// IP6 Auth Header
281pub const IPPROTO_AH: ::c_int = 51;
282/// IP Mobility RFC 2004
283pub const IPPROTO_MOBILE: ::c_int = 55;
284// IPPROTO_ICMPV6 defined in src/unix/mod.rs
285/// IP6 no next header
286pub const IPPROTO_NONE: ::c_int = 59;
287/// IP6 destination option
288pub const IPPROTO_DSTOPTS: ::c_int = 60;
289/// ISO cnlp
290pub const IPPROTO_EON: ::c_int = 80;
291/// Ethernet-in-IP
292pub const IPPROTO_ETHERIP: ::c_int = 97;
293/// encapsulation header
294pub const IPPROTO_ENCAP: ::c_int = 98;
295/// Protocol indep. multicast
296pub const IPPROTO_PIM: ::c_int = 103;
297/// IP Payload Comp. Protocol
298pub const IPPROTO_IPCOMP: ::c_int = 108;
299/// CARP
300pub const IPPROTO_CARP: ::c_int = 112;
301/// unicast MPLS packet
302pub const IPPROTO_MPLS: ::c_int = 137;
303/// PFSYNC
304pub const IPPROTO_PFSYNC: ::c_int = 240;
305pub const IPPROTO_MAX: ::c_int = 256;
306
307/* Only used internally, so it can be outside the range of valid IP protocols */
308/// Divert sockets
309pub const IPPROTO_DIVERT: ::c_int = 258;
310
cc61c64b
XL
311pub const AF_ECMA: ::c_int = 8;
312pub const AF_ROUTE: ::c_int = 17;
313pub const AF_ENCAP: ::c_int = 28;
314pub const AF_SIP: ::c_int = 29;
315pub const AF_KEY: ::c_int = 30;
316pub const pseudo_AF_HDRCMPLT: ::c_int = 31;
317pub const AF_BLUETOOTH: ::c_int = 32;
318pub const AF_MPLS: ::c_int = 33;
319pub const pseudo_AF_PFLOW: ::c_int = 34;
320pub const pseudo_AF_PIPEX: ::c_int = 35;
321#[doc(hidden)]
322pub const AF_MAX: ::c_int = 36;
323
324#[doc(hidden)]
325pub const NET_MAXID: ::c_int = AF_MAX;
326pub const NET_RT_DUMP: ::c_int = 1;
327pub const NET_RT_FLAGS: ::c_int = 2;
328pub const NET_RT_IFLIST: ::c_int = 3;
329pub const NET_RT_STATS: ::c_int = 4;
330pub const NET_RT_TABLE: ::c_int = 5;
331pub const NET_RT_IFNAMES: ::c_int = 6;
332#[doc(hidden)]
333pub const NET_RT_MAXID: ::c_int = 7;
9cc50fc6 334
7453a54e
SL
335pub const IPV6_JOIN_GROUP: ::c_int = 12;
336pub const IPV6_LEAVE_GROUP: ::c_int = 13;
337
cc61c64b
XL
338pub const PF_ROUTE: ::c_int = AF_ROUTE;
339pub const PF_ECMA: ::c_int = AF_ECMA;
340pub const PF_ENCAP: ::c_int = AF_ENCAP;
341pub const PF_SIP: ::c_int = AF_SIP;
342pub const PF_KEY: ::c_int = AF_KEY;
343pub const PF_BPF: ::c_int = pseudo_AF_HDRCMPLT;
344pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH;
345pub const PF_MPLS: ::c_int = AF_MPLS;
346pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW;
347pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX;
348#[doc(hidden)]
349pub const PF_MAX: ::c_int = AF_MAX;
350
351pub const SCM_TIMESTAMP: ::c_int = 0x04;
352
9cc50fc6
SL
353pub const O_DSYNC : ::c_int = 128;
354
355pub const MAP_RENAME : ::c_int = 0x0000;
356pub const MAP_NORESERVE : ::c_int = 0x0000;
357pub const MAP_HASSEMAPHORE : ::c_int = 0x0000;
358
359pub const EIPSEC : ::c_int = 82;
360pub const ENOMEDIUM : ::c_int = 85;
361pub const EMEDIUMTYPE : ::c_int = 86;
362
ff7c6d11
XL
363pub const EAI_BADFLAGS: ::c_int = -1;
364pub const EAI_NONAME: ::c_int = -2;
365pub const EAI_AGAIN: ::c_int = -3;
366pub const EAI_FAIL: ::c_int = -4;
367pub const EAI_NODATA: ::c_int = -5;
368pub const EAI_FAMILY: ::c_int = -6;
369pub const EAI_SOCKTYPE: ::c_int = -7;
370pub const EAI_SERVICE: ::c_int = -8;
371pub const EAI_MEMORY: ::c_int = -10;
9e0c209e 372pub const EAI_SYSTEM: ::c_int = -11;
ff7c6d11 373pub const EAI_OVERFLOW: ::c_int = -14;
9e0c209e 374
9cc50fc6
SL
375pub const RUSAGE_THREAD: ::c_int = 1;
376
377pub const MAP_COPY : ::c_int = 0x0002;
378pub const MAP_NOEXTEND : ::c_int = 0x0000;
379
3b2f2976
XL
380pub const _PC_LINK_MAX : ::c_int = 1;
381pub const _PC_MAX_CANON : ::c_int = 2;
382pub const _PC_MAX_INPUT : ::c_int = 3;
383pub const _PC_NAME_MAX : ::c_int = 4;
384pub const _PC_PATH_MAX : ::c_int = 5;
385pub const _PC_PIPE_BUF : ::c_int = 6;
386pub const _PC_CHOWN_RESTRICTED : ::c_int = 7;
387pub const _PC_NO_TRUNC : ::c_int = 8;
388pub const _PC_VDISABLE : ::c_int = 9;
389pub const _PC_2_SYMLINKS : ::c_int = 10;
390pub const _PC_ALLOC_SIZE_MIN : ::c_int = 11;
391pub const _PC_ASYNC_IO : ::c_int = 12;
392pub const _PC_FILESIZEBITS : ::c_int = 13;
393pub const _PC_PRIO_IO : ::c_int = 14;
394pub const _PC_REC_INCR_XFER_SIZE : ::c_int = 15;
395pub const _PC_REC_MAX_XFER_SIZE : ::c_int = 16;
396pub const _PC_REC_MIN_XFER_SIZE : ::c_int = 17;
397pub const _PC_REC_XFER_ALIGN : ::c_int = 18;
398pub const _PC_SYMLINK_MAX : ::c_int = 19;
399pub const _PC_SYNC_IO : ::c_int = 20;
400pub const _PC_TIMESTAMP_RESOLUTION : ::c_int = 21;
401
9cc50fc6 402pub const _SC_CLK_TCK : ::c_int = 3;
3b2f2976
XL
403pub const _SC_SEM_NSEMS_MAX : ::c_int = 31;
404pub const _SC_SEM_VALUE_MAX : ::c_int = 32;
405pub const _SC_HOST_NAME_MAX : ::c_int = 33;
406pub const _SC_MONOTONIC_CLOCK : ::c_int = 34;
407pub const _SC_2_PBS : ::c_int = 35;
408pub const _SC_2_PBS_ACCOUNTING : ::c_int = 36;
409pub const _SC_2_PBS_CHECKPOINT : ::c_int = 37;
410pub const _SC_2_PBS_LOCATE : ::c_int = 38;
411pub const _SC_2_PBS_MESSAGE : ::c_int = 39;
412pub const _SC_2_PBS_TRACK : ::c_int = 40;
413pub const _SC_ADVISORY_INFO : ::c_int = 41;
9cc50fc6
SL
414pub const _SC_AIO_LISTIO_MAX : ::c_int = 42;
415pub const _SC_AIO_MAX : ::c_int = 43;
3b2f2976 416pub const _SC_AIO_PRIO_DELTA_MAX : ::c_int = 44;
9cc50fc6 417pub const _SC_ASYNCHRONOUS_IO : ::c_int = 45;
3b2f2976
XL
418pub const _SC_ATEXIT_MAX : ::c_int = 46;
419pub const _SC_BARRIERS : ::c_int = 47;
420pub const _SC_CLOCK_SELECTION : ::c_int = 48;
421pub const _SC_CPUTIME : ::c_int = 49;
422pub const _SC_DELAYTIMER_MAX : ::c_int = 50;
423pub const _SC_IOV_MAX : ::c_int = 51;
424pub const _SC_IPV6 : ::c_int = 52;
9cc50fc6
SL
425pub const _SC_MAPPED_FILES : ::c_int = 53;
426pub const _SC_MEMLOCK : ::c_int = 54;
427pub const _SC_MEMLOCK_RANGE : ::c_int = 55;
428pub const _SC_MEMORY_PROTECTION : ::c_int = 56;
429pub const _SC_MESSAGE_PASSING : ::c_int = 57;
430pub const _SC_MQ_OPEN_MAX : ::c_int = 58;
3b2f2976
XL
431pub const _SC_MQ_PRIO_MAX : ::c_int = 59;
432pub const _SC_PRIORITIZED_IO : ::c_int = 60;
9cc50fc6 433pub const _SC_PRIORITY_SCHEDULING : ::c_int = 61;
3b2f2976
XL
434pub const _SC_RAW_SOCKETS : ::c_int = 62;
435pub const _SC_READER_WRITER_LOCKS : ::c_int = 63;
436pub const _SC_REALTIME_SIGNALS : ::c_int = 64;
437pub const _SC_REGEXP : ::c_int = 65;
438pub const _SC_RTSIG_MAX : ::c_int = 66;
9cc50fc6
SL
439pub const _SC_SEMAPHORES : ::c_int = 67;
440pub const _SC_SHARED_MEMORY_OBJECTS : ::c_int = 68;
3b2f2976
XL
441pub const _SC_SHELL : ::c_int = 69;
442pub const _SC_SIGQUEUE_MAX : ::c_int = 70;
443pub const _SC_SPAWN : ::c_int = 71;
444pub const _SC_SPIN_LOCKS : ::c_int = 72;
445pub const _SC_SPORADIC_SERVER : ::c_int = 73;
446pub const _SC_SS_REPL_MAX : ::c_int = 74;
9cc50fc6 447pub const _SC_SYNCHRONIZED_IO : ::c_int = 75;
3b2f2976
XL
448pub const _SC_SYMLOOP_MAX : ::c_int = 76;
449pub const _SC_THREAD_ATTR_STACKADDR : ::c_int = 77;
450pub const _SC_THREAD_ATTR_STACKSIZE : ::c_int = 78;
451pub const _SC_THREAD_CPUTIME : ::c_int = 79;
452pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : ::c_int = 80;
453pub const _SC_THREAD_KEYS_MAX : ::c_int = 81;
454pub const _SC_THREAD_PRIO_INHERIT : ::c_int = 82;
455pub const _SC_THREAD_PRIO_PROTECT : ::c_int = 83;
456pub const _SC_THREAD_PRIORITY_SCHEDULING : ::c_int = 84;
457pub const _SC_THREAD_PROCESS_SHARED : ::c_int = 85;
458pub const _SC_THREAD_ROBUST_PRIO_INHERIT : ::c_int = 86;
459pub const _SC_THREAD_ROBUST_PRIO_PROTECT : ::c_int = 87;
460pub const _SC_THREAD_SPORADIC_SERVER : ::c_int = 88;
461pub const _SC_THREAD_STACK_MIN : ::c_int = 89;
462pub const _SC_THREAD_THREADS_MAX : ::c_int = 90;
463pub const _SC_THREADS : ::c_int = 91;
464pub const _SC_TIMEOUTS : ::c_int = 92;
465pub const _SC_TIMER_MAX : ::c_int = 93;
9cc50fc6 466pub const _SC_TIMERS : ::c_int = 94;
3b2f2976
XL
467pub const _SC_TRACE : ::c_int = 95;
468pub const _SC_TRACE_EVENT_FILTER : ::c_int = 96;
469pub const _SC_TRACE_EVENT_NAME_MAX : ::c_int = 97;
470pub const _SC_TRACE_INHERIT : ::c_int = 98;
471pub const _SC_TRACE_LOG : ::c_int = 99;
472pub const _SC_GETGR_R_SIZE_MAX : ::c_int = 100;
473pub const _SC_GETPW_R_SIZE_MAX : ::c_int = 101;
474pub const _SC_LOGIN_NAME_MAX : ::c_int = 102;
475pub const _SC_THREAD_SAFE_FUNCTIONS : ::c_int = 103;
476pub const _SC_TRACE_NAME_MAX : ::c_int = 104;
477pub const _SC_TRACE_SYS_MAX : ::c_int = 105;
478pub const _SC_TRACE_USER_EVENT_MAX : ::c_int = 106;
479pub const _SC_TTY_NAME_MAX : ::c_int = 107;
480pub const _SC_TYPED_MEMORY_OBJECTS : ::c_int = 108;
481pub const _SC_V6_ILP32_OFF32 : ::c_int = 109;
482pub const _SC_V6_ILP32_OFFBIG : ::c_int = 110;
483pub const _SC_V6_LP64_OFF64 : ::c_int = 111;
484pub const _SC_V6_LPBIG_OFFBIG : ::c_int = 112;
485pub const _SC_V7_ILP32_OFF32 : ::c_int = 113;
486pub const _SC_V7_ILP32_OFFBIG : ::c_int = 114;
487pub const _SC_V7_LP64_OFF64 : ::c_int = 115;
488pub const _SC_V7_LPBIG_OFFBIG : ::c_int = 116;
9cc50fc6
SL
489pub const _SC_XOPEN_CRYPT : ::c_int = 117;
490pub const _SC_XOPEN_ENH_I18N : ::c_int = 118;
491pub const _SC_XOPEN_LEGACY : ::c_int = 119;
492pub const _SC_XOPEN_REALTIME : ::c_int = 120;
493pub const _SC_XOPEN_REALTIME_THREADS : ::c_int = 121;
3b2f2976 494pub const _SC_XOPEN_STREAMS : ::c_int = 122;
9cc50fc6 495pub const _SC_XOPEN_UNIX : ::c_int = 123;
3b2f2976 496pub const _SC_XOPEN_UUCP : ::c_int = 124;
9cc50fc6 497pub const _SC_XOPEN_VERSION : ::c_int = 125;
3b2f2976
XL
498pub const _SC_PHYS_PAGES : ::c_int = 500;
499pub const _SC_AVPHYS_PAGES : ::c_int = 501;
500pub const _SC_NPROCESSORS_CONF : ::c_int = 502;
501pub const _SC_NPROCESSORS_ONLN : ::c_int = 503;
9cc50fc6 502
9cc50fc6
SL
503pub const FD_SETSIZE: usize = 1024;
504
505pub const ST_NOSUID: ::c_ulong = 2;
506
507pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
508pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
509pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
3157f602
XL
510
511pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
9cc50fc6 512pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
3157f602
XL
513pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
514pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4;
515pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP;
9cc50fc6 516
9e0c209e
SL
517pub const EVFILT_AIO: ::int16_t = -3;
518pub const EVFILT_PROC: ::int16_t = -5;
519pub const EVFILT_READ: ::int16_t = -1;
520pub const EVFILT_SIGNAL: ::int16_t = -6;
521pub const EVFILT_TIMER: ::int16_t = -7;
522pub const EVFILT_VNODE: ::int16_t = -4;
523pub const EVFILT_WRITE: ::int16_t = -2;
524
525pub const EV_ADD: ::uint16_t = 0x1;
526pub const EV_DELETE: ::uint16_t = 0x2;
527pub const EV_ENABLE: ::uint16_t = 0x4;
528pub const EV_DISABLE: ::uint16_t = 0x8;
529pub const EV_ONESHOT: ::uint16_t = 0x10;
530pub const EV_CLEAR: ::uint16_t = 0x20;
3b2f2976
XL
531pub const EV_RECEIPT: ::uint16_t = 0x40;
532pub const EV_DISPATCH: ::uint16_t = 0x80;
9e0c209e
SL
533pub const EV_FLAG1: ::uint16_t = 0x2000;
534pub const EV_ERROR: ::uint16_t = 0x4000;
535pub const EV_EOF: ::uint16_t = 0x8000;
536pub const EV_SYSFLAGS: ::uint16_t = 0xf000;
537
538pub const NOTE_LOWAT: ::uint32_t = 0x00000001;
539pub const NOTE_EOF: ::uint32_t = 0x00000002;
540pub const NOTE_DELETE: ::uint32_t = 0x00000001;
541pub const NOTE_WRITE: ::uint32_t = 0x00000002;
542pub const NOTE_EXTEND: ::uint32_t = 0x00000004;
543pub const NOTE_ATTRIB: ::uint32_t = 0x00000008;
544pub const NOTE_LINK: ::uint32_t = 0x00000010;
545pub const NOTE_RENAME: ::uint32_t = 0x00000020;
546pub const NOTE_REVOKE: ::uint32_t = 0x00000040;
547pub const NOTE_TRUNCATE: ::uint32_t = 0x00000080;
548pub const NOTE_EXIT: ::uint32_t = 0x80000000;
549pub const NOTE_FORK: ::uint32_t = 0x40000000;
550pub const NOTE_EXEC: ::uint32_t = 0x20000000;
551pub const NOTE_PDATAMASK: ::uint32_t = 0x000fffff;
552pub const NOTE_PCTRLMASK: ::uint32_t = 0xf0000000;
553pub const NOTE_TRACK: ::uint32_t = 0x00000001;
554pub const NOTE_TRACKERR: ::uint32_t = 0x00000002;
555pub const NOTE_CHILD: ::uint32_t = 0x00000004;
556
9cc50fc6
SL
557pub const TMP_MAX : ::c_uint = 0x7fffffff;
558
559pub const NI_MAXHOST: ::size_t = 256;
560
7453a54e 561pub const RTLD_LOCAL: ::c_int = 0;
a7813a04
XL
562pub const CTL_MAXNAME: ::c_int = 12;
563pub const CTLTYPE_NODE: ::c_int = 1;
564pub const CTLTYPE_INT: ::c_int = 2;
565pub const CTLTYPE_STRING: ::c_int = 3;
566pub const CTLTYPE_QUAD: ::c_int = 4;
567pub const CTLTYPE_STRUCT: ::c_int = 5;
568pub const CTL_UNSPEC: ::c_int = 0;
569pub const CTL_KERN: ::c_int = 1;
570pub const CTL_VM: ::c_int = 2;
571pub const CTL_FS: ::c_int = 3;
572pub const CTL_NET: ::c_int = 4;
573pub const CTL_DEBUG: ::c_int = 5;
574pub const CTL_HW: ::c_int = 6;
575pub const CTL_MACHDEP: ::c_int = 7;
576pub const CTL_DDB: ::c_int = 9;
577pub const CTL_VFS: ::c_int = 10;
578pub const CTL_MAXID: ::c_int = 11;
579pub const KERN_OSTYPE: ::c_int = 1;
580pub const KERN_OSRELEASE: ::c_int = 2;
581pub const KERN_OSREV: ::c_int = 3;
582pub const KERN_VERSION: ::c_int = 4;
583pub const KERN_MAXVNODES: ::c_int = 5;
584pub const KERN_MAXPROC: ::c_int = 6;
585pub const KERN_MAXFILES: ::c_int = 7;
586pub const KERN_ARGMAX: ::c_int = 8;
587pub const KERN_SECURELVL: ::c_int = 9;
588pub const KERN_HOSTNAME: ::c_int = 10;
589pub const KERN_HOSTID: ::c_int = 11;
590pub const KERN_CLOCKRATE: ::c_int = 12;
591pub const KERN_PROF: ::c_int = 16;
592pub const KERN_POSIX1: ::c_int = 17;
593pub const KERN_NGROUPS: ::c_int = 18;
594pub const KERN_JOB_CONTROL: ::c_int = 19;
595pub const KERN_SAVED_IDS: ::c_int = 20;
596pub const KERN_BOOTTIME: ::c_int = 21;
597pub const KERN_DOMAINNAME: ::c_int = 22;
598pub const KERN_MAXPARTITIONS: ::c_int = 23;
599pub const KERN_RAWPARTITION: ::c_int = 24;
600pub const KERN_MAXTHREAD: ::c_int = 25;
601pub const KERN_NTHREADS: ::c_int = 26;
602pub const KERN_OSVERSION: ::c_int = 27;
603pub const KERN_SOMAXCONN: ::c_int = 28;
604pub const KERN_SOMINCONN: ::c_int = 29;
605pub const KERN_USERMOUNT: ::c_int = 30;
a7813a04
XL
606pub const KERN_NOSUIDCOREDUMP: ::c_int = 32;
607pub const KERN_FSYNC: ::c_int = 33;
608pub const KERN_SYSVMSG: ::c_int = 34;
609pub const KERN_SYSVSEM: ::c_int = 35;
610pub const KERN_SYSVSHM: ::c_int = 36;
611pub const KERN_ARND: ::c_int = 37;
612pub const KERN_MSGBUFSIZE: ::c_int = 38;
613pub const KERN_MALLOCSTATS: ::c_int = 39;
614pub const KERN_CPTIME: ::c_int = 40;
615pub const KERN_NCHSTATS: ::c_int = 41;
616pub const KERN_FORKSTAT: ::c_int = 42;
617pub const KERN_NSELCOLL: ::c_int = 43;
618pub const KERN_TTY: ::c_int = 44;
619pub const KERN_CCPU: ::c_int = 45;
620pub const KERN_FSCALE: ::c_int = 46;
621pub const KERN_NPROCS: ::c_int = 47;
622pub const KERN_MSGBUF: ::c_int = 48;
623pub const KERN_POOL: ::c_int = 49;
624pub const KERN_STACKGAPRANDOM: ::c_int = 50;
625pub const KERN_SYSVIPC_INFO: ::c_int = 51;
626pub const KERN_SPLASSERT: ::c_int = 54;
627pub const KERN_PROC_ARGS: ::c_int = 55;
628pub const KERN_NFILES: ::c_int = 56;
629pub const KERN_TTYCOUNT: ::c_int = 57;
630pub const KERN_NUMVNODES: ::c_int = 58;
631pub const KERN_MBSTAT: ::c_int = 59;
632pub const KERN_SEMINFO: ::c_int = 61;
633pub const KERN_SHMINFO: ::c_int = 62;
634pub const KERN_INTRCNT: ::c_int = 63;
635pub const KERN_WATCHDOG: ::c_int = 64;
636pub const KERN_PROC: ::c_int = 66;
637pub const KERN_MAXCLUSTERS: ::c_int = 67;
638pub const KERN_EVCOUNT: ::c_int = 68;
639pub const KERN_TIMECOUNTER: ::c_int = 69;
640pub const KERN_MAXLOCKSPERUID: ::c_int = 70;
641pub const KERN_CPTIME2: ::c_int = 71;
642pub const KERN_CACHEPCT: ::c_int = 72;
643pub const KERN_FILE: ::c_int = 73;
644pub const KERN_CONSDEV: ::c_int = 75;
645pub const KERN_NETLIVELOCKS: ::c_int = 76;
646pub const KERN_POOL_DEBUG: ::c_int = 77;
647pub const KERN_PROC_CWD: ::c_int = 78;
648pub const KERN_PROC_NOBROADCASTKILL: ::c_int = 79;
649pub const KERN_PROC_VMMAP: ::c_int = 80;
650pub const KERN_GLOBAL_PTRACE: ::c_int = 81;
651pub const KERN_CONSBUFSIZE: ::c_int = 82;
652pub const KERN_CONSBUF: ::c_int = 83;
653pub const KERN_MAXID: ::c_int = 84;
654pub const KERN_PROC_ALL: ::c_int = 0;
655pub const KERN_PROC_PID: ::c_int = 1;
656pub const KERN_PROC_PGRP: ::c_int = 2;
657pub const KERN_PROC_SESSION: ::c_int = 3;
658pub const KERN_PROC_TTY: ::c_int = 4;
659pub const KERN_PROC_UID: ::c_int = 5;
660pub const KERN_PROC_RUID: ::c_int = 6;
661pub const KERN_PROC_KTHREAD: ::c_int = 7;
662pub const KERN_PROC_SHOW_THREADS: ::c_int = 0x40000000;
663pub const KERN_SYSVIPC_MSG_INFO: ::c_int = 1;
664pub const KERN_SYSVIPC_SEM_INFO: ::c_int = 2;
665pub const KERN_SYSVIPC_SHM_INFO: ::c_int = 3;
666pub const KERN_PROC_ARGV: ::c_int = 1;
667pub const KERN_PROC_NARGV: ::c_int = 2;
668pub const KERN_PROC_ENV: ::c_int = 3;
669pub const KERN_PROC_NENV: ::c_int = 4;
670pub const KI_NGROUPS: ::c_int = 16;
671pub const KI_MAXCOMLEN: ::c_int = 24;
672pub const KI_WMESGLEN: ::c_int = 8;
673pub const KI_MAXLOGNAME: ::c_int = 32;
674pub const KI_EMULNAMELEN: ::c_int = 8;
7453a54e 675
3b2f2976
XL
676pub const CHWFLOW: ::tcflag_t = ::MDMBUF | ::CRTSCTS;
677pub const OLCUC: ::tcflag_t = 0x20;
678pub const ONOCR: ::tcflag_t = 0x40;
679pub const ONLRET: ::tcflag_t = 0x80;
680
681pub const SOCK_CLOEXEC: ::c_int = 0x8000;
682pub const SOCK_NONBLOCK: ::c_int = 0x4000;
683pub const SOCK_DNS: ::c_int = 0x1000;
684
abe05a73
XL
685pub const WCONTINUED: ::c_int = 8;
686
3b2f2976
XL
687f! {
688 pub fn WIFCONTINUED(status: ::c_int) -> bool {
689 status & 0o177777 == 0o177777
690 }
691}
692
92a42be0 693extern {
041b39d2 694 pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
9cc50fc6
SL
695 pub fn getnameinfo(sa: *const ::sockaddr,
696 salen: ::socklen_t,
697 host: *mut ::c_char,
698 hostlen: ::size_t,
699 serv: *mut ::c_char,
700 servlen: ::size_t,
701 flags: ::c_int) -> ::c_int;
9e0c209e
SL
702 pub fn kevent(kq: ::c_int,
703 changelist: *const ::kevent,
704 nchanges: ::c_int,
705 eventlist: *mut ::kevent,
706 nevents: ::c_int,
707 timeout: *const ::timespec) -> ::c_int;
9cc50fc6
SL
708 pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int)
709 -> ::c_int;
54a0048b
SL
710 pub fn pthread_main_np() -> ::c_int;
711 pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char);
712 pub fn pthread_stackseg_np(thread: ::pthread_t,
713 sinfo: *mut ::stack_t) -> ::c_int;
9cc50fc6
SL
714 pub fn sysctl(name: *const ::c_int,
715 namelen: ::c_uint,
716 oldp: *mut ::c_void,
717 oldlenp: *mut ::size_t,
718 newp: *mut ::c_void,
719 newlen: ::size_t)
720 -> ::c_int;
721 pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
3b2f2976
XL
722 pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int;
723 pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int;
9cc50fc6 724}
9e0c209e
SL
725
726cfg_if! {
727 if #[cfg(target_os = "openbsd")] {
728 mod openbsd;
729 pub use self::openbsd::*;
730 } else if #[cfg(target_os = "bitrig")] {
731 mod bitrig;
732 pub use self::bitrig::*;
733 } else {
734 // Unknown target_os
735 }
736}