create directories branches, tags, trunk
[lttv.git] / ltt / branches / poly / lttv / lttv / filter.h
index 33e4a138f43f83509c1123e134b59964bdb4ec44..49d97981576b0181bc75997934c1af183337d475 100644 (file)
@@ -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);
@@ -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,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
 
This page took 0.024655 seconds and 4 git commands to generate.