X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ffilter.c;h=4d02187291cf5d513973b535e4e18e787806eed8;hb=f0ca53e9f04bad0dfc7aac9978fdf11d760f399b;hp=a614909ed7541026948a7669bf952a338257ee4c;hpb=c2a4581ea92a57c704571898b30aa7ae4c558462;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/filter.c b/ltt/branches/poly/lttv/lttv/filter.c index a614909e..4d021872 100644 --- a/ltt/branches/poly/lttv/lttv/filter.c +++ b/ltt/branches/poly/lttv/lttv/filter.c @@ -31,6 +31,7 @@ * LttvTracefileContext{} * |->event\ * | |->name (String, converted to GQuark) + * | |->facility (String, converted to GQuark) * | |->category (String, not yet implemented) * | |->time (LttTime) * | |->tsc (LttCycleCount --> uint64) @@ -73,9 +74,11 @@ #include #endif +#include #include #include #include +#include #include #include @@ -207,6 +210,9 @@ lttv_simple_expression_assign_field(GPtrArray* fp, LttvSimpleExpression* se) { if(!g_strcasecmp(f->str,"name") ) { se->field = LTTV_FILTER_EVENT_NAME; } + else if(!g_strcasecmp(f->str,"facility") ) { + se->field = LTTV_FILTER_EVENT_FACILITY; + } else if(!g_strcasecmp(f->str,"category") ) { /* * FIXME: Category not yet functional in lttv @@ -259,6 +265,7 @@ lttv_simple_expression_assign_operator(LttvSimpleExpression* se, LttvExpressionO case LTTV_FILTER_TRACEFILE_NAME: case LTTV_FILTER_STATE_P_NAME: case LTTV_FILTER_EVENT_NAME: + case LTTV_FILTER_EVENT_FACILITY: case LTTV_FILTER_STATE_EX_MODE: case LTTV_FILTER_STATE_EX_SUBMODE: case LTTV_FILTER_STATE_P_STATUS: @@ -418,6 +425,7 @@ lttv_simple_expression_assign_value(LttvSimpleExpression* se, char* value) { case LTTV_FILTER_TRACEFILE_NAME: case LTTV_FILTER_STATE_P_NAME: case LTTV_FILTER_EVENT_NAME: + case LTTV_FILTER_EVENT_FACILITY: case LTTV_FILTER_STATE_EX_MODE: case LTTV_FILTER_STATE_EX_SUBMODE: case LTTV_FILTER_STATE_P_STATUS: @@ -535,6 +543,7 @@ lttv_struct_type(gint ft) { return LTTV_FILTER_STATE; break; case LTTV_FILTER_EVENT_NAME: + case LTTV_FILTER_EVENT_FACILITY: case LTTV_FILTER_EVENT_CATEGORY: case LTTV_FILTER_EVENT_TIME: case LTTV_FILTER_EVENT_TSC: @@ -1923,7 +1932,15 @@ lttv_filter_tree_parse_branch( return se->op((gpointer)&quark,v); } break; - + case LTTV_FILTER_EVENT_FACILITY: + if(event == NULL) return TRUE; + else { + LttFacility* fac; + fac = ltt_event_facility(event); + GQuark quark = ltt_facility_name(fac); + return se->op((gpointer)&quark,v); + } + break; case LTTV_FILTER_EVENT_CATEGORY: /* * TODO: Not yet implemented