Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
code simplification in the VM creation + inline a function
[simgrid.git] / src / simix / libsmx.cpp
index 95f8dfa7d2bb4bc62ad8783132ca1c7e1142ecfc..606f99a61672a6488dfbe0fc1bc4ddbd85d920bb 100644 (file)
@@ -175,25 +175,6 @@ e_smx_state_t simcall_execution_wait(smx_activity_t execution)
   return (e_smx_state_t) simcall_BODY_execution_wait(execution);
 }
 
-/**
- * \ingroup simix_vm_management
- * \brief Create a VM on the given physical host.
- *
- * \param name VM name
- * \param dest Physical host on which to create the VM
- *
- * \return The host object of the VM
- */
-sg_host_t simcall_vm_create(const char* name, sg_host_t dest)
-{
-  return simgrid::simix::kernelImmediate([&name, &dest] {
-    sg_host_t host = new simgrid::s4u::VirtualMachine(name, dest);
-    host->extension_set<simgrid::simix::Host>(new simgrid::simix::Host());
-
-    return host;
-  });
-}
-
 /**
  * \ingroup simix_vm_management
  * \brief Start the given VM to the given physical host
@@ -205,18 +186,6 @@ void simcall_vm_start(sg_host_t vm)
   simgrid::simix::kernelImmediate(std::bind(SIMIX_vm_start, vm));
 }
 
-/**
- * \ingroup simix_vm_management
- * \brief Get the state of the given VM
- *
- * \param vm VM
- * \return The state of the VM
- */
-int simcall_vm_get_state(sg_host_t vm)
-{
-  return simgrid::simix::kernelImmediate(std::bind(SIMIX_vm_get_state, vm));
-}
-
 /**
  * \ingroup simix_vm_management
  * \brief Get the physical host on which the given VM runs.
@@ -242,18 +211,6 @@ void simcall_vm_set_bound(sg_host_t vm, double bound)
       [vm, bound]() { static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->setBound(bound); });
 }
 
-/**
- * \ingroup simix_vm_management
- * \brief Migrate the given VM to the given physical host
- *
- * \param vm VM
- * \param host Destination physical host
- */
-void simcall_vm_migrate(sg_host_t vm, sg_host_t host)
-{
-  simgrid::simix::kernelImmediate(std::bind(SIMIX_vm_migrate, vm, host));
-}
-
 /**
  * \ingroup simix_vm_management
  * \brief Suspend the given VM
@@ -296,7 +253,7 @@ void simcall_vm_save(sg_host_t vm)
 void simcall_vm_restore(sg_host_t vm)
 {
   simgrid::simix::kernelImmediate([vm]() {
-    if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_SAVED)
+    if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_SAVED)
       THROWF(vm_error, 0, "VM(%s) was not saved", vm->name().c_str());
 
     XBT_DEBUG("restore VM(%s), where %d processes exist", vm->name().c_str(),
@@ -325,34 +282,6 @@ void simcall_vm_shutdown(sg_host_t vm)
   simcall_BODY_vm_shutdown(vm);
 }
 
-/**
- * \ingroup simix_vm_management
- * \brief Destroy the given VM
- *
- * \param vm VM
- */
-void simcall_vm_destroy(sg_host_t vm)
-{
-  simgrid::simix::kernelImmediate([vm]() {
-    /* this code basically performs a similar thing like SIMIX_host_destroy() */
-    XBT_DEBUG("destroy %s", vm->name().c_str());
-
-    /* FIXME: this is really strange that everything fails if the next line is removed.
-     * This is as if we shared these data with the PM, which definitely should not be the case...
-     *
-     * We need to test that suspending a VM does not suspends the processes running on its PM, for example.
-     * Or we need to simplify this code enough to make it actually readable (but this sounds harder than testing)
-     */
-    vm->extension_set<simgrid::simix::Host>(nullptr);
-
-    /* Don't free these things twice: they are the ones of my physical host */
-    vm->pimpl_cpu     = nullptr;
-    vm->pimpl_netcard = nullptr;
-
-    vm->destroy();
-  });
-}
-
 /**
  * \ingroup simix_process_management
  * \brief Kills a SIMIX process.