blob: 3f2ed9c1ac407317e97fbc8d32344be47199551d [file] [log] [blame]
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -06001pub type c_char = i8;
2pub type c_long = i64;
3pub type c_ulong = u64;
4
5pub type wchar_t = i16;
6
7pub type off_t = usize;
8pub type mode_t = u16;
9pub type time_t = i64;
10pub type pid_t = usize;
11pub type gid_t = usize;
12pub type uid_t = usize;
13
14pub type in_addr_t = u32;
15pub type in_port_t = u16;
16
17pub type socklen_t = u32;
18pub type sa_family_t = u16;
19
Jeremy Sollerfe0eb112016-11-03 17:28:56 -060020s! {
21 pub struct in_addr {
22 pub s_addr: in_addr_t,
23 }
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -060024
Jeremy Sollerfe0eb112016-11-03 17:28:56 -060025 pub struct in6_addr {
26 pub s6_addr: [u8; 16],
27 __align: [u32; 0],
28 }
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -060029
Jeremy Sollerfe0eb112016-11-03 17:28:56 -060030 pub struct sockaddr {
31 pub sa_family: sa_family_t,
32 pub sa_data: [::c_char; 14],
33 }
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -060034
Jeremy Sollerfe0eb112016-11-03 17:28:56 -060035 pub struct sockaddr_in {
36 pub sin_family: sa_family_t,
37 pub sin_port: ::in_port_t,
38 pub sin_addr: ::in_addr,
39 pub sin_zero: [u8; 8],
40 }
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -060041
Jeremy Sollerfe0eb112016-11-03 17:28:56 -060042 pub struct sockaddr_in6 {
43 pub sin6_family: sa_family_t,
44 pub sin6_port: in_port_t,
45 pub sin6_flowinfo: u32,
46 pub sin6_addr: ::in6_addr,
47 pub sin6_scope_id: u32,
48 }
Jeremy Soller4ddaf1f2016-11-03 16:53:22 -060049}
Jeremy Soller6ff14a92016-12-21 09:10:36 -070050
51extern {
52 pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
53}
Jeremy Soller74590032017-01-06 09:42:36 -070054
Jeremy Soller52369bc2017-01-06 13:16:22 -070055#[link(name = "c")]
56#[link(name = "m")]
Jeremy Soller74590032017-01-06 09:42:36 -070057extern {}