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

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

#if defined(SYS_RISCV_FLUSH_ICACHE_LOCAL) || (defined(HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL) && HAVE_DECL_SYS_RISCV_FLUSH_ICACHE_LOCAL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SYS_RISCV_FLUSH_ICACHE_LOCAL) == (1), "SYS_RISCV_FLUSH_ICACHE_LOCAL != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SYS_RISCV_FLUSH_ICACHE_LOCAL 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat riscv_flush_icache_flags in mpers mode

# else

static
const struct xlat riscv_flush_icache_flags[] = {
 XLAT(SYS_RISCV_FLUSH_ICACHE_LOCAL),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
