]> granicus.if.org Git - strace/commitdiff
Move parsers of sync_file_range and sync_file_range2 syscalls to libstrace
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 22 Apr 2016 04:17:06 +0000 (04:17 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 22 Apr 2016 04:34:22 +0000 (04:34 +0000)
For each given architecture only one of these two syscalls has a
syscallent entry.  When each parser is placed into a separate file,
moving to libstrace ensures that only one of them that is need
is linked into strace executable.

* sync_file_range.c (SYS_FUNC(sync_file_range2)): Move ...
* sync_file_range2.c: ... here.
* Makefile.am (strace_SOURCES): Move sync_file_range.c ...
(libstrace_a_SOURCES): ... here.  Add sync_file_range2.c.
(strace_SOURCES_c): Add filtered libstrace_a_SOURCES.

Makefile.am
sync_file_range.c
sync_file_range2.c [new file with mode: 0644]

index e15c2d910188f4b54567cfbebe6fa25a343eec45..2f595cb4dd7f882fce398ef1c7105b1e03c6cdba 100644 (file)
@@ -64,6 +64,8 @@ noinst_LIBRARIES = libstrace.a
 libstrace_a_CPPFLAGS = $(strace_CPPFLAGS)
 libstrace_a_CFLAGS = $(strace_CFLAGS)
 libstrace_a_SOURCES =  \
+       sync_file_range.c \
+       sync_file_range2.c \
        upeek.c         \
        # end of libstrace_a_SOURCES
 
@@ -190,7 +192,6 @@ strace_SOURCES =    \
        statfs.c        \
        strace.c        \
        swapon.c        \
-       sync_file_range.c \
        syscall.c       \
        sysctl.c        \
        sysinfo.c       \
@@ -641,7 +642,8 @@ srpm: dist-xz
 $(srcdir)/.version:
        $(AM_V_GEN)echo $(VERSION) > $@-t && mv $@-t $@
 
-strace_SOURCES_c = $(filter %.c,$(strace_SOURCES))
+strace_SOURCES_c = \
+       $(filter %.c,$(strace_SOURCES)) $(filter %.c,$(libstrace_a_SOURCES))
 
 sys_func.h: $(patsubst %,$(srcdir)/%,$(strace_SOURCES_c))
        for f in $^; do \
index 17efa5715742f0b96de540de638335875bb1abc5..855e8af3151b07befa1aa2279022a6c235c4497a 100644 (file)
@@ -27,9 +27,7 @@
  */
 
 #include "defs.h"
-
 #include <fcntl.h>
-
 #include "xlat/sync_file_range_flags.h"
 
 SYS_FUNC(sync_file_range)
@@ -44,17 +42,3 @@ SYS_FUNC(sync_file_range)
 
        return RVAL_DECODED;
 }
-
-SYS_FUNC(sync_file_range2)
-{
-       int argn;
-
-       printfd(tcp, tcp->u_arg[0]);
-       tprints(", ");
-       printflags(sync_file_range_flags, tcp->u_arg[1],
-                  "SYNC_FILE_RANGE_???");
-       argn = printllval(tcp, ", %lld, ", 2);
-       argn = printllval(tcp, "%lld", argn);
-
-       return RVAL_DECODED;
-}
diff --git a/sync_file_range2.c b/sync_file_range2.c
new file mode 100644 (file)
index 0000000..a1ef091
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013 William Manley <william.manley@youview.com>
+ * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "defs.h"
+#include <fcntl.h>
+#include "xlat/sync_file_range_flags.h"
+
+SYS_FUNC(sync_file_range2)
+{
+       int argn;
+
+       printfd(tcp, tcp->u_arg[0]);
+       tprints(", ");
+       printflags(sync_file_range_flags, tcp->u_arg[1],
+                  "SYNC_FILE_RANGE_???");
+       argn = printllval(tcp, ", %lld, ", 2);
+       argn = printllval(tcp, "%lld", argn);
+
+       return RVAL_DECODED;
+}