#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);
************/
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);
* 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;
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 ? */
/*
* 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());
+ // 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. */