]> granicus.if.org Git - strace/blobdiff - xlat.h
tests: move F_OFD_SETLK* checks from fcntl64.c to fcntl-common.c
[strace] / xlat.h
diff --git a/xlat.h b/xlat.h
index c8073b83ae16928620adcaa41cb4a445e50c5241..e86df7971cfb843cdfd39adafda325e785b19b36 100644 (file)
--- a/xlat.h
+++ b/xlat.h
@@ -3,6 +3,44 @@
 
 # include <stdint.h>
 
+enum xlat_type {
+       XT_NORMAL,
+       XT_SORTED,
+       XT_INDEXED,
+};
+
+enum xlat_style {
+       /**
+        * Special value that is used for passing to *print{xval,flags}*_ex
+        * routines that indicates that no overriding of user-supplied xlat
+        * verbosity/formatting configuration is intended.
+        */
+       XLAT_STYLE_DEFAULT = 0,
+
+       /** Print xlat value as is without xlat processing */
+       XLAT_STYLE_RAW     = 1 << 0,
+       /**
+        * Historic strace style, process xlat and print the result (xlat
+        * constant name/combination of flags), raw number only if nothing is
+        * found.
+        */
+       XLAT_STYLE_ABBREV  = 1 << 1,
+       /** Always print both raw number and xlat processing result. */
+       XLAT_STYLE_VERBOSE = XLAT_STYLE_RAW | XLAT_STYLE_ABBREV,
+
+#define XLAT_STYLE_FORMAT_SHIFT   2
+#define XLAT_STYLE_VERBOSITY_MASK ((1 << XLAT_STYLE_FORMAT_SHIFT) - 1)
+
+       XLAT_STYLE_FMT_X   = 0 << XLAT_STYLE_FORMAT_SHIFT,
+       XLAT_STYLE_FMT_U   = 1 << XLAT_STYLE_FORMAT_SHIFT,
+       XLAT_STYLE_FMT_D   = 2 << XLAT_STYLE_FORMAT_SHIFT,
+
+#define XLAT_STYLE_FORMAT_MASK    (3 << XLAT_STYLE_FORMAT_SHIFT)
+
+#define XLAT_STYLE_SPEC_BITS (XLAT_STYLE_FORMAT_SHIFT + 2)
+#define XLAT_STYLE_MASK ((1 << XLAT_STYLE_SPEC_BITS) - 1)
+};
+
 struct xlat {
        uint64_t val;
        const char *str;
@@ -14,4 +52,4 @@ struct xlat {
 # define XLAT_TYPE_PAIR(type, val, str)        {     (type)(val), str  }
 # define XLAT_END                      {               0, 0    }
 
-#endif /* #ifndef STRACE_XLAT_H */
+#endif /* !STRACE_XLAT_H */