+/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
#include "mc/mc.h"
-#include "private.h"
-#include "simgrid/s4u/Mailbox.hpp"
-#include "src/kernel/activity/SynchroComm.hpp"
-#include "src/mc/mc_record.h"
#include "src/mc/mc_replay.h"
#include "src/msg/msg_private.h"
#include "src/simix/smx_private.h"
-#include "surf/surf.h"
-#include "xbt/replay.hpp"
+#include "src/smpi/private.h"
+#include "src/smpi/smpi_process.hpp"
+#include "src/smpi/smpi_group.hpp"
+#include "src/smpi/smpi_comm.hpp"
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_process, smpi, "Logging specific to SMPI (kernel)");
namespace simgrid{
namespace smpi{
-Process::Process(int index)
+Process::Process(int index, msg_bar_t finalization_barrier)
+ : finalization_barrier_(finalization_barrier)
{
char name[MAILBOX_NAME_MAXLEN];
mailbox_ = simgrid::s4u::Mailbox::byName(get_mailbox_name(name, index));
void Process::set_data(int index, int* argc, char*** argv)
{
-
char* instance_id = (*argv)[1];
comm_world_ = smpi_deployment_comm_world(instance_id);
msg_bar_t bar = smpi_deployment_finalization_barrier(instance_id);
return false;
}
+void Process::set_user_data(void *data)
+{
+ data_ = data;
+}
+
+void *Process::get_user_data()
+{
+ return data_;
+}
+
smx_actor_t Process::process(){
return process_;
}
}
#if HAVE_PAPI
-int Process::papi_event_set(void)
+int Process::papi_event_set()
{
return papi_event_set_;
}
-papi_counter_t& smpi_process_papi_counters(void)
+papi_counter_t& smpi_process_papi_counters()
{
return papi_counter_data_;
}
return sampling_;
}
-void Process::set_finalization_barrier(msg_bar_t bar){
- finalization_barrier_=bar;
-}
-
msg_bar_t Process::finalization_barrier(){
return finalization_barrier_;
}