X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ffilter.h;h=5d2f91c48ac0f0f2a834766ba4415a9b4c372935;hb=b6ef18af7254dcb81d4385db8f107721f769f7e5;hp=0e7ca9c7c11ed9b1f5e7634bd3a85973b2c31663;hpb=72911c5d83d73a7dbe06c505fb7723b0713066fc;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/filter.h b/ltt/branches/poly/lttv/lttv/filter.h index 0e7ca9c7..5d2f91c4 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,20 +104,23 @@ 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) */ LTTV_FILTER_STATE_CPU, /**< state.cpu (?last_cpu?) */ LTTV_FILTER_EVENT_NAME, /**< event.name (char*) */ + LTTV_FILTER_EVENT_FACILITY, /**< event.facility (char*) */ 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 +130,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 +149,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 +262,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 +271,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 +280,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 +341,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,