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

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