+ char str[INSTR_DEFAULT_STR_SIZE];
+ pajePushState(SIMIX_get_clock(), "MPI_STATE",
+ TRACE_smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE), operation);
+}
+
+void TRACE_smpi_collective_out(int rank, int root, const char *operation)
+{
+ if (!IS_TRACING_SMPI)
+ return;
+
+ char str[INSTR_DEFAULT_STR_SIZE];
+ pajePopState(SIMIX_get_clock(), "MPI_STATE",
+ TRACE_smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE));
+}
+
+void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation)
+{
+ if (!IS_TRACING_SMPI)
+ return;
+
+ char str[INSTR_DEFAULT_STR_SIZE];
+ pajePushState(SIMIX_get_clock(), "MPI_STATE",
+ TRACE_smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE), operation);
+}
+
+void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation)
+{
+ if (!IS_TRACING_SMPI)
+ return;
+
+ char str[INSTR_DEFAULT_STR_SIZE];
+ pajePopState(SIMIX_get_clock(), "MPI_STATE",
+ TRACE_smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE));
+}
+
+void TRACE_smpi_send(int rank, int src, int dst)
+{
+ if (!IS_TRACING_SMPI)
+ return;
+
+ char key[INSTR_DEFAULT_STR_SIZE], str[INSTR_DEFAULT_STR_SIZE];
+ TRACE_smpi_put_key(src, dst, key, INSTR_DEFAULT_STR_SIZE);
+ pajeStartLink(SIMIX_get_clock(), "MPI_LINK", "0", "PTP",
+ TRACE_smpi_container(src, str, INSTR_DEFAULT_STR_SIZE), key);
+}
+
+void TRACE_smpi_recv(int rank, int src, int dst)
+{
+ if (!IS_TRACING_SMPI)
+ return;
+
+ char key[INSTR_DEFAULT_STR_SIZE], str[INSTR_DEFAULT_STR_SIZE];
+ TRACE_smpi_get_key(src, dst, key, INSTR_DEFAULT_STR_SIZE);
+ pajeEndLink(SIMIX_get_clock(), "MPI_LINK", "0", "PTP",
+ TRACE_smpi_container(dst, str, INSTR_DEFAULT_STR_SIZE), key);
+}
+#endif