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

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


#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat madvise_cmds in mpers mode

# else

static
const struct xlat madvise_cmds[] = {
#if defined(MADV_NORMAL) || (defined(HAVE_DECL_MADV_NORMAL) && HAVE_DECL_MADV_NORMAL)
  XLAT(MADV_NORMAL),
#endif
#if defined(MADV_RANDOM) || (defined(HAVE_DECL_MADV_RANDOM) && HAVE_DECL_MADV_RANDOM)
  XLAT(MADV_RANDOM),
#endif
#if defined(MADV_SEQUENTIAL) || (defined(HAVE_DECL_MADV_SEQUENTIAL) && HAVE_DECL_MADV_SEQUENTIAL)
  XLAT(MADV_SEQUENTIAL),
#endif
#if defined(MADV_WILLNEED) || (defined(HAVE_DECL_MADV_WILLNEED) && HAVE_DECL_MADV_WILLNEED)
  XLAT(MADV_WILLNEED),
#endif
#if defined(MADV_DONTNEED) || (defined(HAVE_DECL_MADV_DONTNEED) && HAVE_DECL_MADV_DONTNEED)
  XLAT(MADV_DONTNEED),
#endif
#if defined(MADV_FREE) || (defined(HAVE_DECL_MADV_FREE) && HAVE_DECL_MADV_FREE)
  XLAT(MADV_FREE),
#endif
#if defined(MADV_REMOVE) || (defined(HAVE_DECL_MADV_REMOVE) && HAVE_DECL_MADV_REMOVE)
  XLAT(MADV_REMOVE),
#endif
#if defined(MADV_DONTFORK) || (defined(HAVE_DECL_MADV_DONTFORK) && HAVE_DECL_MADV_DONTFORK)
  XLAT(MADV_DONTFORK),
#endif
#if defined(MADV_DOFORK) || (defined(HAVE_DECL_MADV_DOFORK) && HAVE_DECL_MADV_DOFORK)
  XLAT(MADV_DOFORK),
#endif
#if defined(MADV_HWPOISON) || (defined(HAVE_DECL_MADV_HWPOISON) && HAVE_DECL_MADV_HWPOISON)
  XLAT(MADV_HWPOISON),
#endif
#if defined(MADV_SOFT_OFFLINE) || (defined(HAVE_DECL_MADV_SOFT_OFFLINE) && HAVE_DECL_MADV_SOFT_OFFLINE)
  XLAT(MADV_SOFT_OFFLINE),
#endif
#if defined(MADV_MERGEABLE) || (defined(HAVE_DECL_MADV_MERGEABLE) && HAVE_DECL_MADV_MERGEABLE)
  XLAT(MADV_MERGEABLE),
#endif
#if defined(MADV_UNMERGEABLE) || (defined(HAVE_DECL_MADV_UNMERGEABLE) && HAVE_DECL_MADV_UNMERGEABLE)
  XLAT(MADV_UNMERGEABLE),
#endif
#if defined(MADV_HUGEPAGE) || (defined(HAVE_DECL_MADV_HUGEPAGE) && HAVE_DECL_MADV_HUGEPAGE)
  XLAT(MADV_HUGEPAGE),
#endif
#if defined(MADV_NOHUGEPAGE) || (defined(HAVE_DECL_MADV_NOHUGEPAGE) && HAVE_DECL_MADV_NOHUGEPAGE)
  XLAT(MADV_NOHUGEPAGE),
#endif
#if defined(MADV_DONTDUMP) || (defined(HAVE_DECL_MADV_DONTDUMP) && HAVE_DECL_MADV_DONTDUMP)
  XLAT(MADV_DONTDUMP),
#endif
#if defined(MADV_DODUMP) || (defined(HAVE_DECL_MADV_DODUMP) && HAVE_DECL_MADV_DODUMP)
  XLAT(MADV_DODUMP),
#endif
#if defined(MADV_WIPEONFORK) || (defined(HAVE_DECL_MADV_WIPEONFORK) && HAVE_DECL_MADV_WIPEONFORK)
  XLAT(MADV_WIPEONFORK),
#endif
#if defined(MADV_KEEPONFORK) || (defined(HAVE_DECL_MADV_KEEPONFORK) && HAVE_DECL_MADV_KEEPONFORK)
  XLAT(MADV_KEEPONFORK),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
