From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756547Ab1HEVOh (ORCPT ); Fri, 5 Aug 2011 17:14:37 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.124]:33514 "EHLO hrndva-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752102Ab1HEVNF (ORCPT ); Fri, 5 Aug 2011 17:13:05 -0400 X-Authority-Analysis: v=1.1 cv=Pm0sEXe2MdIPK/rOEC7hwDW84D/yDsPO3JtCzsVYOFU= c=1 sm=0 a=vhdKIqpQuCYA:10 a=zOa6DpXmWPgA:10 a=5SG0PmZfjMsA:10 a=bbbx4UPp9XUA:10 a=OPBmh+XkhLl+Enan7BmTLg==:17 a=20KFwNOVAAAA:8 a=meVymXHHAAAA:8 a=Wmx4k6pEUD9vNkp_caQA:9 a=NwBpNpryLW2g6Cwz614A:7 a=jEp0ucaQiEUA:10 a=jeBq3FmKZ4MA:10 a=OPBmh+XkhLl+Enan7BmTLg==:117 X-Cloudmark-Score: 0 X-Originating-IP: 67.242.120.143 Message-Id: <20110805211301.477257416@goodmis.org> User-Agent: quilt/0.48-1 Date: Fri, 05 Aug 2011 16:59:25 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Ingo Molnar , Thomas Gleixner , Peter Zijlstra , Frederic Weisbecker , Arnaldo Carvalho de Melo , Borislav Petkov , Arjan van de Ven Subject: [RFC][PATCH 4/8] events: Update tools/lib/events to work with perf References: <20110805205921.909038487@goodmis.org> Content-Disposition: inline; filename=0004-events-Update-tools-lib-events-to-work-with-perf.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Steven Rostedt Some of the util functions of libparsevent.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 --- tools/lib/events/event-parse.c | 1 + tools/lib/events/event-parse.h | 20 +++----------------- tools/lib/events/event-utils.h | 16 ++++++++++++++++ tools/lib/events/parse-filter.c | 32 ++++++++++++++++---------------- tools/lib/events/trace-seq.c | 1 + 5 files changed, 37 insertions(+), 33 deletions(-) diff --git a/tools/lib/events/event-parse.c b/tools/lib/events/event-parse.c index 01b8821..3b4fac3 100644 --- a/tools/lib/events/event-parse.c +++ b/tools/lib/events/event-parse.c @@ -33,6 +33,7 @@ #include #include "event-parse.h" +#include "event-utils.h" static const char *input_buf; static unsigned long long input_buf_ptr; diff --git a/tools/lib/events/event-parse.h b/tools/lib/events/event-parse.h index c32d715..2e0222d 100644 --- a/tools/lib/events/event-parse.h +++ b/tools/lib/events/event-parse.h @@ -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 { @@ -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) { @@ -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; diff --git a/tools/lib/events/event-utils.h b/tools/lib/events/event-utils.h index a8fb48f..0829638 100644 --- a/tools/lib/events/event-utils.h +++ b/tools/lib/events/event-utils.h @@ -23,6 +23,22 @@ #include +/* 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; diff --git a/tools/lib/events/parse-filter.c b/tools/lib/events/parse-filter.c index 1df9966..fe37182 100644 --- a/tools/lib/events/parse-filter.c +++ b/tools/lib/events/parse-filter.c @@ -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 */ @@ -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; } @@ -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: @@ -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; @@ -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; @@ -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); @@ -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; @@ -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; @@ -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; @@ -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; } @@ -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); @@ -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"); diff --git a/tools/lib/events/trace-seq.c b/tools/lib/events/trace-seq.c index d2f265b..b1ccc92 100644 --- a/tools/lib/events/trace-seq.c +++ b/tools/lib/events/trace-seq.c @@ -24,6 +24,7 @@ #include #include "event-parse.h" +#include "event-utils.h" /* * The TRACE_SEQ_POISON is to catch the use of using -- 1.7.5.4