Quiet constness warnings about string constants passed to REGISTER_LANGUAGE.
[charm.git] / src / conv-perf / traceCoreCommon.C
index a5f65ef4449d23c047f0ee2825ebd385d8764292..fb8d757fda292145820e33d2d770ee64a292b5e5 100644 (file)
@@ -1,7 +1,9 @@
 
 #include "traceCore.h"
+#include "traceCoreAPI.h"
 #include "traceCoreCommon.h"
 #include "charmProjections.h"
+//#include "ampiProjections.h"
 #include "converse.h"
 
 
@@ -9,7 +11,9 @@
 #define TRACE_CORE_BUFFER_SIZE 10
 
 /* Trace Storage and associated Structure */
+extern "C" {
 CpvDeclare(int, _traceCoreOn);
+}
 CpvDeclare(double, _traceCoreInitTime);
 CpvDeclare(char*, _traceCoreRoot);
 CpvDeclare(int, _traceCoreBufferSize);
@@ -44,12 +48,16 @@ extern "C" void initTraceCore(char** argv)
 
   CpvInitialize(TraceCore*, _traceCore);
        CpvAccess(_traceCore) = new TraceCore(argv);
-  initCharmProjections();
+ // initCharmProjections();
+ // initAmpiProjections();
 }
 
 /* End Core Trace Module */
 //TODO - trace-common.C
-extern "C" void closeTraceCore() {}
+extern "C" void closeTraceCore() {
+       //closeAmpiProjections();
+       delete CpvAccess(_traceCore);
+}
 
 /* Resume Core Trace Module */
 //TODO - trace-common.C
@@ -71,24 +79,26 @@ extern "C" void endTraceCore(void) {}
 /* Tracing API 
  * Implementation of functions declared in traceCoreAPI.h 
  *****************************************************************/
-extern "C" void RegisterLanguage(int lID, char* ln)
-{ CpvAccess(_traceCore)->RegisterLanguage(lID, ln); }
+extern "C" void RegisterLanguage(int lID, const char* ln)
+{ LOGCONDITIONAL(CpvAccess(_traceCore)->RegisterLanguage(lID, ln)); }
 
 extern "C" void RegisterEvent(int lID, int eID)
-{ CpvAccess(_traceCore)->RegisterEvent(lID, eID); }
+{ LOGCONDITIONAL(CpvAccess(_traceCore)->RegisterEvent(lID, eID)); }
 
+/* These Log routines will segfault if called under CMK_OPTIMIZE;
+   the solution is to surround their callers with LOGCONDITIONAL. */
 extern "C" void LogEvent(int lID, int eID)
 { CpvAccess(_traceCore)->LogEvent(lID, eID); }
 
-extern "C" void LogEvent1(int lID, int eID, int iLen, int* iData)
+extern "C" void LogEvent1(int lID, int eID, int iLen, const int* iData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData); }
 
-extern "C" void LogEvent2(int lID, int eID, int sLen, char* sData)
+extern "C" void LogEvent2(int lID, int eID, int sLen, const char* sData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, sLen, sData); }
 
-extern "C" void LogEvent3(int lID, int eID, int iLen, int* iData, int sLen, char* sData)
+extern "C" void LogEvent3(int lID, int eID, int iLen, const int* iData, int sLen, const char* sData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData, sLen, sData); }
 
-extern "C" void LogEvent4(int lID, int eID, int iLen, int* iData, double t)
+extern "C" void LogEvent4(int lID, int eID, int iLen, const int* iData, double t)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData,t); }