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

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

#if defined(MADV_NORMAL) || (defined(HAVE_DECL_MADV_NORMAL) && HAVE_DECL_MADV_NORMAL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_NORMAL) == (0), "MADV_NORMAL != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_NORMAL 0
#endif
#if defined(MADV_RANDOM) || (defined(HAVE_DECL_MADV_RANDOM) && HAVE_DECL_MADV_RANDOM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_RANDOM) == (1), "MADV_RANDOM != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_RANDOM 1
#endif
#if defined(MADV_SEQUENTIAL) || (defined(HAVE_DECL_MADV_SEQUENTIAL) && HAVE_DECL_MADV_SEQUENTIAL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_SEQUENTIAL) == (2), "MADV_SEQUENTIAL != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_SEQUENTIAL 2
#endif
#if defined(MADV_WILLNEED) || (defined(HAVE_DECL_MADV_WILLNEED) && HAVE_DECL_MADV_WILLNEED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_WILLNEED) == (3), "MADV_WILLNEED != 3");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_WILLNEED 3
#endif
#if defined __alpha__
#if defined(MADV_DONTNEED) || (defined(HAVE_DECL_MADV_DONTNEED) && HAVE_DECL_MADV_DONTNEED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DONTNEED) == (6), "MADV_DONTNEED != 6");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DONTNEED 6
#endif
#else
#if defined(MADV_DONTNEED) || (defined(HAVE_DECL_MADV_DONTNEED) && HAVE_DECL_MADV_DONTNEED)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DONTNEED) == (4), "MADV_DONTNEED != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DONTNEED 4
#endif
#endif
#if defined(MADV_FREE) || (defined(HAVE_DECL_MADV_FREE) && HAVE_DECL_MADV_FREE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_FREE) == (8), "MADV_FREE != 8");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_FREE 8
#endif
#if defined(MADV_REMOVE) || (defined(HAVE_DECL_MADV_REMOVE) && HAVE_DECL_MADV_REMOVE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_REMOVE) == (9), "MADV_REMOVE != 9");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_REMOVE 9
#endif
#if defined(MADV_DONTFORK) || (defined(HAVE_DECL_MADV_DONTFORK) && HAVE_DECL_MADV_DONTFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DONTFORK) == (10), "MADV_DONTFORK != 10");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DONTFORK 10
#endif
#if defined(MADV_DOFORK) || (defined(HAVE_DECL_MADV_DOFORK) && HAVE_DECL_MADV_DOFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DOFORK) == (11), "MADV_DOFORK != 11");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DOFORK 11
#endif
#if defined __hppa__
#if defined(MADV_MERGEABLE) || (defined(HAVE_DECL_MADV_MERGEABLE) && HAVE_DECL_MADV_MERGEABLE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_MERGEABLE) == (65), "MADV_MERGEABLE != 65");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_MERGEABLE 65
#endif
#else
#if defined(MADV_MERGEABLE) || (defined(HAVE_DECL_MADV_MERGEABLE) && HAVE_DECL_MADV_MERGEABLE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_MERGEABLE) == (12), "MADV_MERGEABLE != 12");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_MERGEABLE 12
#endif
#endif
#if defined __hppa__
#if defined(MADV_UNMERGEABLE) || (defined(HAVE_DECL_MADV_UNMERGEABLE) && HAVE_DECL_MADV_UNMERGEABLE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_UNMERGEABLE) == (66), "MADV_UNMERGEABLE != 66");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_UNMERGEABLE 66
#endif
#else
#if defined(MADV_UNMERGEABLE) || (defined(HAVE_DECL_MADV_UNMERGEABLE) && HAVE_DECL_MADV_UNMERGEABLE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_UNMERGEABLE) == (13), "MADV_UNMERGEABLE != 13");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_UNMERGEABLE 13
#endif
#endif
#if defined __hppa__
#if defined(MADV_HUGEPAGE) || (defined(HAVE_DECL_MADV_HUGEPAGE) && HAVE_DECL_MADV_HUGEPAGE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_HUGEPAGE) == (67), "MADV_HUGEPAGE != 67");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_HUGEPAGE 67
#endif
#else
#if defined(MADV_HUGEPAGE) || (defined(HAVE_DECL_MADV_HUGEPAGE) && HAVE_DECL_MADV_HUGEPAGE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_HUGEPAGE) == (14), "MADV_HUGEPAGE != 14");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_HUGEPAGE 14
#endif
#endif
#if defined __hppa__
#if defined(MADV_NOHUGEPAGE) || (defined(HAVE_DECL_MADV_NOHUGEPAGE) && HAVE_DECL_MADV_NOHUGEPAGE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_NOHUGEPAGE) == (68), "MADV_NOHUGEPAGE != 68");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_NOHUGEPAGE 68
#endif
#else
#if defined(MADV_NOHUGEPAGE) || (defined(HAVE_DECL_MADV_NOHUGEPAGE) && HAVE_DECL_MADV_NOHUGEPAGE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_NOHUGEPAGE) == (15), "MADV_NOHUGEPAGE != 15");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_NOHUGEPAGE 15
#endif
#endif
#if defined __hppa__
#if defined(MADV_DONTDUMP) || (defined(HAVE_DECL_MADV_DONTDUMP) && HAVE_DECL_MADV_DONTDUMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DONTDUMP) == (69), "MADV_DONTDUMP != 69");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DONTDUMP 69
#endif
#else
#if defined(MADV_DONTDUMP) || (defined(HAVE_DECL_MADV_DONTDUMP) && HAVE_DECL_MADV_DONTDUMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DONTDUMP) == (16), "MADV_DONTDUMP != 16");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DONTDUMP 16
#endif
#endif
#if defined __hppa__
#if defined(MADV_DODUMP) || (defined(HAVE_DECL_MADV_DODUMP) && HAVE_DECL_MADV_DODUMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DODUMP) == (70), "MADV_DODUMP != 70");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DODUMP 70
#endif
#else
#if defined(MADV_DODUMP) || (defined(HAVE_DECL_MADV_DODUMP) && HAVE_DECL_MADV_DODUMP)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_DODUMP) == (17), "MADV_DODUMP != 17");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_DODUMP 17
#endif
#endif
#if defined __hppa__
#if defined(MADV_WIPEONFORK) || (defined(HAVE_DECL_MADV_WIPEONFORK) && HAVE_DECL_MADV_WIPEONFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_WIPEONFORK) == (71), "MADV_WIPEONFORK != 71");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_WIPEONFORK 71
#endif
#else
#if defined(MADV_WIPEONFORK) || (defined(HAVE_DECL_MADV_WIPEONFORK) && HAVE_DECL_MADV_WIPEONFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_WIPEONFORK) == (18), "MADV_WIPEONFORK != 18");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_WIPEONFORK 18
#endif
#endif
#if defined __hppa__
#if defined(MADV_KEEPONFORK) || (defined(HAVE_DECL_MADV_KEEPONFORK) && HAVE_DECL_MADV_KEEPONFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_KEEPONFORK) == (72), "MADV_KEEPONFORK != 72");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_KEEPONFORK 72
#endif
#else
#if defined(MADV_KEEPONFORK) || (defined(HAVE_DECL_MADV_KEEPONFORK) && HAVE_DECL_MADV_KEEPONFORK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_KEEPONFORK) == (19), "MADV_KEEPONFORK != 19");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_KEEPONFORK 19
#endif
#endif
#if defined(MADV_HWPOISON) || (defined(HAVE_DECL_MADV_HWPOISON) && HAVE_DECL_MADV_HWPOISON)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_HWPOISON) == (100), "MADV_HWPOISON != 100");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_HWPOISON 100
#endif
#if defined(MADV_SOFT_OFFLINE) || (defined(HAVE_DECL_MADV_SOFT_OFFLINE) && HAVE_DECL_MADV_SOFT_OFFLINE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((MADV_SOFT_OFFLINE) == (101), "MADV_SOFT_OFFLINE != 101");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define MADV_SOFT_OFFLINE 101
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat madvise_cmds in mpers mode

