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

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

#if defined(MDBA_MDB_UNSPEC) || (defined(HAVE_DECL_MDBA_MDB_UNSPEC) && HAVE_DECL_MDBA_MDB_UNSPEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_MDB_UNSPEC) == (0), "MDBA_MDB_UNSPEC != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_MDB_UNSPEC 0
#endif
#if defined(MDBA_MDB_ENTRY) || (defined(HAVE_DECL_MDBA_MDB_ENTRY) && HAVE_DECL_MDBA_MDB_ENTRY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MDBA_MDB_ENTRY) == (1), "MDBA_MDB_ENTRY != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MDBA_MDB_ENTRY 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_mdba_mdb_attrs in mpers mode

# else

static
const struct xlat rtnl_mdba_mdb_attrs[] = {
 XLAT(MDBA_MDB_UNSPEC),
 XLAT(MDBA_MDB_ENTRY),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
