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

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

#if defined(MDBA_MDB_ENTRY_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC) && HAVE_DECL_MDBA_MDB_ENTRY_UNSPEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_MDB_ENTRY_UNSPEC) == (0), "MDBA_MDB_ENTRY_UNSPEC != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_MDB_ENTRY_UNSPEC 0
#endif
#if defined(MDBA_MDB_ENTRY_INFO) || (defined(HAVE_DECL_MDBA_MDB_ENTRY_INFO) && HAVE_DECL_MDBA_MDB_ENTRY_INFO)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_MDB_ENTRY_INFO) == (1), "MDBA_MDB_ENTRY_INFO != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_MDB_ENTRY_INFO 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_mdba_mdb_entry_attrs in mpers mode

# else

static
const struct xlat rtnl_mdba_mdb_entry_attrs[] = {
 XLAT(MDBA_MDB_ENTRY_UNSPEC),
 XLAT(MDBA_MDB_ENTRY_INFO),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