# else

static
const struct xlat madvise_cmds[] = {


 XLAT(MADV_NORMAL),

 XLAT(MADV_RANDOM),

 XLAT(MADV_SEQUENTIAL),

 XLAT(MADV_WILLNEED),

#if defined __alpha__
 XLAT(MADV_DONTNEED),
#else
 XLAT(MADV_DONTNEED),
#endif

 XLAT(MADV_FREE),

 XLAT(MADV_REMOVE),

 XLAT(MADV_DONTFORK),

 XLAT(MADV_DOFORK),

#if defined __hppa__
 XLAT(MADV_MERGEABLE),
#else
 XLAT(MADV_MERGEABLE),
#endif

#if defined __hppa__
 XLAT(MADV_UNMERGEABLE),
#else
 XLAT(MADV_UNMERGEABLE),
#endif

#if defined __hppa__
 XLAT(MADV_HUGEPAGE),
#else
 XLAT(MADV_HUGEPAGE),
#endif

#if defined __hppa__
 XLAT(MADV_NOHUGEPAGE),
#else
 XLAT(MADV_NOHUGEPAGE),
#endif

#if defined __hppa__
 XLAT(MADV_DONTDUMP),
#else
 XLAT(MADV_DONTDUMP),
#endif

#if defined __hppa__
 XLAT(MADV_DODUMP),
#else
 XLAT(MADV_DODUMP),
#endif

#if defined __hppa__
 XLAT(MADV_WIPEONFORK),
#else
 XLAT(MADV_WIPEONFORK),
#endif

#if defined __hppa__
 XLAT(MADV_KEEPONFORK),
#else
 XLAT(MADV_KEEPONFORK),
#endif

 XLAT(MADV_HWPOISON),

 XLAT(MADV_SOFT_OFFLINE),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
