e_surf_resource_state_t(*get_state) (void *cpu);
double (*get_speed) (void *cpu, double load);
double (*get_available_speed) (void *cpu);
- void (*init_bypass)(const char* id,double power);
+ void (*create_resource)(char *name, double power_peak,
+ double power_scale,
+ tmgr_trace_t power_trace,
+ e_surf_resource_state_t state_initial,
+ tmgr_trace_t state_trace,
+ xbt_dict_t cpu_properties);
} s_surf_model_extension_cpu_t;
/* Network model */
double (*get_link_bandwidth) (const void *link);
double (*get_link_latency) (const void *link);
int (*link_shared) (const void *link);
- void (*init_bypass) (const char *id,double intial_bandwidth,double initial_latency);
+ void (*create_resource) (char *name,double bw_initial,double lat_initial);
} s_surf_model_extension_network_t;
/** \brief Workstation model extension public
XBT_PUBLIC(double) get_cpu_power(const char *power);
+/*public interface to create resource bypassing the parser via cpu/network model
+ *
+ * see surfxml_parse.c
+ * */
+XBT_PUBLIC(void) surf_host_create_resource(char *name, double power_peak,
+ double power_scale,
+ tmgr_trace_t power_trace,
+ e_surf_resource_state_t state_initial,
+ tmgr_trace_t state_trace,
+ xbt_dict_t cpu_properties);
+
+/**
+ * create link resource
+ * see network.c
+ * FIXME : shoudl have the same prototype as net_link_new
+ */
+XBT_PUBLIC(void) surf_link_create_resouce(char *name,
+ double bw_initial,double lat_initial);
#include "surf/surf_resource.h"
#include "surf/surf_resource_lmm.h"
{
((surf_action_cpu_Cas01_im_t) action)->index_heap = i;
}
-
-static void cpu_im_init_bypass(const char* id,double power)
+static void cpu_im_create_resource(char *name, double power_peak,
+ double power_scale,
+ tmgr_trace_t power_trace,
+ e_surf_resource_state_t state_initial,
+ tmgr_trace_t state_trace,
+ xbt_dict_t cpu_properties)
{
- /* FIXME
- * the hard coded value must be passed as argument of the lua function
- * depending on the number of arguments the user pass to function
- * we'd affect it to the corresponding value
- */
- double power_peak = 0.0;
- double power_scale = 0.0;
- tmgr_trace_t power_trace = NULL;
- //FIXME : hard coded value
- e_surf_resource_state_t state_initial = SURF_RESOURCE_ON;
- tmgr_trace_t state_trace = NULL;
- power_peak = power;
- //FIXME : hard coded value !!!
- surf_parse_get_double(&power_scale, "1.0");
- power_trace = tmgr_trace_new("");
-
- //state_trace = tmgr_trace_new(A_surfxml_host_state_file);
- current_property_set = xbt_dict_new();
- cpu_im_new(xbt_strdup(id), power_peak, power_scale,
- power_trace, state_initial, state_trace, current_property_set);
-
+ cpu_im_new(name,power_peak,power_scale,power_trace,
+ state_initial,state_trace,cpu_properties);
}
-
static void cpu_im_finalize(void)
{
void *cpu;
surf_cpu_model->extension.cpu.get_state = cpu_im_get_state;
surf_cpu_model->extension.cpu.get_speed = cpu_im_get_speed;
surf_cpu_model->extension.cpu.get_available_speed = cpu_im_get_available_speed;
- surf_cpu_model->extension.cpu.init_bypass = cpu_im_init_bypass;
+ surf_cpu_model->extension.cpu.create_resource = cpu_im_create_resource;
if (!cpu_im_maxmin_system) {
sg_maxmin_selective_update = 1;
cpu_im_define_callbacks(filename);
xbt_dynar_push(model_list, &surf_cpu_model);
}
-
-void surf_cpu_model_init_bypass_im(const char* id,double power)
-{
- return surf_cpu_model->extension.cpu.
- init_bypass(id,power);
-}
}
-static void network_init_bypass(const char *name,double initial_bandwidth,double initial_latency)
-{
- /**
- * FIXME : Only values : name,bandwidth and latency are intercepted,
- * the others properties for link still hard coded at this level !!
- */
- char *name_link;
- double bw_initial;
- tmgr_trace_t bw_trace;
- double lat_initial;
- tmgr_trace_t lat_trace;
- e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
- e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
- tmgr_trace_t state_trace;
-
-
- name_link = (char*)name;
- bw_initial = initial_bandwidth;
- bw_trace = tmgr_trace_new("");
- lat_initial = initial_latency;
- lat_trace = tmgr_trace_new("");
- // FIXME Hard Coded Values
- state_initial_link = SURF_RESOURCE_ON;
- policy_initial_link = SURF_LINK_SHARED;
- state_trace = tmgr_trace_new("");
-
- net_link_new(name_link, bw_initial, bw_trace,
+/**
+ * FIXME : this should be done in the binding code !!
+ */
+void network_create_resource(char *name,
+ double initial_bandwidth,double initial_latency)
+{
+
+ char *name_link;
+ double bw_initial;
+ tmgr_trace_t bw_trace;
+ double lat_initial;
+ tmgr_trace_t lat_trace;
+ e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
+ e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
+ tmgr_trace_t state_trace;
+
+
+ name_link = (char*)name;
+ bw_initial = initial_bandwidth;
+ bw_trace = tmgr_trace_new("");
+ lat_initial = initial_latency;
+ lat_trace = tmgr_trace_new("");
+ // FIXME Hard Coded Values
+ state_initial_link = SURF_RESOURCE_ON;
+ policy_initial_link = SURF_LINK_SHARED;
+ state_trace = tmgr_trace_new("");
+
+ net_link_new(name_link, bw_initial, bw_trace,
lat_initial, lat_trace, state_initial_link, state_trace,
policy_initial_link, xbt_dict_new());
-
}
static void net_finalize(void)
net_get_link_bandwidth;
surf_network_model->extension.network.get_link_latency = net_get_link_latency;
surf_network_model->extension.network.link_shared = net_link_shared;
- surf_network_model->extension.network.init_bypass = network_init_bypass;
+ surf_network_model->extension.network.create_resource = network_create_resource;
if (!network_maxmin_system)
network_maxmin_system = lmm_system_new();
}
-void surf_network_model_init_bypass(const char *link_id,double initial_bw,double initial_lat)
-{
- return surf_network_model->extension.network.
- init_bypass(link_id,initial_bw,initial_lat);
-}
xbt_dict_set(random_data_list, random_id, (void *) random, NULL);
}
+void surf_host_create_resource(char *name, double power_peak,
+ double power_scale,
+ tmgr_trace_t power_trace,
+ e_surf_resource_state_t state_initial,
+ tmgr_trace_t state_trace,
+ xbt_dict_t cpu_properties)
+{
+ return surf_cpu_model->extension.cpu.
+ create_resource(name,power_peak,power_scale,power_trace,state_initial,state_trace,cpu_properties);
+}
+
+
+void surf_link_create_resouce(char *name,
+ double bw_initial,
+ double lat_initial)
+{
+ return surf_network_model->extension.network.
+ create_resource(name,bw_initial,lat_initial);
+
+}