+void print_pajeDefineContainerType(paje_event_t event);
+void print_pajeDefineVariableType(paje_event_t event);
+void print_pajeDefineStateType(paje_event_t event);
+void print_pajeDefineEventType(paje_event_t event);
+void print_pajeDefineLinkType(paje_event_t event);
+void print_pajeDefineEntityValue (paje_event_t event);
+void print_pajeCreateContainer(paje_event_t event);
+void print_pajeDestroyContainer(paje_event_t event);
+void print_pajeSetVariable(paje_event_t event);
+void print_pajeAddVariable(paje_event_t event);
+void print_pajeSubVariable(paje_event_t event);
+void print_pajeSetState(paje_event_t event);
+void print_pajePushState(paje_event_t event);
+void print_pajePopState(paje_event_t event);
+void print_pajeResetState(paje_event_t event);
+void print_pajeStartLink(paje_event_t event);
+void print_pajeEndLink(paje_event_t event);
+void print_pajeNewEvent (paje_event_t event);
+
+void print_TIPushState(paje_event_t event);
+void print_TICreateContainer(paje_event_t event);
+void print_TIDestroyContainer(paje_event_t event);
+void TRACE_TI_start(void);
+void TRACE_TI_end(void);
+void TRACE_TI_init(void);
+
+void print_NULL (paje_event_t event);
+void TRACE_paje_dump_buffer (int force);
+void dump_comment_file (const char *filename);
+void dump_comment (const char *comment);
+
+
+
+
+typedef struct instr_trace_writer {
+ void (*print_DefineContainerType) (paje_event_t event);
+ void (*print_DefineVariableType)(paje_event_t event);
+ void (*print_DefineStateType)(paje_event_t event);
+ void (*print_DefineEventType)(paje_event_t event);
+ void (*print_DefineLinkType)(paje_event_t event);
+ void (*print_DefineEntityValue)(paje_event_t event);
+ void (*print_CreateContainer)(paje_event_t event);
+ void (*print_DestroyContainer)(paje_event_t event);
+ void (*print_SetVariable)(paje_event_t event);
+ void (*print_AddVariable)(paje_event_t event);
+ void (*print_SubVariable)(paje_event_t event);
+ void (*print_SetState)(paje_event_t event);
+ void (*print_PushState)(paje_event_t event);
+ void (*print_PopState)(paje_event_t event);
+ void (*print_ResetState)(paje_event_t event);
+ void (*print_StartLink)(paje_event_t event);
+ void (*print_EndLink)(paje_event_t event);
+ void (*print_NewEvent) (paje_event_t event);
+} s_instr_trace_writer_t;
+
+
+
+struct s_instr_extra_data;
+typedef struct s_instr_extra_data *instr_extra_data;
+
+
+typedef enum{
+ TRACING_INIT,
+ TRACING_FINALIZE,
+ TRACING_COMM_SIZE,
+ TRACING_COMM_SPLIT,
+ TRACING_COMM_DUP,
+ TRACING_SEND,
+ TRACING_ISEND,
+ TRACING_SSEND,
+ TRACING_ISSEND,
+ TRACING_RECV,
+ TRACING_IRECV,
+ TRACING_SENDRECV,
+ TRACING_WAIT,
+ TRACING_WAITALL,
+ TRACING_WAITANY,
+ TRACING_BARRIER,
+ TRACING_BCAST,
+ TRACING_REDUCE,
+ TRACING_ALLREDUCE,
+ TRACING_ALLTOALL,
+ TRACING_ALLTOALLV,
+ TRACING_GATHER,
+ TRACING_GATHERV,
+ TRACING_SCATTER,
+ TRACING_SCATTERV,
+ TRACING_ALLGATHER,
+ TRACING_ALLGATHERV,
+ TRACING_REDUCE_SCATTER,
+ TRACING_COMPUTING,
+ TRACING_SCAN,
+ TRACING_EXSCAN
+} e_caller_type ;
+
+
+
+typedef struct s_instr_extra_data {
+ e_caller_type type;
+ int send_size;
+ int recv_size;
+ double comp_size;
+ int src;
+ int dst;
+ int root;
+ const char* datatype1;
+ const char* datatype2;
+ int * sendcounts;
+ int * recvcounts;
+ int num_processes;
+} s_instr_extra_data_t;
+
+SG_END_DECL()