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

#ifdef IN_MPERS

extern const struct xlat evdev_relative_axes[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
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 */
