summaryrefslogtreecommitdiff
path: root/renameat.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2014-12-06 03:53:16 +0000
committerDmitry V. Levin <ldv@altlinux.org>2014-12-11 21:39:30 +0000
commit6d20a0b9a3973127140a0eb69d4e0bc8e16c6822 (patch)
tree680614b3646a9139b8aa90817a72adee7662334d /renameat.c
parent2b7a53bff5117dfceb7c56603056f4d11d20d269 (diff)
downloadstrace-6d20a0b9a3973127140a0eb69d4e0bc8e16c6822.tar.gz
file.c: move renameat and renameat2 parsers to a separate file
* renameat.c: New file. * Makefile.am (strace_SOURCES): Add it. * file.c: Move sys_renameat, sys_renameat2, and related code to renameat.c.
Diffstat (limited to 'renameat.c')
-rw-r--r--renameat.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/renameat.c b/renameat.c
new file mode 100644
index 000000000..bf3dd793e
--- /dev/null
+++ b/renameat.c
@@ -0,0 +1,33 @@
+#include "defs.h"
+
+static void
+decode_renameat(struct tcb *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]);
+}
+
+int
+sys_renameat(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ decode_renameat(tcp);
+ }
+ return 0;
+}
+
+#include "xlat/rename_flags.h"
+
+int
+sys_renameat2(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ decode_renameat(tcp);
+ tprints(", ");
+ printflags(rename_flags, tcp->u_arg[4], "RENAME_??");
+ }
+ return 0;
+}