]> granicus.if.org Git - strace/blobdiff - fanotify.c
sched.c: use printnum_int and printaddr
[strace] / fanotify.c
index e421b01e23ef572c7bafcedc4bb9f4a0782ce635..8ceca0e47db870e4102ee754906b658e88e020cb 100644 (file)
@@ -10,8 +10,7 @@
 # define FAN_NOFD -1
 #endif
 
-int
-sys_fanotify_init(struct tcb *tcp)
+SYS_FUNC(fanotify_init)
 {
        unsigned flags;
 
@@ -34,8 +33,7 @@ sys_fanotify_init(struct tcb *tcp)
 #include "xlat/fan_mark_flags.h"
 #include "xlat/fan_event_flags.h"
 
-int
-sys_fanotify_mark(struct tcb *tcp)
+SYS_FUNC(fanotify_mark)
 {
        unsigned long long mask = 0;
        int argn;
@@ -52,6 +50,10 @@ sys_fanotify_mark(struct tcb *tcp)
         * but kernel uses the lower 32 bits only.
         */
        argn = getllval(tcp, &mask, 2);
+#ifdef HPPA
+       /* Parsic is weird.  See arch/parisc/kernel/sys_parisc32.c.  */
+       mask = (mask << 32) | (mask >> 32);
+#endif
        printflags(fan_event_flags, mask, "FAN_???");
        tprints(", ");
        if ((int) tcp->u_arg[argn] == FAN_NOFD)