]> granicus.if.org Git - strace/commitdiff
file.c: move link, linkat, unlinkat, and symlinkat parsers to a separate file
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 6 Dec 2014 03:53:16 +0000 (03:53 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 11 Dec 2014 21:39:44 +0000 (21:39 +0000)
* link.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* file.c: Move sys_link, sys_linkat, sys_unlinkat, sys_symlinkat, and
related code to link.c.

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

index c8a6871bf00b0e6da473799faaa4024d2ce6a868..e78e1fe0ee80488c0ee02c01df0e9b007dd626b9 100644 (file)
@@ -40,6 +40,7 @@ strace_SOURCES =      \
        kexec.c         \
        keyctl.c        \
        ldt.c           \
+       link.c          \
        loop.c          \
        mem.c           \
        mknod.c         \
diff --git a/file.c b/file.c
index 2c4691bea11c1fb8942047544c22a8a681d000f5..7ba68246a53b323be6366c4c9bfd6fa1b2620e4b 100644 (file)
--- a/file.c
+++ b/file.c
@@ -1102,24 +1102,6 @@ sys_stat64(struct tcb *tcp)
 #endif
 }
 
-#ifndef AT_SYMLINK_NOFOLLOW
-# define AT_SYMLINK_NOFOLLOW   0x100
-#endif
-#ifndef AT_REMOVEDIR
-# define AT_REMOVEDIR          0x200
-#endif
-#ifndef AT_SYMLINK_FOLLOW
-# define AT_SYMLINK_FOLLOW     0x400
-#endif
-#ifndef AT_NO_AUTOMOUNT
-# define AT_NO_AUTOMOUNT       0x800
-#endif
-#ifndef AT_EMPTY_PATH
-# define AT_EMPTY_PATH         0x1000
-#endif
-
-#include "xlat/at_flags.h"
-
 int
 sys_newfstatat(struct tcb *tcp)
 {
@@ -1269,53 +1251,3 @@ sys_chdir(struct tcb *tcp)
        }
        return 0;
 }
-
-int
-sys_link(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               printpath(tcp, tcp->u_arg[0]);
-               tprints(", ");
-               printpath(tcp, tcp->u_arg[1]);
-       }
-       return 0;
-}
-
-int
-sys_linkat(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               print_dirfd(tcp, tcp->u_arg[0]);
-               printpath(tcp, tcp->u_arg[1]);
-               tprints(", ");
-               print_dirfd(tcp, tcp->u_arg[2]);
-               printpath(tcp, tcp->u_arg[3]);
-               tprints(", ");
-               printflags(at_flags, tcp->u_arg[4], "AT_???");
-       }
-       return 0;
-}
-
-int
-sys_unlinkat(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               print_dirfd(tcp, tcp->u_arg[0]);
-               printpath(tcp, tcp->u_arg[1]);
-               tprints(", ");
-               printflags(at_flags, tcp->u_arg[2], "AT_???");
-       }
-       return 0;
-}
-
-int
-sys_symlinkat(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               printpath(tcp, tcp->u_arg[0]);
-               tprints(", ");
-               print_dirfd(tcp, tcp->u_arg[1]);
-               printpath(tcp, tcp->u_arg[2]);
-       }
-       return 0;
-}
diff --git a/link.c b/link.c
new file mode 100644 (file)
index 0000000..2f5298f
--- /dev/null
+++ b/link.c
@@ -0,0 +1,71 @@
+#include "defs.h"
+
+#include <fcntl.h>
+
+#ifndef AT_SYMLINK_NOFOLLOW
+# define AT_SYMLINK_NOFOLLOW   0x100
+#endif
+#ifndef AT_REMOVEDIR
+# define AT_REMOVEDIR          0x200
+#endif
+#ifndef AT_SYMLINK_FOLLOW
+# define AT_SYMLINK_FOLLOW     0x400
+#endif
+#ifndef AT_NO_AUTOMOUNT
+# define AT_NO_AUTOMOUNT       0x800
+#endif
+#ifndef AT_EMPTY_PATH
+# define AT_EMPTY_PATH         0x1000
+#endif
+
+#include "xlat/at_flags.h"
+
+int
+sys_link(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               printpath(tcp, tcp->u_arg[0]);
+               tprints(", ");
+               printpath(tcp, tcp->u_arg[1]);
+       }
+       return 0;
+}
+
+int
+sys_linkat(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               print_dirfd(tcp, tcp->u_arg[0]);
+               printpath(tcp, tcp->u_arg[1]);
+               tprints(", ");
+               print_dirfd(tcp, tcp->u_arg[2]);
+               printpath(tcp, tcp->u_arg[3]);
+               tprints(", ");
+               printflags(at_flags, tcp->u_arg[4], "AT_???");
+       }
+       return 0;
+}
+
+int
+sys_unlinkat(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               print_dirfd(tcp, tcp->u_arg[0]);
+               printpath(tcp, tcp->u_arg[1]);
+               tprints(", ");
+               printflags(at_flags, tcp->u_arg[2], "AT_???");
+       }
+       return 0;
+}
+
+int
+sys_symlinkat(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               printpath(tcp, tcp->u_arg[0]);
+               tprints(", ");
+               print_dirfd(tcp, tcp->u_arg[1]);
+               printpath(tcp, tcp->u_arg[2]);
+       }
+       return 0;
+}