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

#ifdef IN_MPERS

# error static const struct xlat evdev_relative_axes in mpers mode

#else

static
const struct xlat evdev_relative_axes[] = {
#if defined(REL_X) || (defined(HAVE_DECL_REL_X) && HAVE_DECL_REL_X)
  XLAT(REL_X),
#endif
#if defined(REL_Y) || (defined(HAVE_DECL_REL_Y) && HAVE_DECL_REL_Y)
  XLAT(REL_Y),
#endif
#if defined(REL_Z) || (defined(HAVE_DECL_REL_Z) && HAVE_DECL_REL_Z)
  XLAT(REL_Z),
#endif
#if defined(REL_RX) || (defined(HAVE_DECL_REL_RX) && HAVE_DECL_REL_RX)
  XLAT(REL_RX),
#endif
#if defined(REL_RY) || (defined(HAVE_DECL_REL_RY) && HAVE_DECL_REL_RY)
  XLAT(REL_RY),
#endif
#if defined(REL_RZ) || (defined(HAVE_DECL_REL_RZ) && HAVE_DECL_REL_RZ)
  XLAT(REL_RZ),
#endif
#if defined(REL_HWHEEL) || (defined(HAVE_DECL_REL_HWHEEL) && HAVE_DECL_REL_HWHEEL)
  XLAT(REL_HWHEEL),
#endif
#if defined(REL_DIAL) || (defined(HAVE_DECL_REL_DIAL) && HAVE_DECL_REL_DIAL)
  XLAT(REL_DIAL),
#endif
#if defined(REL_WHEEL) || (defined(HAVE_DECL_REL_WHEEL) && HAVE_DECL_REL_WHEEL)
  XLAT(REL_WHEEL),
#endif
#if defined(REL_MISC) || (defined(HAVE_DECL_REL_MISC) && HAVE_DECL_REL_MISC)
  XLAT(REL_MISC),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
