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

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

#if defined(ITIMER_REAL) || (defined(HAVE_DECL_ITIMER_REAL) && HAVE_DECL_ITIMER_REAL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((ITIMER_REAL) == (0), "ITIMER_REAL != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define ITIMER_REAL 0
#endif
#if defined(ITIMER_VIRTUAL) || (defined(HAVE_DECL_ITIMER_VIRTUAL) && HAVE_DECL_ITIMER_VIRTUAL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((ITIMER_VIRTUAL) == (1), "ITIMER_VIRTUAL != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define ITIMER_VIRTUAL 1
#endif
#if defined(ITIMER_PROF) || (defined(HAVE_DECL_ITIMER_PROF) && HAVE_DECL_ITIMER_PROF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((ITIMER_PROF) == (2), "ITIMER_PROF != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define ITIMER_PROF 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat itimer_which in mpers mode

# else

static
const struct xlat itimer_which[] = {
 [ITIMER_REAL] = XLAT(ITIMER_REAL),
 [ITIMER_VIRTUAL] = XLAT(ITIMER_VIRTUAL),
 [ITIMER_PROF] = XLAT(ITIMER_PROF),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
