X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ffilter.h;h=cc25dfb158d2460ab89a8ccb4b8d02a1faec2ed9;hb=80e0221be5a9af55973073299ddbd93e43a08b39;hp=33e4a138f43f83509c1123e134b59964bdb4ec44;hpb=7e7af7f21b42d02e74f52576a8ac163b65e021b4;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/filter.h b/ltt/branches/poly/lttv/lttv/filter.h index 33e4a138..cc25dfb1 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,15 +104,17 @@ 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_FIELD, /**< dynamic field, specified in facility */ LTTV_FILTER_UNDEFINED /**< undefined field */ }; @@ -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); @@ -311,7 +324,7 @@ gboolean lttv_filter_update(LttvFilter* filter); void lttv_filter_destroy(LttvFilter* filter); -gboolean lttv_filter_append_expression(LttvFilter* filter, char *expression); +gboolean lttv_filter_append_expression(LttvFilter* filter, const char *expression); void lttv_filter_clear_expression(LttvFilter* filter); @@ -327,7 +340,6 @@ gboolean lttv_filter_tree_parse( const LttEvent* event, const LttTracefile* tracefile, const LttTrace* trace, - const LttvProcessState* state, const LttvTracefileContext* context); gboolean lttv_filter_tree_parse_branch( @@ -341,7 +353,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