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

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

#if defined(S390_RUNTIME_INSTR_START) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_START) && HAVE_DECL_S390_RUNTIME_INSTR_START)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((S390_RUNTIME_INSTR_START) == (0x1), "S390_RUNTIME_INSTR_START != 0x1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define S390_RUNTIME_INSTR_START 0x1
#endif
#if defined(S390_RUNTIME_INSTR_STOP) || (defined(HAVE_DECL_S390_RUNTIME_INSTR_STOP) && HAVE_DECL_S390_RUNTIME_INSTR_STOP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((S390_RUNTIME_INSTR_STOP) == (0x2), "S390_RUNTIME_INSTR_STOP != 0x2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define S390_RUNTIME_INSTR_STOP 0x2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat s390_runtime_instr_commands in mpers mode

# else

static
const struct xlat s390_runtime_instr_commands[] = {
 XLAT(S390_RUNTIME_INSTR_START),
 XLAT(S390_RUNTIME_INSTR_STOP),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
