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

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(NFNL_MSG_COMPAT_GET) || (defined(HAVE_DECL_NFNL_MSG_COMPAT_GET) && HAVE_DECL_NFNL_MSG_COMPAT_GET)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((NFNL_MSG_COMPAT_GET) == (0), "NFNL_MSG_COMPAT_GET != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define NFNL_MSG_COMPAT_GET 0
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat nf_nft_compat_msg_types in mpers mode

# else

static
const struct xlat nf_nft_compat_msg_types[] = {
 XLAT(NFNL_MSG_COMPAT_GET),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
