X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Finclude%2Flttv%2FprocessTrace.h;h=aa1b6ae37dc26309075199c81c8c721c87d9ecd8;hb=a8c0f09de06b94e9420d286e1541c39092fff434;hp=133f7ecd366c3aec6ab4d26817fd847fb90139a0;hpb=ffd54a901f0062e31ffb35a316de9d8b17104abb;p=lttv.git diff --git a/ltt/branches/poly/include/lttv/processTrace.h b/ltt/branches/poly/include/lttv/processTrace.h index 133f7ecd..aa1b6ae3 100644 --- a/ltt/branches/poly/include/lttv/processTrace.h +++ b/ltt/branches/poly/include/lttv/processTrace.h @@ -71,6 +71,8 @@ struct _LttvTracesetContext { LttvHooks *after; LttvTraceContext **traces; LttvAttribute *a; + LttvAttribute *ts_a; + TimeInterval *Time_Span; }; struct _LttvTracesetContextClass { @@ -112,12 +114,14 @@ struct _LttvTraceContext { LttvTracesetContext *ts_context; guint index; /* in ts_context->traces */ LttTrace *t; + LttvTrace *vt; LttvHooks *check; LttvHooks *before; LttvHooks *after; LttvTracefileContext **control_tracefiles; LttvTracefileContext **per_cpu_tracefiles; LttvAttribute *a; + LttvAttribute *t_a; }; struct _LttvTraceContextClass { @@ -159,8 +163,12 @@ struct _LttvTracefileContextClass { GType lttv_tracefile_context_get_type (void); -void lttv_process_trace(LttTime start, LttTime end, LttvTraceset *traceset, - LttvTracesetContext *context); +void lttv_process_traceset(LttvTracesetContext *self, LttTime end, + unsigned maxNumEvents); + +void lttv_process_traceset_seek_time(LttvTracesetContext *self, LttTime start); + +void lttv_process_trace_seek_time(LttvTraceContext *self, LttTime start); void lttv_traceset_context_add_hooks(LttvTracesetContext *self, LttvHooks *before_traceset, @@ -188,4 +196,57 @@ void lttv_traceset_context_remove_hooks(LttvTracesetContext *self, LttvHooks *before_event, LttvHooks *after_event); +void lttv_trace_context_add_hooks(LttvTraceContext *self, + LttvHooks *check_trace, + LttvHooks *before_trace, + LttvHooks *after_trace); + +void lttv_trace_context_remove_hooks(LttvTraceContext *self, + LttvHooks *check_trace, + LttvHooks *before_trace, + LttvHooks *after_trace); + +void lttv_tracefile_context_add_hooks(LttvTracefileContext *self, + LttvHooks *check_tracefile, + LttvHooks *before_tracefile, + LttvHooks *after_tracefile, + LttvHooks *check_event, + LttvHooks *before_event, + LttvHooks *after_event); + +void lttv_tracefile_context_remove_hooks(LttvTracefileContext *self, + LttvHooks *check_tracefile, + LttvHooks *before_tracefile, + LttvHooks *after_tracefile, + LttvHooks *check_event, + LttvHooks *before_event, + LttvHooks *after_event); + +void lttv_tracefile_context_add_hooks_by_id(LttvTracefileContext *self, + unsigned i, + LttvHooks *before_event_by_id, + LttvHooks *after_event_by_id); + +void lttv_tracefile_context_remove_hooks_by_id(LttvTracefileContext *self, + unsigned i); + +typedef struct _LttvTraceHook { + LttvHook h; + guint id; + LttField *f1; + LttField *f2; + LttField *f3; +} LttvTraceHook; + + +/* 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. */ + +void lttv_trace_find_hook(LttTrace *t, char *facility, char *event_type, + char *field1, char *field2, char *field3, LttvHook h, LttvTraceHook *th); + #endif // PROCESSTRACE_H