/* Generated by ./xlat/gen.sh from ./xlat/socknetlinkoptions.in; do not edit. */
#if !(defined(NETLINK_ADD_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_ADD_MEMBERSHIP) && HAVE_DECL_NETLINK_ADD_MEMBERSHIP))
# define NETLINK_ADD_MEMBERSHIP 1
#endif
#if !(defined(NETLINK_DROP_MEMBERSHIP) || (defined(HAVE_DECL_NETLINK_DROP_MEMBERSHIP) && HAVE_DECL_NETLINK_DROP_MEMBERSHIP))
# define NETLINK_DROP_MEMBERSHIP 2
#endif
#if !(defined(NETLINK_PKTINFO) || (defined(HAVE_DECL_NETLINK_PKTINFO) && HAVE_DECL_NETLINK_PKTINFO))
# define NETLINK_PKTINFO 3
#endif
#if !(defined(NETLINK_BROADCAST_ERROR) || (defined(HAVE_DECL_NETLINK_BROADCAST_ERROR) && HAVE_DECL_NETLINK_BROADCAST_ERROR))
# define NETLINK_BROADCAST_ERROR 4
#endif
#if !(defined(NETLINK_NO_ENOBUFS) || (defined(HAVE_DECL_NETLINK_NO_ENOBUFS) && HAVE_DECL_NETLINK_NO_ENOBUFS))
# define NETLINK_NO_ENOBUFS 5
#endif
#if !(defined(NETLINK_RX_RING) || (defined(HAVE_DECL_NETLINK_RX_RING) && HAVE_DECL_NETLINK_RX_RING))
# define NETLINK_RX_RING 6
#endif
#if !(defined(NETLINK_TX_RING) || (defined(HAVE_DECL_NETLINK_TX_RING) && HAVE_DECL_NETLINK_TX_RING))
# define NETLINK_TX_RING 7
#endif
#if !(defined(NETLINK_LISTEN_ALL_NSID) || (defined(HAVE_DECL_NETLINK_LISTEN_ALL_NSID) && HAVE_DECL_NETLINK_LISTEN_ALL_NSID))
# define NETLINK_LISTEN_ALL_NSID 8
#endif
#if !(defined(NETLINK_LIST_MEMBERSHIPS) || (defined(HAVE_DECL_NETLINK_LIST_MEMBERSHIPS) && HAVE_DECL_NETLINK_LIST_MEMBERSHIPS))
# define NETLINK_LIST_MEMBERSHIPS 9
#endif
#if !(defined(NETLINK_CAP_ACK) || (defined(HAVE_DECL_NETLINK_CAP_ACK) && HAVE_DECL_NETLINK_CAP_ACK))
# define NETLINK_CAP_ACK 10
#endif
#if !(defined(NETLINK_EXT_ACK) || (defined(HAVE_DECL_NETLINK_EXT_ACK) && HAVE_DECL_NETLINK_EXT_ACK))
# define NETLINK_EXT_ACK 11
#endif

#ifdef IN_MPERS

# error static const struct xlat socknetlinkoptions in mpers mode

#else

static
const struct xlat socknetlinkoptions[] = {
 XLAT(NETLINK_ADD_MEMBERSHIP),
 XLAT(NETLINK_DROP_MEMBERSHIP),
 XLAT(NETLINK_PKTINFO),
 XLAT(NETLINK_BROADCAST_ERROR),
 XLAT(NETLINK_NO_ENOBUFS),
 XLAT(NETLINK_RX_RING),
 XLAT(NETLINK_TX_RING),
 XLAT(NETLINK_LISTEN_ALL_NSID),
 XLAT(NETLINK_LIST_MEMBERSHIPS),
 XLAT(NETLINK_CAP_ACK),
 XLAT(NETLINK_EXT_ACK),
 XLAT_END
};

#endif /* !IN_MPERS */
