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

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

#if defined(HW_BREAKPOINT_EMPTY) || (defined(HAVE_DECL_HW_BREAKPOINT_EMPTY) && HAVE_DECL_HW_BREAKPOINT_EMPTY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((HW_BREAKPOINT_EMPTY) == (0), "HW_BREAKPOINT_EMPTY != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define HW_BREAKPOINT_EMPTY 0
#endif
#if defined(HW_BREAKPOINT_R) || (defined(HAVE_DECL_HW_BREAKPOINT_R) && HAVE_DECL_HW_BREAKPOINT_R)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((HW_BREAKPOINT_R) == (1), "HW_BREAKPOINT_R != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define HW_BREAKPOINT_R 1
#endif
#if defined(HW_BREAKPOINT_W) || (defined(HAVE_DECL_HW_BREAKPOINT_W) && HAVE_DECL_HW_BREAKPOINT_W)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((HW_BREAKPOINT_W) == (2), "HW_BREAKPOINT_W != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define HW_BREAKPOINT_W 2
#endif
#if defined(HW_BREAKPOINT_RW) || (defined(HAVE_DECL_HW_BREAKPOINT_RW) && HAVE_DECL_HW_BREAKPOINT_RW)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((HW_BREAKPOINT_RW) == (3), "HW_BREAKPOINT_RW != 3");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define HW_BREAKPOINT_RW 3
#endif
#if defined(HW_BREAKPOINT_X) || (defined(HAVE_DECL_HW_BREAKPOINT_X) && HAVE_DECL_HW_BREAKPOINT_X)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((HW_BREAKPOINT_X) == (4), "HW_BREAKPOINT_X != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define HW_BREAKPOINT_X 4
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat hw_breakpoint_type in mpers mode

# else

static
const struct xlat hw_breakpoint_type[] = {

 XLAT(HW_BREAKPOINT_EMPTY),
 XLAT(HW_BREAKPOINT_R),
 XLAT(HW_BREAKPOINT_W),
 XLAT(HW_BREAKPOINT_RW),
 XLAT(HW_BREAKPOINT_X),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
