2 * Copyright (c) 2016-2018 The strace developers.
5 * SPDX-License-Identifier: LGPL-2.1-or-later
21 * Special value that is used for passing to *print{xval,flags}*_ex
22 * routines that indicates that no overriding of user-supplied xlat
23 * verbosity/formatting configuration is intended.
25 XLAT_STYLE_DEFAULT = 0,
27 /** Print xlat value as is without xlat processing */
28 XLAT_STYLE_RAW = 1 << 0,
30 * Historic strace style, process xlat and print the result (xlat
31 * constant name/combination of flags), raw number only if nothing is
34 XLAT_STYLE_ABBREV = 1 << 1,
35 /** Always print both raw number and xlat processing result. */
36 XLAT_STYLE_VERBOSE = XLAT_STYLE_RAW | XLAT_STYLE_ABBREV,
38 # define XLAT_STYLE_FORMAT_SHIFT 2
39 # define XLAT_STYLE_VERBOSITY_MASK ((1 << XLAT_STYLE_FORMAT_SHIFT) - 1)
41 XLAT_STYLE_FMT_X = 0 << XLAT_STYLE_FORMAT_SHIFT,
42 XLAT_STYLE_FMT_U = 1 << XLAT_STYLE_FORMAT_SHIFT,
43 XLAT_STYLE_FMT_D = 2 << XLAT_STYLE_FORMAT_SHIFT,
45 # define XLAT_STYLE_FORMAT_MASK (3 << XLAT_STYLE_FORMAT_SHIFT)
47 # define XLAT_STYLE_SPEC_BITS (XLAT_STYLE_FORMAT_SHIFT + 2)
48 # define XLAT_STYLE_MASK ((1 << XLAT_STYLE_SPEC_BITS) - 1)
57 const struct xlat_data *data;
62 # define XLAT(val) { (unsigned)(val), #val }
63 # define XLAT_PAIR(val, str) { (unsigned)(val), str }
64 # define XLAT_TYPE(type, val) { (type)(val), #val }
65 # define XLAT_TYPE_PAIR(type, val, str) { (type)(val), str }
66 # define XLAT_END { 0, 0 }
68 #endif /* !STRACE_XLAT_H */