/* Generated by ./xlat/gen.sh from ./xlat/netlink_protocols.in; do not edit. */
#if !(defined(NETLINK_ROUTE) || (defined(HAVE_DECL_NETLINK_ROUTE) && HAVE_DECL_NETLINK_ROUTE))
# define NETLINK_ROUTE 0
#endif
#if !(defined(NETLINK_UNUSED) || (defined(HAVE_DECL_NETLINK_UNUSED) && HAVE_DECL_NETLINK_UNUSED))
# define NETLINK_UNUSED 1
#endif
#if !(defined(NETLINK_USERSOCK) || (defined(HAVE_DECL_NETLINK_USERSOCK) && HAVE_DECL_NETLINK_USERSOCK))
# define NETLINK_USERSOCK 2
#endif
#if !(defined(NETLINK_FIREWALL) || (defined(HAVE_DECL_NETLINK_FIREWALL) && HAVE_DECL_NETLINK_FIREWALL))
# define NETLINK_FIREWALL 3
#endif
#if !(defined(NETLINK_SOCK_DIAG) || (defined(HAVE_DECL_NETLINK_SOCK_DIAG) && HAVE_DECL_NETLINK_SOCK_DIAG))
# define NETLINK_SOCK_DIAG 4
#endif
#if !(defined(NETLINK_NFLOG) || (defined(HAVE_DECL_NETLINK_NFLOG) && HAVE_DECL_NETLINK_NFLOG))
# define NETLINK_NFLOG 5
#endif
#if !(defined(NETLINK_XFRM) || (defined(HAVE_DECL_NETLINK_XFRM) && HAVE_DECL_NETLINK_XFRM))
# define NETLINK_XFRM 6
#endif
#if !(defined(NETLINK_SELINUX) || (defined(HAVE_DECL_NETLINK_SELINUX) && HAVE_DECL_NETLINK_SELINUX))
# define NETLINK_SELINUX 7
#endif
#if !(defined(NETLINK_ISCSI) || (defined(HAVE_DECL_NETLINK_ISCSI) && HAVE_DECL_NETLINK_ISCSI))
# define NETLINK_ISCSI 8
#endif
#if !(defined(NETLINK_AUDIT) || (defined(HAVE_DECL_NETLINK_AUDIT) && HAVE_DECL_NETLINK_AUDIT))
# define NETLINK_AUDIT 9
#endif
#if !(defined(NETLINK_FIB_LOOKUP) || (defined(HAVE_DECL_NETLINK_FIB_LOOKUP) && HAVE_DECL_NETLINK_FIB_LOOKUP))
# define NETLINK_FIB_LOOKUP 10
#endif
#if !(defined(NETLINK_CONNECTOR) || (defined(HAVE_DECL_NETLINK_CONNECTOR) && HAVE_DECL_NETLINK_CONNECTOR))
# define NETLINK_CONNECTOR 11
#endif
#if !(defined(NETLINK_NETFILTER) || (defined(HAVE_DECL_NETLINK_NETFILTER) && HAVE_DECL_NETLINK_NETFILTER))
# define NETLINK_NETFILTER 12
#endif
#if !(defined(NETLINK_IP6_FW) || (defined(HAVE_DECL_NETLINK_IP6_FW) && HAVE_DECL_NETLINK_IP6_FW))
# define NETLINK_IP6_FW 13
#endif
#if !(defined(NETLINK_DNRTMSG) || (defined(HAVE_DECL_NETLINK_DNRTMSG) && HAVE_DECL_NETLINK_DNRTMSG))
# define NETLINK_DNRTMSG 14
#endif
#if !(defined(NETLINK_KOBJECT_UEVENT) || (defined(HAVE_DECL_NETLINK_KOBJECT_UEVENT) && HAVE_DECL_NETLINK_KOBJECT_UEVENT))
# define NETLINK_KOBJECT_UEVENT 15
#endif
#if !(defined(NETLINK_GENERIC) || (defined(HAVE_DECL_NETLINK_GENERIC) && HAVE_DECL_NETLINK_GENERIC))
# define NETLINK_GENERIC 16
#endif
#if !(defined(NETLINK_SCSITRANSPORT) || (defined(HAVE_DECL_NETLINK_SCSITRANSPORT) && HAVE_DECL_NETLINK_SCSITRANSPORT))
# define NETLINK_SCSITRANSPORT 18
#endif
#if !(defined(NETLINK_ECRYPTFS) || (defined(HAVE_DECL_NETLINK_ECRYPTFS) && HAVE_DECL_NETLINK_ECRYPTFS))
# define NETLINK_ECRYPTFS 19
#endif
#if !(defined(NETLINK_RDMA) || (defined(HAVE_DECL_NETLINK_RDMA) && HAVE_DECL_NETLINK_RDMA))
# define NETLINK_RDMA 20
#endif
#if !(defined(NETLINK_CRYPTO) || (defined(HAVE_DECL_NETLINK_CRYPTO) && HAVE_DECL_NETLINK_CRYPTO))
# define NETLINK_CRYPTO 21
#endif

#ifdef IN_MPERS

# error static const struct xlat netlink_protocols in mpers mode

#else

static
const struct xlat netlink_protocols[] = {
 XLAT(NETLINK_ROUTE),
 XLAT(NETLINK_UNUSED),
 XLAT(NETLINK_USERSOCK),
 XLAT(NETLINK_FIREWALL),
 XLAT(NETLINK_SOCK_DIAG),
 XLAT(NETLINK_NFLOG),
 XLAT(NETLINK_XFRM),
 XLAT(NETLINK_SELINUX),
 XLAT(NETLINK_ISCSI),
 XLAT(NETLINK_AUDIT),
 XLAT(NETLINK_FIB_LOOKUP),
 XLAT(NETLINK_CONNECTOR),
 XLAT(NETLINK_NETFILTER),
 XLAT(NETLINK_IP6_FW),
 XLAT(NETLINK_DNRTMSG),
 XLAT(NETLINK_KOBJECT_UEVENT),
 XLAT(NETLINK_GENERIC),
 XLAT(NETLINK_SCSITRANSPORT),
 XLAT(NETLINK_ECRYPTFS),
 XLAT(NETLINK_RDMA),
 XLAT(NETLINK_CRYPTO),
 XLAT_END
};

#endif /* !IN_MPERS */
