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

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

#if defined(TCA_STAB_UNSPEC) || (defined(HAVE_DECL_TCA_STAB_UNSPEC) && HAVE_DECL_TCA_STAB_UNSPEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TCA_STAB_UNSPEC) == (0), "TCA_STAB_UNSPEC != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TCA_STAB_UNSPEC 0
#endif
#if defined(TCA_STAB_BASE) || (defined(HAVE_DECL_TCA_STAB_BASE) && HAVE_DECL_TCA_STAB_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TCA_STAB_BASE) == (1), "TCA_STAB_BASE != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TCA_STAB_BASE 1
#endif
#if defined(TCA_STAB_DATA) || (defined(HAVE_DECL_TCA_STAB_DATA) && HAVE_DECL_TCA_STAB_DATA)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TCA_STAB_DATA) == (2), "TCA_STAB_DATA != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TCA_STAB_DATA 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_tca_stab_attrs in mpers mode

# else

static
const struct xlat rtnl_tca_stab_attrs[] = {
 XLAT(TCA_STAB_UNSPEC),
 XLAT(TCA_STAB_BASE),
 XLAT(TCA_STAB_DATA),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
