mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
perf/events: Add flag/symbol format_flags
This is a port of commit eb9a42caa7
perf trace: Add flag/symbolic format_flags
of the old trace-event-parse.c to the new event-parse.c that
was written by Tom Zanussi and forward ported by Steven Rostedt.
Signed-off-by: Tom Zanussi <tzanussi@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Arun Sharma <asharma@fb.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
This commit is contained in:
parent
4dc1024a7a
commit
5205aec960
@ -39,6 +39,9 @@ static const char *input_buf;
|
||||
static unsigned long long input_buf_ptr;
|
||||
static unsigned long long input_buf_siz;
|
||||
|
||||
static int is_flag_field;
|
||||
static int is_symbolic_field;
|
||||
|
||||
static int show_warning = 1;
|
||||
|
||||
#define do_warning(fmt, ...) \
|
||||
@ -1789,6 +1792,16 @@ process_entry(struct event_format *event __unused, struct print_arg *arg,
|
||||
arg->type = PRINT_FIELD;
|
||||
arg->field.name = field;
|
||||
|
||||
if (is_flag_field) {
|
||||
arg->field.field = pevent_find_any_field(event, arg->field.name);
|
||||
arg->field.field->flags |= FIELD_IS_FLAG;
|
||||
is_flag_field = 0;
|
||||
} else if (is_symbolic_field) {
|
||||
arg->field.field = pevent_find_any_field(event, arg->field.name);
|
||||
arg->field.field->flags |= FIELD_IS_SYMBOLIC;
|
||||
is_symbolic_field = 0;
|
||||
}
|
||||
|
||||
type = read_token(&token);
|
||||
*tok = token;
|
||||
|
||||
@ -2398,10 +2411,12 @@ process_function(struct event_format *event, struct print_arg *arg,
|
||||
|
||||
if (strcmp(token, "__print_flags") == 0) {
|
||||
free_token(token);
|
||||
is_flag_field = 1;
|
||||
return process_flags(event, arg, tok);
|
||||
}
|
||||
if (strcmp(token, "__print_symbolic") == 0) {
|
||||
free_token(token);
|
||||
is_symbolic_field = 1;
|
||||
return process_symbols(event, arg, tok);
|
||||
}
|
||||
if (strcmp(token, "__get_str") == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user