aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlavomir Kaslev <kaslevs@vmware.com>2019-02-14 16:07:22 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-02-14 12:31:03 -0500
commita57e551a1342007c7c04bf8485ed8a505c5d597d (patch)
tree44f17558f35d314b396de40680a1836f053fb1a0
parentbdf4e8883530b0d43e5777165f00130c474cde02 (diff)
downloadtrace-cmd-a57e551a1342007c7c04bf8485ed8a505c5d597d.tar.gz
trace-cmd: Add defines for splice() flags on systems with old glibc
Use SPLICE_F_ defines to refer to splice() flags instead of their numeric values. This should be only necessary on systems with glibc version < 2.5. No changes in behavior intended. Link: http://lore.kernel.org/linux-trace-devel/20190214140723.27804-2-kaslevs@vmware.com Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--lib/trace-cmd/trace-recorder.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
index b941cdce..1b6a9952 100644
--- a/lib/trace-cmd/trace-recorder.c
+++ b/lib/trace-cmd/trace-recorder.c
@@ -26,6 +26,13 @@
# define F_GETPIPE_SZ 1032 /* The Linux number for the option */
#endif
+#ifndef SPLICE_F_MOVE
+# define SPLICE_F_MOVE 1
+# define SPLICE_F_NONBLOCK 2
+# define SPLICE_F_MORE 4
+# define SPLICE_F_GIFT 8
+#endif
+
struct tracecmd_recorder {
int fd;
int fd1;
@@ -122,10 +129,10 @@ tracecmd_create_buffer_recorder_fd2(int fd, int fd2, int cpu, unsigned flags,
recorder->cpu = cpu;
recorder->flags = flags;
- recorder->fd_flags = 1; /* SPLICE_F_MOVE */
+ recorder->fd_flags = SPLICE_F_MOVE;
if (!(recorder->flags & TRACECMD_RECORD_BLOCK))
- recorder->fd_flags |= 2; /* and NON_BLOCK */
+ recorder->fd_flags |= SPLICE_F_NONBLOCK;
/* Init to know what to free and release */
recorder->trace_fd = -1;
@@ -349,7 +356,7 @@ static long splice_data(struct tracecmd_recorder *recorder)
long ret;
read = splice(recorder->trace_fd, NULL, recorder->brass[1], NULL,
- recorder->pipe_size, 1 /* SPLICE_F_MOVE */);
+ recorder->pipe_size, SPLICE_F_MOVE);
if (read < 0) {
if (errno != EAGAIN && errno != EINTR) {
warning("recorder error in splice input");
@@ -421,7 +428,7 @@ static void set_nonblock(struct tracecmd_recorder *recorder)
fcntl(recorder->trace_fd, F_SETFL, flags | O_NONBLOCK);
/* Do not block on streams for write */
- recorder->fd_flags |= 2; /* NON_BLOCK */
+ recorder->fd_flags |= SPLICE_F_NONBLOCK;
}
long tracecmd_flush_recording(struct tracecmd_recorder *recorder)