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

#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
 XLAT_END
};

#endif /* !IN_MPERS */
