/* Generated by ./xlat/gen.sh from ./xlat/addrfams.in; do not edit. */

const struct xlat addrfams[] = {
#if defined(AF_UNSPEC) || (defined(HAVE_DECL_AF_UNSPEC) && HAVE_DECL_AF_UNSPEC)
 XLAT(AF_UNSPEC),
#endif
#if defined(AF_LOCAL) || (defined(HAVE_DECL_AF_LOCAL) && HAVE_DECL_AF_LOCAL)
 XLAT(AF_LOCAL),
#endif
#if defined(AF_UNIX) || (defined(HAVE_DECL_AF_UNIX) && HAVE_DECL_AF_UNIX)
 XLAT(AF_UNIX),
#endif
#if defined(AF_INET) || (defined(HAVE_DECL_AF_INET) && HAVE_DECL_AF_INET)
 XLAT(AF_INET),
#endif
#if defined(AF_AX25) || (defined(HAVE_DECL_AF_AX25) && HAVE_DECL_AF_AX25)
 XLAT(AF_AX25),
#endif
#if defined(AF_IPX) || (defined(HAVE_DECL_AF_IPX) && HAVE_DECL_AF_IPX)
 XLAT(AF_IPX),
#endif
#if defined(AF_APPLETALK) || (defined(HAVE_DECL_AF_APPLETALK) && HAVE_DECL_AF_APPLETALK)
 XLAT(AF_APPLETALK),
#endif
#if defined(AF_NETROM) || (defined(HAVE_DECL_AF_NETROM) && HAVE_DECL_AF_NETROM)
 XLAT(AF_NETROM),
#endif
#if defined(AF_BRIDGE) || (defined(HAVE_DECL_AF_BRIDGE) && HAVE_DECL_AF_BRIDGE)
 XLAT(AF_BRIDGE),
#endif
#if defined(AF_ATMPVC) || (defined(HAVE_DECL_AF_ATMPVC) && HAVE_DECL_AF_ATMPVC)
 XLAT(AF_ATMPVC),
#endif
#if defined(AF_X25) || (defined(HAVE_DECL_AF_X25) && HAVE_DECL_AF_X25)
 XLAT(AF_X25),
#endif
#if defined(AF_INET6) || (defined(HAVE_DECL_AF_INET6) && HAVE_DECL_AF_INET6)
 XLAT(AF_INET6),
#endif
#if defined(AF_ROSE) || (defined(HAVE_DECL_AF_ROSE) && HAVE_DECL_AF_ROSE)
 XLAT(AF_ROSE),
#endif
#if defined(AF_DECnet) || (defined(HAVE_DECL_AF_DECnet) && HAVE_DECL_AF_DECnet)
 XLAT(AF_DECnet),
#endif
#if defined(AF_NETBEUI) || (defined(HAVE_DECL_AF_NETBEUI) && HAVE_DECL_AF_NETBEUI)
 XLAT(AF_NETBEUI),
#endif
#if defined(AF_SECURITY) || (defined(HAVE_DECL_AF_SECURITY) && HAVE_DECL_AF_SECURITY)
 XLAT(AF_SECURITY),
#endif
#if defined(AF_KEY) || (defined(HAVE_DECL_AF_KEY) && HAVE_DECL_AF_KEY)
 XLAT(AF_KEY),
#endif
#if defined(AF_NETLINK) || (defined(HAVE_DECL_AF_NETLINK) && HAVE_DECL_AF_NETLINK)
 XLAT(AF_NETLINK),
#endif
#if defined(AF_ROUTE) || (defined(HAVE_DECL_AF_ROUTE) && HAVE_DECL_AF_ROUTE)
 XLAT(AF_ROUTE),
#endif
#if defined(AF_PACKET) || (defined(HAVE_DECL_AF_PACKET) && HAVE_DECL_AF_PACKET)
 XLAT(AF_PACKET),
#endif
#if defined(AF_ASH) || (defined(HAVE_DECL_AF_ASH) && HAVE_DECL_AF_ASH)
 XLAT(AF_ASH),
#endif
#if defined(AF_ECONET) || (defined(HAVE_DECL_AF_ECONET) && HAVE_DECL_AF_ECONET)
 XLAT(AF_ECONET),
#endif
#if defined(AF_ATMSVC) || (defined(HAVE_DECL_AF_ATMSVC) && HAVE_DECL_AF_ATMSVC)
 XLAT(AF_ATMSVC),
#endif
#if defined(AF_RDS) || (defined(HAVE_DECL_AF_RDS) && HAVE_DECL_AF_RDS)
 XLAT(AF_RDS),
#endif
#if defined(AF_SNA) || (defined(HAVE_DECL_AF_SNA) && HAVE_DECL_AF_SNA)
 XLAT(AF_SNA),
#endif
#if defined(AF_IRDA) || (defined(HAVE_DECL_AF_IRDA) && HAVE_DECL_AF_IRDA)
 XLAT(AF_IRDA),
#endif
#if defined(AF_PPPOX) || (defined(HAVE_DECL_AF_PPPOX) && HAVE_DECL_AF_PPPOX)
 XLAT(AF_PPPOX),
#endif
#if defined(AF_WANPIPE) || (defined(HAVE_DECL_AF_WANPIPE) && HAVE_DECL_AF_WANPIPE)
 XLAT(AF_WANPIPE),
#endif
#if defined(AF_LLC) || (defined(HAVE_DECL_AF_LLC) && HAVE_DECL_AF_LLC)
 XLAT(AF_LLC),
#endif
#if defined(AF_CAN) || (defined(HAVE_DECL_AF_CAN) && HAVE_DECL_AF_CAN)
 XLAT(AF_CAN),
#endif
#if defined(AF_TIPC) || (defined(HAVE_DECL_AF_TIPC) && HAVE_DECL_AF_TIPC)
 XLAT(AF_TIPC),
#endif
#if defined(AF_BLUETOOTH) || (defined(HAVE_DECL_AF_BLUETOOTH) && HAVE_DECL_AF_BLUETOOTH)
 XLAT(AF_BLUETOOTH),
#endif
#if defined(AF_IUCV) || (defined(HAVE_DECL_AF_IUCV) && HAVE_DECL_AF_IUCV)
 XLAT(AF_IUCV),
#endif
#if defined(AF_RXRPC) || (defined(HAVE_DECL_AF_RXRPC) && HAVE_DECL_AF_RXRPC)
 XLAT(AF_RXRPC),
#endif
#if defined(AF_ISDN) || (defined(HAVE_DECL_AF_ISDN) && HAVE_DECL_AF_ISDN)
 XLAT(AF_ISDN),
#endif
#if defined(AF_PHONET) || (defined(HAVE_DECL_AF_PHONET) && HAVE_DECL_AF_PHONET)
 XLAT(AF_PHONET),
#endif
#if defined(AF_IEEE802154) || (defined(HAVE_DECL_AF_IEEE802154) && HAVE_DECL_AF_IEEE802154)
 XLAT(AF_IEEE802154),
#endif
#if defined(AF_CAIF) || (defined(HAVE_DECL_AF_CAIF) && HAVE_DECL_AF_CAIF)
 XLAT(AF_CAIF),
#endif
#if defined(AF_ALG) || (defined(HAVE_DECL_AF_ALG) && HAVE_DECL_AF_ALG)
 XLAT(AF_ALG),
#endif
#if defined(AF_NFC) || (defined(HAVE_DECL_AF_NFC) && HAVE_DECL_AF_NFC)
 XLAT(AF_NFC),
#endif
#if defined(AF_VSOCK) || (defined(HAVE_DECL_AF_VSOCK) && HAVE_DECL_AF_VSOCK)
 XLAT(AF_VSOCK),
#endif
 XLAT_END
};
