#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
type in_port_t
type in_addr_t

type sa_family_t

type {struct in_addr}

element {struct in_addr} in_addr_t s_addr

type {struct sockaddr_in}

element {struct sockaddr_in} sa_family_t sin_family
element {struct sockaddr_in} in_port_t sin_port
element {struct sockaddr_in} {struct in_addr} sin_addr
element {struct sockaddr_in} {unsigned char} sin_zero [8]

type {struct in6_addr}

element {struct in6_addr} uint8_t s6_addr [16]

type {struct sockaddr_in6}

element {struct sockaddr_in6} sa_family_t sin6_family
element {struct sockaddr_in6} in_port_t sin6_port
element {struct sockaddr_in6} uint32_t sin6_flowinfo
element {struct sockaddr_in6} {struct in6_addr} sin6_addr
element {struct sockaddr_in6} uint32_t sin6_scope_id

variable {const struct in6_addr} in6addr_any

// constant IN6ADDR_ANY_INIT
macro IN6ADDR_ANY_INIT

variable {const struct in6_addr} in6addr_loopback

// constant IN6ADDR_LOOPBACK_INIT
macro IN6ADDR_LOOPBACK_INIT

type {struct ipv6_mreq}

element {struct ipv6_mreq} {struct in6_addr} ipv6mr_multiaddr
element {struct ipv6_mreq} {unsigned int} ipv6mr_interface

macro IPPROTO_IP
macro IPPROTO_IPV6
macro IPPROTO_ICMP
macro IPPROTO_TCP
macro IPPROTO_UDP

macro INADDR_ANY
macro INADDR_BROADCAST

constant INET_ADDRSTRLEN == 16

function uint32_t htonl (uint32_t)
function uint16_t htons (uint16_t)
function uint32_t ntohl (uint32_t)
function uint16_t ntohs (uint16_t)

allow-header inttypes.h
allow-header sys/socket.h

constant INET6_ADDRSTRLEN == 46

macro IPV6_JOIN_GROUP
macro IPV6_LEAVE_GROUP
macro IPV6_MULTICAST_HOPS
macro IPV6_MULTICAST_IF
macro IPV6_MULTICAST_LOOP
macro IPV6_UNICAST_HOPS

macro IN6_IS_ADDR_UNSPECIFIED
macro IN6_IS_ADDR_LOOPBACK
macro IN6_IS_ADDR_MULTICAST
macro IN6_IS_ADDR_LINKLOCAL
macro IN6_IS_ADDR_SITELOCAL
macro IN6_IS_ADDR_V4MAPPED
macro IN6_IS_ADDR_V4COMPAT
macro IN6_IS_ADDR_MC_NODELOCAL
macro IN6_IS_ADDR_MC_LINKLOCAL
macro IN6_IS_ADDR_MC_SITELOCAL
macro IN6_IS_ADDR_MC_ORGLOCAL
macro IN6_IS_ADDR_MC_GLOBAL

allow IMPLINK_*
allow IN_*
allow IN6_*
allow INADDR_*
allow IP_*
allow IPV6_*
allow IPPORT_*
allow IPPROTO_*
allow SOCK_*
#endif
