Home | History | Annotate | Download | only in strace
      1 #ifndef STRACE_XLAT_H
      2 #define STRACE_XLAT_H
      3 
      4 # include <stdint.h>
      5 
      6 enum xlat_type {
      7 	XT_NORMAL,
      8 	XT_SORTED,
      9 	XT_INDEXED,
     10 };
     11 
     12 enum xlat_style {
     13 	/**
     14 	 * Special value that is used for passing to *print{xval,flags}*_ex
     15 	 * routines that indicates that no overriding of user-supplied xlat
     16 	 * verbosity/formatting configuration is intended.
     17 	 */
     18 	XLAT_STYLE_DEFAULT = 0,
     19 
     20 	/** Print xlat value as is without xlat processing */
     21 	XLAT_STYLE_RAW     = 1 << 0,
     22 	/**
     23 	 * Historic strace style, process xlat and print the result (xlat
     24 	 * constant name/combination of flags), raw number only if nothing is
     25 	 * found.
     26 	 */
     27 	XLAT_STYLE_ABBREV  = 1 << 1,
     28 	/** Always print both raw number and xlat processing result. */
     29 	XLAT_STYLE_VERBOSE = XLAT_STYLE_RAW | XLAT_STYLE_ABBREV,
     30 
     31 #define XLAT_STYLE_FORMAT_SHIFT   2
     32 #define XLAT_STYLE_VERBOSITY_MASK ((1 << XLAT_STYLE_FORMAT_SHIFT) - 1)
     33 
     34 	XLAT_STYLE_FMT_X   = 0 << XLAT_STYLE_FORMAT_SHIFT,
     35 	XLAT_STYLE_FMT_U   = 1 << XLAT_STYLE_FORMAT_SHIFT,
     36 	XLAT_STYLE_FMT_D   = 2 << XLAT_STYLE_FORMAT_SHIFT,
     37 
     38 #define XLAT_STYLE_FORMAT_MASK    (3 << XLAT_STYLE_FORMAT_SHIFT)
     39 
     40 #define XLAT_STYLE_SPEC_BITS (XLAT_STYLE_FORMAT_SHIFT + 2)
     41 #define XLAT_STYLE_MASK ((1 << XLAT_STYLE_SPEC_BITS) - 1)
     42 };
     43 
     44 struct xlat {
     45 	uint64_t val;
     46 	const char *str;
     47 };
     48 
     49 # define XLAT(val)			{ (unsigned)(val), #val }
     50 # define XLAT_PAIR(val, str)		{ (unsigned)(val), str  }
     51 # define XLAT_TYPE(type, val)		{     (type)(val), #val }
     52 # define XLAT_TYPE_PAIR(type, val, str)	{     (type)(val), str  }
     53 # define XLAT_END			{		0, 0    }
     54 
     55 #endif /* !STRACE_XLAT_H */
     56