From: Charles Briere <[email protected]> Define splice() as __NR_splice() when not available directly (happens with BIONIC) Define SPLICE_*_* values
Signed-off-by: Charles Briere <[email protected]> --- configure.ac | 2 +- src/common/compat/fcntl.h | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index ea37ad0..7230e92 100644 --- a/configure.ac +++ b/configure.ac @@ -67,7 +67,7 @@ AC_CHECK_TYPES([in_port_t], [], [], [[#include <netinet/in.h>]]) AC_CHECK_DECLS([sigwaitinfo],[],[], [[#include <signal.h>]]) AC_CHECK_DECLS([pthread_cancel], [], [], [[#include <pthread.h>]]) -AC_CHECK_DECLS([posix_fadvise],[],[], [[#include <fcntl.h>]]) +AC_CHECK_DECLS([posix_fadvise, splice],[],[], [[#include <fcntl.h>]]) AC_CHECK_FUNCS([getpwuid_r],[],[]) diff --git a/src/common/compat/fcntl.h b/src/common/compat/fcntl.h index 779c942..b3453a2 100644 --- a/src/common/compat/fcntl.h +++ b/src/common/compat/fcntl.h @@ -46,9 +46,33 @@ extern int compat_sync_file_range(int fd, off64_t offset, off64_t nbytes, # include <linux/fadvise.h> # endif +# if !HAVE_DECL_SPLICE +# if defined(__NR_splice) +# define splice(fdin, off_in, fdout, off_out, len, flags) syscall(__NR_splice, fdin, off_in, fdout, off_out, len, flags) +# endif +# endif + # ifndef SYNC_FILE_RANGE_WRITE # include <linux/fs.h> -#endif +# endif + +# ifndef SPLICE_F_MOVE +# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */ +# endif + +# ifndef SPLICE_F_NONBLOCK +# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing + (but we may still block on the fd + we splice from/to). */ +# endif + +# ifndef SPLICE_F_MORE +# define SPLICE_F_MORE 4 /* Expect more data. */ +# endif + +# ifndef SPLICE_F_GIFT +# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ +# endif #endif /* __linux__ */ -- 2.1.2 _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
