#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
type socklen_t

type sa_family_t

# if defined XOPEN2K8 || defined POSIX2008
type size_t
type ssize_t
# endif

type {struct sockaddr}

element {struct sockaddr} sa_family_t sa_family
element {struct sockaddr} char sa_data []

type {struct sockaddr_storage}

element {struct sockaddr_storage} sa_family_t ss_family

type {struct msghdr}

element {struct msghdr} {void*} msg_name
element {struct msghdr} socklen_t msg_namelen
element {struct msghdr} {struct iovec*} msg_iov
element {struct msghdr} int msg_iovlen
element {struct msghdr} {void*} msg_control
element {struct msghdr} socklen_t msg_controllen
element {struct msghdr} int msg_flags

type {struct iovec}

element {struct iovec} {void*} iov_base
element {struct iovec} size_t iov_len

type {struct cmsghdr}

element {struct cmsghdr} socklen_t cmsg_len
element {struct cmsghdr} int cmsg_level
element {struct cmsghdr} int cmsg_type

macro SCM_RIGHTS

macro CMSG_DATA
macro CMSG_NXTHDR
macro CMSG_FIRSTHDR

type {struct linger}

element {struct linger} int l_onoff
element {struct linger} int l_linger

macro SOCK_DGRAM
macro SOCK_STREAM
macro SOCK_SEQPACKET

macro SOL_SOCKET

macro SO_ACCEPTCONN
macro SO_BROADCAST
macro SO_DEBUG
macro SO_DONTROUTE
macro SO_ERROR
macro SO_KEEPALIVE
macro SO_LINGER
macro SO_OOBINLINE
macro SO_RCVBUF
macro SO_RCVLOWAT
macro SO_RCVTIMEO
macro SO_REUSEADDR
macro SO_SNDBUF
macro SO_SNDLOWAT
macro SO_SNDTIMEO
macro SO_TYPE

macro SOMAXCONN

macro MSG_CTRUNC
macro MSG_DONTROUTE
macro MSG_EOR
macro MSG_OOB
macro MSG_PEEK
macro MSG_TRUNC
macro MSG_WAITALL
# if defined XOPEN2K8 || defined POSIX2008
constant MSG_NOSIGNAL
# endif

macro AF_UNIX
macro AF_UNSPEC
macro AF_INET
macro AF_INET6

macro SHUT_RD
macro SHUT_WR
macro SHUT_RDWR

function int accept (int, struct sockaddr*, socklen_t*)
function int bind (int, const struct sockaddr*, socklen_t)
function int connect (int, const struct sockaddr*, socklen_t)
function int getpeername (int, struct sockaddr*, socklen_t*)
function int getsockname (int, struct sockaddr*, socklen_t*)
function int getsockopt (int, int, int, void*, socklen_t*)
function int listen (int, int)
function ssize_t recv (int, void*, size_t, int)
function ssize_t recvfrom (int, void*, size_t, int, struct sockaddr*, socklen_t*)
function ssize_t recvmsg (int, struct msghdr*, int)
function ssize_t send (int, const void*, size_t, int)
function ssize_t sendmsg (int, const struct msghdr*, int)
function ssize_t sendto (int, const void*, size_t, int, const struct sockaddr*, socklen_t)
function int setsockopt (int, int, int, const void*, socklen_t)
function int shutdown (int, int)
function int socket (int, int, int)
function int socketpair (int, int, int, int[2])
#if !defined XPG4 && !defined UNIX98
function int sockatmark (int)
#endif

allow-header sys/uio.h

allow ss_*
allow sa_*
allow if_*
allow ifc_*
allow ifru_*
allow infu_*
allow ifra_*
allow msg_*
allow cmsg_*
allow l_*
allow SO*
allow AF_*
allow CMSG_*
allow MSG_*
allow PF_*
allow SCM_*
allow SHUT_*
#endif
