Revision control

Copy as Markdown

Other Tools

//! Header: `bionic/libc/include/sys/socket.h`
use crate::prelude::*;
s! {
pub struct msghdr {
pub msg_name: *mut c_void,
pub msg_namelen: crate::socklen_t,
pub msg_iov: *mut crate::iovec,
pub msg_iovlen: size_t,
pub msg_control: *mut c_void,
pub msg_controllen: size_t,
pub msg_flags: c_int,
}
pub struct cmsghdr {
pub cmsg_len: size_t,
pub cmsg_level: c_int,
pub cmsg_type: c_int,
}
pub struct ucred {
pub pid: crate::pid_t,
pub uid: crate::uid_t,
pub gid: crate::gid_t,
}
}
extern "C" {
pub fn recvmmsg(
sockfd: c_int,
msgvec: *mut crate::mmsghdr,
vlen: c_uint,
flags: c_int,
timeout: *const crate::timespec,
) -> c_int;
pub fn sendmmsg(
sockfd: c_int,
msgvec: *const crate::mmsghdr,
vlen: c_uint,
flags: c_int,
) -> c_int;
pub fn recvfrom(
socket: c_int,
buf: *mut c_void,
len: size_t,
flags: c_int,
addr: *mut crate::sockaddr,
addrlen: *mut crate::socklen_t,
) -> ssize_t;
}