/* Generated by ./xlat/gen.sh from ./xlat/addrfams.in; do not edit. */
#if !(defined(AF_UNSPEC) || (defined(HAVE_DECL_AF_UNSPEC) && HAVE_DECL_AF_UNSPEC))
# define AF_UNSPEC 0
#endif
#if !(defined(AF_UNIX) || (defined(HAVE_DECL_AF_UNIX) && HAVE_DECL_AF_UNIX))
# define AF_UNIX 1
#endif
#if !(defined(AF_INET) || (defined(HAVE_DECL_AF_INET) && HAVE_DECL_AF_INET))
# define AF_INET 2
#endif
#if !(defined(AF_AX25) || (defined(HAVE_DECL_AF_AX25) && HAVE_DECL_AF_AX25))
# define AF_AX25 3
#endif
#if !(defined(AF_IPX) || (defined(HAVE_DECL_AF_IPX) && HAVE_DECL_AF_IPX))
# define AF_IPX 4
#endif
#if !(defined(AF_APPLETALK) || (defined(HAVE_DECL_AF_APPLETALK) && HAVE_DECL_AF_APPLETALK))
# define AF_APPLETALK 5
#endif
#if !(defined(AF_NETROM) || (defined(HAVE_DECL_AF_NETROM) && HAVE_DECL_AF_NETROM))
# define AF_NETROM 6
#endif
#if !(defined(AF_BRIDGE) || (defined(HAVE_DECL_AF_BRIDGE) && HAVE_DECL_AF_BRIDGE))
# define AF_BRIDGE 7
#endif
#if !(defined(AF_ATMPVC) || (defined(HAVE_DECL_AF_ATMPVC) && HAVE_DECL_AF_ATMPVC))
# define AF_ATMPVC 8
#endif
#if !(defined(AF_X25) || (defined(HAVE_DECL_AF_X25) && HAVE_DECL_AF_X25))
# define AF_X25 9
#endif
#if !(defined(AF_INET6) || (defined(HAVE_DECL_AF_INET6) && HAVE_DECL_AF_INET6))
# define AF_INET6 10
#endif
#if !(defined(AF_ROSE) || (defined(HAVE_DECL_AF_ROSE) && HAVE_DECL_AF_ROSE))
# define AF_ROSE 11
#endif
#if !(defined(AF_DECnet) || (defined(HAVE_DECL_AF_DECnet) && HAVE_DECL_AF_DECnet))
# define AF_DECnet 12
#endif
#if !(defined(AF_NETBEUI) || (defined(HAVE_DECL_AF_NETBEUI) && HAVE_DECL_AF_NETBEUI))
# define AF_NETBEUI 13
#endif
#if !(defined(AF_SECURITY) || (defined(HAVE_DECL_AF_SECURITY) && HAVE_DECL_AF_SECURITY))
# define AF_SECURITY 14
#endif
#if !(defined(AF_KEY) || (defined(HAVE_DECL_AF_KEY) && HAVE_DECL_AF_KEY))
# define AF_KEY 15
#endif
#if !(defined(AF_NETLINK) || (defined(HAVE_DECL_AF_NETLINK) && HAVE_DECL_AF_NETLINK))
# define AF_NETLINK 16
#endif
#if !(defined(AF_PACKET) || (defined(HAVE_DECL_AF_PACKET) && HAVE_DECL_AF_PACKET))
# define AF_PACKET 17
#endif
#if !(defined(AF_ASH) || (defined(HAVE_DECL_AF_ASH) && HAVE_DECL_AF_ASH))
# define AF_ASH 18
#endif
#if !(defined(AF_ECONET) || (defined(HAVE_DECL_AF_ECONET) && HAVE_DECL_AF_ECONET))
# define AF_ECONET 19
#endif
#if !(defined(AF_ATMSVC) || (defined(HAVE_DECL_AF_ATMSVC) && HAVE_DECL_AF_ATMSVC))
# define AF_ATMSVC 20
#endif
#if !(defined(AF_RDS) || (defined(HAVE_DECL_AF_RDS) && HAVE_DECL_AF_RDS))
# define AF_RDS 21
#endif
#if !(defined(AF_SNA) || (defined(HAVE_DECL_AF_SNA) && HAVE_DECL_AF_SNA))
# define AF_SNA 22
#endif
#if !(defined(AF_IRDA) || (defined(HAVE_DECL_AF_IRDA) && HAVE_DECL_AF_IRDA))
# define AF_IRDA 23
#endif
#if !(defined(AF_PPPOX) || (defined(HAVE_DECL_AF_PPPOX) && HAVE_DECL_AF_PPPOX))
# define AF_PPPOX 24
#endif
#if !(defined(AF_WANPIPE) || (defined(HAVE_DECL_AF_WANPIPE) && HAVE_DECL_AF_WANPIPE))
# define AF_WANPIPE 25
#endif
#if !(defined(AF_LLC) || (defined(HAVE_DECL_AF_LLC) && HAVE_DECL_AF_LLC))
# define AF_LLC 26
#endif
#if !(defined(AF_IB) || (defined(HAVE_DECL_AF_IB) && HAVE_DECL_AF_IB))
# define AF_IB 27
#endif
#if !(defined(AF_MPLS) || (defined(HAVE_DECL_AF_MPLS) && HAVE_DECL_AF_MPLS))
# define AF_MPLS 28
#endif
#if !(defined(AF_CAN) || (defined(HAVE_DECL_AF_CAN) && HAVE_DECL_AF_CAN))
# define AF_CAN 29
#endif
#if !(defined(AF_TIPC) || (defined(HAVE_DECL_AF_TIPC) && HAVE_DECL_AF_TIPC))
# define AF_TIPC 30
#endif
#if !(defined(AF_BLUETOOTH) || (defined(HAVE_DECL_AF_BLUETOOTH) && HAVE_DECL_AF_BLUETOOTH))
# define AF_BLUETOOTH 31
#endif
#if !(defined(AF_IUCV) || (defined(HAVE_DECL_AF_IUCV) && HAVE_DECL_AF_IUCV))
# define AF_IUCV 32
#endif
#if !(defined(AF_RXRPC) || (defined(HAVE_DECL_AF_RXRPC) && HAVE_DECL_AF_RXRPC))
# define AF_RXRPC 33
#endif
#if !(defined(AF_ISDN) || (defined(HAVE_DECL_AF_ISDN) && HAVE_DECL_AF_ISDN))
# define AF_ISDN 34
#endif
#if !(defined(AF_PHONET) || (defined(HAVE_DECL_AF_PHONET) && HAVE_DECL_AF_PHONET))
# define AF_PHONET 35
#endif
#if !(defined(AF_IEEE802154) || (defined(HAVE_DECL_AF_IEEE802154) && HAVE_DECL_AF_IEEE802154))
# define AF_IEEE802154 36
#endif
#if !(defined(AF_CAIF) || (defined(HAVE_DECL_AF_CAIF) && HAVE_DECL_AF_CAIF))
# define AF_CAIF 37
#endif
#if !(defined(AF_ALG) || (defined(HAVE_DECL_AF_ALG) && HAVE_DECL_AF_ALG))
# define AF_ALG 38
#endif
#if !(defined(AF_NFC) || (defined(HAVE_DECL_AF_NFC) && HAVE_DECL_AF_NFC))
# define AF_NFC 39
#endif
#if !(defined(AF_VSOCK) || (defined(HAVE_DECL_AF_VSOCK) && HAVE_DECL_AF_VSOCK))
# define AF_VSOCK 40
#endif
#if !(defined(AF_KCM) || (defined(HAVE_DECL_AF_KCM) && HAVE_DECL_AF_KCM))
# define AF_KCM 41
#endif
#if !(defined(AF_QIPCRTR) || (defined(HAVE_DECL_AF_QIPCRTR) && HAVE_DECL_AF_QIPCRTR))
# define AF_QIPCRTR 42
#endif

