strace/xlat.h
Dmitry V. Levin 92e347b556 Add copyright headers to some files that lack them
We do our best to keep copyright headers up to date, yet
git history provides better information on this subject
and is more accurate than copyright headers.
2018-12-24 23:46:43 +00:00

63 lines
1.6 KiB
C

/*
* Copyright (c) 2016-2018 The strace developers.
* All rights reserved.
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
#ifndef STRACE_XLAT_H
#define STRACE_XLAT_H
# 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;
};
# define XLAT(val) { (unsigned)(val), #val }
# define XLAT_PAIR(val, str) { (unsigned)(val), str }
# define XLAT_TYPE(type, val) { (type)(val), #val }
# define XLAT_TYPE_PAIR(type, val, str) { (type)(val), str }
# define XLAT_END { 0, 0 }
#endif /* !STRACE_XLAT_H */