00001
00005
00006 #ifndef __TRACE_COMMON_H__
00007 #define __TRACE_COMMON_H__
00008
00009
00010 #include <stdlib.h>
00011 #if defined(_WIN32) && !defined(__CYGWIN__)
00012 #include <direct.h>
00013 #define CHDIR _chdir
00014 #define GETCWD _getcwd
00015 #define PATHSEP '\\'
00016 #define PATHSEPSTR "\\"
00017 #else
00018 #include <unistd.h>
00019 #define CHDIR chdir
00020 #define GETCWD getcwd
00021 #define PATHSEP '/'
00022 #define PATHSEPSTR "/"
00023 #endif
00024
00025
00026 #define CREATION 1
00027 #define BEGIN_PROCESSING 2
00028 #define END_PROCESSING 3
00029 #define ENQUEUE 4
00030 #define DEQUEUE 5
00031 #define BEGIN_COMPUTATION 6
00032 #define END_COMPUTATION 7
00033 #define BEGIN_INTERRUPT 8
00034 #define END_INTERRUPT 9
00035 #define MESSAGE_RECV 10
00036 #define BEGIN_TRACE 11
00037 #define END_TRACE 12
00038 #define USER_EVENT 13
00039 #define BEGIN_IDLE 14
00040 #define END_IDLE 15
00041 #define BEGIN_PACK 16
00042 #define END_PACK 17
00043 #define BEGIN_UNPACK 18
00044 #define END_UNPACK 19
00045 #define CREATION_BCAST 20
00046
00047 #define CREATION_MULTICAST 21
00048
00049 #define BEGIN_FUNC 22
00050 #define END_FUNC 23
00051
00052
00053 #define MEMORY_MALLOC 24
00054 #define MEMORY_FREE 25
00055
00056
00057 #define USER_SUPPLIED 26
00058
00059
00060 #define MEMORY_USAGE_CURRENT 27
00061
00062
00063 #define USER_SUPPLIED_NOTE 28
00064
00065
00066 #define USER_SUPPLIED_BRACKETED_NOTE 29
00067
00068
00069 #define END_PHASE 30
00070 #define SURROGATE_BLOCK 31
00071
00072 #define USER_EVENT_PAIR 100
00073
00074 CkpvExtern(CmiInt8, CtrLogBufSize);
00075 CkpvExtern(char*, traceRoot);
00076 CkpvExtern(int, traceRootBaseLength);
00077 CkpvExtern(char*, selective);
00078 CkpvExtern(bool, verbose);
00079 CkpvExtern(double, traceInitTime);
00080 CkpvExtern(double, traceInitCpuTime);
00081
00082 #if CMK_BIGSIM_CHARM
00083 #define TRACE_TIMER BgGetTime
00084 #define TRACE_CPUTIMER BgGetTime
00085 inline double TraceTimer() { return TRACE_TIMER(); }
00086 inline double TraceTimer(double t) { return t; }
00087 inline double TraceCpuTimer() { return TRACE_TIMER(); }
00088 inline double TraceCpuTimer(double t) { return t; }
00089 #else
00090 #define TRACE_TIMER CmiWallTimer
00091 #define TRACE_CPUTIMER CmiCpuTimer
00092 inline double TraceTimer() { return TRACE_TIMER() - CkpvAccess(traceInitTime); }
00093 inline double TraceTimer(double t) { return t - CkpvAccess(traceInitTime); }
00094 inline double TraceCpuTimer() { return TRACE_CPUTIMER() - CkpvAccess(traceInitCpuTime); }
00095 inline double TraceCpuTimer(double t) { return t - CkpvAccess(traceInitCpuTime); }
00096 #endif
00097
00098 #define TRACE_WARN(msg) if (CkpvAccess(verbose)) CmiPrintf(msg)
00099
00101 extern int _threadMsg, _threadChare, _threadEP;
00102 extern int _packMsg, _packChare, _packEP;
00103 extern int _unpackMsg, _unpackChare, _unpackEP;
00104 extern int _dummyMsg, _dummyChare, _dummyEP;
00105
00107 extern void traceWriteSTS(FILE *stsfp,int nUserEvents);
00108
00109 extern "C" void (*registerMachineUserEvents())();
00110
00111 #endif
00112