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

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(SYN_REPORT) || (defined(HAVE_DECL_SYN_REPORT) && HAVE_DECL_SYN_REPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SYN_REPORT) == (0), "SYN_REPORT != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SYN_REPORT 0
#endif
#if defined(SYN_CONFIG) || (defined(HAVE_DECL_SYN_CONFIG) && HAVE_DECL_SYN_CONFIG)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SYN_CONFIG) == (1), "SYN_CONFIG != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SYN_CONFIG 1
#endif
#if defined(SYN_MT_REPORT) || (defined(HAVE_DECL_SYN_MT_REPORT) && HAVE_DECL_SYN_MT_REPORT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SYN_MT_REPORT) == (2), "SYN_MT_REPORT != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SYN_MT_REPORT 2
#endif
#if defined(SYN_DROPPED) || (defined(HAVE_DECL_SYN_DROPPED) && HAVE_DECL_SYN_DROPPED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SYN_DROPPED) == (3), "SYN_DROPPED != 3");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SYN_DROPPED 3
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat evdev_sync in mpers mode

# else

static
const struct xlat evdev_sync[] = {
 [SYN_REPORT] = XLAT(SYN_REPORT),
 [SYN_CONFIG] = XLAT(SYN_CONFIG),
 [SYN_MT_REPORT] = XLAT(SYN_MT_REPORT),
 [SYN_DROPPED] = XLAT(SYN_DROPPED),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
