#include <algorithm>
+#include <simgrid/host.h>
+
#include "cpu_cas01.hpp"
#include "vm_hl13.hpp"
/* 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);
+ VMCreatedCallbacks(vm);
return vm;
}
************/
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);
* from the VM name, we have to make sure that the system does not call the
* free callback for the network resource object. The network resource object
* 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);
+ p_netElm = new RoutingEdgeWrapper(sg_host_edge(host_PM));
+ 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;
NULL, // host->power_trace,
1, // host->core_amount,
SURF_RESOURCE_ON, // host->initial_state,
- NULL, // host->state_trace,
- NULL); // host->properties,
+ NULL); // host->state_trace,
+ 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 ? */
/*
* 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<Host*>(surf_host_resource_priv(ind_dst_pm));
* 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());
+ return p_subWs->getHost();
}
/* Adding a task to a VM updates the VCPU task on its physical machine. */