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

#ifdef IN_MPERS

extern const struct xlat mtd_flags_options[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat mtd_flags_options[] = {
#if defined(MTD_WRITEABLE) || (defined(HAVE_DECL_MTD_WRITEABLE) && HAVE_DECL_MTD_WRITEABLE)
  XLAT(MTD_WRITEABLE),
#endif
#if defined(MTD_BIT_WRITEABLE) || (defined(HAVE_DECL_MTD_BIT_WRITEABLE) && HAVE_DECL_MTD_BIT_WRITEABLE)
  XLAT(MTD_BIT_WRITEABLE),
#endif
#if defined(MTD_NO_ERASE) || (defined(HAVE_DECL_MTD_NO_ERASE) && HAVE_DECL_MTD_NO_ERASE)
  XLAT(MTD_NO_ERASE),
#endif
#if defined(MTD_POWERUP_LOCK) || (defined(HAVE_DECL_MTD_POWERUP_LOCK) && HAVE_DECL_MTD_POWERUP_LOCK)
  XLAT(MTD_POWERUP_LOCK),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
