summaryrefslogtreecommitdiff
path: root/trace/control.h
diff options
context:
space:
mode:
Diffstat (limited to 'trace/control.h')
-rw-r--r--trace/control.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/trace/control.h b/trace/control.h
index a22d11242e..36d7cd23ed 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -13,6 +13,10 @@
#include "qemu-common.h"
#include "trace/generated-events.h"
+typedef struct TraceEventIter {
+ size_t event;
+ const char *pattern;
+} TraceEventIter;
/**
* TraceEventID:
@@ -25,6 +29,29 @@
*/
enum TraceEventID;
+
+/**
+ * trace_event_iter_init:
+ * @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
+ * with non-matching names.
+ */
+void trace_event_iter_init(TraceEventIter *iter, const char *pattern);
+
+/**
+ * trace_event_iter_next:
+ * @iter: the event iterator struct
+ *
+ * Get the next event, if any. When this returns NULL,
+ * the iterator should no longer be used.
+ *
+ * Returns: the next event, or NULL if no more events exist
+ */
+TraceEvent *trace_event_iter_next(TraceEventIter *iter);
+
/**
* trace_event_id:
* @id: Event identifier.