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

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


#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat uffd_register_mode_flags in mpers mode

# else

static
const struct xlat uffd_register_mode_flags[] = {
#if defined(UFFDIO_REGISTER_MODE_MISSING) || (defined(HAVE_DECL_UFFDIO_REGISTER_MODE_MISSING) && HAVE_DECL_UFFDIO_REGISTER_MODE_MISSING)
  XLAT_TYPE(uint64_t, UFFDIO_REGISTER_MODE_MISSING),
#endif
#if defined(UFFDIO_REGISTER_MODE_WP) || (defined(HAVE_DECL_UFFDIO_REGISTER_MODE_WP) && HAVE_DECL_UFFDIO_REGISTER_MODE_WP)
  XLAT_TYPE(uint64_t, UFFDIO_REGISTER_MODE_WP),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
