]> granicus.if.org Git - strace/commitdiff
Implement lookup_dcookie syscall decoding
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 22 Nov 2015 19:28:17 +0000 (19:28 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 22 Nov 2015 23:10:12 +0000 (23:10 +0000)
* lookup_dcookie.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* linux/dummy.h (sys_lookup_dcookie): Remove stub alias.

Makefile.am
linux/dummy.h
lookup_dcookie.c [new file with mode: 0644]

index 92dbc10b4c6b401115e22636fb36ebd27ca980be..56f4942176baa4f9aadc83433161840242181055 100644 (file)
@@ -87,6 +87,7 @@ strace_SOURCES =      \
        keyctl.c        \
        ldt.c           \
        link.c          \
+       lookup_dcookie.c \
        loop.c          \
        lseek.c         \
        mem.c           \
index 238d72c02495c57298fd916765d387886a82c373..3914948a75fd8956c8184df5685a2249ac507153 100644 (file)
@@ -32,7 +32,6 @@
 #endif
 
 /* still unfinished */
-#define        sys_lookup_dcookie      printargs
 #define        sys_name_to_handle_at   printargs
 #define        sys_open_by_handle_at   printargs
 #define        sys_sysfs               printargs
diff --git a/lookup_dcookie.c b/lookup_dcookie.c
new file mode 100644 (file)
index 0000000..c6482b3
--- /dev/null
@@ -0,0 +1,22 @@
+#include "defs.h"
+
+SYS_FUNC(lookup_dcookie)
+{
+       if (entering(tcp))
+               return 0;
+
+       /* cookie */
+       int argn = printllval(tcp, "%llu", 0);
+       tprints(", ");
+
+       /* buffer */
+       if (syserror(tcp))
+               printaddr(tcp->u_arg[argn]);
+       else
+               printstr(tcp, tcp->u_arg[argn], tcp->u_rval);
+
+       /* len */
+       tprintf(", %lu", tcp->u_arg[argn + 1]);
+
+       return 0;
+}