LttvFilter *filter1;
LttvFilter *filter2;
LttvFilter *filter3;
+ gpointer data;
check_handler *check;
gboolean *stop_flag;
guint raw_event_count;
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 &&
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);
sd.filter1 = filter1;
sd.filter2 = filter2;
sd.filter3 = filter3;
+ sd.data = data;
sd.n = n;
sd.check = check;
sd.stop_flag = stop_flag;
LttvFilter *filter1;
LttvFilter *filter2;
LttvFilter *filter3;
+ gpointer data;
check_handler *check;
gboolean *stop_flag;
guint raw_event_count; /* event counter */
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 &&
gboolean *stop_flag,
LttvFilter *filter1,
LttvFilter *filter2,
- LttvFilter *filter3)
+ LttvFilter *filter3,
+ gpointer data)
{
struct seek_forward_data sd;
sd.event_count = 0;
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;