}
/* callback to decide if we want to use the model-checking */
+#include "xbt_modinter.h"
int _surf_do_model_check = 0; /* this variable is used accros the lib */
static void _surf_cfg_cb_model_check(const char *name, int pos) {
_surf_do_model_check = 1;
+ /* Tell modules using mallocators that they shouldn't. MC don't like them */
+ xbt_fifo_preinit();
+ xbt_dict_preinit();
}
#ifdef HAVE_GTNETS
/* create the config set, register what should be and parse the command line*/
void surf_config_init(int *argc, char **argv)
{
-
- /* Create the configuration support */
- if (_surf_init_status == 0) { /* Only create stuff if not already inited */
- _surf_init_status = 1;
-
char *description = xbt_malloc(1024), *p = description;
char *default_value;
double double_default_value;
int default_value_int;
int i;
+ /* Create the configuration support */
+ if (_surf_init_status == 0) { /* Only create stuff if not already inited */
+ _surf_init_status = 1;
+
sprintf(description, "The model to use for the CPU. Possible values: ");
p = description;
while (*(++p) != '\0');
{
char *workstation_model_name;
int workstation_id = -1;
-
+ char *network_model_name = NULL;
+ char *cpu_model_name = NULL;
surf_timer_model_init(platform_file);
workstation_model_name =
xbt_cfg_get_string(_surf_cfg_set, "workstation/model");
- char *network_model_name = xbt_cfg_get_string(_surf_cfg_set, "network/model");
- char *cpu_model_name = xbt_cfg_get_string(_surf_cfg_set, "cpu/model");
+ network_model_name = xbt_cfg_get_string(_surf_cfg_set, "network/model");
+ cpu_model_name = xbt_cfg_get_string(_surf_cfg_set, "cpu/model");
+ /* Check whether we use a net/cpu model differing from the default ones, in which case
+ * we should switch to the "compound" workstation model to correctly dispatch stuff to
+ * the right net/cpu models.
+ */
if ((strcmp(network_model_name,"LV08") || strcmp(cpu_model_name,"Cas01"))
&& !strcmp(workstation_model_name, "CLM03")){
const char *val = "compound";