X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ftracecontext.h;h=2ec68be057264c2a12997982af21c228790026ba;hb=03dab2c12579a972e206610262ea870dd37e1a5a;hp=df15a56c2e67cc1998b0ef9353cc58fe76fd37b6;hpb=937a4442a7f16b60535a43d88d22dae944430c66;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/tracecontext.h b/ltt/branches/poly/lttv/lttv/tracecontext.h index df15a56c..2ec68be0 100644 --- a/ltt/branches/poly/lttv/lttv/tracecontext.h +++ b/ltt/branches/poly/lttv/lttv/tracecontext.h @@ -23,7 +23,7 @@ #include #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 @@ -279,13 +279,12 @@ typedef struct _LttvTraceHook { gpointer hook_data; } LttvTraceHook; -#define FIELD_ARRAY(val) ({ (val), 0 }) - /* Get the head of marker list correcponding to the given trace hook. */ struct marker_info *lttv_trace_hook_get_marker(LttTrace *t, LttvTraceHook *th); -void lttv_trace_hook_destroy(GArray *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 @@ -293,11 +292,21 @@ void lttv_trace_hook_destroy(GArray *th); 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. - Returns an array of LttvTraceHook, or NULL on error. + 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. */ -GArray *lttv_trace_find_hook(LttTrace *t, GQuark marker_name, - GQuark fields[], LttvHook h, gpointer hook_data); +int lttv_trace_find_hook(LttTrace *t, GQuark marker_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