e_surf_resource_state_t(*get_state) (void *cpu);
double (*get_speed) (void *cpu, double load);
double (*get_available_speed) (void *cpu);
- void* (*create_resource) (char *name, double power_peak,
+ void* (*create_resource) (const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
double (*get_link_latency) (const void *link);
int (*link_shared) (const void *link);
void (*add_traces) (void);
- void* (*create_resource) (char *name,
+ void* (*create_resource) (const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
double (*get_link_latency) (const void *link); /**< Return the current latency of a network link */
int (*link_shared) (const void *link);
xbt_dict_t(*get_properties) (const void *resource);
- void* (*link_create_resource) (char *name,
+ void* (*link_create_resource) (const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
tmgr_trace_t state_trace,
e_surf_link_sharing_policy_t
policy, xbt_dict_t properties);
- void* (*cpu_create_resource) (char *name, double power_peak,
+ void* (*cpu_create_resource) (const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
e_surf_resource_state_t state_initial,
static XBT_INLINE
surf_resource_t surf_resource_new(size_t childsize,
- surf_model_t model, char *name,
+ surf_model_t model, const char *name,
xbt_dict_t props)
{
surf_resource_t res = xbt_malloc0(childsize);
res->model = model;
- res->name = name;
+ res->name = xbt_strdup(name);
res->properties = props;
return res;
}
surf_resource_lmm_t surf_resource_lmm_new(size_t childsize,
/* for superclass */
surf_model_t model,
- char *name, xbt_dict_t props,
+ const char *name, xbt_dict_t props,
lmm_system_t system,
double constraint_value,
tmgr_history_t history,
static xbt_swag_t cpu_running_action_set_that_does_not_need_being_checked =
NULL;
-static void* cpu_create_resource(char *name, double power_peak,
+static void* cpu_create_resource(const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
xbt_dict_t cpu_properties)
{
- cpu_Cas01_t cpu = xbt_new0(s_cpu_Cas01_t, 1);
+ cpu_Cas01_t cpu = NULL;
xbt_assert(!surf_cpu_resource_by_name(name),
"Host '%s' declared several times in the platform file",
name);
- cpu->generic_resource.model = surf_cpu_model;
- cpu->generic_resource.name = name;
- cpu->generic_resource.properties = cpu_properties;
+ cpu = (cpu_Cas01_t) surf_resource_new(sizeof(s_cpu_Cas01_t),
+ surf_cpu_model, name,cpu_properties);
cpu->power_peak = power_peak;
xbt_assert(cpu->power_peak > 0, "Power has to be >0");
cpu->power_scale = power_scale;
static xbt_swag_t
cpu_im_running_action_set_that_does_not_need_being_checked = NULL;
-static void* cpu_im_create_resource(char *name, double power_peak,
+static void* cpu_im_create_resource(const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
{
cpu_Cas01_im_t cpu = NULL;
s_surf_action_cpu_Cas01_im_t action;
- cpu = xbt_new0(s_cpu_Cas01_im_t, 1);
xbt_assert(!surf_cpu_resource_by_name(name),
"Host '%s' declared several times in the platform file",
name);
- cpu->generic_resource.model = surf_cpu_model;
- cpu->generic_resource.name = name;
- cpu->generic_resource.properties = cpu_properties;
+ cpu = (cpu_Cas01_im_t) surf_resource_new(sizeof(s_cpu_Cas01_im_t),
+ surf_cpu_model, name,cpu_properties);
cpu->power_peak = power_peak;
xbt_assert(cpu->power_peak > 0, "Power has to be >0");
cpu->power_scale = power_scale;
&cpu_im_add_traces_cpu);
}
-static int cpu_im_resource_used(void *resource_id)
+static int cpu_im_resource_used(void *resource)
{
return lmm_constraint_used(cpu_im_maxmin_system,
- ((cpu_Cas01_im_t) resource_id)->constraint);
+ ((cpu_Cas01_im_t) resource)->constraint);
}
static int cpu_im_action_unref(surf_action_t action)
}
-static void* cpu_ti_create_resource(char *name, double power_peak,
+static void* cpu_ti_create_resource(const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
{
tmgr_trace_t empty_trace;
s_tmgr_event_t val;
- cpu_ti_t cpu = xbt_new0(s_cpu_ti_t, 1);
+ cpu_ti_t cpu = NULL;
s_surf_action_cpu_ti_t ti_action;
xbt_assert(core==1,"Multi-core not handled with this model yet");
xbt_assert(!surf_cpu_resource_by_name(name),
"Host '%s' declared several times in the platform file",
name);
xbt_assert(core==1,"Multi-core not handled with this model yet");
+ cpu = (cpu_ti_t) surf_resource_new(sizeof(s_cpu_ti_t),
+ surf_cpu_model, name,cpu_properties);
cpu->action_set =
xbt_swag_new(xbt_swag_offset(ti_action, cpu_list_hookup));
- cpu->generic_resource.model = surf_cpu_model;
- cpu->generic_resource.name = name;
- cpu->generic_resource.properties = cpu_properties;
cpu->power_peak = power_peak;
xbt_assert(cpu->power_peak > 0, "Power has to be >0");
XBT_DEBUG("power scale %lf", power_scale);
&constant_bandwidth_constraint;
-static void* net_create_resource(char *name,
+static void* net_create_resource(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
&im_constant_bandwidth_constraint;
-static void* im_net_create_resource(char *name,
+static void* im_net_create_resource(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
/*** Resource Creation & Destruction **/
/**************************************/
-static void* ptask_cpu_create_resource(char *name, double power_scale,
+static void* ptask_cpu_create_resource(const char *name, double power_scale,
double power_initial,
tmgr_trace_t power_trace,
e_surf_resource_state_t state_initial,
tmgr_trace_t state_trace,
xbt_dict_t cpu_properties)
{
- cpu_L07_t cpu = xbt_new0(s_cpu_L07_t, 1);
+ cpu_L07_t cpu = NULL;
xbt_assert(!surf_workstation_resource_by_name(name),
"Host '%s' declared several times in the platform file.",
name);
- cpu->generic_resource.model = surf_workstation_model;
+ cpu = (cpu_L07_t) surf_resource_new(sizeof(s_cpu_L07_t),
+ surf_workstation_model, name,cpu_properties);
+
cpu->type = SURF_WORKSTATION_RESOURCE_CPU;
- cpu->generic_resource.name = xbt_strdup(name);
- cpu->generic_resource.properties = cpu_properties;
cpu->id = ptask_host_count++;
cpu->power_scale = power_scale;
current_property_set=NULL;
}
-static void* ptask_link_create_resource(char *name,
+static void* ptask_link_create_resource(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
nw_link->generic_resource.model = surf_workstation_model;
nw_link->generic_resource.properties = properties;
- nw_link->generic_resource.name = name;
+ nw_link->generic_resource.name = xbt_strdup(name);
nw_link->type = SURF_WORKSTATION_RESOURCE_LINK;
nw_link->bw_current = bw_initial;
if (bw_trace)