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

#ifdef IN_MPERS

# error static const struct xlat splice_flags in mpers mode

#else

static
const struct xlat splice_flags[] = {
#if defined(SPLICE_F_MOVE) || (defined(HAVE_DECL_SPLICE_F_MOVE) && HAVE_DECL_SPLICE_F_MOVE)
  XLAT(SPLICE_F_MOVE),
#endif
#if defined(SPLICE_F_NONBLOCK) || (defined(HAVE_DECL_SPLICE_F_NONBLOCK) && HAVE_DECL_SPLICE_F_NONBLOCK)
  XLAT(SPLICE_F_NONBLOCK),
#endif
#if defined(SPLICE_F_MORE) || (defined(HAVE_DECL_SPLICE_F_MORE) && HAVE_DECL_SPLICE_F_MORE)
  XLAT(SPLICE_F_MORE),
#endif
#if defined(SPLICE_F_GIFT) || (defined(HAVE_DECL_SPLICE_F_GIFT) && HAVE_DECL_SPLICE_F_GIFT)
  XLAT(SPLICE_F_GIFT),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
