X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Ftracefile.c;h=43334ed366d727fcb1527ed7ef7b411ed178004e;hb=487ad18102bd5f8a398f3c14ed3a489d3c89a181;hp=d78125873222f972399eb6efafa385265da726be;hpb=80da81adfa88158bd3d4c26f89f96f8b58c77b4f;p=lttv.git diff --git a/ltt/branches/poly/ltt/tracefile.c b/ltt/branches/poly/ltt/tracefile.c index d7812587..43334ed3 100644 --- a/ltt/branches/poly/ltt/tracefile.c +++ b/ltt/branches/poly/ltt/tracefile.c @@ -661,6 +661,52 @@ LttTracefile *ltt_trace_per_cpu_tracefile_get(LttTrace *t, unsigned i) return (LttTracefile*)g_ptr_array_index(t->per_cpu_tracefiles, i); } +/***************************************************************************** + * Get the start time and end time of the trace + ****************************************************************************/ + +void ltt_trace_time_span_get(LttTrace *t, LttTime *start, LttTime *end) +{ + LttTime startSmall, startTmp, endBig, endTmp; + int i, j=0; + LttTracefile * tf; + + for(i=0;icontrol_tracefile_number;i++){ + tf = g_ptr_array_index(t->control_tracefiles, i); + readBlock(tf,1); + startTmp = tf->a_block_start->time; + readBlock(tf,tf->block_number); + endTmp = tf->a_block_end->time; + if(i==0){ + startSmall = startTmp; + endBig = endTmp; + j = 1; + continue; + } + if(timecmp(&startSmall,&startTmp) > 0) startSmall = startTmp; + if(timecmp(&endBig,&endTmp) < 0) endBig = endTmp; + } + + for(i=0;iper_cpu_tracefile_number;i++){ + tf = g_ptr_array_index(t->per_cpu_tracefiles, i); + readBlock(tf,1); + startTmp = tf->a_block_start->time; + readBlock(tf,tf->block_number); + endTmp = tf->a_block_end->time; + if(j == 0 && i==0){ + startSmall = startTmp; + endBig = endTmp; + continue; + } + if(timecmp(&startSmall,&startTmp) > 0) startSmall = startTmp; + if(timecmp(&endBig,&endTmp) < 0) endBig = endTmp; + } + + *start = startSmall; + *end = endBig; +} + + /***************************************************************************** *Get the name of a tracefile ****************************************************************************/ @@ -793,7 +839,6 @@ LttEvent *ltt_tracefile_read(LttTracefile *t) if(t->cur_event_pos == t->buffer + t->block_size){ if(t->which_block == t->block_number){ - g_free(lttEvent); return NULL; } err = readBlock(t, t->which_block + 1);