/* Generated by ./xlat/gen.sh from ./xlat/nl_netfilter_subsys_ids.in; do not edit. */
#if !(defined(NFNL_SUBSYS_NONE) || (defined(HAVE_DECL_NFNL_SUBSYS_NONE) && HAVE_DECL_NFNL_SUBSYS_NONE))
# define NFNL_SUBSYS_NONE 0
#endif
#if !(defined(NFNL_SUBSYS_CTNETLINK) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK))
# define NFNL_SUBSYS_CTNETLINK 1
#endif
#if !(defined(NFNL_SUBSYS_CTNETLINK_EXP) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP))
# define NFNL_SUBSYS_CTNETLINK_EXP 2
#endif
#if !(defined(NFNL_SUBSYS_QUEUE) || (defined(HAVE_DECL_NFNL_SUBSYS_QUEUE) && HAVE_DECL_NFNL_SUBSYS_QUEUE))
# define NFNL_SUBSYS_QUEUE 3
#endif
#if !(defined(NFNL_SUBSYS_ULOG) || (defined(HAVE_DECL_NFNL_SUBSYS_ULOG) && HAVE_DECL_NFNL_SUBSYS_ULOG))
# define NFNL_SUBSYS_ULOG 4
#endif
#if !(defined(NFNL_SUBSYS_OSF) || (defined(HAVE_DECL_NFNL_SUBSYS_OSF) && HAVE_DECL_NFNL_SUBSYS_OSF))
# define NFNL_SUBSYS_OSF 5
#endif
#if !(defined(NFNL_SUBSYS_IPSET) || (defined(HAVE_DECL_NFNL_SUBSYS_IPSET) && HAVE_DECL_NFNL_SUBSYS_IPSET))
# define NFNL_SUBSYS_IPSET 6
#endif
#if !(defined(NFNL_SUBSYS_ACCT) || (defined(HAVE_DECL_NFNL_SUBSYS_ACCT) && HAVE_DECL_NFNL_SUBSYS_ACCT))
# define NFNL_SUBSYS_ACCT 7
#endif
#if !(defined(NFNL_SUBSYS_CTNETLINK_TIMEOUT) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT))
# define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
#endif
#if !(defined(NFNL_SUBSYS_CTHELPER) || (defined(HAVE_DECL_NFNL_SUBSYS_CTHELPER) && HAVE_DECL_NFNL_SUBSYS_CTHELPER))
# define NFNL_SUBSYS_CTHELPER 9
#endif
#if !(defined(NFNL_SUBSYS_NFTABLES) || (defined(HAVE_DECL_NFNL_SUBSYS_NFTABLES) && HAVE_DECL_NFNL_SUBSYS_NFTABLES))
# define NFNL_SUBSYS_NFTABLES 10
#endif
#if !(defined(NFNL_SUBSYS_NFT_COMPAT) || (defined(HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT) && HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT))
# define NFNL_SUBSYS_NFT_COMPAT 11
#endif
#if !(defined(NFNL_SUBSYS_COUNT) || (defined(HAVE_DECL_NFNL_SUBSYS_COUNT) && HAVE_DECL_NFNL_SUBSYS_COUNT))
# define NFNL_SUBSYS_COUNT 12
#endif

#ifdef IN_MPERS

# error static const struct xlat nl_netfilter_subsys_ids in mpers mode

#else

static
const struct xlat nl_netfilter_subsys_ids[] = {
 XLAT(NFNL_SUBSYS_NONE),
 XLAT(NFNL_SUBSYS_CTNETLINK),
 XLAT(NFNL_SUBSYS_CTNETLINK_EXP),
 XLAT(NFNL_SUBSYS_QUEUE),
 XLAT(NFNL_SUBSYS_ULOG),
 XLAT(NFNL_SUBSYS_OSF),
 XLAT(NFNL_SUBSYS_IPSET),
 XLAT(NFNL_SUBSYS_ACCT),
 XLAT(NFNL_SUBSYS_CTNETLINK_TIMEOUT),
 XLAT(NFNL_SUBSYS_CTHELPER),
 XLAT(NFNL_SUBSYS_NFTABLES),
 XLAT(NFNL_SUBSYS_NFT_COMPAT),
 XLAT(NFNL_SUBSYS_COUNT),
 XLAT_END
};

#endif /* !IN_MPERS */
