/// Receive a message from a socket.
pub unsafe fn recvfrom(
sockfd: i32,
buf: &mut [u8],
flags: i32,
src_addr: &mut sockaddr_in_t,
addrlen: &mut socklen_t,
) -> Result<ssize_t, Errno> {
let sockfd = sockfd as usize;
let buf_ptr = buf.as_mut_ptr() as usize;
let buflen = buf.len();
let flags = flags as usize;
let src_addr_ptr = src_addr as *mut sockaddr_in_t as usize;
let addrlen_ptr = addrlen as *mut socklen_t as usize;
syscall6(
SYS_RECVFROM,
sockfd,
buf_ptr,
buflen,
flags,
src_addr_ptr,
addrlen_ptr,
)
.map(|ret| ret as ssize_t)
}