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

#ifdef IN_MPERS

# error static const struct xlat evdev_ev in mpers mode

#else

static
const struct xlat evdev_ev[] = {
#if defined(EV_SYN) || (defined(HAVE_DECL_EV_SYN) && HAVE_DECL_EV_SYN)
  XLAT(EV_SYN),
#endif
#if defined(EV_KEY) || (defined(HAVE_DECL_EV_KEY) && HAVE_DECL_EV_KEY)
  XLAT(EV_KEY),
#endif
#if defined(EV_REL) || (defined(HAVE_DECL_EV_REL) && HAVE_DECL_EV_REL)
  XLAT(EV_REL),
#endif
#if defined(EV_ABS) || (defined(HAVE_DECL_EV_ABS) && HAVE_DECL_EV_ABS)
  XLAT(EV_ABS),
#endif
#if defined(EV_MSC) || (defined(HAVE_DECL_EV_MSC) && HAVE_DECL_EV_MSC)
  XLAT(EV_MSC),
#endif
#if defined(EV_SW) || (defined(HAVE_DECL_EV_SW) && HAVE_DECL_EV_SW)
  XLAT(EV_SW),
#endif
#if defined(EV_LED) || (defined(HAVE_DECL_EV_LED) && HAVE_DECL_EV_LED)
  XLAT(EV_LED),
#endif
#if defined(EV_SND) || (defined(HAVE_DECL_EV_SND) && HAVE_DECL_EV_SND)
  XLAT(EV_SND),
#endif
#if defined(EV_REP) || (defined(HAVE_DECL_EV_REP) && HAVE_DECL_EV_REP)
  XLAT(EV_REP),
#endif
#if defined(EV_FF) || (defined(HAVE_DECL_EV_FF) && HAVE_DECL_EV_FF)
  XLAT(EV_FF),
#endif
#if defined(EV_PWR) || (defined(HAVE_DECL_EV_PWR) && HAVE_DECL_EV_PWR)
  XLAT(EV_PWR),
#endif
#if defined(EV_FF_STATUS) || (defined(HAVE_DECL_EV_FF_STATUS) && HAVE_DECL_EV_FF_STATUS)
  XLAT(EV_FF_STATUS),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
