#include "surf/surf.h" // routing_get_network_element_type FIXME:killme
#include "src/simix/smx_private.hpp"
+#include "src/surf/host_interface.hpp"
size_t sg_host_count()
{
void sg_host_msg_set(sg_host_t host, msg_host_priv_t smx_host) {
host->extension_set(MSG_HOST_LEVEL, smx_host);
}
-void sg_host_msg_destroy(sg_host_t host) {
- host->extension_set(MSG_HOST_LEVEL, nullptr);
-}
// ========== SimDag Layer ==============
SD_workstation_priv_t sg_host_sd(sg_host_t host) {
return (SD_workstation_priv_t) host->extension(SD_HOST_LEVEL);
host->setPState(pstate);
}
+/** @brief Get the properties of an host */
+xbt_dict_t sg_host_get_properties(sg_host_t host) {
+ return host->getProperties();
+}
+
+
namespace simgrid {
Host::Host(std::string const& id)
/** Stop the host if it is on */
void Host::turnOff()
{
- /* Go to that function to follow the code flow through the simcall barrier */
- if (0) simcall_HANDLER_host_off(&SIMIX_process_self()->simcall, this);
simgrid::simix::simcall<void>(SIMCALL_HOST_OFF, this);
}
/** Get the properties assigned to a host */
xbt_dict_t Host::getProperties()
{
- return simgrid::simix::kernel(std::bind(sg_host_get_properties, this));
+ return simgrid::simix::kernel(std::bind(&simgrid::surf::Host::getProperties, this->extension(simgrid::surf::Host::EXTENSION_ID)));
}
/** Get the processes attached to the host */
double Host::getCurrentPowerPeak()
{
return simgrid::simix::kernel(
- std::bind(SIMIX_host_get_current_power_peak, this));
+ std::bind(surf_host_get_current_power_peak, this));
}
/** Get one power peak (in flops/s) of a host at a given pstate */
double Host::getPowerPeakAt(int pstate_index)
{
return simgrid::simix::kernel(
- std::bind(SIMIX_host_get_power_peak_at, this, pstate_index));
+ std::bind(surf_host_get_power_peak_at, this, pstate_index));
}
/** @brief Get the speed of the cpu associated to a host */
void Host::getParams(vm_params_t params)
{
- simgrid::simix::kernel(std::bind(SIMIX_host_get_params, this, params));
+ simgrid::simix::kernel([&]() {
+ this->extension<simgrid::surf::Host>()->getParams(params);
+ });
}
void Host::setParams(vm_params_t params)
{
- simgrid::simix::kernel(std::bind(SIMIX_host_set_params, this, params));
+ simgrid::simix::kernel([&]() {
+ this->extension<simgrid::surf::Host>()->setParams(params);
+ });
}
/**
*/
xbt_dict_t Host::getMountedStorageList()
{
- return simgrid::simix::kernel(std::bind(
- SIMIX_host_get_mounted_storage_list, this
- ));
+ return simgrid::simix::kernel([&] {
+ return this->extension<simgrid::surf::Host>()->getMountedStorageList();
+ });
}
/**
*/
xbt_dynar_t Host::getAttachedStorageList()
{
- return simgrid::simix::kernel(std::bind(
- SIMIX_host_get_attached_storage_list, this
- ));
+ return simgrid::simix::kernel([&] {
+ return this->extension<simgrid::surf::Host>()->getAttachedStorageList();
+ });
}
}