summaryrefslogtreecommitdiffstats
path: root/trace/control.h
diff options
context:
space:
mode:
Diffstat (limited to 'trace/control.h')
-rw-r--r--trace/control.h30
1 files changed, 26 insertions, 4 deletions
diff --git a/trace/control.h b/trace/control.h
index 9522a7b318..23b8393b29 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -13,22 +13,44 @@
#include "event-internal.h"
typedef struct TraceEventIter {
+ /* iter state */
size_t event;
size_t group;
+ /* filter conditions */
+ size_t group_id;
const char *pattern;
} TraceEventIter;
/**
- * trace_event_iter_init:
+ * trace_event_iter_init_all:
* @iter: the event iterator struct
- * @pattern: optional pattern to filter events on name
*
* Initialize the event iterator struct @iter,
- * optionally using @pattern to filter out events
+ * for all events.
+ */
+void trace_event_iter_init_all(TraceEventIter *iter);
+
+/**
+ * trace_event_iter_init_pattern:
+ * @iter: the event iterator struct
+ * @pattern: pattern to filter events on name
+ *
+ * Initialize the event iterator struct @iter,
+ * using @pattern to filter out events
* with non-matching names.
*/
-void trace_event_iter_init(TraceEventIter *iter, const char *pattern);
+void trace_event_iter_init_pattern(TraceEventIter *iter, const char *pattern);
+
+/**
+ * trace_event_iter_init_group:
+ * @iter: the event iterator struct
+ * @group_id: group_id to filter events by group.
+ *
+ * Initialize the event iterator struct @iter,
+ * using @group_id to filter for events in the group.
+ */
+void trace_event_iter_init_group(TraceEventIter *iter, size_t group_id);
/**
* trace_event_iter_next: