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

#ifdef IN_MPERS

# error static const struct xlat sram_alloc_flags in mpers mode

#else

static
const struct xlat sram_alloc_flags[] = {
#if defined(L1_INST_SRAM) || (defined(HAVE_DECL_L1_INST_SRAM) && HAVE_DECL_L1_INST_SRAM)
  XLAT(L1_INST_SRAM),
#endif
#if defined(L1_DATA_A_SRAM) || (defined(HAVE_DECL_L1_DATA_A_SRAM) && HAVE_DECL_L1_DATA_A_SRAM)
  XLAT(L1_DATA_A_SRAM),
#endif
#if defined(L1_DATA_B_SRAM) || (defined(HAVE_DECL_L1_DATA_B_SRAM) && HAVE_DECL_L1_DATA_B_SRAM)
  XLAT(L1_DATA_B_SRAM),
#endif
#if defined(L1_DATA_SRAM) || (defined(HAVE_DECL_L1_DATA_SRAM) && HAVE_DECL_L1_DATA_SRAM)
  XLAT(L1_DATA_SRAM),
#endif
#if defined(L2_SRAM) || (defined(HAVE_DECL_L2_SRAM) && HAVE_DECL_L2_SRAM)
  XLAT(L2_SRAM),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
