struct sockaddr = {
    sa_family = AF_INET | AF_UNIX | AF_NETLINK | AF_VSOCK,
    ..
};

struct msg_hdr = {
    msg_name = <sockaddr>,
    msg_control = NULL,
    ..
};

struct mmsg_hdr = {
    hdr = <msg_hdr>,
    msg_len
};

// Send message on a socket
sendto(
    sockfd, buf, len,
    flags = 0,
    dest_addr = <sockaddr>,
    addrlen
);

// Send message using scatter-gather buffers and ancillary data
sendmsg(
    sockfd,
    msg = <msg_hdr>,
    flags = 0
);


// Send multiple messages on a socket
sendmmsg(
    sockfd,
    mmsgs = [ <mmsg_hdr> ],
    mmsg_count,
    flags = 0
);
