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

#ifdef IN_MPERS

# error static const struct xlat evdev_leds in mpers mode

#else

static
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 */
