/* This file is part of the Linux Trace Toolkit viewer
- * Copyright (C) 2009 Benjamin Poirier <benjamin.poirier@polymtl.ca>
+ * Copyright (C) 2009, 2010 Benjamin Poirier <benjamin.poirier@polymtl.ca>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License Version 2 as
- * published by the Free Software Foundation;
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2.1 of the License, or (at
+ * your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ * License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
#endif
#include <errno.h>
+#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "event_matching_broadcast.h"
-#ifndef g_info
-#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format)
-#endif
-
-
// Functions common to all matching modules
static void initMatchingBroadcast(SyncState* const syncState);
static void destroyMatchingBroadcast(SyncState* const syncState);
static void matchEventBroadcast(SyncState* const syncState, Event* const event);
-static GArray* finalizeMatchingBroadcast(SyncState* const syncState);
+static AllFactors* finalizeMatchingBroadcast(SyncState* const syncState);
static void printMatchingStatsBroadcast(SyncState* const syncState);
static void writeMatchingGraphsPlotsBroadcast(SyncState* const syncState, const
unsigned int i, const unsigned int j);
// Functions specific to this module
-static void registerMatchingBroadcast() __attribute__((constructor (101)));
-
static void partialDestroyMatchingBroadcast(SyncState* const syncState);
static void openGraphDataFiles(SyncState* const syncState);
/*
* Matching module registering function
*/
-static void registerMatchingBroadcast()
+void registerMatchingBroadcast()
{
g_queue_push_tail(&matchingModules, &matchingModuleBroadcast);
}
* syncState container for synchronization data.
*
* Returns:
- * Factors[traceNb] synchronization factors for each trace
+ * AllFactors* synchronization factors for each trace pair
*/
-static GArray* finalizeMatchingBroadcast(SyncState* const syncState)
+static AllFactors* finalizeMatchingBroadcast(SyncState* const syncState)
{
MatchingDataBroadcast* matchingData;
MatchingGraphsBroadcast* graphs= ((MatchingDataBroadcast*)
syncState->matchingData)->graphs;
- cwd= changeToGraphDir(syncState->graphsDir);
+ cwd= changeToGraphsDir(syncState->graphsDir);
graphs->accuracyPoints= malloc(syncState->traceNb * sizeof(FILE**));
graphs->pointsNb= malloc(syncState->traceNb * sizeof(unsigned int*));
g_assert_cmpint(retval, <=, sizeof(name) - 1);
if ((graphs->accuracyPoints[i][j]= fopen(name, "w")) == NULL)
{
- g_error(strerror(errno));
+ g_error("%s", strerror(errno));
}
}
}
retval= chdir(cwd);
if (retval == -1)
{
- g_error(strerror(errno));
+ g_error("%s", strerror(errno));
}
free(cwd);
}
if (eventI->traceNum < eventJ->traceNum)
{
fprintf(graphs->accuracyPoints[eventJ->traceNum][eventI->traceNum],
- "%20llu %20.9f\n", eventI->cpuTime,
+ "%20" PRIu64 " %20.9f\n", eventI->cpuTime,
wallTimeSub(&eventJ->wallTime, &eventI->wallTime));
graphs->pointsNb[eventJ->traceNum][eventI->traceNum]++;
}
retval= fclose(graphs->accuracyPoints[i][j]);
if (retval != 0)
{
- g_error(strerror(errno));
+ g_error("%s", strerror(errno));
}
}
free(graphs->accuracyPoints[i]);