X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6968624c2974dde9c5d8cd35d2a043c80b4c3db4..874710913c18743b0423e42006b8d697e788b2a5:/src/surf/surf_c_bindings.cpp diff --git a/src/surf/surf_c_bindings.cpp b/src/surf/surf_c_bindings.cpp index fb4004a49c..e557df9342 100644 --- a/src/surf/surf_c_bindings.cpp +++ b/src/surf/surf_c_bindings.cpp @@ -18,12 +18,12 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_kernel); * TOOLS * *********/ -static simgrid::surf::Host *get_casted_host(sg_host_t resource){ - return static_cast(surf_host_resource_priv(resource)); +static simgrid::surf::Host *get_casted_host(sg_host_t host){ + return static_cast(surf_host_resource_priv(host)); } -static simgrid::surf::VirtualMachine *get_casted_vm(sg_host_t resource){ - return static_cast(surf_host_resource_priv(resource)); +static simgrid::surf::VirtualMachine *get_casted_vm(sg_host_t host){ + return static_cast(surf_host_resource_priv(host)); } extern double NOW; @@ -37,8 +37,7 @@ void surf_presolve(void) simgrid::surf::Model *model = NULL; unsigned int iter; - XBT_DEBUG ("First Run! Let's \"purge\" events and put models in the right state"); - + XBT_DEBUG ("Consume all trace events occurring before the starting time."); while ((next_event_date = tmgr_history_next_date(history)) != -1.0) { if (next_event_date > NOW) break; @@ -51,6 +50,8 @@ void surf_presolve(void) } } } + + XBT_DEBUG ("Set every models in the right state by updating them to 0."); xbt_dynar_foreach(all_existing_models, iter, model) model->updateActionsState(NOW, 0.0); } @@ -171,7 +172,7 @@ void routing_get_route_and_latency(sg_routing_edge_t src, sg_routing_edge_t dst, surf_host_model_t surf_host_get_model(sg_host_t host) { simgrid::surf::Host* surf_host = - (simgrid::surf::Host*) host->facet(SURF_HOST_LEVEL); + (simgrid::surf::Host*) host->extension(); return (surf_host_model_t) surf_host->getModel(); } @@ -242,10 +243,6 @@ const char *surf_resource_name(surf_cpp_resource_t resource){ return resource->getName(); } -xbt_dict_t surf_resource_get_properties(surf_cpp_resource_t resource){ - return resource->getProperties(); -} - e_surf_resource_state_t surf_resource_get_state(surf_cpp_resource_t resource){ return resource->getState(); } @@ -255,42 +252,46 @@ void surf_resource_set_state(surf_cpp_resource_t resource, e_surf_resource_state } surf_action_t surf_host_sleep(sg_host_t host, double duration){ - return get_casted_host(host)->sleep(duration); + return host->p_cpu->sleep(duration); +} + +xbt_dict_t sg_host_get_properties(sg_host_t host) { + return get_casted_host(host)->getProperties(); } double surf_host_get_speed(sg_host_t host, double load){ - return sg_host_surfcpu(host)->getSpeed(load); + return host->p_cpu->getSpeed(load); } double surf_host_get_available_speed(sg_host_t host){ - return sg_host_surfcpu(host)->getAvailableSpeed(); + return host->p_cpu->getAvailableSpeed(); } int surf_host_get_core(sg_host_t host){ - return sg_host_surfcpu(host)->getCore(); + return host->p_cpu->getCore(); } surf_action_t surf_host_execute(sg_host_t host, double size){ - return get_casted_host(host)->execute(size); + return host->p_cpu->execute(size); } double surf_host_get_current_power_peak(sg_host_t host){ - return sg_host_surfcpu(host)->getCurrentPowerPeak(); + return host->p_cpu->getCurrentPowerPeak(); } double surf_host_get_power_peak_at(sg_host_t host, int pstate_index){ - return sg_host_surfcpu(host)->getPowerPeakAt(pstate_index); + return host->p_cpu->getPowerPeakAt(pstate_index); } int surf_host_get_nb_pstates(sg_host_t host){ - return sg_host_surfcpu(host)->getNbPstates(); + return host->p_cpu->getNbPStates(); } void surf_host_set_pstate(sg_host_t host, int pstate_index){ - sg_host_surfcpu(host)->setPstate(pstate_index); + host->p_cpu->setPState(pstate_index); } int surf_host_get_pstate(sg_host_t host){ - return sg_host_surfcpu(host)->getPstate(); + return host->p_cpu->getPState(); } using simgrid::energy::HostEnergy; @@ -385,21 +386,18 @@ void surf_host_set_params(sg_host_t host, vm_params_t params){ } void surf_vm_destroy(sg_host_t resource){ - /* Before clearing the entries in host_lib, we have to pick up resources. */ - const char* name = resource->id().c_str(); /* We deregister objects from host_lib, without invoking the freeing callback * of each level. * * Do not call xbt_lib_remove() here. It deletes all levels of the key, * including MSG_HOST_LEVEL and others. We should unregister only what we know. */ - sg_host_surfcpu_destroy(resource); + resource->p_cpu = nullptr; // FIXME: memleaking? sg_host_edge_destroy(resource,1); - // TODO, use backlink from simgrid::surf::Host to simgrid::Host - simgrid::Host::by_name_or_null(name)->set_facet(SURF_HOST_LEVEL, nullptr); + resource->extension_set(nullptr); /* TODO: comment out when VM storage is implemented. */ - // host->set_facet(SURF_STORAGE_LEVEL, nullptr); + // host->extension_set(SURF_STORAGE_LEVEL, nullptr); } void surf_vm_suspend(sg_host_t vm){ @@ -430,8 +428,8 @@ void surf_vm_set_bound(sg_host_t vm, double bound){ return get_casted_vm(vm)->setBound(bound); } -void surf_vm_set_affinity(sg_host_t vm, sg_host_t cpu, unsigned long mask){ - return get_casted_vm(vm)->setAffinity(sg_host_surfcpu(cpu), mask); +void surf_vm_set_affinity(sg_host_t vm, sg_host_t host, unsigned long mask){ + return get_casted_vm(vm)->setAffinity(host->p_cpu, mask); } xbt_dict_t surf_storage_get_content(surf_resource_t resource){ @@ -450,16 +448,22 @@ sg_size_t surf_storage_get_used_size(surf_resource_t resource){ return static_cast(surf_storage_resource_priv(resource))->getUsedSize(); } +xbt_dict_t surf_storage_get_properties(surf_resource_t resource){ + return static_cast(surf_storage_resource_priv(resource))->getProperties(); +} + const char* surf_storage_get_host(surf_resource_t resource){ return static_cast(surf_storage_resource_priv(resource))->p_attach; } -surf_action_t surf_cpu_execute(sg_host_t cpu, double size){ - return sg_host_surfcpu(cpu)->execute(size); +surf_action_t surf_cpu_execute(sg_host_t host, double size){ + xbt_die("FIXME: DEADCODE"); + return host->p_cpu->execute(size); } -surf_action_t surf_cpu_sleep(sg_host_t cpu, double duration){ - return sg_host_surfcpu(cpu)->sleep(duration); +surf_action_t surf_cpu_sleep(sg_host_t host, double duration){ + xbt_die("FIXME: DEADCODE"); + return host->p_cpu->sleep(duration); } double surf_action_get_start_time(surf_action_t action){ @@ -514,8 +518,8 @@ double surf_action_get_cost(surf_action_t action){ return action->getCost(); } -void surf_cpu_action_set_affinity(surf_action_t action, sg_host_t cpu, unsigned long mask) { - static_cast(action)->setAffinity(sg_host_surfcpu(cpu), mask); +void surf_cpu_action_set_affinity(surf_action_t action, sg_host_t host, unsigned long mask) { + static_cast(action)->setAffinity(host->p_cpu, mask); } void surf_cpu_action_set_bound(surf_action_t action, double bound) { @@ -531,3 +535,7 @@ double surf_network_action_get_latency_limited(surf_action_t action) { surf_file_t surf_storage_action_get_file(surf_action_t action){ return static_cast(action)->p_file; } + +surf_host_t surf_host_resource_priv(sg_host_t host) { + return host->extension(simgrid::surf::Host::EXTENSION_ID); +}