create directories branches, tags, trunk
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.h
index dacd4d0febe72643aef9225fb3cd484f54d129bc..8bee889086bd95755a4dbfca47f954e38f920999 100644 (file)
 #ifndef PROCESSTRACE_H
 #define PROCESSTRACE_H
 
+#include <string.h>
 #include <lttv/traceset.h>
 #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
@@ -209,7 +210,7 @@ void lttv_process_traceset_begin(LttvTracesetContext *self,
 
 guint lttv_process_traceset_middle(LttvTracesetContext *self,
                               LttTime end, 
-                              guint nb_events,
+                              gulong nb_events,
                               const LttvTracesetContextPosition *end_position);
 
 void lttv_process_traceset_end(LttvTracesetContext *self,
@@ -279,9 +280,7 @@ typedef struct _LttvTraceHook {
   gpointer hook_data;
 } LttvTraceHook;
 
-#define FIELD_ARRAY(val) ((GQuark[]){ (val), 0 })
-
-/* 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(LttTrace *t, LttvTraceHook *th);
 
@@ -300,9 +299,32 @@ void lttv_trace_hook_remove_all(GArray **th);
    Adds the hooks to the trace_hooks array.
  */
 
-int lttv_trace_find_hook(LttTrace *t, GQuark marker_name,
+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);
+}
+
+static inline GQuark lttv_merge_facility_event_name(GQuark fac, GQuark ev)
+{
+  char *tmp;
+  const char *sfac, *sev;
+  GQuark ret;
+
+  sfac = g_quark_to_string(fac);
+  sev = g_quark_to_string(ev);
+  tmp = g_new(char, strlen(sfac) + strlen(sev) + 3); /* 3: _ \0 \0 */
+  strcpy(tmp, sfac);
+  strcat(tmp, "_");
+  strcat(tmp, sev);
+  ret = g_quark_from_string(tmp);
+  g_free(tmp);
+  return ret;
+}
+
 LttvTracefileContext *lttv_traceset_context_get_current_tfc(
                              LttvTracesetContext *self);
 
@@ -369,5 +391,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.038075 seconds and 4 git commands to generate.