X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Fsync%2Fevent_processing_lttng_standard.c;h=0f1bda73c65704a0ebd1f1bd8b91a9ebd9d6c32f;hb=ffa21cfde7a086c1558b961ffa0fcbe75513a7f6;hp=8c20f975d4bdf054acb3b38455abc9feaa5934bd;hpb=d6ee500355b870e83d5cdbc431629999ec97794e;p=lttv.git diff --git a/lttv/lttv/sync/event_processing_lttng_standard.c b/lttv/lttv/sync/event_processing_lttng_standard.c index 8c20f975..0f1bda73 100644 --- a/lttv/lttv/sync/event_processing_lttng_standard.c +++ b/lttv/lttv/sync/event_processing_lttng_standard.c @@ -47,8 +47,8 @@ static void destroyProcessingLTTVStandard(SyncState* const syncState); static void finalizeProcessingLTTVStandard(SyncState* const syncState); static void printProcessingStatsLTTVStandard(SyncState* const syncState); -static void writeProcessingGraphsOptionsLTTVStandard(FILE* stream, SyncState* - const syncState, const unsigned int i, const unsigned int j); +static void writeProcessingGraphsOptionsLTTVStandard(SyncState* const + syncState, const unsigned int i, const unsigned int j); // Functions specific to this module static void registerProcessingLTTVStandard() __attribute__((constructor (102))); @@ -123,6 +123,24 @@ static void initProcessingLTTVStandard(SyncState* const syncState, LttvTracesetC processingData->traceSetContext->traces[i]->t, (gpointer) i); } + if (syncState->graphsStream) + { + processingData->graphs= malloc(syncState->traceNb * + sizeof(ProcessingGraphsLTTVStandard)); + + for(i= 0; i < syncState->traceNb; i++) + { + LttTrace* traceI= traceSetContext->traces[i]->t; + + processingData->graphs[i].startFreq= traceI->start_freq; + processingData->graphs[i].freqScale= traceI->freq_scale; + } + } + else + { + processingData->graphs= NULL; + } + for(i= 0; i < syncState->traceNb; i++) { processingData->pendingRecv[i]= g_hash_table_new_full(&g_direct_hash, @@ -287,6 +305,11 @@ static void destroyProcessingLTTVStandard(SyncState* const syncState) free(processingData->stats); } + if (syncState->graphsStream) + { + free(processingData->graphs); + } + free(syncState->processingData); syncState->processingData= NULL; } @@ -652,23 +675,22 @@ static gboolean processEventLTTVStandard(void* hookData, void* callData) * Write the processing-specific options in the gnuplot script. * * Args: - * stream: stream where to write the data * syncState: container for synchronization data * i: first trace number * j: second trace number, garanteed to be larger than i */ -static void writeProcessingGraphsOptionsLTTVStandard(FILE* stream, SyncState* - const syncState, const unsigned int i, const unsigned int j) +static void writeProcessingGraphsOptionsLTTVStandard(SyncState* const + syncState, const unsigned int i, const unsigned int j) { ProcessingDataLTTVStandard* processingData; - LttTrace* traceI, * traceJ; + ProcessingGraphsLTTVStandard* traceI, * traceJ; processingData= (ProcessingDataLTTVStandard*) syncState->processingData; - traceI= processingData->traceSetContext->traces[i]->t; - traceJ= processingData->traceSetContext->traces[j]->t; + traceI= &processingData->graphs[i]; + traceJ= &processingData->graphs[j]; - fprintf(stream, + fprintf(syncState->graphsStream, "set key inside right bottom\n" "set xlabel \"Clock %1$u\"\n" "set xtics nomirror\n" @@ -679,6 +701,6 @@ static void writeProcessingGraphsOptionsLTTVStandard(FILE* stream, SyncState* "set x2tics\n" "set y2label \"Clock %3$d (s)\"\n" "set y2range [GPVAL_Y_MIN / %4$.1f : GPVAL_Y_MAX / %4$.1f]\n" - "set y2tics\n", i, (double) traceI->start_freq / traceI->freq_scale, - j, (double) traceJ->start_freq / traceJ->freq_scale); + "set y2tics\n", i, (double) traceI->startFreq / traceI->freqScale, j, + (double) traceJ->startFreq / traceJ->freqScale); }