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

#ifdef IN_MPERS

extern const struct xlat evdev_leds[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat evdev_leds[] = {
#if defined(LED_NUML) || (defined(HAVE_DECL_LED_NUML) && HAVE_DECL_LED_NUML)
  XLAT(LED_NUML),
#endif
#if defined(LED_CAPSL) || (defined(HAVE_DECL_LED_CAPSL) && HAVE_DECL_LED_CAPSL)
  XLAT(LED_CAPSL),
#endif
#if defined(LED_SCROLLL) || (defined(HAVE_DECL_LED_SCROLLL) && HAVE_DECL_LED_SCROLLL)
  XLAT(LED_SCROLLL),
#endif
#if defined(LED_COMPOSE) || (defined(HAVE_DECL_LED_COMPOSE) && HAVE_DECL_LED_COMPOSE)
  XLAT(LED_COMPOSE),
#endif
#if defined(LED_KANA) || (defined(HAVE_DECL_LED_KANA) && HAVE_DECL_LED_KANA)
  XLAT(LED_KANA),
#endif
#if defined(LED_SLEEP) || (defined(HAVE_DECL_LED_SLEEP) && HAVE_DECL_LED_SLEEP)
  XLAT(LED_SLEEP),
#endif
#if defined(LED_SUSPEND) || (defined(HAVE_DECL_LED_SUSPEND) && HAVE_DECL_LED_SUSPEND)
  XLAT(LED_SUSPEND),
#endif
#if defined(LED_MUTE) || (defined(HAVE_DECL_LED_MUTE) && HAVE_DECL_LED_MUTE)
  XLAT(LED_MUTE),
#endif
#if defined(LED_MISC) || (defined(HAVE_DECL_LED_MISC) && HAVE_DECL_LED_MISC)
  XLAT(LED_MISC),
#endif
#if defined(LED_MAIL) || (defined(HAVE_DECL_LED_MAIL) && HAVE_DECL_LED_MAIL)
  XLAT(LED_MAIL),
#endif
#if defined(LED_CHARGING) || (defined(HAVE_DECL_LED_CHARGING) && HAVE_DECL_LED_CHARGING)
  XLAT(LED_CHARGING),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