#ifndef IN_MPERS

const struct xlat addrfams[] = {
 XLAT(AF_UNSPEC),
 XLAT(AF_UNIX),
 XLAT(AF_INET),
 XLAT(AF_AX25),
 XLAT(AF_IPX),
 XLAT(AF_APPLETALK),
 XLAT(AF_NETROM),
 XLAT(AF_BRIDGE),
 XLAT(AF_ATMPVC),
 XLAT(AF_X25),
 XLAT(AF_INET6),
 XLAT(AF_ROSE),
 XLAT(AF_DECnet),
 XLAT(AF_NETBEUI),
 XLAT(AF_SECURITY),
 XLAT(AF_KEY),
 XLAT(AF_NETLINK),
 XLAT(AF_PACKET),
 XLAT(AF_ASH),
 XLAT(AF_ECONET),
 XLAT(AF_ATMSVC),
 XLAT(AF_RDS),
 XLAT(AF_SNA),
 XLAT(AF_IRDA),
 XLAT(AF_PPPOX),
 XLAT(AF_WANPIPE),
 XLAT(AF_LLC),
 XLAT(AF_IB),
 XLAT(AF_MPLS),
 XLAT(AF_CAN),
 XLAT(AF_TIPC),
 XLAT(AF_BLUETOOTH),
 XLAT(AF_IUCV),
 XLAT(AF_RXRPC),
 XLAT(AF_ISDN),
 XLAT(AF_PHONET),
 XLAT(AF_IEEE802154),
 XLAT(AF_CAIF),
 XLAT(AF_ALG),
 XLAT(AF_NFC),
 XLAT(AF_VSOCK),
 XLAT(AF_KCM),
 XLAT(AF_QIPCRTR),
 XLAT_END
};

#endif /* !IN_MPERS */
