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

#ifdef IN_MPERS

# error static const struct xlat advise in mpers mode

#else

static
const struct xlat advise[] = {
#if defined(POSIX_FADV_NORMAL) || (defined(HAVE_DECL_POSIX_FADV_NORMAL) && HAVE_DECL_POSIX_FADV_NORMAL)
  XLAT(POSIX_FADV_NORMAL),
#endif
#if defined(POSIX_FADV_RANDOM) || (defined(HAVE_DECL_POSIX_FADV_RANDOM) && HAVE_DECL_POSIX_FADV_RANDOM)
  XLAT(POSIX_FADV_RANDOM),
#endif
#if defined(POSIX_FADV_SEQUENTIAL) || (defined(HAVE_DECL_POSIX_FADV_SEQUENTIAL) && HAVE_DECL_POSIX_FADV_SEQUENTIAL)
  XLAT(POSIX_FADV_SEQUENTIAL),
#endif
#if defined(POSIX_FADV_WILLNEED) || (defined(HAVE_DECL_POSIX_FADV_WILLNEED) && HAVE_DECL_POSIX_FADV_WILLNEED)
  XLAT(POSIX_FADV_WILLNEED),
#endif
#if defined(POSIX_FADV_DONTNEED) || (defined(HAVE_DECL_POSIX_FADV_DONTNEED) && HAVE_DECL_POSIX_FADV_DONTNEED)
  XLAT(POSIX_FADV_DONTNEED),
#endif
#if defined(POSIX_FADV_NOREUSE) || (defined(HAVE_DECL_POSIX_FADV_NOREUSE) && HAVE_DECL_POSIX_FADV_NOREUSE)
  XLAT(POSIX_FADV_NOREUSE),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
