X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ftracecontext.h;h=4413a5230cc49ca417a899b9a76a1bb2deeafbfb;hb=80eaae1fcee52bac07c1fc07273b47bd2a694e5b;hp=61879a7ff9c42e72806d83f4237143658c738e60;hpb=04f2543ebde7de5ec5102e37dbcb4d280c3a87ed;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/tracecontext.h b/ltt/branches/poly/lttv/lttv/tracecontext.h index 61879a7f..4413a523 100644 --- a/ltt/branches/poly/lttv/lttv/tracecontext.h +++ b/ltt/branches/poly/lttv/lttv/tracecontext.h @@ -23,6 +23,7 @@ #include #include #include +#include /* This is the generic part of trace processing. All events within a certain time interval are accessed and processing hooks are called for @@ -271,31 +272,19 @@ void lttv_tracefile_context_add_hooks_by_id(LttvTracefileContext *self, 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); @@ -306,7 +295,7 @@ 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); @@ -352,13 +341,16 @@ void lttv_process_traceset_get_sync_data(LttvTracesetContext *tsc); 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, - LttvFilter *filter, check_handler *check, - gboolean *stop_flag); + gboolean *stop_flag, + LttvFilter *filter1, + LttvFilter *filter2, + 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 */ @@ -366,9 +358,12 @@ guint lttv_process_traceset_seek_n_backward(LttvTracesetContext *self, guint n, LttTime first_offset, seek_time_fct, - LttvFilter *filter, check_handler *check, - gboolean *stop_flag); + gboolean *stop_flag, + LttvFilter *filter1, + LttvFilter *filter2, + LttvFilter *filter3, + gpointer data); #endif // PROCESSTRACE_H