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

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

#if defined(IIF_BGRACE) || (defined(HAVE_DECL_IIF_BGRACE) && HAVE_DECL_IIF_BGRACE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IIF_BGRACE) == ((1 << 0)), "IIF_BGRACE != (1 << 0)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IIF_BGRACE (1 << 0)
#endif
#if defined(IIF_IGRACE) || (defined(HAVE_DECL_IIF_IGRACE) && HAVE_DECL_IIF_IGRACE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IIF_IGRACE) == ((1 << 1)), "IIF_IGRACE != (1 << 1)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IIF_IGRACE (1 << 1)
#endif
#if defined(IIF_FLAGS) || (defined(HAVE_DECL_IIF_FLAGS) && HAVE_DECL_IIF_FLAGS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IIF_FLAGS) == ((1 << 2)), "IIF_FLAGS != (1 << 2)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IIF_FLAGS (1 << 2)
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat if_dqinfo_valid in mpers mode

# else

static
const struct xlat if_dqinfo_valid[] = {
 XLAT(IIF_BGRACE),
 XLAT(IIF_IGRACE),
 XLAT(IIF_FLAGS),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
