projector trace files
[charm.git] / src / conv-perf / traceCoreCommon.C
1
2 #include "traceCore.h"
3 #include "traceCoreCommon.h"
4 #include "converse.h"
5
6 /* Trace Module Constants (Default Values) */
7 #define TRACE_CORE_BUFFER_SIZE 10
8
9 /* Trace Storage and associated Structure */
10 CpvDeclare(int, _traceCoreOn);
11 CpvDeclare(double, _traceCoreInitTime);
12 CpvDeclare(char*, _traceCoreRoot);
13 CpvDeclare(int, _traceCoreBufferSize);
14 CpvDeclare(TraceCore*, _traceCore);
15
16 /* Trace Timer */
17 #define  TRACE_CORE_TIMER   CmiWallTimer
18 inline double TraceCoreTimer() { return TRACE_CORE_TIMER() - CpvAccess(_traceCoreInitTime); }
19
20 /*****************************************************************/
21 /* Tracing API 
22  * Implementation of functions declared in traceCoreCommon.h 
23  *****************************************************************/
24 /* Initialize TraceCore Module */
25 //TODO decide parameters from command line
26 //TODO - trace-common.C
27 extern "C" void initTraceCore(char** argv)
28 {
29   CpvInitialize(int, _traceCoreOn);
30         CpvAccess(_traceCoreOn) = 0;
31
32   CpvInitialize(char*, _traceCoreRoot);
33         CpvAccess(_traceCoreRoot) = (char *) malloc(strlen(argv[0])+1);
34         _MEMCHECK(CpvAccess(_traceCoreRoot));
35         strcpy(CpvAccess(_traceCoreRoot), argv[0]);
36
37   CpvInitialize(int, _traceCoreBufferSize);
38         CpvAccess(_traceCoreBufferSize) = TRACE_CORE_BUFFER_SIZE;
39
40   CpvInitialize(double, _traceCoreInitTime);
41         CpvAccess(_traceCoreInitTime) = TRACE_CORE_TIMER();
42
43   CpvInitialize(TraceCore*, _traceCore);
44         CpvAccess(_traceCore) = new TraceCore(argv);
45 }
46
47 /* End Core Trace Module */
48 //TODO - trace-common.C
49 extern "C" void closeTraceCore() {}
50
51 /* Resume Core Trace Module */
52 //TODO - trace-common.C
53 extern "C" void resumeTraceCore() {}
54
55 /* Suspend Core Trace Module */
56 //TODO - trace-common.C
57 extern "C" void suspendTraceCore() {}
58
59 /*Install the beginIdle/endIdle condition handlers.*/
60 //TODO - trace-common.C
61 extern "C" void beginTraceCore(void) {}
62
63 /*Cancel the beginIdle/endIdle condition handlers.*/
64 //TODO - trace-common.C
65 extern "C" void endTraceCore(void) {}
66
67 /*****************************************************************/
68 /* Tracing API 
69  * Implementation of functions declared in traceCoreAPI.h 
70  *****************************************************************/
71 extern "C" void RegisterLanguage(int lID, char* ln)
72 { CpvAccess(_traceCore)->RegisterLanguage(lID, ln); }
73
74 extern "C" void RegisterEvent(int lID, int eID)
75 { CpvAccess(_traceCore)->RegisterEvent(lID, eID); }
76
77 extern "C" void LogEvent(int lID, int eID)
78 { CpvAccess(_traceCore)->LogEvent(lID, eID); }
79
80 extern "C" void LogEvent1(int lID, int eID, int iLen, int* iData)
81 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData); }
82
83 extern "C" void LogEvent2(int lID, int eID, int sLen, char* sData)
84 { CpvAccess(_traceCore)->LogEvent(lID, eID, sLen, sData); }
85
86 extern "C" void LogEvent3(int lID, int eID, int iLen, int* iData, int sLen, char* sData)
87 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData, sLen, sData); }
88
89
90