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

static const struct xlat socketlayers[] = {
#if !(defined(SOL_IP) || (defined(HAVE_DECL_SOL_IP) && HAVE_DECL_SOL_IP))
# define SOL_IP 0
#endif
 XLAT(SOL_IP),
#if !(defined(SOL_SOCKET) || (defined(HAVE_DECL_SOL_SOCKET) && HAVE_DECL_SOL_SOCKET))
# define SOL_SOCKET 1
#endif
 XLAT(SOL_SOCKET),
#if !(defined(SOL_TCP) || (defined(HAVE_DECL_SOL_TCP) && HAVE_DECL_SOL_TCP))
# define SOL_TCP 6
#endif
 XLAT(SOL_TCP),
#if !(defined(SOL_UDP) || (defined(HAVE_DECL_SOL_UDP) && HAVE_DECL_SOL_UDP))
# define SOL_UDP 17
#endif
 XLAT(SOL_UDP),
#if !(defined(SOL_IPV6) || (defined(HAVE_DECL_SOL_IPV6) && HAVE_DECL_SOL_IPV6))
# define SOL_IPV6 41
#endif
 XLAT(SOL_IPV6),
#if !(defined(SOL_ICMPV6) || (defined(HAVE_DECL_SOL_ICMPV6) && HAVE_DECL_SOL_ICMPV6))
# define SOL_ICMPV6 58
#endif
 XLAT(SOL_ICMPV6),
#if !(defined(SOL_SCTP) || (defined(HAVE_DECL_SOL_SCTP) && HAVE_DECL_SOL_SCTP))
# define SOL_SCTP 132
#endif
 XLAT(SOL_SCTP),
#if !(defined(SOL_UDPLITE) || (defined(HAVE_DECL_SOL_UDPLITE) && HAVE_DECL_SOL_UDPLITE))
# define SOL_UDPLITE 136
#endif
 XLAT(SOL_UDPLITE),
#if !(defined(SOL_RAW) || (defined(HAVE_DECL_SOL_RAW) && HAVE_DECL_SOL_RAW))
# define SOL_RAW 255
#endif
 XLAT(SOL_RAW),
#if !(defined(SOL_IPX) || (defined(HAVE_DECL_SOL_IPX) && HAVE_DECL_SOL_IPX))
# define SOL_IPX 256
#endif
 XLAT(SOL_IPX),
#if !(defined(SOL_AX25) || (defined(HAVE_DECL_SOL_AX25) && HAVE_DECL_SOL_AX25))
# define SOL_AX25 257
#endif
 XLAT(SOL_AX25),
#if !(defined(SOL_ATALK) || (defined(HAVE_DECL_SOL_ATALK) && HAVE_DECL_SOL_ATALK))
# define SOL_ATALK 258
#endif
 XLAT(SOL_ATALK),
#if !(defined(SOL_NETROM) || (defined(HAVE_DECL_SOL_NETROM) && HAVE_DECL_SOL_NETROM))
# define SOL_NETROM 259
#endif
 XLAT(SOL_NETROM),
#if !(defined(SOL_ROSE) || (defined(HAVE_DECL_SOL_ROSE) && HAVE_DECL_SOL_ROSE))
# define SOL_ROSE 260
#endif
 XLAT(SOL_ROSE),
#if !(defined(SOL_DECNET) || (defined(HAVE_DECL_SOL_DECNET) && HAVE_DECL_SOL_DECNET))
# define SOL_DECNET 261
#endif
 XLAT(SOL_DECNET),
#if !(defined(SOL_X25) || (defined(HAVE_DECL_SOL_X25) && HAVE_DECL_SOL_X25))
# define SOL_X25 262
#endif
 XLAT(SOL_X25),
#if !(defined(SOL_PACKET) || (defined(HAVE_DECL_SOL_PACKET) && HAVE_DECL_SOL_PACKET))
# define SOL_PACKET 263
#endif
 XLAT(SOL_PACKET),
#if !(defined(SOL_ATM) || (defined(HAVE_DECL_SOL_ATM) && HAVE_DECL_SOL_ATM))
# define SOL_ATM 264
#endif
 XLAT(SOL_ATM),
#if !(defined(SOL_AAL) || (defined(HAVE_DECL_SOL_AAL) && HAVE_DECL_SOL_AAL))
# define SOL_AAL 265
#endif
 XLAT(SOL_AAL),
#if !(defined(SOL_IRDA) || (defined(HAVE_DECL_SOL_IRDA) && HAVE_DECL_SOL_IRDA))
# define SOL_IRDA 266
#endif
 XLAT(SOL_IRDA),
#if !(defined(SOL_NETBEUI) || (defined(HAVE_DECL_SOL_NETBEUI) && HAVE_DECL_SOL_NETBEUI))
# define SOL_NETBEUI 267
#endif
 XLAT(SOL_NETBEUI),
#if !(defined(SOL_LLC) || (defined(HAVE_DECL_SOL_LLC) && HAVE_DECL_SOL_LLC))
# define SOL_LLC 268
#endif
 XLAT(SOL_LLC),
#if !(defined(SOL_DCCP) || (defined(HAVE_DECL_SOL_DCCP) && HAVE_DECL_SOL_DCCP))
# define SOL_DCCP 269
#endif
 XLAT(SOL_DCCP),
#if !(defined(SOL_NETLINK) || (defined(HAVE_DECL_SOL_NETLINK) && HAVE_DECL_SOL_NETLINK))
# define SOL_NETLINK 270
#endif
 XLAT(SOL_NETLINK),
#if !(defined(SOL_TIPC) || (defined(HAVE_DECL_SOL_TIPC) && HAVE_DECL_SOL_TIPC))
# define SOL_TIPC 271
#endif
 XLAT(SOL_TIPC),
#if !(defined(SOL_RXRPC) || (defined(HAVE_DECL_SOL_RXRPC) && HAVE_DECL_SOL_RXRPC))
# define SOL_RXRPC 272
#endif
 XLAT(SOL_RXRPC),
#if !(defined(SOL_PPPOL2TP) || (defined(HAVE_DECL_SOL_PPPOL2TP) && HAVE_DECL_SOL_PPPOL2TP))
# define SOL_PPPOL2TP 273
#endif
 XLAT(SOL_PPPOL2TP),
#if !(defined(SOL_BLUETOOTH) || (defined(HAVE_DECL_SOL_BLUETOOTH) && HAVE_DECL_SOL_BLUETOOTH))
# define SOL_BLUETOOTH 274
#endif
 XLAT(SOL_BLUETOOTH),
#if !(defined(SOL_PNPIPE) || (defined(HAVE_DECL_SOL_PNPIPE) && HAVE_DECL_SOL_PNPIPE))
# define SOL_PNPIPE 275
#endif
 XLAT(SOL_PNPIPE),
#if !(defined(SOL_RDS) || (defined(HAVE_DECL_SOL_RDS) && HAVE_DECL_SOL_RDS))
# define SOL_RDS 276
#endif
 XLAT(SOL_RDS),
#if !(defined(SOL_IUCV) || (defined(HAVE_DECL_SOL_IUCV) && HAVE_DECL_SOL_IUCV))
# define SOL_IUCV 277
#endif
 XLAT(SOL_IUCV),
#if !(defined(SOL_CAIF) || (defined(HAVE_DECL_SOL_CAIF) && HAVE_DECL_SOL_CAIF))
# define SOL_CAIF 278
#endif
 XLAT(SOL_CAIF),
#if !(defined(SOL_ALG) || (defined(HAVE_DECL_SOL_ALG) && HAVE_DECL_SOL_ALG))
# define SOL_ALG 279
#endif
 XLAT(SOL_ALG),
#if !(defined(SOL_NFC) || (defined(HAVE_DECL_SOL_NFC) && HAVE_DECL_SOL_NFC))
# define SOL_NFC 280
#endif
 XLAT(SOL_NFC),
 XLAT_END
};
