X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/638b21d2071c77f39da2f322156f05f75bf91517..b197602d9f391f0020949e793fd191bb722af74a:/src/surf/vm_hl13.cpp diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index 295421bbdf..208e24ee53 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -6,6 +6,8 @@ #include +#include + #include "cpu_cas01.hpp" #include "vm_hl13.hpp" @@ -33,7 +35,7 @@ void VMHL13Model::updateActionsState(double /*now*/, double /*delta*/) {} /* ind means ''indirect'' that this is a reference on the whole dict_elm * structure (i.e not on the surf_resource_private infos) */ -VirtualMachine *VMHL13Model::createVM(const char *name, surf_resource_t host_PM) +VirtualMachine *VMHL13Model::createVM(const char *name, sg_host_t host_PM) { VirtualMachine* vm = new VMHL13(this, name, NULL, host_PM); surf_callback_emit(VMCreatedCallbacks, vm); @@ -163,7 +165,7 @@ Action *VMHL13Model::executeParallelTask(int host_nb, ************/ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, - surf_resource_t host_PM) + sg_host_t host_PM) : VirtualMachine(model, name, props, NULL, NULL) { Host *sub_ws = surf_host_resource_priv(host_PM); @@ -179,7 +181,8 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, * is still used by the physical machine. */ sg_host_t sg_sub_ws = sg_host_by_name_or_create(sub_ws->getName()); p_netElm = new RoutingEdgeWrapper(sg_host_edge(sg_sub_ws)); - sg_host_edge_set(sg_host_by_name_or_create(name), p_netElm); + sg_host_t host = sg_host_by_name_or_create(name); + sg_host_edge_set(host, p_netElm); p_subWs = sub_ws; p_currentState = SURF_VM_STATE_CREATED; @@ -197,6 +200,7 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, SURF_RESOURCE_ON, // host->initial_state, NULL, // host->state_trace, NULL); // host->properties, + p_cpu->plug(host); /* We create cpu_action corresponding to a VM process on the host operating system. */ /* FIXME: TODO: we have to periodically input GUESTOS_NOISE to the system? how ? */ @@ -269,7 +273,7 @@ void VMHL13::restore() /* * Update the physical host of the given VM */ -void VMHL13::migrate(surf_resource_t ind_dst_pm) +void VMHL13::migrate(sg_host_t ind_dst_pm) { /* ind_dst_pm equals to smx_host_t */ Host *ws_dst = static_cast(surf_host_resource_priv(ind_dst_pm)); @@ -335,9 +339,10 @@ void VMHL13::setAffinity(Cpu *cpu, unsigned long mask){ * A surf level object will be useless in the upper layer. Returning the * dict_elm of the host. **/ -surf_resource_t VMHL13::getPm() +sg_host_t VMHL13::getPm() { - return xbt_lib_get_elm_or_null(host_lib, p_subWs->getName()); + // TODO, store pointer to the PM? + return simgrid::Host::by_name_or_null(p_subWs->getName()); } /* Adding a task to a VM updates the VCPU task on its physical machine. */