* under the terms of the license (GNU LGPL) which comes with this package. */
#ifndef INSTR_SMPI_H_
-#define INSTR_SMPI_H_
+#define INSTR_SMPI_H_
+
#ifdef __cplusplus
#include <string>
-extern "C" {
#endif
+#include "smpi/smpi.h"
+#include "src/instr/instr_private.h"
+
+SG_BEGIN_DECL()
+
+XBT_PRIVATE void TRACE_internal_smpi_set_category(const char* category);
+XBT_PRIVATE const char* TRACE_internal_smpi_get_category();
+XBT_PRIVATE void TRACE_smpi_collective_in(int rank, int root, const char* operation, instr_extra_data extra);
+XBT_PRIVATE void TRACE_smpi_collective_out(int rank, int root, const char* operation);
+XBT_PRIVATE void TRACE_smpi_computing_init(int rank);
+XBT_PRIVATE void TRACE_smpi_computing_out(int rank);
+XBT_PRIVATE void TRACE_smpi_computing_in(int rank, instr_extra_data extra);
+XBT_PRIVATE void TRACE_smpi_sleeping_init(int rank);
+XBT_PRIVATE void TRACE_smpi_sleeping_out(int rank);
+XBT_PRIVATE void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra);
+XBT_PRIVATE void TRACE_smpi_testing_out(int rank);
+XBT_PRIVATE void TRACE_smpi_testing_in(int rank, instr_extra_data extra);
+XBT_PRIVATE void TRACE_smpi_alloc();
+XBT_PRIVATE void TRACE_smpi_release();
+XBT_PRIVATE void TRACE_smpi_ptp_in(int rank, int src, int dst, const char* operation, instr_extra_data extra);
+XBT_PRIVATE void TRACE_smpi_ptp_out(int rank, int src, int dst, const char* operation);
+XBT_PRIVATE void TRACE_smpi_send(int rank, int src, int dst, int tag, int size);
+XBT_PRIVATE void TRACE_smpi_recv(int rank, int src, int dst, int tag);
+XBT_PRIVATE void TRACE_smpi_init(int rank);
+XBT_PRIVATE void TRACE_smpi_finalize(int rank);
+XBT_PRIVATE char* smpi_container(int rank, char* container, int n);
+
+XBT_PRIVATE const char* encode_datatype(MPI_Datatype datatype, int* known);
+
typedef struct smpi_trace_call_location {
const char* filename;
int linenumber;
} smpi_trace_call_location_t;
-#ifdef __cplusplus
-}
-#endif
+SG_END_DECL()
+
#endif
#include "smpi/smpi.h"
#include "simgrid/msg.h" // msg_bar_t
-#include "src/instr/instr_private.h"
SG_BEGIN_DECL()
void mpi_file_read_ ( int* fh, void* buf, int* count, int* datatype, MPI_Status* status, int* ierr);
void mpi_file_write_ ( int* fh, void* buf, int* count, int* datatype, MPI_Status* status, int* ierr);
-/********** Tracing **********/
-/* from instr_smpi.c */
-XBT_PRIVATE void TRACE_internal_smpi_set_category (const char *category);
-XBT_PRIVATE const char *TRACE_internal_smpi_get_category ();
-XBT_PRIVATE void TRACE_smpi_collective_in(int rank, int root, const char *operation, instr_extra_data extra);
-XBT_PRIVATE void TRACE_smpi_collective_out(int rank, int root, const char *operation);
-XBT_PRIVATE void TRACE_smpi_computing_init(int rank);
-XBT_PRIVATE void TRACE_smpi_computing_out(int rank);
-XBT_PRIVATE void TRACE_smpi_computing_in(int rank, instr_extra_data extra);
-XBT_PRIVATE void TRACE_smpi_sleeping_init(int rank);
-XBT_PRIVATE void TRACE_smpi_sleeping_out(int rank);
-XBT_PRIVATE void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra);
-XBT_PRIVATE void TRACE_smpi_testing_out(int rank);
-XBT_PRIVATE void TRACE_smpi_testing_in(int rank, instr_extra_data extra);
-XBT_PRIVATE void TRACE_smpi_alloc();
-XBT_PRIVATE void TRACE_smpi_release();
-XBT_PRIVATE void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, instr_extra_data extra);
-XBT_PRIVATE void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation);
-XBT_PRIVATE void TRACE_smpi_send(int rank, int src, int dst, int tag, int size);
-XBT_PRIVATE void TRACE_smpi_recv(int rank, int src, int dst, int tag);
-XBT_PRIVATE void TRACE_smpi_init(int rank);
-XBT_PRIVATE void TRACE_smpi_finalize(int rank);
-XBT_PRIVATE char *smpi_container(int rank, char *container, int n);
-
-XBT_PRIVATE const char* encode_datatype(MPI_Datatype datatype, int* known);
-
// TODO, make this static and expose it more cleanly
typedef struct s_smpi_privatisation_region {