Skip to content

Commit

Permalink
events: Update tools/lib/traceevent to work with perf
Browse files Browse the repository at this point in the history
Some of the util functions of libtraceevent.a conflict with perf,
such as die(), warning() and others. Move them into event-util.h
that is not included by the perf tools.

Also, as perf compiles with 'bool' the filter_arg->bool needs to
be renamed to filter_arg->boolean.

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>
  • Loading branch information
Steven Rostedt authored and Frederic Weisbecker committed Apr 25, 2012
1 parent d0e7b85 commit 668fe01
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 33 deletions.
1 change: 1 addition & 0 deletions tools/lib/traceevent/event-parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include <errno.h>

#include "event-parse.h"
#include "event-utils.h"

static const char *input_buf;
static unsigned long long input_buf_ptr;
Expand Down
20 changes: 3 additions & 17 deletions tools/lib/traceevent/event-parse.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ enum format_flags {
FIELD_IS_STRING = 8,
FIELD_IS_DYNAMIC = 16,
FIELD_IS_LONG = 32,
FIELD_IS_FLAG = 64,
FIELD_IS_SYMBOLIC = 128,
};

struct format_field {
Expand Down Expand Up @@ -406,22 +408,6 @@ struct pevent {
struct event_format *last_event;
};

/* Can be overridden */
void die(const char *fmt, ...);
void *malloc_or_die(unsigned int size);
void warning(const char *fmt, ...);
void pr_stat(const char *fmt, ...);
void vpr_stat(const char *fmt, va_list ap);

/* Always available */
void __die(const char *fmt, ...);
void __warning(const char *fmt, ...);
void __pr_stat(const char *fmt, ...);

void __vdie(const char *fmt, ...);
void __vwarning(const char *fmt, ...);
void __vpr_stat(const char *fmt, ...);

static inline unsigned short
__data2host2(struct pevent *pevent, unsigned short data)
{
Expand Down Expand Up @@ -734,7 +720,7 @@ struct filter_arg_str {
struct filter_arg {
enum filter_arg_type type;
union {
struct filter_arg_boolean bool;
struct filter_arg_boolean boolean;
struct filter_arg_field field;
struct filter_arg_value value;
struct filter_arg_op op;
Expand Down
16 changes: 16 additions & 0 deletions tools/lib/traceevent/event-utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,22 @@

#include <ctype.h>

/* Can be overridden */
void die(const char *fmt, ...);
void *malloc_or_die(unsigned int size);
void warning(const char *fmt, ...);
void pr_stat(const char *fmt, ...);
void vpr_stat(const char *fmt, va_list ap);

/* Always available */
void __die(const char *fmt, ...);
void __warning(const char *fmt, ...);
void __pr_stat(const char *fmt, ...);

void __vdie(const char *fmt, ...);
void __vwarning(const char *fmt, ...);
void __vpr_stat(const char *fmt, ...);

static inline char *strim(char *string)
{
char *ret;
Expand Down
32 changes: 16 additions & 16 deletions tools/lib/traceevent/parse-filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ create_arg_item(struct event_format *event,
if (strcmp(token, COMM) != 0) {
/* not a field, Make it false */
arg->type = FILTER_ARG_BOOLEAN;
arg->bool.value = FILTER_FALSE;
arg->boolean.value = FILTER_FALSE;
break;
}
/* If token is 'COMM' then it is special */
Expand Down Expand Up @@ -487,7 +487,7 @@ static int add_right(struct filter_arg *op, struct filter_arg *arg,
free_arg(left);
free_arg(arg);
op->type = FILTER_ARG_BOOLEAN;
op->bool.value = FILTER_FALSE;
op->boolean.value = FILTER_FALSE;
break;
}

Expand Down Expand Up @@ -772,7 +772,7 @@ enum filter_vals test_arg(struct filter_arg *parent, struct filter_arg *arg)

/* bad case */
case FILTER_ARG_BOOLEAN:
return FILTER_VAL_FALSE + arg->bool.value;
return FILTER_VAL_FALSE + arg->boolean.value;

/* good cases: */
case FILTER_ARG_STR:
Expand Down Expand Up @@ -871,7 +871,7 @@ static struct filter_arg *collapse_tree(struct filter_arg *arg)
free_arg(arg);
arg = allocate_arg();
arg->type = FILTER_ARG_BOOLEAN;
arg->bool.value = ret == FILTER_VAL_TRUE;
arg->boolean.value = ret == FILTER_VAL_TRUE;
}

return arg;
Expand Down Expand Up @@ -1116,7 +1116,7 @@ process_event(struct event_format *event, const char *filter_str,
if (!*parg) {
*parg = allocate_arg();
(*parg)->type = FILTER_ARG_BOOLEAN;
(*parg)->bool.value = FILTER_FALSE;
(*parg)->boolean.value = FILTER_FALSE;
}

return 0;
Expand All @@ -1139,7 +1139,7 @@ static int filter_event(struct event_filter *filter,
/* just add a TRUE arg */
arg = allocate_arg();
arg->type = FILTER_ARG_BOOLEAN;
arg->bool.value = FILTER_TRUE;
arg->boolean.value = FILTER_TRUE;
}

filter_type = add_filter_type(filter, event->id);
Expand Down Expand Up @@ -1369,9 +1369,9 @@ static int copy_filter_type(struct event_filter *filter,
arg = allocate_arg();
arg->type = FILTER_ARG_BOOLEAN;
if (strcmp(str, "TRUE") == 0)
arg->bool.value = 1;
arg->boolean.value = 1;
else
arg->bool.value = 0;
arg->boolean.value = 0;

filter_type = add_filter_type(filter, event->id);
filter_type->filter = arg;
Expand Down Expand Up @@ -1442,8 +1442,8 @@ int pevent_update_trivial(struct event_filter *dest, struct event_filter *source
arg = filter_type->filter;
if (arg->type != FILTER_ARG_BOOLEAN)
continue;
if ((arg->bool.value && type == FILTER_TRIVIAL_FALSE) ||
(!arg->bool.value && type == FILTER_TRIVIAL_TRUE))
if ((arg->boolean.value && type == FILTER_TRIVIAL_FALSE) ||
(!arg->boolean.value && type == FILTER_TRIVIAL_TRUE))
continue;

event = filter_type->event;
Expand Down Expand Up @@ -1497,10 +1497,10 @@ void pevent_filter_clear_trivial(struct event_filter *filter,
continue;
switch (type) {
case FILTER_TRIVIAL_FALSE:
if (filter_type->filter->bool.value)
if (filter_type->filter->boolean.value)
continue;
case FILTER_TRIVIAL_TRUE:
if (!filter_type->filter->bool.value)
if (!filter_type->filter->boolean.value)
continue;
default:
break;
Expand Down Expand Up @@ -1551,10 +1551,10 @@ int pevent_filter_event_has_trivial(struct event_filter *filter,

switch (type) {
case FILTER_TRIVIAL_FALSE:
return !filter_type->filter->bool.value;
return !filter_type->filter->boolean.value;

case FILTER_TRIVIAL_TRUE:
return filter_type->filter->bool.value;
return filter_type->filter->boolean.value;
default:
return 1;
}
Expand Down Expand Up @@ -1783,7 +1783,7 @@ static int test_filter(struct event_format *event,
switch (arg->type) {
case FILTER_ARG_BOOLEAN:
/* easy case */
return arg->bool.value;
return arg->boolean.value;

case FILTER_ARG_OP:
return test_op(event, arg, record);
Expand Down Expand Up @@ -2147,7 +2147,7 @@ static char *arg_to_str(struct event_filter *filter, struct filter_arg *arg)
switch (arg->type) {
case FILTER_ARG_BOOLEAN:
str = malloc_or_die(6);
if (arg->bool.value)
if (arg->boolean.value)
strcpy(str, "TRUE");
else
strcpy(str, "FALSE");
Expand Down
1 change: 1 addition & 0 deletions tools/lib/traceevent/trace-seq.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <stdarg.h>

#include "event-parse.h"
#include "event-utils.h"

/*
* The TRACE_SEQ_POISON is to catch the use of using
Expand Down

0 comments on commit 668fe01

Please sign in to comment.