#include <lttv/attribute.h>
#include <lttv/hook.h>
#include <ltt/ltt.h>
+#include <ltt/markers.h>
/* This is the generic part of trace processing. All events within a
certain time interval are accessed and processing hooks are called for
void lttv_tracefile_context_remove_hooks_by_id(LttvTracefileContext *self,
unsigned i);
-/* A LttvTraceHook has two arrays of LttvTraceHookByFacility,
- * indexed by facility ID and a simple array used to walk all the hooks */
typedef struct _LttvTraceHook {
- GArray *fac_index;
- GArray *fac_list;
-} LttvTraceHook;
-
-typedef struct _LttvTraceHookByFacility {
LttvHook h;
guint id;
- LttField *f1;
- LttField *f2;
- LttField *f3;
+ struct marker_field *f1;
+ struct marker_field *f2;
+ struct marker_field *f3;
gpointer hook_data;
-} LttvTraceHookByFacility;
-
+} LttvTraceHook;
-/* Get the first facility corresponding to the name. As the types must be
- * compatible, it is relevant to use the field name and sizes of the first
- * facility to create data structures and assume the data will be compatible
- * thorough the trace */
-LttvTraceHookByFacility *lttv_trace_hook_get_first(LttvTraceHook *th);
-LttvTraceHookByFacility *lttv_trace_hook_get_fac(
- LttvTraceHook *th, guint facility_id);
+/* Get the head of marker list correcponding to the given trace hook.
+ */
+struct marker_info *lttv_trace_hook_get_marker(LttvTraceHook *th);
void lttv_trace_hook_destroy(LttvTraceHook *th);
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 facility, GQuark event_type,
+gint lttv_trace_find_hook(LttTrace *t, GQuark event_type,
GQuark field1, GQuark field2, GQuark field3, LttvHook h,
gpointer hook_data, LttvTraceHook *th);
static const LttTime seek_back_default_offset = { 1, 0 };
-typedef gboolean check_handler(guint count, gboolean *stop_flag);
+typedef gboolean check_handler(guint count, gboolean *stop_flag, gpointer data);
guint lttv_process_traceset_seek_n_forward(LttvTracesetContext *self,
guint n,
gboolean *stop_flag,
LttvFilter *filter1,
LttvFilter *filter2,
- LttvFilter *filter3);
+ LttvFilter *filter3,
+ gpointer data);
typedef void (*seek_time_fct)(LttvTracesetContext *self, LttTime start);
/* If first_offset is ltt_time_zero, it will choose a default value */
gboolean *stop_flag,
LttvFilter *filter1,
LttvFilter *filter2,
- LttvFilter *filter3);
+ LttvFilter *filter3,
+ gpointer data);
#endif // PROCESSTRACE_H