extern XBT_PRIVATE char* smpi_data_exe_start; // start of the data+bss segment of the executable
extern XBT_PRIVATE int smpi_data_exe_size; // size of the data+bss segment of the executable
-typedef enum { shmalloc_none, shmalloc_local, shmalloc_global } shared_malloc_type;
+enum shared_malloc_type { shmalloc_none, shmalloc_local, shmalloc_global };
extern XBT_PRIVATE shared_malloc_type smpi_cfg_shared_malloc; // Whether to activate shared malloc
XBT_PRIVATE void smpi_switch_data_segment(int dest);
XBT_PRIVATE int smpi_is_privatization_file(char* file);
XBT_PRIVATE void smpi_get_executable_global_size();
-XBT_PRIVATE void smpi_initialize_global_memory_segments();
+XBT_PRIVATE void smpi_backup_global_memory_segment();
XBT_PRIVATE void smpi_destroy_global_memory_segments();
XBT_PRIVATE void smpi_bench_destroy();
XBT_PRIVATE void smpi_bench_begin();
// TODO, make this static and expose it more cleanly
-typedef struct s_smpi_privatization_region {
+struct s_smpi_privatization_region_t {
void* address;
int file_descriptor;
-} s_smpi_privatization_region_t;
+};
typedef s_smpi_privatization_region_t* smpi_privatization_region_t;
-extern XBT_PRIVATE smpi_privatization_region_t smpi_privatization_regions;
+// extern XBT_PRIVATE smpi_privatization_region_t smpi_privatization_regions;
extern XBT_PRIVATE int smpi_loaded_page;
extern XBT_PRIVATE int smpi_universe_size;
+XBT_PRIVATE smpi_privatization_region_t smpi_init_global_memory_segment_process();
}
/**
XBT_PUBLIC(smpi_trace_call_location_t*) smpi_trace_get_call_location();
}
-typedef enum {
+enum smpi_priv_strategies {
SMPI_PRIVATIZE_NONE = 0,
SMPI_PRIVATIZE_MMAP = 1,
SMPI_PRIVATIZE_DLOPEN = 2,
SMPI_PRIVATIZE_DEFAULT = SMPI_PRIVATIZE_MMAP
-} smpi_priv_strategies;
+};
extern XBT_PRIVATE int smpi_privatize_global_variables;