12add0d91Sopenharmony_cipub type clock_t = ::c_ulong;
22add0d91Sopenharmony_cipub type c_char = i8;
32add0d91Sopenharmony_cipub type wchar_t = u32;
42add0d91Sopenharmony_ci
52add0d91Sopenharmony_cipub type c_long = i32;
62add0d91Sopenharmony_cipub type c_ulong = u32;
72add0d91Sopenharmony_ci
82add0d91Sopenharmony_cis! {
92add0d91Sopenharmony_ci    pub struct cmsghdr {
102add0d91Sopenharmony_ci        pub cmsg_len: ::socklen_t,
112add0d91Sopenharmony_ci        pub cmsg_level: ::c_int,
122add0d91Sopenharmony_ci        pub cmsg_type: ::c_int,
132add0d91Sopenharmony_ci    }
142add0d91Sopenharmony_ci
152add0d91Sopenharmony_ci    pub struct msghdr {
162add0d91Sopenharmony_ci        pub msg_name: *mut ::c_void,
172add0d91Sopenharmony_ci        pub msg_namelen: ::socklen_t,
182add0d91Sopenharmony_ci        pub msg_iov: *mut ::iovec,
192add0d91Sopenharmony_ci        pub msg_iovlen: ::c_int,
202add0d91Sopenharmony_ci        pub msg_control: *mut ::c_void,
212add0d91Sopenharmony_ci        pub msg_controllen: ::socklen_t,
222add0d91Sopenharmony_ci        pub msg_flags: ::c_int,
232add0d91Sopenharmony_ci    }
242add0d91Sopenharmony_ci
252add0d91Sopenharmony_ci    pub struct sockaddr_un {
262add0d91Sopenharmony_ci        pub sun_family: ::sa_family_t,
272add0d91Sopenharmony_ci        pub sun_path: [::c_char; 108],
282add0d91Sopenharmony_ci    }
292add0d91Sopenharmony_ci
302add0d91Sopenharmony_ci    pub struct sockaddr {
312add0d91Sopenharmony_ci        pub sa_len: u8,
322add0d91Sopenharmony_ci        pub sa_family: ::sa_family_t,
332add0d91Sopenharmony_ci        pub sa_data: [::c_char; 14],
342add0d91Sopenharmony_ci    }
352add0d91Sopenharmony_ci
362add0d91Sopenharmony_ci    pub struct sockaddr_in6 {
372add0d91Sopenharmony_ci        pub sin6_len: u8,
382add0d91Sopenharmony_ci        pub sin6_family: ::sa_family_t,
392add0d91Sopenharmony_ci        pub sin6_port: ::in_port_t,
402add0d91Sopenharmony_ci        pub sin6_flowinfo: u32,
412add0d91Sopenharmony_ci        pub sin6_addr: ::in6_addr,
422add0d91Sopenharmony_ci        pub sin6_scope_id: u32,
432add0d91Sopenharmony_ci    }
442add0d91Sopenharmony_ci
452add0d91Sopenharmony_ci    pub struct sockaddr_in {
462add0d91Sopenharmony_ci        pub sin_len: u8,
472add0d91Sopenharmony_ci        pub sin_family: ::sa_family_t,
482add0d91Sopenharmony_ci        pub sin_port: ::in_port_t,
492add0d91Sopenharmony_ci        pub sin_addr: ::in_addr,
502add0d91Sopenharmony_ci        pub sin_zero: [::c_char; 8],
512add0d91Sopenharmony_ci    }
522add0d91Sopenharmony_ci
532add0d91Sopenharmony_ci    pub struct sockaddr_storage {
542add0d91Sopenharmony_ci        pub s2_len: u8,
552add0d91Sopenharmony_ci        pub ss_family: ::sa_family_t,
562add0d91Sopenharmony_ci        pub s2_data1: [::c_char; 2],
572add0d91Sopenharmony_ci        pub s2_data2: [u32; 3],
582add0d91Sopenharmony_ci        pub s2_data3: [u32; 3],
592add0d91Sopenharmony_ci    }
602add0d91Sopenharmony_ci}
612add0d91Sopenharmony_ci
622add0d91Sopenharmony_cipub const AF_UNIX: ::c_int = 1;
632add0d91Sopenharmony_cipub const AF_INET6: ::c_int = 10;
642add0d91Sopenharmony_ci
652add0d91Sopenharmony_cipub const FIONBIO: ::c_ulong = 2147772030;
662add0d91Sopenharmony_ci
672add0d91Sopenharmony_cipub const POLLIN: ::c_short = 1 << 0;
682add0d91Sopenharmony_cipub const POLLRDNORM: ::c_short = 1 << 1;
692add0d91Sopenharmony_cipub const POLLRDBAND: ::c_short = 1 << 2;
702add0d91Sopenharmony_cipub const POLLPRI: ::c_short = POLLRDBAND;
712add0d91Sopenharmony_cipub const POLLOUT: ::c_short = 1 << 3;
722add0d91Sopenharmony_cipub const POLLWRNORM: ::c_short = POLLOUT;
732add0d91Sopenharmony_cipub const POLLWRBAND: ::c_short = 1 << 4;
742add0d91Sopenharmony_cipub const POLLERR: ::c_short = 1 << 5;
752add0d91Sopenharmony_cipub const POLLHUP: ::c_short = 1 << 6;
762add0d91Sopenharmony_ci
772add0d91Sopenharmony_cipub const SOL_SOCKET: ::c_int = 0xfff;
782add0d91Sopenharmony_ci
792add0d91Sopenharmony_cipub const MSG_OOB: ::c_int = 0x04;
802add0d91Sopenharmony_cipub const MSG_PEEK: ::c_int = 0x01;
812add0d91Sopenharmony_cipub const MSG_DONTWAIT: ::c_int = 0x08;
822add0d91Sopenharmony_cipub const MSG_DONTROUTE: ::c_int = 0x4;
832add0d91Sopenharmony_cipub const MSG_WAITALL: ::c_int = 0x02;
842add0d91Sopenharmony_cipub const MSG_MORE: ::c_int = 0x10;
852add0d91Sopenharmony_cipub const MSG_NOSIGNAL: ::c_int = 0x20;
862add0d91Sopenharmony_cipub const MSG_TRUNC: ::c_int = 0x04;
872add0d91Sopenharmony_cipub const MSG_CTRUNC: ::c_int = 0x08;
882add0d91Sopenharmony_cipub const MSG_EOR: ::c_int = 0x08;
892add0d91Sopenharmony_ci
902add0d91Sopenharmony_cipub const PTHREAD_STACK_MIN: ::size_t = 768;
912add0d91Sopenharmony_ci
922add0d91Sopenharmony_ciextern "C" {
932add0d91Sopenharmony_ci    pub fn pthread_create(
942add0d91Sopenharmony_ci        native: *mut ::pthread_t,
952add0d91Sopenharmony_ci        attr: *const ::pthread_attr_t,
962add0d91Sopenharmony_ci        f: extern "C" fn(_: *mut ::c_void) -> *mut ::c_void,
972add0d91Sopenharmony_ci        value: *mut ::c_void,
982add0d91Sopenharmony_ci    ) -> ::c_int;
992add0d91Sopenharmony_ci
1002add0d91Sopenharmony_ci    pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
1012add0d91Sopenharmony_ci
1022add0d91Sopenharmony_ci    #[link_name = "lwip_sendmsg"]
1032add0d91Sopenharmony_ci    pub fn sendmsg(s: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
1042add0d91Sopenharmony_ci    #[link_name = "lwip_recvmsg"]
1052add0d91Sopenharmony_ci    pub fn recvmsg(s: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
1062add0d91Sopenharmony_ci
1072add0d91Sopenharmony_ci    pub fn eventfd(initval: ::c_uint, flags: ::c_int) -> ::c_int;
1082add0d91Sopenharmony_ci}
1092add0d91Sopenharmony_ci
1102add0d91Sopenharmony_cipub use crate::unix::newlib::generic::{sigset_t, stat};
111