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

#ifdef IN_MPERS

# error static const struct xlat netlink_protocols in mpers mode

#else

static
const struct xlat netlink_protocols[] = {
#if defined(NETLINK_ROUTE) || (defined(HAVE_DECL_NETLINK_ROUTE) && HAVE_DECL_NETLINK_ROUTE)
  XLAT(NETLINK_ROUTE),
#endif
#if defined(NETLINK_UNUSED) || (defined(HAVE_DECL_NETLINK_UNUSED) && HAVE_DECL_NETLINK_UNUSED)
  XLAT(NETLINK_UNUSED),
#endif
#if defined(NETLINK_USERSOCK) || (defined(HAVE_DECL_NETLINK_USERSOCK) && HAVE_DECL_NETLINK_USERSOCK)
  XLAT(NETLINK_USERSOCK),
#endif
#if defined(NETLINK_FIREWALL) || (defined(HAVE_DECL_NETLINK_FIREWALL) && HAVE_DECL_NETLINK_FIREWALL)
  XLAT(NETLINK_FIREWALL),
#endif
#if defined(NETLINK_SOCK_DIAG) || (defined(HAVE_DECL_NETLINK_SOCK_DIAG) && HAVE_DECL_NETLINK_SOCK_DIAG)
  XLAT(NETLINK_SOCK_DIAG),
#endif
#if defined(NETLINK_NFLOG) || (defined(HAVE_DECL_NETLINK_NFLOG) && HAVE_DECL_NETLINK_NFLOG)
  XLAT(NETLINK_NFLOG),
#endif
#if defined(NETLINK_XFRM) || (defined(HAVE_DECL_NETLINK_XFRM) && HAVE_DECL_NETLINK_XFRM)
  XLAT(NETLINK_XFRM),
#endif
#if defined(NETLINK_SELINUX) || (defined(HAVE_DECL_NETLINK_SELINUX) && HAVE_DECL_NETLINK_SELINUX)
  XLAT(NETLINK_SELINUX),
#endif
#if defined(NETLINK_ISCSI) || (defined(HAVE_DECL_NETLINK_ISCSI) && HAVE_DECL_NETLINK_ISCSI)
  XLAT(NETLINK_ISCSI),
#endif
#if defined(NETLINK_AUDIT) || (defined(HAVE_DECL_NETLINK_AUDIT) && HAVE_DECL_NETLINK_AUDIT)
  XLAT(NETLINK_AUDIT),
#endif
#if defined(NETLINK_FIB_LOOKUP) || (defined(HAVE_DECL_NETLINK_FIB_LOOKUP) && HAVE_DECL_NETLINK_FIB_LOOKUP)
  XLAT(NETLINK_FIB_LOOKUP),
#endif
#if defined(NETLINK_CONNECTOR) || (defined(HAVE_DECL_NETLINK_CONNECTOR) && HAVE_DECL_NETLINK_CONNECTOR)
  XLAT(NETLINK_CONNECTOR),
#endif
#if defined(NETLINK_NETFILTER) || (defined(HAVE_DECL_NETLINK_NETFILTER) && HAVE_DECL_NETLINK_NETFILTER)
  XLAT(NETLINK_NETFILTER),
#endif
#if defined(NETLINK_IP6_FW) || (defined(HAVE_DECL_NETLINK_IP6_FW) && HAVE_DECL_NETLINK_IP6_FW)
  XLAT(NETLINK_IP6_FW),
#endif
#if defined(NETLINK_DNRTMSG) || (defined(HAVE_DECL_NETLINK_DNRTMSG) && HAVE_DECL_NETLINK_DNRTMSG)
  XLAT(NETLINK_DNRTMSG),
#endif
#if defined(NETLINK_KOBJECT_UEVENT) || (defined(HAVE_DECL_NETLINK_KOBJECT_UEVENT) && HAVE_DECL_NETLINK_KOBJECT_UEVENT)
  XLAT(NETLINK_KOBJECT_UEVENT),
#endif
#if defined(NETLINK_GENERIC) || (defined(HAVE_DECL_NETLINK_GENERIC) && HAVE_DECL_NETLINK_GENERIC)
  XLAT(NETLINK_GENERIC),
#endif
#if defined(NETLINK_SCSITRANSPORT) || (defined(HAVE_DECL_NETLINK_SCSITRANSPORT) && HAVE_DECL_NETLINK_SCSITRANSPORT)
  XLAT(NETLINK_SCSITRANSPORT),
#endif
#if defined(NETLINK_ECRYPTFS) || (defined(HAVE_DECL_NETLINK_ECRYPTFS) && HAVE_DECL_NETLINK_ECRYPTFS)
  XLAT(NETLINK_ECRYPTFS),
#endif
#if defined(NETLINK_RDMA) || (defined(HAVE_DECL_NETLINK_RDMA) && HAVE_DECL_NETLINK_RDMA)
  XLAT(NETLINK_RDMA),
#endif
#if defined(NETLINK_CRYPTO) || (defined(HAVE_DECL_NETLINK_CRYPTO) && HAVE_DECL_NETLINK_CRYPTO)
  XLAT(NETLINK_CRYPTO),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
