|
SimGrid
3.18
Versatile Simulation of Distributed Systems
|
#include <cerrno>#include <climits>#include <cstdint>#include <cstdio>#include <cstdlib>#include <cstring>#include <deque>#include <fcntl.h>#include <sys/stat.h>#include <sys/types.h>#include <vector>#include <sys/mman.h>#include <unistd.h>#include "src/internal_config.h"#include "src/xbt/memory_map.hpp"#include "private.hpp"#include "smpi_process.hpp"Macros | |
| #define | asan_safe_memcpy(dest, src, n) memcpy(dest, src, n) |
Functions | |
| XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_memory, smpi, "Memory layout support for SMPI") | |
| void | smpi_get_executable_global_size () |
| void | smpi_switch_data_segment (int dest) |
| Map a given SMPI privatization segment (make a SMPI process active) More... | |
| void | smpi_really_switch_data_segment (int dest) |
| Map a given SMPI privatization segment (make a SMPI process active) even if SMPI thinks it is already active. More... | |
| int | smpi_is_privatization_file (char *file) |
| void | smpi_backup_global_memory_segment () |
| smpi_privatization_region_t | smpi_init_global_memory_segment_process () |
| void | smpi_destroy_global_memory_segments () |
Variables | |
| int | smpi_loaded_page = -1 |
| char * | smpi_data_exe_start = nullptr |
| int | smpi_data_exe_size = 0 |
| int | smpi_privatize_global_variables |
| static void * | smpi_data_exe_copy |
| static std::deque< s_smpi_privatization_region_t > | smpi_privatization_regions |
| static const int | PROT_RWX = (PROT_READ | PROT_WRITE | PROT_EXEC) |
| static const int | PROT_RW = (PROT_READ | PROT_WRITE ) |
| static XBT_ATTRIB_UNUSED const int | PROT_RX = (PROT_READ | PROT_EXEC ) |
| XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | smpi_memory | , |
| smpi | , | ||
| "Memory layout support for SMPI" | |||
| ) |
| void smpi_get_executable_global_size | ( | ) |
| void smpi_switch_data_segment | ( | int | dest | ) |
Map a given SMPI privatization segment (make a SMPI process active)
| void smpi_really_switch_data_segment | ( | int | dest | ) |
Map a given SMPI privatization segment (make a SMPI process active) even if SMPI thinks it is already active.
When doing a state restoration, the state of the restored variables might not be consistent with the state of the virtual memory. In this case, we to change the data segment.
| int smpi_is_privatization_file | ( | char * | file | ) |
| void smpi_backup_global_memory_segment | ( | ) |
| smpi_privatization_region_t smpi_init_global_memory_segment_process | ( | ) |
| void smpi_destroy_global_memory_segments | ( | ) |
| int smpi_loaded_page = -1 |
| char* smpi_data_exe_start = nullptr |
| int smpi_data_exe_size = 0 |
| int smpi_privatize_global_variables |
|
static |
|
static |
|
static |
|
static |
|
static |