]> granicus.if.org Git - strace/commitdiff
memfd_create: add xlat styles support
authorShankara Pailoor <shankarapailoor@gmail.com>
Mon, 26 Nov 2018 01:10:44 +0000 (17:10 -0800)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 26 Nov 2018 02:04:04 +0000 (02:04 +0000)
* memfd_create.c (SYS_FUNC(memfd_create)): Respect xlat_verbosity.

Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
memfd_create.c

index 1f6a6d6de9033bac61ce1f72d6f0db14c4a2e1cd..a2859aeb3c753b06dac4010fc6efa9c14503eff8 100644 (file)
@@ -48,17 +48,31 @@ SYS_FUNC(memfd_create)
        tprints(", ");
 
        unsigned int flags = tcp->u_arg[1];
+
+       if (!flags || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
+               tprintf("%#x", flags);
+
+       if (!flags || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
+               return RVAL_DECODED | RVAL_FD;
+
+       if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+               tprints(" /* ");
+
        const unsigned int mask = MFD_HUGE_MASK << MFD_HUGE_SHIFT;
        const unsigned int hugetlb_value = flags & mask;
        flags &= ~mask;
 
        if (flags || !hugetlb_value)
-               printflags(memfd_create_flags, flags, "MFD_???");
+               printflags_ex(flags, "MFD_???", XLAT_STYLE_ABBREV,
+                             memfd_create_flags, NULL);
 
        if (hugetlb_value)
                tprintf("%s%u<<MFD_HUGE_SHIFT",
                        flags ? "|" : "",
                        hugetlb_value >> MFD_HUGE_SHIFT);
 
+       if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+               tprints(" */");
+
        return RVAL_DECODED | RVAL_FD;
 }