X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ffilter.h;h=49d97981576b0181bc75997934c1af183337d475;hb=0305fe774206ec12a98378be3cf891446b1b901c;hp=7bc0991c318a81ae572a01610fa07633e439af42;hpb=da2e1bfb1ac32abd5ec8495afd40236bb681ebdd;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/filter.h b/ltt/branches/poly/lttv/lttv/filter.h index 7bc0991c..49d97981 100644 --- a/ltt/branches/poly/lttv/lttv/filter.h +++ b/ltt/branches/poly/lttv/lttv/filter.h @@ -65,8 +65,11 @@ typedef union _LttvFieldValue LttvFieldValue; typedef struct _LttvSimpleExpression LttvSimpleExpression; typedef struct _LttvFilterTree LttvFilterTree; -typedef struct _LttvFilter LttvFilter; +#ifndef LTTVFILTER_TYPE_DEFINED +typedef struct _LttvFilter LttvFilter; +#define LTTVFILTER_TYPE_DEFINED +#endif /** * @enum _LttvStructType @@ -101,6 +104,7 @@ enum _LttvFieldType { LTTV_FILTER_STATE_CT, /**< state.creation_time (double) */ LTTV_FILTER_STATE_IT, /**< state.insertion_time (double) */ LTTV_FILTER_STATE_P_NAME, /**< state.process_name (char*) */ + LTTV_FILTER_STATE_T_BRAND, /**< state.thread_brand (char*) */ LTTV_FILTER_STATE_EX_MODE, /**< state.execution_mode (LttvExecutionMode) */ LTTV_FILTER_STATE_EX_SUBMODE, /**< state.execution_submode (LttvExecutionSubmode) */ LTTV_FILTER_STATE_P_STATUS, /**< state.process_status (LttvProcessStatus) */ @@ -109,12 +113,13 @@ enum _LttvFieldType { LTTV_FILTER_EVENT_CATEGORY, /**< FIXME: not implemented */ LTTV_FILTER_EVENT_TIME, /**< event.time (double) */ LTTV_FILTER_EVENT_TSC, /**< event.tsc (double) */ - LTTV_FILTER_EVENT_FIELD, /**< dynamic field, specified in core.xml */ + LTTV_FILTER_EVENT_TARGET_PID, /**< event.target_pid (guint) */ + LTTV_FILTER_EVENT_FIELD, /**< dynamic field, specified in facility */ LTTV_FILTER_UNDEFINED /**< undefined field */ }; /** - * @enum _LttvExpressionOp + * @enum _LttvExpressionOp * @brief Contains possible operators * * This enumeration defines the @@ -124,12 +129,12 @@ enum _LttvFieldType { */ enum _LttvExpressionOp { - LTTV_FIELD_EQ, /**< equal */ - LTTV_FIELD_NE, /**< not equal */ - LTTV_FIELD_LT, /**< lower than */ - LTTV_FIELD_LE, /**< lower or equal */ - LTTV_FIELD_GT, /**< greater than */ - LTTV_FIELD_GE /**< greater or equal */ + LTTV_FIELD_EQ, /**< equal */ + LTTV_FIELD_NE, /**< not equal */ + LTTV_FIELD_LT, /**< lower than */ + LTTV_FIELD_LE, /**< lower or equal */ + LTTV_FIELD_GT, /**< greater than */ + LTTV_FIELD_GE /**< greater or equal */ }; /** @@ -143,9 +148,11 @@ enum _LttvExpressionOp * 'operators' functions */ union _LttvFieldValue { + GQuark v_quark; /**< GQuark */ guint64 v_uint64; /**< unsigned int of 64 bytes */ guint32 v_uint32; /**< unsigned int of 32 bytes */ guint16 v_uint16; /**< unsigned int of 16 bytes */ + guint16 v_uint; /**< unsigned int */ double v_double; /**< double */ char* v_string; /**< string */ LttTime v_ltttime; /**< LttTime */ @@ -254,6 +261,7 @@ void lttv_simple_expression_destroy(LttvSimpleExpression* se); * Logical operators functions */ +gboolean lttv_apply_op_eq_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_eq_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_eq_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_eq_uint16(const gpointer v1, LttvFieldValue v2); @@ -262,6 +270,7 @@ gboolean lttv_apply_op_eq_string(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_eq_quark(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_eq_ltttime(const gpointer v1, LttvFieldValue v2); +gboolean lttv_apply_op_ne_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ne_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ne_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ne_uint16(const gpointer v1, LttvFieldValue v2); @@ -270,24 +279,28 @@ gboolean lttv_apply_op_ne_string(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ne_quark(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ne_ltttime(const gpointer v1, LttvFieldValue v2); +gboolean lttv_apply_op_lt_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_lt_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_lt_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_lt_uint16(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_lt_double(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_lt_ltttime(const gpointer v1, LttvFieldValue v2); +gboolean lttv_apply_op_le_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_le_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_le_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_le_uint16(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_le_double(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_le_ltttime(const gpointer v1, LttvFieldValue v2); +gboolean lttv_apply_op_gt_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_gt_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_gt_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_gt_uint16(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_gt_double(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_gt_ltttime(const gpointer v1, LttvFieldValue v2); +gboolean lttv_apply_op_ge_uint(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ge_uint64(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ge_uint32(const gpointer v1, LttvFieldValue v2); gboolean lttv_apply_op_ge_uint16(const gpointer v1, LttvFieldValue v2); @@ -327,8 +340,9 @@ gboolean lttv_filter_tree_parse( const LttEvent* event, const LttTracefile* tracefile, const LttTrace* trace, - const LttvProcessState* state, - const LttvTracefileContext* context); + const LttvTracefileContext* context, + const LttvProcessState* pstate, + const LttvTraceContext* tc); gboolean lttv_filter_tree_parse_branch( const LttvSimpleExpression* se, @@ -341,7 +355,7 @@ gboolean lttv_filter_tree_parse_branch( /* * Debug functions */ -void lttv_print_tree(const LttvFilterTree* t); +void lttv_print_tree(const LttvFilterTree* t, const int count); #endif // FILTER_H