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