X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ftracecontext.c;h=1886d39f07bd7b35d71f7a95c95ade0b7fe46515;hb=b59b7222ab4676f3afac9614c52d26ab5e555016;hp=f98f812c3db1043b61f33ad1b5e12a1a19769e45;hpb=b139ad2a3bd7c28ad16f0c3faed4c62c5cb2c22b;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/tracecontext.c b/ltt/branches/poly/lttv/lttv/tracecontext.c index f98f812c..1886d39f 100644 --- a/ltt/branches/poly/lttv/lttv/tracecontext.c +++ b/ltt/branches/poly/lttv/lttv/tracecontext.c @@ -1340,6 +1340,7 @@ struct seek_back_data { LttvFilter *filter1; LttvFilter *filter2; LttvFilter *filter3; + gpointer data; check_handler *check; gboolean *stop_flag; guint raw_event_count; @@ -1352,7 +1353,8 @@ static gint seek_back_event_hook(void *hook_data, void* call_data) LttvTracesetContext *tsc = tfc->t_context->ts_context; LttvTracesetContextPosition *pos; - if(sd->check && sd->check(sd->raw_event_count, sd->stop_flag)) return TRUE; + if(sd->check && sd->check(sd->raw_event_count, sd->stop_flag, sd->data)) + return TRUE; sd->raw_event_count++; if(sd->filter1 != NULL && sd->filter1->head != NULL && @@ -1360,7 +1362,7 @@ static gint seek_back_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } if(sd->filter2 != NULL && sd->filter2->head != NULL && @@ -1368,7 +1370,7 @@ static gint seek_back_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } if(sd->filter3 != NULL && sd->filter3->head != NULL && @@ -1376,7 +1378,7 @@ static gint seek_back_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } @@ -1426,7 +1428,8 @@ guint lttv_process_traceset_seek_n_backward(LttvTracesetContext *self, gboolean *stop_flag, LttvFilter *filter1, LttvFilter *filter2, - LttvFilter *filter3) + LttvFilter *filter3, + gpointer data) { if(lttv_traceset_number(self->ts) == 0) return 0; g_assert(ltt_time_compare(first_offset, ltt_time_zero) != 0); @@ -1450,6 +1453,7 @@ guint lttv_process_traceset_seek_n_backward(LttvTracesetContext *self, sd.filter1 = filter1; sd.filter2 = filter2; sd.filter3 = filter3; + sd.data = data; sd.n = n; sd.check = check; sd.stop_flag = stop_flag; @@ -1562,6 +1566,7 @@ struct seek_forward_data { LttvFilter *filter1; LttvFilter *filter2; LttvFilter *filter3; + gpointer data; check_handler *check; gboolean *stop_flag; guint raw_event_count; /* event counter */ @@ -1572,7 +1577,8 @@ static gint seek_forward_event_hook(void *hook_data, void* call_data) struct seek_forward_data *sd = (struct seek_forward_data*)hook_data; LttvTracefileContext *tfc = (LttvTracefileContext*)call_data; - if(sd->check && sd->check(sd->raw_event_count, sd->stop_flag)) return TRUE; + if(sd->check && sd->check(sd->raw_event_count, sd->stop_flag, sd->data)) + return TRUE; sd->raw_event_count++; if(sd->filter1 != NULL && sd->filter1->head != NULL && @@ -1580,7 +1586,7 @@ static gint seek_forward_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } if(sd->filter2 != NULL && sd->filter2->head != NULL && @@ -1588,7 +1594,7 @@ static gint seek_forward_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } if(sd->filter3 != NULL && sd->filter3->head != NULL && @@ -1596,7 +1602,7 @@ static gint seek_forward_event_hook(void *hook_data, void* call_data) ltt_tracefile_get_event(tfc->tf), tfc->tf, tfc->t_context->t, - tfc)) { + tfc,NULL,NULL)) { return FALSE; } @@ -1621,7 +1627,8 @@ guint lttv_process_traceset_seek_n_forward(LttvTracesetContext *self, gboolean *stop_flag, LttvFilter *filter1, LttvFilter *filter2, - LttvFilter *filter3) + LttvFilter *filter3, + gpointer data) { struct seek_forward_data sd; sd.event_count = 0; @@ -1629,6 +1636,7 @@ guint lttv_process_traceset_seek_n_forward(LttvTracesetContext *self, sd.filter1 = filter1; sd.filter2 = filter2; sd.filter3 = filter3; + sd.data = data; sd.check = check; sd.stop_flag = stop_flag; sd.raw_event_count = 0;