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

#ifndef IN_MPERS

const struct xlat evdev_abs[] = {
#if defined(ABS_X) || (defined(HAVE_DECL_ABS_X) && HAVE_DECL_ABS_X)
  XLAT(ABS_X),
#endif
#if defined(ABS_Y) || (defined(HAVE_DECL_ABS_Y) && HAVE_DECL_ABS_Y)
  XLAT(ABS_Y),
#endif
#if defined(ABS_Z) || (defined(HAVE_DECL_ABS_Z) && HAVE_DECL_ABS_Z)
  XLAT(ABS_Z),
#endif
#if defined(ABS_RX) || (defined(HAVE_DECL_ABS_RX) && HAVE_DECL_ABS_RX)
  XLAT(ABS_RX),
#endif
#if defined(ABS_RY) || (defined(HAVE_DECL_ABS_RY) && HAVE_DECL_ABS_RY)
  XLAT(ABS_RY),
#endif
#if defined(ABS_RZ) || (defined(HAVE_DECL_ABS_RZ) && HAVE_DECL_ABS_RZ)
  XLAT(ABS_RZ),
#endif
#if defined(ABS_THROTTLE) || (defined(HAVE_DECL_ABS_THROTTLE) && HAVE_DECL_ABS_THROTTLE)
  XLAT(ABS_THROTTLE),
#endif
#if defined(ABS_RUDDER) || (defined(HAVE_DECL_ABS_RUDDER) && HAVE_DECL_ABS_RUDDER)
  XLAT(ABS_RUDDER),
#endif
#if defined(ABS_WHEEL) || (defined(HAVE_DECL_ABS_WHEEL) && HAVE_DECL_ABS_WHEEL)
  XLAT(ABS_WHEEL),
#endif
#if defined(ABS_GAS) || (defined(HAVE_DECL_ABS_GAS) && HAVE_DECL_ABS_GAS)
  XLAT(ABS_GAS),
#endif
#if defined(ABS_BRAKE) || (defined(HAVE_DECL_ABS_BRAKE) && HAVE_DECL_ABS_BRAKE)
  XLAT(ABS_BRAKE),
#endif
#if defined(ABS_HAT0X) || (defined(HAVE_DECL_ABS_HAT0X) && HAVE_DECL_ABS_HAT0X)
  XLAT(ABS_HAT0X),
#endif
#if defined(ABS_HAT0Y) || (defined(HAVE_DECL_ABS_HAT0Y) && HAVE_DECL_ABS_HAT0Y)
  XLAT(ABS_HAT0Y),
#endif
#if defined(ABS_HAT1X) || (defined(HAVE_DECL_ABS_HAT1X) && HAVE_DECL_ABS_HAT1X)
  XLAT(ABS_HAT1X),
#endif
#if defined(ABS_HAT1Y) || (defined(HAVE_DECL_ABS_HAT1Y) && HAVE_DECL_ABS_HAT1Y)
  XLAT(ABS_HAT1Y),
#endif
#if defined(ABS_HAT2X) || (defined(HAVE_DECL_ABS_HAT2X) && HAVE_DECL_ABS_HAT2X)
  XLAT(ABS_HAT2X),
#endif
#if defined(ABS_HAT2Y) || (defined(HAVE_DECL_ABS_HAT2Y) && HAVE_DECL_ABS_HAT2Y)
  XLAT(ABS_HAT2Y),
#endif
#if defined(ABS_HAT3X) || (defined(HAVE_DECL_ABS_HAT3X) && HAVE_DECL_ABS_HAT3X)
  XLAT(ABS_HAT3X),
#endif
#if defined(ABS_HAT3Y) || (defined(HAVE_DECL_ABS_HAT3Y) && HAVE_DECL_ABS_HAT3Y)
  XLAT(ABS_HAT3Y),
#endif
#if defined(ABS_PRESSURE) || (defined(HAVE_DECL_ABS_PRESSURE) && HAVE_DECL_ABS_PRESSURE)
  XLAT(ABS_PRESSURE),
#endif
#if defined(ABS_DISTANCE) || (defined(HAVE_DECL_ABS_DISTANCE) && HAVE_DECL_ABS_DISTANCE)
  XLAT(ABS_DISTANCE),
#endif
#if defined(ABS_TILT_X) || (defined(HAVE_DECL_ABS_TILT_X) && HAVE_DECL_ABS_TILT_X)
  XLAT(ABS_TILT_X),
#endif
#if defined(ABS_TILT_Y) || (defined(HAVE_DECL_ABS_TILT_Y) && HAVE_DECL_ABS_TILT_Y)
  XLAT(ABS_TILT_Y),
#endif
#if defined(ABS_TOOL_WIDTH) || (defined(HAVE_DECL_ABS_TOOL_WIDTH) && HAVE_DECL_ABS_TOOL_WIDTH)
  XLAT(ABS_TOOL_WIDTH),
#endif
#if defined(ABS_VOLUME) || (defined(HAVE_DECL_ABS_VOLUME) && HAVE_DECL_ABS_VOLUME)
  XLAT(ABS_VOLUME),
#endif
#if defined(ABS_MISC) || (defined(HAVE_DECL_ABS_MISC) && HAVE_DECL_ABS_MISC)
  XLAT(ABS_MISC),
#endif
#if defined(ABS_MT_SLOT) || (defined(HAVE_DECL_ABS_MT_SLOT) && HAVE_DECL_ABS_MT_SLOT)
  XLAT(ABS_MT_SLOT),
#endif
#if defined(ABS_MT_TOUCH_MAJOR) || (defined(HAVE_DECL_ABS_MT_TOUCH_MAJOR) && HAVE_DECL_ABS_MT_TOUCH_MAJOR)
  XLAT(ABS_MT_TOUCH_MAJOR),
#endif
#if defined(ABS_MT_TOUCH_MINOR) || (defined(HAVE_DECL_ABS_MT_TOUCH_MINOR) && HAVE_DECL_ABS_MT_TOUCH_MINOR)
  XLAT(ABS_MT_TOUCH_MINOR),
#endif
#if defined(ABS_MT_WIDTH_MAJOR) || (defined(HAVE_DECL_ABS_MT_WIDTH_MAJOR) && HAVE_DECL_ABS_MT_WIDTH_MAJOR)
  XLAT(ABS_MT_WIDTH_MAJOR),
#endif
#if defined(ABS_MT_WIDTH_MINOR) || (defined(HAVE_DECL_ABS_MT_WIDTH_MINOR) && HAVE_DECL_ABS_MT_WIDTH_MINOR)
  XLAT(ABS_MT_WIDTH_MINOR),
#endif
#if defined(ABS_MT_ORIENTATION) || (defined(HAVE_DECL_ABS_MT_ORIENTATION) && HAVE_DECL_ABS_MT_ORIENTATION)
  XLAT(ABS_MT_ORIENTATION),
#endif
#if defined(ABS_MT_POSITION_X) || (defined(HAVE_DECL_ABS_MT_POSITION_X) && HAVE_DECL_ABS_MT_POSITION_X)
  XLAT(ABS_MT_POSITION_X),
#endif
#if defined(ABS_MT_POSITION_Y) || (defined(HAVE_DECL_ABS_MT_POSITION_Y) && HAVE_DECL_ABS_MT_POSITION_Y)
  XLAT(ABS_MT_POSITION_Y),
#endif
#if defined(ABS_MT_TOOL_TYPE) || (defined(HAVE_DECL_ABS_MT_TOOL_TYPE) && HAVE_DECL_ABS_MT_TOOL_TYPE)
  XLAT(ABS_MT_TOOL_TYPE),
#endif
#if defined(ABS_MT_BLOB_ID) || (defined(HAVE_DECL_ABS_MT_BLOB_ID) && HAVE_DECL_ABS_MT_BLOB_ID)
  XLAT(ABS_MT_BLOB_ID),
#endif
#if defined(ABS_MT_TRACKING_ID) || (defined(HAVE_DECL_ABS_MT_TRACKING_ID) && HAVE_DECL_ABS_MT_TRACKING_ID)
  XLAT(ABS_MT_TRACKING_ID),
#endif
#if defined(ABS_MT_PRESSURE) || (defined(HAVE_DECL_ABS_MT_PRESSURE) && HAVE_DECL_ABS_MT_PRESSURE)
  XLAT(ABS_MT_PRESSURE),
#endif
#if defined(ABS_MT_DISTANCE) || (defined(HAVE_DECL_ABS_MT_DISTANCE) && HAVE_DECL_ABS_MT_DISTANCE)
  XLAT(ABS_MT_DISTANCE),
#endif
#if defined(ABS_MT_TOOL_X) || (defined(HAVE_DECL_ABS_MT_TOOL_X) && HAVE_DECL_ABS_MT_TOOL_X)
  XLAT(ABS_MT_TOOL_X),
#endif
#if defined(ABS_MT_TOOL_Y) || (defined(HAVE_DECL_ABS_MT_TOOL_Y) && HAVE_DECL_ABS_MT_TOOL_Y)
  XLAT(ABS_MT_TOOL_Y),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
