X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e6519232ea0fda60637bc6e3ccfb575e25bf3378..7ce99dabe2893cb9a77e20b7cdec5efd325ec671:/src/smpi/plugins/ampi/ampi.cpp diff --git a/src/smpi/plugins/ampi/ampi.cpp b/src/smpi/plugins/ampi/ampi.cpp index e743c3b3a5..d2780deb9f 100644 --- a/src/smpi/plugins/ampi/ampi.cpp +++ b/src/smpi/plugins/ampi/ampi.cpp @@ -1,20 +1,20 @@ #include #include -#include #include #include +#include +#include #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(plugin_pampi, smpi, "Logging specific to the AMPI functions"); -extern "C" void* __libc_malloc(size_t size); -extern "C" void* __libc_free(void* ptr); static std::vector memory_size(500, 0); // FIXME cheinrich This needs to be dynamic static std::map alloc_table; // Keep track of all allocations - +extern "C" XBT_PUBLIC void* _sampi_malloc(size_t); +extern "C" XBT_PUBLIC void _sampi_free(void* ptr); extern "C" void* _sampi_malloc(size_t size) { - void* result = __libc_malloc (size); // We need the space here to prevent recursive substitution + void* result = malloc (size); // We need the space here to prevent recursive substitution alloc_table.insert({result, size}); if (not simgrid::s4u::this_actor::is_maestro()) { memory_size[simgrid::s4u::this_actor::get_pid()] += size; @@ -27,7 +27,20 @@ extern "C" void _sampi_free(void* ptr) size_t alloc_size = alloc_table.at(ptr); int my_proc_id = simgrid::s4u::this_actor::get_pid(); memory_size[my_proc_id] -= alloc_size; - __libc_free(ptr); + free(ptr); +} + +#include "ampi.hpp" +#include +namespace simgrid { +namespace smpi { +namespace plugin { +namespace ampi { + simgrid::xbt::signal on_iteration_in; + simgrid::xbt::signal on_iteration_out; +} +} +} } /* FIXME The following contains several times "rank() + 1". This works for one