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
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 */
};
* '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 */
* 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);
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);
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);
const LttEvent* event,
const LttTracefile* tracefile,
const LttTrace* trace,
- const LttvProcessState* state,
const LttvTracefileContext* context);
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