/********************************* Host **************************************/ msg_host_t __MSG_host_create(smx_host_t workstation) { const char *name = SIMIX_host_get_name(workstation); msg_host_priv_t host = xbt_new0(s_msg_host_priv_t, 1); s_msg_vm_t vm; // simply to compute the offset host->vms = xbt_swag_new(xbt_swag_offset(vm,host_vms_hookup)); #ifdef MSG_USE_DEPRECATED int i; char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */ if (msg_global->max_channel > 0) host->mailboxes = xbt_new0(msg_mailbox_t, msg_global->max_channel); for (i = 0; i < msg_global->max_channel; i++) { sprintf(alias, "%s:%d", name, i); /* the key of the mailbox (in this case) is build from the name of the host and the channel number */ host->mailboxes[i] = MSG_mailbox_new(alias); memset(alias, 0, MAX_ALIAS_NAME + 1); } #endif xbt_lib_set(host_lib,name,MSG_HOST_LEVEL,host); return xbt_lib_get_elm_or_null(host_lib, name); }
/********************************* Host **************************************/ msg_host_t __MSG_host_create(sg_host_t host) // FIXME: don't return our parameter { msg_host_priv_t priv = xbt_new0(s_msg_host_priv_t, 1); #ifdef MSG_USE_DEPRECATED int i; char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */ priv->mailboxes = (msg_global->max_channel > 0) ? xbt_new0(msg_mailbox_t, msg_global->max_channel) : NULL; for (i = 0; i < msg_global->max_channel; i++) { sprintf(alias, "%s:%d", name, i); /* the key of the mailbox (in this case) is build from the name of the host and the channel number */ priv->mailboxes[i] = MSG_mailbox_new(alias); memset(alias, 0, MAX_ALIAS_NAME + 1); } #endif priv->dp_objs = xbt_dict_new(); priv->dp_enabled = 0; priv->dp_updated_by_deleted_tasks = 0; priv->is_migrating = 0; priv->affinity_mask_db = xbt_dict_new_homogeneous(NULL); sg_host_msg_set(host,priv); return host; }
/********************************* Host **************************************/ m_host_t __MSG_host_create(smx_host_t workstation, void *data) { const char *name; simdata_host_t simdata = xbt_new0(s_simdata_host_t, 1); m_host_t host = xbt_new0(s_m_host_t, 1); int i; char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */ name = SIMIX_host_get_name(workstation); /* Host structure */ host->name = xbt_strdup(name); host->simdata = simdata; host->data = data; simdata->smx_host = workstation; if (msg_global->max_channel > 0) simdata->mailboxes = xbt_new0(msg_mailbox_t, msg_global->max_channel); for (i = 0; i < msg_global->max_channel; i++) { sprintf(alias, "%s:%d", name, i); /* the key of the mailbox (in this case) is build from the name of the host and the channel number */ simdata->mailboxes[i] = MSG_mailbox_new(alias); memset(alias, 0, MAX_ALIAS_NAME + 1); } SIMIX_req_host_set_data(workstation, host); xbt_lib_set(host_lib,name,MSG_HOST_LEVEL,host); return host; }
/********************************* Host **************************************/ msg_host_t __MSG_host_create(smx_host_t workstation) { const char *name = SIMIX_host_get_name(workstation); msg_host_priv_t priv = xbt_new0(s_msg_host_priv_t, 1); #ifdef MSG_USE_DEPRECATED int i; char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */ priv->mailboxes = (msg_global->max_channel > 0) ? xbt_new0(msg_mailbox_t, msg_global->max_channel) : NULL; for (i = 0; i < msg_global->max_channel; i++) { sprintf(alias, "%s:%d", name, i); /* the key of the mailbox (in this case) is build from the name of the host and the channel number */ priv->mailboxes[i] = MSG_mailbox_new(alias); memset(alias, 0, MAX_ALIAS_NAME + 1); } #endif priv->dp_objs = xbt_dict_new(); priv->dp_enabled = 0; priv->dp_updated_by_deleted_tasks = 0; priv->is_migrating = 0; priv->affinity_mask_db = xbt_dict_new_homogeneous(NULL); xbt_lib_set(host_lib, name, MSG_HOST_LEVEL, priv); return xbt_lib_get_elm_or_null(host_lib, name); }
msg_mailbox_t MSG_mailbox_get_by_alias(const char *alias) { msg_mailbox_t mailbox = simcall_mbox_get_by_name(alias); if (!mailbox) mailbox = MSG_mailbox_new(alias); return mailbox; }