tracecontext.h: fix typo
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.h
index 4413a5230cc49ca417a899b9a76a1bb2deeafbfb..ed882b253a7b6f8883112ad843437f7c45722a7f 100644 (file)
@@ -23,7 +23,7 @@
 #include <lttv/attribute.h>
 #include <lttv/hook.h>
 #include <ltt/ltt.h>
-#include <ltt/markers.h>
+#include <ltt/marker.h>
 
 /* This is the generic part of trace processing. All events within a
    certain time interval are accessed and processing hooks are called for
@@ -274,30 +274,39 @@ void lttv_tracefile_context_remove_hooks_by_id(LttvTracefileContext *self,
 
 typedef struct _LttvTraceHook {
   LttvHook h;
-  guint id;
-  struct marker_field *f1;
-  struct marker_field *f2;
-  struct marker_field *f3;
+  guint16 id;  /* id of the marker associated with this hook */
+  GPtrArray *fields;  /* struct marker_fields pointers */
   gpointer hook_data;
 } LttvTraceHook;
 
-
-/* Get the head of marker list correcponding to the given trace hook.
+/* Get the head of marker list corresponding to the given trace hook.
  */
-struct marker_info *lttv_trace_hook_get_marker(LttvTraceHook *th);
+struct marker_info *lttv_trace_hook_get_marker(LttTrace *t, LttvTraceHook *th);
 
-void lttv_trace_hook_destroy(LttvTraceHook *th);
+/* Remove the hooks from the array. Does not free the array itself. */
+void lttv_trace_hook_remove_all(GArray **th);
 
 /* Search in the trace for the id of the named event type within the named
    facility. Then, find the three (if non null) named fields. All that
    information is then used to fill the LttvTraceHook structure. This
    is useful to find the specific id for an event within a trace, for
    registering a hook using this structure as event data;
-   it already contains the (up to three) needed fields handles. */
-gint lttv_trace_find_hook(LttTrace *t, GQuark event_type,
-    GQuark field1, GQuark field2, GQuark field3, LttvHook h,
-    gpointer hook_data, LttvTraceHook *th);
+   it already contains the (up to three) needed fields handles.
+   Returns the modified LttvTraceHook array.
+   Prints warnings if events or markers are not found. returns 1 on error,
+   0 on success.
+   Adds the hooks to the trace_hooks array.
+ */
+
+int lttv_trace_find_hook(LttTrace *t, GQuark facility_name, GQuark event_name,
+    GQuark fields[], LttvHook h, gpointer hook_data, GArray **trace_hooks);
+
+static inline struct marker_field *
+lttv_trace_get_hook_field(LttvTraceHook *hook, unsigned int index)
+{
+       return g_ptr_array_index(hook->fields, index);
+}
+
 
 LttvTracefileContext *lttv_traceset_context_get_current_tfc(
                              LttvTracesetContext *self);
@@ -365,5 +374,6 @@ guint lttv_process_traceset_seek_n_backward(LttvTracesetContext *self,
                                            LttvFilter *filter3,
                                            gpointer data);
 
+#define FIELD_ARRAY(val...) ((GQuark[]){ val, 0 })
 
 #endif // PROCESSTRACE_H
This page took 0.023398 seconds and 4 git commands to generate.