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

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

#if defined(SUID_DUMP_DISABLE) || (defined(HAVE_DECL_SUID_DUMP_DISABLE) && HAVE_DECL_SUID_DUMP_DISABLE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SUID_DUMP_DISABLE) == (0), "SUID_DUMP_DISABLE != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SUID_DUMP_DISABLE 0
#endif
#if defined(SUID_DUMP_USER) || (defined(HAVE_DECL_SUID_DUMP_USER) && HAVE_DECL_SUID_DUMP_USER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SUID_DUMP_USER) == (1), "SUID_DUMP_USER != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SUID_DUMP_USER 1
#endif
#if defined(SUID_DUMP_ROOT) || (defined(HAVE_DECL_SUID_DUMP_ROOT) && HAVE_DECL_SUID_DUMP_ROOT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SUID_DUMP_ROOT) == (2), "SUID_DUMP_ROOT != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SUID_DUMP_ROOT 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat pr_dumpable in mpers mode

# else

static
const struct xlat pr_dumpable[] = {

 XLAT(SUID_DUMP_DISABLE),
 XLAT(SUID_DUMP_USER),
 XLAT(SUID_DUMP_ROOT),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
