00001 #ifndef _CONV_TRACE_H
00002 #define _CONV_TRACE_H
00003
00004 #include "converse.h"
00005
00006
00007
00008
00009
00010
00011 void traceInit(char **argv);
00012 void traceCharmInit(char **argv);
00013 void traceMessageRecv(char *msg, int pe);
00014 void traceBeginIdle(void);
00015 void traceEndIdle(void);
00016 void traceResume(CmiObjId *);
00017 void traceSuspend(void);
00018 void traceAwaken(CthThread t);
00019 void traceUserEvent(int);
00020 void traceUserBracketEvent(int, double, double);
00021 void traceUserSuppliedData(int);
00022 void traceUserSuppliedBracketedNote(char *note, int eventID, double bt, double et);
00023 void traceUserSuppliedNote(char*);
00024 void traceMemoryUsage();
00025 int traceRegisterUserEvent(const char*, int e
00026 #ifdef __cplusplus
00027 =-1
00028 #endif
00029 );
00030
00031 #if CMK_SMP_TRACE_COMMTHREAD
00032 int traceBeginCommOp(char *msg);
00033 void traceEndCommOp(char *msg);
00034 void traceSendMsgComm(char *msg);
00035 void traceCommSetMsgID(char *msg);
00036 #endif
00037 void traceChangeLastTimestamp(double ts);
00038 void traceGetMsgID(char *msg, int *pe, int *event);
00039 void traceSetMsgID(char *msg, int pe, int event);
00040
00041
00042 void registerMachineUserEventsFunction(void (*eventRegistrationFunc)());
00043
00044 int traceRegisterFunction(const char*, int idx
00045 #ifdef __cplusplus
00046 =-999
00047 #endif
00048 );
00049 void traceBeginFuncIndexProj(int, char* file, int);
00050 void traceEndFuncIndexProj(int);
00051
00052 void traceClose(void);
00053 void traceCharmClose(void);
00054 void traceBegin(void);
00055 void traceEnd(void);
00056 void traceWriteSts(void);
00057 void traceFlushLog(void);
00058
00059 #if CMK_TRACE_ENABLED
00060 CpvExtern(int, traceOn);
00061 #define traceIsOn() (CpvAccess(traceOn))
00062 #else
00063 #define traceIsOn() 0
00064 #endif
00065
00066 int traceAvailable();
00067
00068
00069 #if CMK_SMP_TRACE_COMMTHREAD
00070 #define TRACE_COMM_CREATION(time, msg) \
00071 if (traceBeginCommOp(msg)) { \
00072 traceChangeLastTimestamp(time); \
00073 traceSendMsgComm(msg); \
00074 traceEndCommOp(msg); \
00075 }
00076
00077 #define TRACE_COMM_CONTROL_CREATION(time0, time1, time2, msg) \
00078 if (traceBeginCommOp(msg)) { \
00079 traceChangeLastTimestamp(time0); \
00080 traceSendMsgComm(msg); \
00081 traceChangeLastTimestamp(time1); \
00082 traceEndCommOp(msg); \
00083 traceChangeLastTimestamp(time2); \
00084 }
00085
00086 #define TRACE_COMM_SET_MSGID(msg, pe, event) traceSetMsgID(msg, pe, event)
00087 #define TRACE_COMM_GET_MSGID(msg, pe, event) traceGetMsgID(msg, pe, event)
00088 #define TRACE_COMM_SET_COMM_MSGID(msg) traceCommSetMsgID(msg)
00089 #else
00090 #define TRACE_COMM_CREATION(time, msg)
00091 #define TRACE_COMM_CONTROL_CREATION(time0, time1, time2, msg)
00092 #define TRACE_COMM_SET_MSGID(msg, pe, event)
00093 #define TRACE_COMM_GET_MSGID(msg, pe, event)
00094 #define TRACE_COMM_SET_COMM_MSGID(msg)
00095 #endif
00096
00097 #endif