X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4678cd89ee6899acf906fde04deafb37af31b64f..ab1a94e98438ed2d29533aca9e613d667237c3d0:/src/smpi/private.hpp diff --git a/src/smpi/private.hpp b/src/smpi/private.hpp index b0433fc3a5..b05de0c4a0 100644 --- a/src/smpi/private.hpp +++ b/src/smpi/private.hpp @@ -1,8 +1,22 @@ +/* Copyright (c) 2016. 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. */ + #ifndef SMPI_PRIVATE_HPP #define SMPI_PRIVATE_HPP +#include #include "src/instr/instr_smpi.h" +/** + * Get the address of the beginning of the memory page where addr is located. + * Note that we use an integer division here, so (a/b)*b is not a, unless a%b == 0 + * + * This is used when privatizing. + */ +#define TOPAGE(addr) (void *)(((unsigned long)(addr) / xbt_pagesize) * xbt_pagesize) + #ifdef HAVE_PAPI typedef std::vector> papi_counter_t; @@ -10,10 +24,12 @@ XBT_PRIVATE papi_counter_t& smpi_process_counter_data(void); XBT_PRIVATE int smpi_process_event_set(void); #endif -extern std::map location2speedup; -#endif +extern std::unordered_map location2speedup; -/** - * \brief Returns the last call location (filename, linenumber). Process-specific. - */ +/** @brief Returns the last call location (filename, linenumber). Process-specific. */ +extern "C" { XBT_PUBLIC(smpi_trace_call_location_t*) smpi_process_get_call_location(void); +XBT_PUBLIC(smpi_trace_call_location_t*) smpi_trace_get_call_location(); +} +#endif +