From 487ad18102bd5f8a398f3c14ed3a489d3c89a181 Mon Sep 17 00:00:00 2001 From: yangxx Date: Mon, 15 Sep 2003 20:37:11 +0000 Subject: [PATCH] new function to get the time span of a trace git-svn-id: http://ltt.polymtl.ca/svn@238 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/include/ltt/trace.h | 5 +++ ltt/branches/poly/ltt/tracefile.c | 47 ++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/ltt/branches/poly/include/ltt/trace.h b/ltt/branches/poly/include/ltt/trace.h index ac3335a1..18ef016c 100644 --- a/ltt/branches/poly/include/ltt/trace.h +++ b/ltt/branches/poly/include/ltt/trace.h @@ -94,6 +94,11 @@ LttTracefile *ltt_trace_control_tracefile_get(LttTrace *t, unsigned i); LttTracefile *ltt_trace_per_cpu_tracefile_get(LttTrace *t, unsigned i); +/* Get the start time and end time of the trace */ + +void ltt_trace_time_span_get(LttTrace *t, LttTime *start, LttTime *end); + + /* Get the name of a tracefile */ char *ltt_tracefile_name(LttTracefile *tf); 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); -- 2.34.1