X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8df87e176f27b25534f27d7e240defa32ca35bc..396200308fb93b455f0e0fe14a8b64410e51671c:/src/smpi/plugins/ampi/ampi.cpp diff --git a/src/smpi/plugins/ampi/ampi.cpp b/src/smpi/plugins/ampi/ampi.cpp index e823b3205c..9888163092 100644 --- a/src/smpi/plugins/ampi/ampi.cpp +++ b/src/smpi/plugins/ampi/ampi.cpp @@ -5,23 +5,22 @@ #include #include -#include +#include #include +#include #include -#include #include +#include -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(plugin_pampi, smpi, "Logging specific to the AMPI functions"); +#include "ampi.hpp" +#include 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); // FIXME Use declarations from sampi.h instead -extern "C" XBT_PUBLIC void _sampi_free(void* ptr); -extern "C" XBT_PUBLIC void* _sampi_calloc(size_t num_elm, size_t elem_size); -extern "C" XBT_PUBLIC void* _sampi_realloc(void* ptr, size_t size); + extern "C" void* _sampi_malloc(size_t size) { - void* result = malloc (size); // We need the space here to prevent recursive substitution + void* result = xbt_malloc(size); alloc_table.insert({result, size}); if (not simgrid::s4u::this_actor::is_maestro()) { memory_size[simgrid::s4u::this_actor::get_pid()] += size; @@ -34,12 +33,12 @@ 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; - free(ptr); + xbt_free(ptr); } extern "C" void* _sampi_calloc(size_t num_elm, size_t elem_size) { - void* result = calloc (num_elm, elem_size); // We need the space here to prevent recursive substitution + void* result = xbt_malloc0(num_elm * elem_size); alloc_table.insert({result, num_elm * elem_size}); if (not simgrid::s4u::this_actor::is_maestro()) { memory_size[simgrid::s4u::this_actor::get_pid()] += num_elm * elem_size; @@ -48,7 +47,7 @@ extern "C" void* _sampi_calloc(size_t num_elm, size_t elem_size) } extern "C" void* _sampi_realloc(void* ptr, size_t size) { - void* result = realloc (ptr, size); // We need the space here to prevent recursive substitution + void* result = xbt_realloc(ptr, size); int old_size = alloc_table.at(ptr); alloc_table.erase(ptr); alloc_table.insert({result, size}); @@ -58,14 +57,12 @@ extern "C" void* _sampi_realloc(void* ptr, size_t size) return result; } -#include "ampi.hpp" -#include namespace simgrid { namespace smpi { namespace plugin { namespace ampi { - simgrid::xbt::signal on_iteration_in; - simgrid::xbt::signal on_iteration_out; +simgrid::xbt::signal on_iteration_in; +simgrid::xbt::signal on_iteration_out; } } }