From: mquinson Date: Tue, 30 Jun 2009 21:33:31 +0000 (+0000) Subject: SURF: Embeed every fields of common_public directly into s_surf_model_t X-Git-Tag: SVN~1233 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/be25aefab9c2c610e764c6b3ddd0df1c2c9a4797 SURF: Embeed every fields of common_public directly into s_surf_model_t git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6408 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/ChangeLog b/ChangeLog index f39b4087bf..ad2bcf006e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,7 @@ SimGrid (3.3.2-svn) unstable; urgency=low into surf_model_resource_by_name(model) (less redirections, less function to write when defining a model) * Unify the types of models in a uniq s_surf_model_t (using an union) + * Embeed every fields of common_public directly into s_surf_model_t XBT: * Add xbt_set_get_by_name_or_null() [Silas De Munck] diff --git a/Makefile.am b/Makefile.am index 0c38ed92cc..5dbe469f44 100644 --- a/Makefile.am +++ b/Makefile.am @@ -85,7 +85,7 @@ indent: --leave-preprocessor-space --no-space-after-function-call-names \ `$(MAKE) dist-files | grep '\.[ch]$$'|grep -v '/_' |grep -v '_unit.c'\ | grep -v src/xbt/graphxml.c | grep -v datadesc_structs.c \ - ` + | grep -v simgrid_dtd.[ch]` sync-gforge: chmod g+rw -R doc/ diff --git a/examples/gras/pmm/pmm.c b/examples/gras/pmm/pmm.c index a09c143f33..ecfb020b0f 100755 --- a/examples/gras/pmm/pmm.c +++ b/examples/gras/pmm/pmm.c @@ -21,9 +21,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(pmm, "Parallel Matrix Multiplication"); /* struct for recovering results */ GRAS_DEFINE_TYPE(s_result, struct s_result { - int linepos; int rowpos; - xbt_matrix_t C GRAS_ANNOTE(subtype, double); - }); + int linepos; + int rowpos; xbt_matrix_t C GRAS_ANNOTE(subtype, double);}); typedef struct s_result result_t; @@ -34,8 +33,7 @@ GRAS_DEFINE_TYPE(s_pmm_assignment, struct s_pmm_assignment { xbt_peer_t line[NEIGHBOR_COUNT]; xbt_peer_t row[NEIGHBOR_COUNT]; xbt_matrix_t A GRAS_ANNOTE(subtype, double); - xbt_matrix_t B GRAS_ANNOTE(subtype, double); - }); + xbt_matrix_t B GRAS_ANNOTE(subtype, double);}); typedef struct s_pmm_assignment s_pmm_assignment_t; diff --git a/include/gras/datadesc.h b/include/gras/datadesc.h index 903902db02..595d6d5c53 100644 --- a/include/gras/datadesc.h +++ b/include/gras/datadesc.h @@ -328,6 +328,9 @@ XBT_PUBLIC(gras_datadesc_type_t) /** \brief Prototype of type callbacks selecting a type. */ typedef + + + gras_datadesc_type_t(*gras_datadesc_selector_t) (gras_datadesc_type_t typedesc, diff --git a/src/gras/Transport/sg_transport.c b/src/gras/Transport/sg_transport.c index 1084617576..f9bfbb72d7 100644 --- a/src/gras/Transport/sg_transport.c +++ b/src/gras/Transport/sg_transport.c @@ -101,8 +101,8 @@ gras_socket_t gras_trp_select(double timeout) res->peer_port = ((gras_trp_procdata_t) gras_libdata_by_name_from_remote("gras_trp", - sockdata-> - to_process))->myport; + sockdata->to_process))-> + myport; sockdata->to_socket = active_socket; /*update the peer to_socket variable */ active_socket_data->to_socket = res; diff --git a/src/include/surf/maxmin.h b/src/include/surf/maxmin.h index 640009ba9a..d41ef1f0ac 100644 --- a/src/include/surf/maxmin.h +++ b/src/include/surf/maxmin.h @@ -105,16 +105,25 @@ XBT_PUBLIC(void) bottleneck_solve(lmm_system_t sys); XBT_PUBLIC(void) lmm_set_default_protocol_function(double (*func_f) + + + (lmm_variable_t var, double x), double (*func_fp) + + + (lmm_variable_t var, double x), double (*func_fpi) + + + (lmm_variable_t var, double x)); diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index b9ecb49ddf..bd6cb6c58e 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -124,45 +124,6 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, * These functions are implemented by all models. */ typedef struct surf_model_public { - s_surf_action_state_t states; - /**< Any living action on this model */ - const char *(*get_resource_name) (void *resource_id); - /**< Return the name of a resource */ - - e_surf_action_state_t(*action_get_state) (surf_action_t action); - /**< Return the state of an action */ - double (*action_get_start_time) (surf_action_t action); - /**< Return the start time of an action */ - double (*action_get_finish_time) (surf_action_t action); - /**< Return the finish time of an action */ - void (*action_use) (surf_action_t action); - /**< Set an action used */ - int (*action_free) (surf_action_t action); - /**< Free an action */ - void (*action_cancel) (surf_action_t action); - /**< Cancel a running action */ - void (*action_recycle) (surf_action_t action); - /**< Recycle an action */ - void (*action_change_state) (surf_action_t action, - /**< Change an action state*/ - e_surf_action_state_t state); - void (*action_set_data) (surf_action_t action, void *data); - /**< Set the user data of an action */ - void (*suspend) (surf_action_t action); - /**< Suspend an action */ - void (*resume) (surf_action_t action); - /**< Resume a suspended action */ - int (*is_suspended) (surf_action_t action); - /**< Return whether an action is suspended */ - void (*set_max_duration) (surf_action_t action, double duration); - /**< Set the max duration of an action*/ - void (*set_priority) (surf_action_t action, double priority); - /**< Set the priority of an action */ - xbt_dict_t(*get_properties) (void *resource_id); - /**< Return the properties dictionary */ - const char *name; - /**< Name of this model */ - xbt_dict_t resource_set; } s_surf_model_public_t, *surf_model_public_t; /** \brief Private data available on all models @@ -178,38 +139,38 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, typedef struct surf_timer_model_extension_public { void (*set) (double date, void *function, void *arg); int (*get) (void **function, void **arg); - } s_surf_timer_model_extension_public_t; + } s_surf_model_extension_timer_t; - /* Cpu model */ + /* Cpu model */ - /** \brief CPU state - * \ingroup SURF_models - */ + /** \brief CPU state + * \ingroup SURF_models + */ typedef enum { SURF_CPU_ON = 1, /**< Up & ready */ SURF_CPU_OFF = 0 /**< Down & broken */ } e_surf_cpu_state_t; - /** \brief CPU model extension public - * \ingroup SURF_models - * - * Public functions specific to the CPU model. - */ + /** \brief CPU model extension public + * \ingroup SURF_models + * + * Public functions specific to the CPU model. + */ typedef struct surf_cpu_model_extension_public { surf_action_t(*execute) (void *cpu, double size); surf_action_t(*sleep) (void *cpu, double duration); e_surf_cpu_state_t(*get_state) (void *cpu); double (*get_speed) (void *cpu, double load); double (*get_available_speed) (void *cpu); - } s_surf_cpu_model_extension_public_t; + } s_surf_model_extension_cpu_t; - /* Network model */ + /* Network model */ - /** \brief Network model extension public - * \ingroup SURF_models - * - * Public functions specific to the network model - */ + /** \brief Network model extension public + * \ingroup SURF_models + * + * Public functions specific to the network model + */ typedef struct surf_network_model_extension_public { surf_action_t(*communicate) (void *src, void *dst, double size, double max_rate); @@ -219,13 +180,13 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, double (*get_link_bandwidth) (const void *link); double (*get_link_latency) (const void *link); int (*link_shared) (const void *link); - } s_surf_network_model_extension_public_t; + } s_surf_model_extension_network_t; - /** \brief Workstation model extension public - * \ingroup SURF_models - * - * Public functions specific to the workstation model. - */ + /** \brief Workstation model extension public + * \ingroup SURF_models + * + * Public functions specific to the workstation model. + */ typedef struct surf_workstation_model_extension_public { surf_action_t(*execute) (void *workstation, double size); /**< Execute a computation amount on a workstation and create the corresponding action */ @@ -248,7 +209,7 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, double (*get_link_bandwidth) (const void *link); /**< Return the current bandwidth of a network link */ double (*get_link_latency) (const void *link); /**< Return the current latency of a network link */ int (*link_shared) (const void *link); - } s_surf_workstation_model_extension_public_t; + } s_surf_model_extension_workstation_t; /** \brief Model datatype * \ingroup SURF_models @@ -257,19 +218,46 @@ XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, * the CPUs and the network links are examples of models. */ typedef struct surf_model { - s_surf_model_public_t common_public; - surf_model_private_t common_private; + const char *name;/**< Name of this model */ + s_surf_action_state_t states; /**< Any living action on this model */ + const char *(*get_resource_name) (void *resource_id);/**< Return the name of a resource */ + + e_surf_action_state_t(*action_get_state) (surf_action_t action);/**< Return the state of an action */ + double (*action_get_start_time) (surf_action_t action);/**< Return the start time of an action */ + double (*action_get_finish_time) (surf_action_t action);/**< Return the finish time of an action */ + void (*action_use) (surf_action_t action);/**< Set an action used */ + int (*action_free) (surf_action_t action);/**< Free an action */ + void (*action_cancel) (surf_action_t action);/**< Cancel a running action */ + void (*action_recycle) (surf_action_t action);/**< Recycle an action */ + void (*action_change_state) (surf_action_t action, + e_surf_action_state_t state); + /**< Change an action state*/ + void (*action_set_data) (surf_action_t action, void *data);/**< Set the user data of an action */ + void (*suspend) (surf_action_t action);/**< Suspend an action */ + void (*resume) (surf_action_t action);/**< Resume a suspended action */ + int (*is_suspended) (surf_action_t action);/**< Return whether an action is suspended */ + void (*set_max_duration) (surf_action_t action, double duration);/**< Set the max duration of an action*/ + void (*set_priority) (surf_action_t action, double priority);/**< Set the priority of an action */ + xbt_dict_t(*get_properties) (void *resource_id);/**< Return the properties dictionary */ + xbt_dict_t resource_set; + + + + surf_model_private_t model_private; + + + union extension { - s_surf_timer_model_extension_public_t timer; - s_surf_cpu_model_extension_public_t cpu; - s_surf_network_model_extension_public_t network; - s_surf_workstation_model_extension_public_t workstation; + s_surf_model_extension_timer_t timer; + s_surf_model_extension_cpu_t cpu; + s_surf_model_extension_network_t network; + s_surf_model_extension_workstation_t workstation; } extension; } s_surf_model_t; void surf_model_init(surf_model_t model); void *surf_model_resource_by_name(surf_model_t model, const char *name); -#define surf_model_resource_set(model) (model)->common_public.resource_set +#define surf_model_resource_set(model) (model)->resource_set void surf_model_exit(surf_model_t model); typedef struct surf_resource { diff --git a/src/msg/msg_mailbox.c b/src/msg/msg_mailbox.c index 8bd6c1864e..3e26bd59af 100644 --- a/src/msg/msg_mailbox.c +++ b/src/msg/msg_mailbox.c @@ -248,8 +248,8 @@ MSG_mailbox_get_task_ext(msg_mailbox_t mailbox, m_task_t * task, /* Transfer */ /* create SIMIX action to the communication */ t_simdata->comm = - SIMIX_action_communicate(t_simdata->sender->simdata->m_host->simdata-> - smx_host, + SIMIX_action_communicate(t_simdata->sender->simdata->m_host-> + simdata->smx_host, process->simdata->m_host->simdata->smx_host, t->name, t_simdata->message_size, t_simdata->rate); diff --git a/src/simdag/sd_global.c b/src/simdag/sd_global.c index bfcb6330f9..932c9157fb 100644 --- a/src/simdag/sd_global.c +++ b/src/simdag/sd_global.c @@ -241,9 +241,7 @@ SD_task_t *SD_simulate(double how_long) /* let's see which tasks are done */ xbt_dynar_foreach(model_list, iter, model) { - while ((action = - xbt_swag_extract(model->common_public.states. - done_action_set))) { + while ((action = xbt_swag_extract(model->states.done_action_set))) { task = action->data; INFO1("Task '%s' done", SD_task_get_name(task)); DEBUG0("Calling __SD_task_just_done"); @@ -272,13 +270,11 @@ SD_task_t *SD_simulate(double how_long) } /* let's see which tasks have just failed */ - while ((action = - xbt_swag_extract(model->common_public.states. - failed_action_set))) { + while ((action = xbt_swag_extract(model->states.failed_action_set))) { task = action->data; INFO1("Task '%s' failed", SD_task_get_name(task)); __SD_task_set_state(task, SD_FAILED); - surf_workstation_model->common_public.action_free(action); + surf_workstation_model->action_free(action); task->surf_action = NULL; if (!xbt_dynar_member(changed_tasks, &task)) diff --git a/src/simdag/sd_link.c b/src/simdag/sd_link.c index d671908694..4934b1bb12 100644 --- a/src/simdag/sd_link.c +++ b/src/simdag/sd_link.c @@ -113,8 +113,8 @@ const char *SD_link_get_name(SD_link_t link) { SD_CHECK_INIT_DONE(); xbt_assert0(link != NULL, "Invalid parameter"); - return surf_workstation_model->extension.workstation.get_link_name(link-> - surf_link); + return surf_workstation_model->extension.workstation. + get_link_name(link->surf_link); } /** @@ -127,8 +127,8 @@ double SD_link_get_current_bandwidth(SD_link_t link) { SD_CHECK_INIT_DONE(); xbt_assert0(link != NULL, "Invalid parameter"); - return surf_workstation_model->extension. - workstation.get_link_bandwidth(link->surf_link); + return surf_workstation_model->extension.workstation. + get_link_bandwidth(link->surf_link); } /** @@ -154,8 +154,7 @@ xbt_dict_t SD_link_get_properties(SD_link_t link) SD_CHECK_INIT_DONE(); xbt_assert0((link != NULL), "Invalid parameters"); - return (surf_workstation_model->common_public. - get_properties(link->surf_link)); + return (surf_workstation_model->get_properties(link->surf_link)); } @@ -169,8 +168,8 @@ double SD_link_get_current_latency(SD_link_t link) { SD_CHECK_INIT_DONE(); xbt_assert0(link != NULL, "Invalid parameter"); - return surf_workstation_model->extension.workstation.get_link_latency(link-> - surf_link); + return surf_workstation_model->extension.workstation. + get_link_latency(link->surf_link); } /** diff --git a/src/simdag/sd_task.c b/src/simdag/sd_task.c index 9dad947019..1e78900244 100644 --- a/src/simdag/sd_task.c +++ b/src/simdag/sd_task.c @@ -129,14 +129,12 @@ void __SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state) case SD_RUNNING: task->state_set = sd_global->running_task_set; task->start_time = - surf_workstation_model->common_public.action_get_start_time(task-> - surf_action); + surf_workstation_model->action_get_start_time(task->surf_action); break; case SD_DONE: task->state_set = sd_global->done_task_set; task->finish_time = - surf_workstation_model->common_public.action_get_finish_time(task-> - surf_action); + surf_workstation_model->action_get_finish_time(task->surf_action); task->remains = 0; break; case SD_FAILED: @@ -645,7 +643,7 @@ void SD_task_unschedule(SD_task_t task) __SD_task_destroy_scheduling_data(task); if (__SD_task_is_running(task)) /* the task should become SD_FAILED */ - surf_workstation_model->common_public.action_cancel(task->surf_action); + surf_workstation_model->action_cancel(task->surf_action); else __SD_task_set_state(task, SD_NOT_SCHEDULED); task->remains = task->amount; @@ -713,14 +711,14 @@ void __SD_task_really_run(SD_task_t task) task->surf_action = NULL; if ((task->workstation_nb == 1) && (task->communication_amount[0] == 0.0)) { task->surf_action = - surf_workstation_model->extension. - workstation.execute(surf_workstations[0], task->computation_amount[0]); + surf_workstation_model->extension.workstation. + execute(surf_workstations[0], task->computation_amount[0]); } else if ((task->workstation_nb == 1) && (task->computation_amount[0] == 0.0)) { task->surf_action = - surf_workstation_model->extension. - workstation.communicate(surf_workstations[0], surf_workstations[0], - task->communication_amount[0], task->rate); + surf_workstation_model->extension.workstation. + communicate(surf_workstations[0], surf_workstations[0], + task->communication_amount[0], task->rate); } else if ((task->workstation_nb == 2) && (task->computation_amount[0] == 0.0) && (task->computation_amount[1] == 0.0)) { @@ -735,9 +733,9 @@ void __SD_task_really_run(SD_task_t task) } if (nb == 1) { task->surf_action = - surf_workstation_model->extension. - workstation.communicate(surf_workstations[0], surf_workstations[1], - value, task->rate); + surf_workstation_model->extension.workstation. + communicate(surf_workstations[0], surf_workstations[1], value, + task->rate); } } if (!task->surf_action) { @@ -751,17 +749,15 @@ void __SD_task_really_run(SD_task_t task) sizeof(double) * task->workstation_nb * task->workstation_nb); task->surf_action = - surf_workstation_model->extension. - workstation.execute_parallel_task(task->workstation_nb, - surf_workstations, computation_amount, - communication_amount, task->amount, - task->rate); + surf_workstation_model->extension.workstation. + execute_parallel_task(task->workstation_nb, surf_workstations, + computation_amount, communication_amount, + task->amount, task->rate); } else { xbt_free(surf_workstations); } - surf_workstation_model->common_public.action_set_data(task->surf_action, - task); + surf_workstation_model->action_set_data(task->surf_action, task); DEBUG1("surf_action = %p", task->surf_action); @@ -845,7 +841,7 @@ void __SD_task_just_done(SD_task_t task) candidates = xbt_new(SD_task_t, 8); __SD_task_set_state(task, SD_DONE); - surf_workstation_model->common_public.action_free(task->surf_action); + surf_workstation_model->action_free(task->surf_action); task->surf_action = NULL; DEBUG0("Looking for candidates"); @@ -999,8 +995,7 @@ double SD_task_get_start_time(SD_task_t task) SD_CHECK_INIT_DONE(); xbt_assert0(task != NULL, "Invalid parameter"); if (task->surf_action) - return surf_workstation_model->common_public.action_get_start_time(task-> - surf_action); + return surf_workstation_model->action_get_start_time(task->surf_action); else return task->start_time; } @@ -1022,8 +1017,7 @@ double SD_task_get_finish_time(SD_task_t task) xbt_assert0(task != NULL, "Invalid parameter"); if (task->surf_action) /* should never happen as actions are destroyed right after their completion */ - return surf_workstation_model->common_public. - action_get_finish_time(task->surf_action); + return surf_workstation_model->action_get_finish_time(task->surf_action); else return task->finish_time; } @@ -1053,7 +1047,7 @@ void SD_task_destroy(SD_task_t task) xbt_free(task->name); if (task->surf_action != NULL) - surf_workstation_model->common_public.action_free(task->surf_action); + surf_workstation_model->action_free(task->surf_action); if (task->workstation_list != NULL) xbt_free(task->workstation_list); diff --git a/src/simdag/sd_workstation.c b/src/simdag/sd_workstation.c index 608fbc65a9..00066e7262 100644 --- a/src/simdag/sd_workstation.c +++ b/src/simdag/sd_workstation.c @@ -134,8 +134,8 @@ const char *SD_workstation_get_name(SD_workstation_t workstation) { SD_CHECK_INIT_DONE(); xbt_assert0(workstation != NULL, "Invalid parameter"); - return surf_workstation_model->common_public. - get_resource_name(workstation->surf_workstation); + return surf_workstation_model->get_resource_name(workstation-> + surf_workstation); } /** @@ -163,8 +163,8 @@ xbt_dict_t SD_workstation_get_properties(SD_workstation_t workstation) SD_CHECK_INIT_DONE(); xbt_assert0((workstation != NULL), "Invalid parameters"); - return (surf_workstation_model->common_public. - get_properties(workstation->surf_workstation)); + return (surf_workstation_model->get_properties + (workstation->surf_workstation)); } @@ -208,8 +208,8 @@ const SD_link_t *SD_route_get_list(SD_workstation_t src, SD_workstation_t dst) for (i = 0; i < route_size; i++) { link_name = - surf_workstation_model->extension. - workstation.get_link_name(surf_route[i]); + surf_workstation_model->extension.workstation. + get_link_name(surf_route[i]); sd_global->recyclable_route[i] = xbt_dict_get(sd_global->links, link_name); } @@ -228,10 +228,8 @@ const SD_link_t *SD_route_get_list(SD_workstation_t src, SD_workstation_t dst) int SD_route_get_size(SD_workstation_t src, SD_workstation_t dst) { SD_CHECK_INIT_DONE(); - return surf_workstation_model->extension.workstation.get_route_size(src-> - surf_workstation, - dst-> - surf_workstation); + return surf_workstation_model->extension.workstation. + get_route_size(src->surf_workstation, dst->surf_workstation); } /** @@ -245,9 +243,8 @@ double SD_workstation_get_power(SD_workstation_t workstation) { SD_CHECK_INIT_DONE(); xbt_assert0(workstation != NULL, "Invalid parameter"); - return surf_workstation_model->extension.workstation.get_speed(workstation-> - surf_workstation, - 1.0); + return surf_workstation_model->extension.workstation. + get_speed(workstation->surf_workstation, 1.0); } /** @@ -261,8 +258,8 @@ double SD_workstation_get_available_power(SD_workstation_t workstation) { SD_CHECK_INIT_DONE(); xbt_assert0(workstation != NULL, "Invalid parameter"); - return surf_workstation_model->extension.workstation. - get_available_speed(workstation->surf_workstation); + return surf_workstation_model->extension. + workstation.get_available_speed(workstation->surf_workstation); } /** @@ -453,15 +450,15 @@ void SD_workstation_set_access_mode(SD_workstation_t workstation, } /* Returns whether a task can start now on a workstation. - *//* - int __SD_workstation_can_start(SD_workstation_t workstation, SD_task_t task) { - SD_CHECK_INIT_DONE(); - xbt_assert0(workstation != NULL && task != NULL, "Invalid parameter"); - - return !__SD_workstation_is_busy(workstation) && - (xbt_fifo_size(workstation->task_fifo) == 0) || xbt_fifo_get_first_item(workstation->task_fifo) == task); - } - */ + *//* + int __SD_workstation_can_start(SD_workstation_t workstation, SD_task_t task) { + SD_CHECK_INIT_DONE(); + xbt_assert0(workstation != NULL && task != NULL, "Invalid parameter"); + + return !__SD_workstation_is_busy(workstation) && + (xbt_fifo_size(workstation->task_fifo) == 0) || xbt_fifo_get_first_item(workstation->task_fifo) == task); + } + */ /* Returns whether a workstation is busy. A workstation is busy is it is * in sequential mode and a task is running on it or the fifo is not empty. diff --git a/src/simix/smx_action.c b/src/simix/smx_action.c index a6a7054b94..3caade38a8 100644 --- a/src/simix/smx_action.c +++ b/src/simix/smx_action.c @@ -57,8 +57,7 @@ smx_action_t SIMIX_action_communicate(smx_host_t sender, simdata->surf_action = surf_workstation_model->extension.workstation. communicate(sender->simdata->host, receiver->simdata->host, size, rate); - surf_workstation_model->common_public.action_set_data(simdata->surf_action, - act); + surf_workstation_model->action_set_data(simdata->surf_action, act); DEBUG1("Create communicate action %p", act); return act; @@ -100,8 +99,7 @@ smx_action_t SIMIX_action_execute(smx_host_t host, const char *name, surf_workstation_model->extension.workstation.execute(host->simdata->host, amount); - surf_workstation_model->common_public.action_set_data(simdata->surf_action, - act); + surf_workstation_model->action_set_data(simdata->surf_action, act); DEBUG1("Create execute action %p", act); return act; @@ -141,8 +139,7 @@ smx_action_t SIMIX_action_sleep(smx_host_t host, double duration) surf_workstation_model->extension.workstation.sleep(host->simdata->host, duration); - surf_workstation_model->common_public.action_set_data(simdata->surf_action, - act); + surf_workstation_model->action_set_data(simdata->surf_action, act); DEBUG1("Create sleep action %p", act); return act; @@ -160,8 +157,7 @@ void SIMIX_action_cancel(smx_action_t action) DEBUG1("Cancel action %p", action); if (action->simdata->surf_action) { - surf_workstation_model->common_public.action_cancel(action->simdata-> - surf_action); + surf_workstation_model->action_cancel(action->simdata->surf_action); } return; } @@ -178,8 +174,8 @@ void SIMIX_action_set_priority(smx_action_t action, double priority) xbt_assert0((action != NULL) && (action->simdata != NULL), "Invalid parameter"); - surf_workstation_model->common_public.set_priority(action->simdata-> - surf_action, priority); + surf_workstation_model->set_priority(action->simdata->surf_action, + priority); return; } @@ -209,8 +205,8 @@ int SIMIX_action_destroy(smx_action_t action) xbt_fifo_free(action->cond_list); if (action->simdata->surf_action) - action->simdata->surf_action->model_type-> - common_public.action_free(action->simdata->surf_action); + action->simdata->surf_action->model_type->action_free(action-> + simdata->surf_action); xbt_free(action->simdata); xbt_free(action); @@ -331,8 +327,7 @@ smx_action_t SIMIX_action_parallel_execute(char *name, int host_nb, computation_amount, communication_amount, amount, rate); - surf_workstation_model->common_public.action_set_data(simdata->surf_action, - act); + surf_workstation_model->action_set_data(simdata->surf_action, act); return act; } @@ -340,9 +335,8 @@ smx_action_t SIMIX_action_parallel_execute(char *name, int host_nb, e_surf_action_state_t SIMIX_action_get_state(smx_action_t action) { xbt_assert0((action != NULL), "Invalid parameter"); - return surf_workstation_model->common_public.action_get_state(action-> - simdata-> - surf_action); + return surf_workstation_model->action_get_state(action->simdata-> + surf_action); } diff --git a/src/simix/smx_global.c b/src/simix/smx_global.c index fc1094e17f..267302b281 100644 --- a/src/simix/smx_global.c +++ b/src/simix/smx_global.c @@ -299,8 +299,8 @@ double SIMIX_solve(xbt_fifo_t actions_done, xbt_fifo_t actions_failed) void *arg = NULL; xbt_dynar_foreach(model_list, iter, model) { - if (xbt_swag_size(model->common_public.states.failed_action_set) - || xbt_swag_size(model->common_public.states.done_action_set)) { + if (xbt_swag_size(model->states.failed_action_set) + || xbt_swag_size(model->states.done_action_set)) { state_modifications = 1; break; } @@ -338,17 +338,13 @@ double SIMIX_solve(xbt_fifo_t actions_done, xbt_fifo_t actions_failed) /* Wake up all process waiting for the action finish */ xbt_dynar_foreach(model_list, iter, model) { - while ((action = - xbt_swag_extract(model->common_public. - states.failed_action_set))) { + while ((action = xbt_swag_extract(model->states.failed_action_set))) { smx_action = action->data; if (smx_action) { xbt_fifo_unshift(actions_failed, smx_action); } } - while ((action = - xbt_swag_extract(model->common_public. - states.done_action_set))) { + while ((action = xbt_swag_extract(model->states.done_action_set))) { smx_action = action->data; if (smx_action) { xbt_fifo_unshift(actions_done, smx_action); diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 4b61c502a3..cfb76cfb4c 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -233,8 +233,7 @@ xbt_dict_t SIMIX_host_get_properties(smx_host_t host) { xbt_assert0((host != NULL), "Invalid parameters"); - return (surf_workstation_model->common_public. - get_properties(host->simdata->host)); + return (surf_workstation_model->get_properties(host->simdata->host)); } diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index f9d9bf2108..890f522879 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -338,8 +338,7 @@ void SIMIX_process_suspend(smx_process_t process) simdata->suspended = 1; c = simdata->cond; xbt_fifo_foreach(c->actions, i, act, smx_action_t) { - surf_workstation_model->common_public.suspend(act-> - simdata->surf_action); + surf_workstation_model->suspend(act->simdata->surf_action); } } else { simdata->suspended = 1; @@ -353,8 +352,7 @@ void SIMIX_process_suspend(smx_process_t process) cond = SIMIX_cond_init(); dummy = SIMIX_action_execute(SIMIX_process_get_host(process), name, 0); - surf_workstation_model->common_public.suspend(dummy->simdata-> - surf_action); + surf_workstation_model->suspend(dummy->simdata->surf_action); SIMIX_register_action_to_condition(dummy, cond); __SIMIX_cond_wait(cond); SIMIX_unregister_action_to_condition(dummy, cond); @@ -396,7 +394,7 @@ void SIMIX_process_resume(smx_process_t process) simdata->suspended = 0; c = simdata->cond; xbt_fifo_foreach(c->actions, i, act, smx_action_t) { - surf_workstation_model->common_public.resume(act->simdata->surf_action); + surf_workstation_model->resume(act->simdata->surf_action); } SIMIX_cond_signal(c); return; diff --git a/src/surf/cpu.c b/src/surf/cpu.c index 6c96896a50..676472805e 100644 --- a/src/surf/cpu.c +++ b/src/surf/cpu.c @@ -181,8 +181,8 @@ static void action_change_state(surf_action_t action, static double share_resources(double now) { s_surf_action_cpu_Cas01_t action; - return generic_maxmin_share_resources(surf_cpu_model->common_public.states. - running_action_set, + return generic_maxmin_share_resources(surf_cpu_model-> + states.running_action_set, xbt_swag_offset(action, variable), cpu_maxmin_system, lmm_solve); } @@ -191,11 +191,10 @@ static void update_actions_state(double now, double delta) { surf_action_cpu_Cas01_t action = NULL; surf_action_cpu_Cas01_t next_action = NULL; - xbt_swag_t running_actions = - surf_cpu_model->common_public.states.running_action_set; + xbt_swag_t running_actions = surf_cpu_model->states.running_action_set; /* FIXME: UNUSED xbt_swag_t failed_actions = - surf_cpu_model->common_public.states.failed_action_set; + surf_cpu_model->states.failed_action_set; */ xbt_swag_foreach_safe(action, next_action, running_actions) { @@ -277,10 +276,10 @@ static surf_action_t execute(void *cpu, double size) if (CPU->state_current == SURF_CPU_ON) action->generic_action.state_set = - surf_cpu_model->common_public.states.running_action_set; + surf_cpu_model->states.running_action_set; else action->generic_action.state_set = - surf_cpu_model->common_public.states.failed_action_set; + surf_cpu_model->states.failed_action_set; xbt_swag_insert(action, action->generic_action.state_set); @@ -410,31 +409,29 @@ static void surf_cpu_model_init_internal(void) running_action_set_that_does_not_need_being_checked = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - surf_cpu_model->common_public.get_resource_name = get_resource_name; - surf_cpu_model->common_public.action_get_state = surf_action_get_state; - surf_cpu_model->common_public.action_get_start_time = - surf_action_get_start_time; - surf_cpu_model->common_public.action_get_finish_time = - surf_action_get_finish_time; - surf_cpu_model->common_public.action_free = action_free; - surf_cpu_model->common_public.action_use = action_use; - surf_cpu_model->common_public.action_cancel = action_cancel; - surf_cpu_model->common_public.action_change_state = action_change_state; - surf_cpu_model->common_public.action_set_data = surf_action_set_data; - surf_cpu_model->common_public.name = "CPU"; - - surf_cpu_model->common_private->resource_used = resource_used; - surf_cpu_model->common_private->share_resources = share_resources; - surf_cpu_model->common_private->update_actions_state = update_actions_state; - surf_cpu_model->common_private->update_resource_state = + surf_cpu_model->get_resource_name = get_resource_name; + surf_cpu_model->action_get_state = surf_action_get_state; + surf_cpu_model->action_get_start_time = surf_action_get_start_time; + surf_cpu_model->action_get_finish_time = surf_action_get_finish_time; + surf_cpu_model->action_free = action_free; + surf_cpu_model->action_use = action_use; + surf_cpu_model->action_cancel = action_cancel; + surf_cpu_model->action_change_state = action_change_state; + surf_cpu_model->action_set_data = surf_action_set_data; + surf_cpu_model->name = "CPU"; + + surf_cpu_model->model_private->resource_used = resource_used; + surf_cpu_model->model_private->share_resources = share_resources; + surf_cpu_model->model_private->update_actions_state = update_actions_state; + surf_cpu_model->model_private->update_resource_state = update_resource_state; - surf_cpu_model->common_private->finalize = finalize; + surf_cpu_model->model_private->finalize = finalize; - surf_cpu_model->common_public.suspend = action_suspend; - surf_cpu_model->common_public.resume = action_resume; - surf_cpu_model->common_public.is_suspended = action_is_suspended; - surf_cpu_model->common_public.set_max_duration = action_set_max_duration; - surf_cpu_model->common_public.set_priority = action_set_priority; + surf_cpu_model->suspend = action_suspend; + surf_cpu_model->resume = action_resume; + surf_cpu_model->is_suspended = action_is_suspended; + surf_cpu_model->set_max_duration = action_set_max_duration; + surf_cpu_model->set_priority = action_set_priority; surf_cpu_model->extension.cpu.execute = execute; surf_cpu_model->extension.cpu.sleep = action_sleep; @@ -442,7 +439,7 @@ static void surf_cpu_model_init_internal(void) surf_cpu_model->extension.cpu.get_speed = get_speed; surf_cpu_model->extension.cpu.get_available_speed = get_available_speed; /*manage the properties of the cpu */ - surf_cpu_model->common_public.get_properties = get_properties; + surf_cpu_model->get_properties = get_properties; if (!cpu_maxmin_system) cpu_maxmin_system = lmm_system_new(); diff --git a/src/surf/lagrange.c b/src/surf/lagrange.c index 24f308ee92..8b38dbfd05 100644 --- a/src/surf/lagrange.c +++ b/src/surf/lagrange.c @@ -532,6 +532,9 @@ static double partial_diff_lambda(double lambda, void *param_cnst) void lmm_set_default_protocol_function(double (*func_f) + + + (lmm_variable_t var, double x), double (*func_fp) (lmm_variable_t var, diff --git a/src/surf/model.c b/src/surf/model.c index 7979ca2be7..5e052a7904 100644 --- a/src/surf/model.c +++ b/src/surf/model.c @@ -23,37 +23,37 @@ void surf_model_init(surf_model_t model) s_surf_action_t action; - model->common_private = xbt_new0(s_surf_model_private_t, 1); + model->model_private = xbt_new0(s_surf_model_private_t, 1); - model->common_public.states.ready_action_set = + model->states.ready_action_set = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - model->common_public.states.running_action_set = + model->states.running_action_set = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - model->common_public.states.failed_action_set = + model->states.failed_action_set = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - model->common_public.states.done_action_set = + model->states.done_action_set = xbt_swag_new(xbt_swag_offset(action, state_hookup)); - model->common_public.resource_set = xbt_dict_new(); + model->resource_set = xbt_dict_new(); - model->common_public.action_free = int_die_impossible_paction; - model->common_public.action_cancel = void_die_impossible_paction; - model->common_public.action_recycle = void_die_impossible_paction; + model->action_free = int_die_impossible_paction; + model->action_cancel = void_die_impossible_paction; + model->action_recycle = void_die_impossible_paction; } void *surf_model_resource_by_name(surf_model_t model, const char *name) { - return xbt_dict_get_or_null(model->common_public.resource_set, name); + return xbt_dict_get_or_null(model->resource_set, name); } /** @brief finalize common datastructures to all models */ void surf_model_exit(surf_model_t model) { - xbt_swag_free(model->common_public.states.ready_action_set); - xbt_swag_free(model->common_public.states.running_action_set); - xbt_swag_free(model->common_public.states.failed_action_set); - xbt_swag_free(model->common_public.states.done_action_set); - xbt_dict_free(&model->common_public.resource_set); - free(model->common_private); + xbt_swag_free(model->states.ready_action_set); + xbt_swag_free(model->states.running_action_set); + xbt_swag_free(model->states.failed_action_set); + xbt_swag_free(model->states.done_action_set); + xbt_dict_free(&model->resource_set); + free(model->model_private); } diff --git a/src/surf/network.c b/src/surf/network.c index bcb3b7aa72..030afdfe0b 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -358,8 +358,7 @@ static double share_resources(double now) { s_surf_action_network_CM02_t s_action; surf_action_network_CM02_t action = NULL; - xbt_swag_t running_actions = - surf_network_model->common_public.states.running_action_set; + xbt_swag_t running_actions = surf_network_model->states.running_action_set; double min; min = generic_maxmin_share_resources(running_actions, @@ -386,11 +385,10 @@ static void update_actions_state(double now, double delta) double deltap = 0.0; surf_action_network_CM02_t action = NULL; surf_action_network_CM02_t next_action = NULL; - xbt_swag_t running_actions = - surf_network_model->common_public.states.running_action_set; + xbt_swag_t running_actions = surf_network_model->states.running_action_set; /* xbt_swag_t failed_actions = - surf_network_model->common_public.states.failed_action_set; + surf_network_model->states.failed_action_set; */ xbt_swag_foreach_safe(action, next_action, running_actions) { @@ -542,11 +540,11 @@ static surf_action_t communicate(void *src, void *dst, double size, action->suspended = 0; /* Should be useless because of the calloc but it seems to help valgrind... */ action->generic_action.state_set = - surf_network_model->common_public.states.running_action_set; + surf_network_model->states.running_action_set; for (i = 0; i < route_size; i++) if (route[i]->state_current == SURF_LINK_OFF) { action->generic_action.state_set = - surf_network_model->common_public.states.failed_action_set; + surf_network_model->states.failed_action_set; break; } @@ -702,32 +700,30 @@ static void surf_network_model_init_internal(void) surf_model_init(surf_network_model); - surf_network_model->common_public.get_resource_name = get_resource_name; - surf_network_model->common_public.action_get_state = surf_action_get_state; - surf_network_model->common_public.action_get_start_time = - surf_action_get_start_time; - surf_network_model->common_public.action_get_finish_time = - surf_action_get_finish_time; - surf_network_model->common_public.action_free = action_free; - surf_network_model->common_public.action_use = action_use; - surf_network_model->common_public.action_cancel = action_cancel; - surf_network_model->common_public.action_recycle = action_recycle; - surf_network_model->common_public.action_change_state = action_change_state; - surf_network_model->common_public.action_set_data = surf_action_set_data; - surf_network_model->common_public.name = "network"; - - surf_network_model->common_private->resource_used = resource_used; - surf_network_model->common_private->share_resources = share_resources; - surf_network_model->common_private->update_actions_state = + surf_network_model->get_resource_name = get_resource_name; + surf_network_model->action_get_state = surf_action_get_state; + surf_network_model->action_get_start_time = surf_action_get_start_time; + surf_network_model->action_get_finish_time = surf_action_get_finish_time; + surf_network_model->action_free = action_free; + surf_network_model->action_use = action_use; + surf_network_model->action_cancel = action_cancel; + surf_network_model->action_recycle = action_recycle; + surf_network_model->action_change_state = action_change_state; + surf_network_model->action_set_data = surf_action_set_data; + surf_network_model->name = "network"; + + surf_network_model->model_private->resource_used = resource_used; + surf_network_model->model_private->share_resources = share_resources; + surf_network_model->model_private->update_actions_state = update_actions_state; - surf_network_model->common_private->update_resource_state = + surf_network_model->model_private->update_resource_state = update_resource_state; - surf_network_model->common_private->finalize = finalize; + surf_network_model->model_private->finalize = finalize; - surf_network_model->common_public.suspend = action_suspend; - surf_network_model->common_public.resume = action_resume; - surf_network_model->common_public.is_suspended = action_is_suspended; - surf_cpu_model->common_public.set_max_duration = action_set_max_duration; + surf_network_model->suspend = action_suspend; + surf_network_model->resume = action_resume; + surf_network_model->is_suspended = action_is_suspended; + surf_cpu_model->set_max_duration = action_set_max_duration; surf_network_model->extension.network.communicate = communicate; surf_network_model->extension.network.get_route = get_route; @@ -738,7 +734,7 @@ static void surf_network_model_init_internal(void) surf_network_model->extension.network.get_link_latency = get_link_latency; surf_network_model->extension.network.link_shared = link_shared; - surf_network_model->common_public.get_properties = get_properties; + surf_network_model->get_properties = get_properties; link_set = xbt_dict_new(); diff --git a/src/surf/network_constant.c b/src/surf/network_constant.c index 0689106dde..c6e2e49634 100644 --- a/src/surf/network_constant.c +++ b/src/surf/network_constant.c @@ -132,8 +132,7 @@ static void action_change_state(surf_action_t action, static double share_resources(double now) { surf_action_network_Constant_t action = NULL; - xbt_swag_t running_actions = - surf_network_model->common_public.states.running_action_set; + xbt_swag_t running_actions = surf_network_model->states.running_action_set; double min = -1.0; xbt_swag_foreach(action, running_actions) { @@ -152,8 +151,7 @@ static void update_actions_state(double now, double delta) { surf_action_network_Constant_t action = NULL; surf_action_network_Constant_t next_action = NULL; - xbt_swag_t running_actions = - surf_network_model->common_public.states.running_action_set; + xbt_swag_t running_actions = surf_network_model->states.running_action_set; xbt_swag_foreach_safe(action, next_action, running_actions) { if (action->latency > 0) { @@ -213,10 +211,10 @@ static surf_action_t communicate(void *src, void *dst, double size, if (action->latency <= 0.0) action->generic_action.state_set = - surf_network_model->common_public.states.done_action_set; + surf_network_model->states.done_action_set; else action->generic_action.state_set = - surf_network_model->common_public.states.running_action_set; + surf_network_model->states.running_action_set; xbt_swag_insert(action, action->generic_action.state_set); @@ -301,32 +299,30 @@ static void surf_network_model_init_internal(void) surf_model_init(surf_network_model); - surf_network_model->common_public.get_resource_name = get_resource_name; - surf_network_model->common_public.action_get_state = surf_action_get_state; - surf_network_model->common_public.action_get_start_time = - surf_action_get_start_time; - surf_network_model->common_public.action_get_finish_time = - surf_action_get_finish_time; - surf_network_model->common_public.action_free = action_free; - surf_network_model->common_public.action_use = action_use; - surf_network_model->common_public.action_cancel = action_cancel; - surf_network_model->common_public.action_recycle = action_recycle; - surf_network_model->common_public.action_change_state = action_change_state; - surf_network_model->common_public.action_set_data = surf_action_set_data; - surf_network_model->common_public.name = "network"; - - surf_network_model->common_private->resource_used = resource_used; - surf_network_model->common_private->share_resources = share_resources; - surf_network_model->common_private->update_actions_state = + surf_network_model->get_resource_name = get_resource_name; + surf_network_model->action_get_state = surf_action_get_state; + surf_network_model->action_get_start_time = surf_action_get_start_time; + surf_network_model->action_get_finish_time = surf_action_get_finish_time; + surf_network_model->action_free = action_free; + surf_network_model->action_use = action_use; + surf_network_model->action_cancel = action_cancel; + surf_network_model->action_recycle = action_recycle; + surf_network_model->action_change_state = action_change_state; + surf_network_model->action_set_data = surf_action_set_data; + surf_network_model->name = "network"; + + surf_network_model->model_private->resource_used = resource_used; + surf_network_model->model_private->share_resources = share_resources; + surf_network_model->model_private->update_actions_state = update_actions_state; - surf_network_model->common_private->update_resource_state = + surf_network_model->model_private->update_resource_state = update_resource_state; - surf_network_model->common_private->finalize = finalize; + surf_network_model->model_private->finalize = finalize; - surf_network_model->common_public.suspend = action_suspend; - surf_network_model->common_public.resume = action_resume; - surf_network_model->common_public.is_suspended = action_is_suspended; - surf_cpu_model->common_public.set_max_duration = action_set_max_duration; + surf_network_model->suspend = action_suspend; + surf_network_model->resume = action_resume; + surf_network_model->is_suspended = action_is_suspended; + surf_cpu_model->set_max_duration = action_set_max_duration; surf_network_model->extension.network.communicate = communicate; surf_network_model->extension.network.get_route = get_route; @@ -337,7 +333,7 @@ static void surf_network_model_init_internal(void) surf_network_model->extension.network.get_link_latency = get_link_latency; surf_network_model->extension.network.link_shared = link_shared; - surf_network_model->common_public.get_properties = get_properties; + surf_network_model->get_properties = get_properties; if (!random_latency) random_latency = random_new(RAND, 100, 0.0, 1.0, .125, .034); diff --git a/src/surf/network_gtnets.c b/src/surf/network_gtnets.c index 351337af74..b73385b1cc 100644 --- a/src/surf/network_gtnets.c +++ b/src/surf/network_gtnets.c @@ -532,8 +532,6 @@ static void finalize(void) surf_model_exit(surf_network_model); - free(surf_network_model->extension_public); - free(surf_network_model); surf_network_model = NULL; @@ -548,9 +546,6 @@ static void surf_network_model_init_internal(void) surf_model_init(surf_network_model); - surf_network_model->extension_public = - xbt_new0(s_surf_network_model_extension_public_t, 1); - surf_network_model->common_public.name_service = name_service; surf_network_model->common_public.get_resource_name = get_resource_name; surf_network_model->common_public.action_get_state = surf_action_get_state; @@ -562,19 +557,19 @@ static void surf_network_model_init_internal(void) surf_network_model->common_public.action_set_data = surf_action_set_data; surf_network_model->common_public.name = "network"; - surf_network_model->common_private->resource_used = resource_used; - surf_network_model->common_private->share_resources = share_resources; - surf_network_model->common_private->update_actions_state = + surf_network_model->model_private->resource_used = resource_used; + surf_network_model->model_private->share_resources = share_resources; + surf_network_model->model_private->update_actions_state = update_actions_state; - surf_network_model->common_private->update_resource_state = + surf_network_model->model_private->update_resource_state = update_resource_state; - surf_network_model->common_private->finalize = finalize; + surf_network_model->model_private->finalize = finalize; surf_network_model->common_public.suspend = action_suspend; surf_network_model->common_public.resume = action_resume; surf_network_model->common_public.is_suspended = action_is_suspended; - surf_network_model->extension_public->communicate = communicate; + surf_network_model->extension.network.communicate = communicate; /*for the props of the link */ surf_network_model->common_public.get_properties = get_properties; diff --git a/src/surf/surf.c b/src/surf/surf.c index 2c32aa7195..baf337feb2 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -238,8 +238,7 @@ double generic_maxmin_share_resources(xbt_swag_t running_actions, e_surf_action_state_t surf_action_get_state(surf_action_t action) { - surf_action_state_t action_state = - &(action->model_type->common_public.states); + surf_action_state_t action_state = &(action->model_type->states); if (action->state_set == action_state->ready_action_set) return SURF_ACTION_READY; @@ -264,7 +263,7 @@ double surf_action_get_finish_time(surf_action_t action) void surf_action_free(surf_action_t * action) { - (*action)->model_type->common_public.action_cancel(*action); + (*action)->model_type->action_cancel(*action); free(*action); *action = NULL; } @@ -272,8 +271,7 @@ void surf_action_free(surf_action_t * action) void surf_action_change_state(surf_action_t action, e_surf_action_state_t state) { - surf_action_state_t action_state = - &(action->model_type->common_public.states); + surf_action_state_t action_state = &(action->model_type->states); XBT_IN2("(%p,%s)", action, surf_action_state_names[state]); xbt_swag_remove(action, action->state_set); @@ -398,7 +396,7 @@ void surf_exit(void) surf_config_finalize(); xbt_dynar_foreach(model_list, iter, model) { - model->common_private->finalize(); + model->model_private->finalize(); } if (maxmin_system) { @@ -444,13 +442,13 @@ void surf_presolve(void) while ((event = tmgr_history_get_next_event_leq(history, next_event_date, &value, (void **) &resource))) { - resource->model->common_private->update_resource_state(resource, - event, value, - NOW); + resource->model->model_private->update_resource_state(resource, + event, value, + NOW); } } xbt_dynar_foreach(model_list, iter, model) { - model->common_private->update_actions_state(NOW, 0.0); + model->model_private->update_actions_state(NOW, 0.0); } } @@ -469,10 +467,10 @@ double surf_solve(void) DEBUG0("Looking for next action end"); xbt_dynar_foreach(model_list, iter, model) { - DEBUG1("Running for Resource [%s]", model->common_public.name); - model_next_action_end = model->common_private->share_resources(NOW); + DEBUG1("Running for Resource [%s]", model->name); + model_next_action_end = model->model_private->share_resources(NOW); DEBUG2("Resource [%s] : next action end = %f", - model->common_public.name, model_next_action_end); + model->name, model_next_action_end); if (((min < 0.0) || (model_next_action_end < min)) && (model_next_action_end >= 0.0)) min = model_next_action_end; @@ -491,16 +489,16 @@ double surf_solve(void) while ((event = tmgr_history_get_next_event_leq(history, next_event_date, &value, (void **) &resource))) { - if (resource->model->common_private->resource_used(resource)) { + if (resource->model->model_private->resource_used(resource)) { min = next_event_date - NOW; DEBUG1 ("This event will modify model state. Next event set to %f", min); } /* update state of model_obj according to new value. Does not touch lmm. It will be modified if needed when updating actions */ - resource->model->common_private->update_resource_state(resource, - event, value, - NOW + min); + resource->model->model_private->update_resource_state(resource, + event, value, + NOW + min); } } @@ -509,7 +507,7 @@ double surf_solve(void) NOW = NOW + min; xbt_dynar_foreach(model_list, iter, model) { - model->common_private->update_actions_state(NOW, min); + model->model_private->update_actions_state(NOW, min); } return min; diff --git a/src/surf/surf_timer.c b/src/surf/surf_timer.c index e0debd589a..945ead9c0c 100644 --- a/src/surf/surf_timer.c +++ b/src/surf/surf_timer.c @@ -166,23 +166,23 @@ static void surf_timer_model_init_internal(void) surf_model_init(surf_timer_model); - surf_timer_model->common_public.get_resource_name = get_resource_name; - surf_timer_model->common_public.action_get_state = surf_action_get_state; - surf_timer_model->common_public.action_change_state = action_change_state; - surf_timer_model->common_public.action_set_data = surf_action_set_data; - surf_timer_model->common_public.name = "TIMER"; - - surf_timer_model->common_private->resource_used = resource_used; - surf_timer_model->common_private->share_resources = share_resources; - surf_timer_model->common_private->update_actions_state = + surf_timer_model->get_resource_name = get_resource_name; + surf_timer_model->action_get_state = surf_action_get_state; + surf_timer_model->action_change_state = action_change_state; + surf_timer_model->action_set_data = surf_action_set_data; + surf_timer_model->name = "TIMER"; + + surf_timer_model->model_private->resource_used = resource_used; + surf_timer_model->model_private->share_resources = share_resources; + surf_timer_model->model_private->update_actions_state = update_actions_state; - surf_timer_model->common_private->update_resource_state = + surf_timer_model->model_private->update_resource_state = update_resource_state; - surf_timer_model->common_private->finalize = finalize; + surf_timer_model->model_private->finalize = finalize; - surf_timer_model->common_public.suspend = action_suspend; - surf_timer_model->common_public.resume = action_resume; - surf_timer_model->common_public.is_suspended = action_is_suspended; + surf_timer_model->suspend = action_suspend; + surf_timer_model->resume = action_resume; + surf_timer_model->is_suspended = action_is_suspended; surf_timer_model->extension.timer.set = set; surf_timer_model->extension.timer.get = get; diff --git a/src/surf/workstation.c b/src/surf/workstation.c index a229326039..7318d82c32 100644 --- a/src/surf/workstation.c +++ b/src/surf/workstation.c @@ -82,9 +82,9 @@ static void parallel_action_use(surf_action_t action) static int action_free(surf_action_t action) { if (action->model_type == surf_network_model) - return surf_network_model->common_public.action_free(action); + return surf_network_model->action_free(action); else if (action->model_type == surf_cpu_model) - return surf_cpu_model->common_public.action_free(action); + return surf_cpu_model->action_free(action); else if (action->model_type == surf_workstation_model) return parallel_action_free(action); else @@ -95,9 +95,9 @@ static int action_free(surf_action_t action) static void action_use(surf_action_t action) { if (action->model_type == surf_network_model) - surf_network_model->common_public.action_use(action); + surf_network_model->action_use(action); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.action_use(action); + surf_cpu_model->action_use(action); else if (action->model_type == surf_workstation_model) parallel_action_use(action); else @@ -108,9 +108,9 @@ static void action_use(surf_action_t action) static void action_cancel(surf_action_t action) { if (action->model_type == surf_network_model) - surf_network_model->common_public.action_cancel(action); + surf_network_model->action_cancel(action); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.action_cancel(action); + surf_cpu_model->action_cancel(action); else if (action->model_type == surf_workstation_model) parallel_action_cancel(action); else @@ -122,9 +122,9 @@ static void action_change_state(surf_action_t action, e_surf_action_state_t state) { if (action->model_type == surf_network_model) - surf_network_model->common_public.action_change_state(action, state); + surf_network_model->action_change_state(action, state); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.action_change_state(action, state); + surf_cpu_model->action_change_state(action, state); else if (action->model_type == surf_workstation_model) surf_action_change_state(action, state); else @@ -151,22 +151,22 @@ static void update_resource_state(void *id, static surf_action_t execute(void *workstation, double size) { - return surf_cpu_model->extension. - cpu.execute(((workstation_CLM03_t) workstation)->cpu, size); + return surf_cpu_model->extension.cpu. + execute(((workstation_CLM03_t) workstation)->cpu, size); } static surf_action_t action_sleep(void *workstation, double duration) { - return surf_cpu_model->extension. - cpu.sleep(((workstation_CLM03_t) workstation)->cpu, duration); + return surf_cpu_model->extension.cpu. + sleep(((workstation_CLM03_t) workstation)->cpu, duration); } static void action_suspend(surf_action_t action) { if (action->model_type == surf_network_model) - surf_network_model->common_public.suspend(action); + surf_network_model->suspend(action); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.suspend(action); + surf_cpu_model->suspend(action); else DIE_IMPOSSIBLE; } @@ -174,9 +174,9 @@ static void action_suspend(surf_action_t action) static void action_resume(surf_action_t action) { if (action->model_type == surf_network_model) - surf_network_model->common_public.resume(action); + surf_network_model->resume(action); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.resume(action); + surf_cpu_model->resume(action); else DIE_IMPOSSIBLE; } @@ -184,18 +184,18 @@ static void action_resume(surf_action_t action) static int action_is_suspended(surf_action_t action) { if (action->model_type == surf_network_model) - return surf_network_model->common_public.is_suspended(action); + return surf_network_model->is_suspended(action); if (action->model_type == surf_cpu_model) - return surf_cpu_model->common_public.is_suspended(action); + return surf_cpu_model->is_suspended(action); DIE_IMPOSSIBLE; } static void action_set_max_duration(surf_action_t action, double duration) { if (action->model_type == surf_network_model) - surf_network_model->common_public.set_max_duration(action, duration); + surf_network_model->set_max_duration(action, duration); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.set_max_duration(action, duration); + surf_cpu_model->set_max_duration(action, duration); else DIE_IMPOSSIBLE; } @@ -203,9 +203,9 @@ static void action_set_max_duration(surf_action_t action, double duration) static void action_set_priority(surf_action_t action, double priority) { if (action->model_type == surf_network_model) - surf_network_model->common_public.set_priority(action, priority); + surf_network_model->set_priority(action, priority); else if (action->model_type == surf_cpu_model) - surf_cpu_model->common_public.set_priority(action, priority); + surf_cpu_model->set_priority(action, priority); else DIE_IMPOSSIBLE; } @@ -214,35 +214,35 @@ static surf_action_t communicate(void *workstation_src, void *workstation_dst, double size, double rate) { - return surf_network_model->extension. - network.communicate(((workstation_CLM03_t) workstation_src)->network_card, - ((workstation_CLM03_t) workstation_dst)->network_card, - size, rate); + return surf_network_model->extension.network. + communicate(((workstation_CLM03_t) workstation_src)->network_card, + ((workstation_CLM03_t) workstation_dst)->network_card, size, + rate); } static e_surf_cpu_state_t get_state(void *workstation) { - return surf_cpu_model->extension. - cpu.get_state(((workstation_CLM03_t) workstation)->cpu); + return surf_cpu_model->extension.cpu. + get_state(((workstation_CLM03_t) workstation)->cpu); } static double get_speed(void *workstation, double load) { - return surf_cpu_model->extension. - cpu.get_speed(((workstation_CLM03_t) workstation)->cpu, load); + return surf_cpu_model->extension.cpu. + get_speed(((workstation_CLM03_t) workstation)->cpu, load); } static double get_available_speed(void *workstation) { - return surf_cpu_model->extension. - cpu.get_available_speed(((workstation_CLM03_t) - workstation)->cpu); + return surf_cpu_model->extension.cpu. + get_available_speed(((workstation_CLM03_t) + workstation)->cpu); } static xbt_dict_t get_properties(void *workstation) { return surf_cpu_model-> - common_public.get_properties(((workstation_CLM03_t) workstation)->cpu); + get_properties(((workstation_CLM03_t) workstation)->cpu); } static surf_action_t execute_parallel_task(int workstation_nb, @@ -260,19 +260,17 @@ static const void **get_route(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension.network.get_route(workstation_src-> - network_card, - workstation_dst-> - network_card); + return surf_network_model->extension.network. + get_route(workstation_src->network_card, workstation_dst->network_card); } static int get_route_size(void *src, void *dst) { workstation_CLM03_t workstation_src = (workstation_CLM03_t) src; workstation_CLM03_t workstation_dst = (workstation_CLM03_t) dst; - return surf_network_model->extension. - network.get_route_size(workstation_src->network_card, - workstation_dst->network_card); + return surf_network_model->extension.network. + get_route_size(workstation_src->network_card, + workstation_dst->network_card); } static const char *get_link_name(const void *link) @@ -310,36 +308,31 @@ static void surf_workstation_model_init_internal(void) surf_model_init(surf_workstation_model); /* surf_workstation_model->extension_private = xbt_new0(s_surf_workstation_model_extension_private_t,1); */ - surf_workstation_model->common_public.get_resource_name = get_resource_name; - surf_workstation_model->common_public.action_get_state = - surf_action_get_state; - surf_workstation_model->common_public.action_get_start_time = - surf_action_get_start_time; - surf_workstation_model->common_public.action_get_finish_time = + surf_workstation_model->get_resource_name = get_resource_name; + surf_workstation_model->action_get_state = surf_action_get_state; + surf_workstation_model->action_get_start_time = surf_action_get_start_time; + surf_workstation_model->action_get_finish_time = surf_action_get_finish_time; - surf_workstation_model->common_public.action_free = action_free; - surf_workstation_model->common_public.action_use = action_use; - surf_workstation_model->common_public.action_cancel = action_cancel; - surf_workstation_model->common_public.action_change_state = - action_change_state; - surf_workstation_model->common_public.action_set_data = - surf_action_set_data; - surf_workstation_model->common_public.name = "Workstation"; - - surf_workstation_model->common_private->resource_used = resource_used; - surf_workstation_model->common_private->share_resources = share_resources; - surf_workstation_model->common_private->update_actions_state = + surf_workstation_model->action_free = action_free; + surf_workstation_model->action_use = action_use; + surf_workstation_model->action_cancel = action_cancel; + surf_workstation_model->action_change_state = action_change_state; + surf_workstation_model->action_set_data = surf_action_set_data; + surf_workstation_model->name = "Workstation"; + + surf_workstation_model->model_private->resource_used = resource_used; + surf_workstation_model->model_private->share_resources = share_resources; + surf_workstation_model->model_private->update_actions_state = update_actions_state; - surf_workstation_model->common_private->update_resource_state = + surf_workstation_model->model_private->update_resource_state = update_resource_state; - surf_workstation_model->common_private->finalize = finalize; + surf_workstation_model->model_private->finalize = finalize; - surf_workstation_model->common_public.suspend = action_suspend; - surf_workstation_model->common_public.resume = action_resume; - surf_workstation_model->common_public.is_suspended = action_is_suspended; - surf_workstation_model->common_public.set_max_duration = - action_set_max_duration; - surf_workstation_model->common_public.set_priority = action_set_priority; + surf_workstation_model->suspend = action_suspend; + surf_workstation_model->resume = action_resume; + surf_workstation_model->is_suspended = action_is_suspended; + surf_workstation_model->set_max_duration = action_set_max_duration; + surf_workstation_model->set_priority = action_set_priority; surf_workstation_model->extension.workstation.execute = execute; surf_workstation_model->extension.workstation.sleep = action_sleep; @@ -349,7 +342,7 @@ static void surf_workstation_model_init_internal(void) get_available_speed; /*manage the properties of the workstation */ - surf_workstation_model->common_public.get_properties = get_properties; + surf_workstation_model->get_properties = get_properties; surf_workstation_model->extension.workstation.communicate = communicate; surf_workstation_model->extension.workstation.execute_parallel_task = diff --git a/src/surf/workstation_ptask_L07.c b/src/surf/workstation_ptask_L07.c index 72945825ef..7ea73441a9 100644 --- a/src/surf/workstation_ptask_L07.c +++ b/src/surf/workstation_ptask_L07.c @@ -236,7 +236,7 @@ static double share_resources(double now) surf_action_workstation_L07_t action = NULL; xbt_swag_t running_actions = - surf_workstation_model->common_public.states.running_action_set; + surf_workstation_model->states.running_action_set; double min = generic_maxmin_share_resources(running_actions, xbt_swag_offset(s_action, variable), @@ -268,7 +268,7 @@ static void update_actions_state(double now, double delta) surf_action_workstation_L07_t action = NULL; surf_action_workstation_L07_t next_action = NULL; xbt_swag_t running_actions = - surf_workstation_model->common_public.states.running_action_set; + surf_workstation_model->states.running_action_set; xbt_swag_foreach_safe(action, next_action, running_actions) { deltap = delta; @@ -515,7 +515,7 @@ static surf_action_t execute_parallel_task(int workstation_nb, action->communication_amount = communication_amount; action->latency = latency; action->generic_action.state_set = - surf_workstation_model->common_public.states.running_action_set; + surf_workstation_model->states.running_action_set; xbt_swag_insert(action, action->generic_action.state_set); action->rate = rate; @@ -1007,35 +1007,30 @@ static void model_init_internal(void) surf_model_init(surf_workstation_model); - surf_workstation_model->common_public.get_resource_name = get_resource_name; - surf_workstation_model->common_public.action_get_state = - surf_action_get_state; - surf_workstation_model->common_public.action_get_start_time = - surf_action_get_start_time; - surf_workstation_model->common_public.action_get_finish_time = + surf_workstation_model->get_resource_name = get_resource_name; + surf_workstation_model->action_get_state = surf_action_get_state; + surf_workstation_model->action_get_start_time = surf_action_get_start_time; + surf_workstation_model->action_get_finish_time = surf_action_get_finish_time; - surf_workstation_model->common_public.action_use = action_use; - surf_workstation_model->common_public.action_free = action_free; - surf_workstation_model->common_public.action_cancel = action_cancel; - surf_workstation_model->common_public.action_change_state = - surf_action_change_state; - surf_workstation_model->common_public.action_set_data = - surf_action_set_data; - surf_workstation_model->common_public.suspend = action_suspend; - surf_workstation_model->common_public.resume = action_resume; - surf_workstation_model->common_public.is_suspended = action_is_suspended; - surf_workstation_model->common_public.set_max_duration = - action_set_max_duration; - surf_workstation_model->common_public.set_priority = action_set_priority; - surf_workstation_model->common_public.name = "Workstation ptask_L07"; - - surf_workstation_model->common_private->resource_used = resource_used; - surf_workstation_model->common_private->share_resources = share_resources; - surf_workstation_model->common_private->update_actions_state = + surf_workstation_model->action_use = action_use; + surf_workstation_model->action_free = action_free; + surf_workstation_model->action_cancel = action_cancel; + surf_workstation_model->action_change_state = surf_action_change_state; + surf_workstation_model->action_set_data = surf_action_set_data; + surf_workstation_model->suspend = action_suspend; + surf_workstation_model->resume = action_resume; + surf_workstation_model->is_suspended = action_is_suspended; + surf_workstation_model->set_max_duration = action_set_max_duration; + surf_workstation_model->set_priority = action_set_priority; + surf_workstation_model->name = "Workstation ptask_L07"; + + surf_workstation_model->model_private->resource_used = resource_used; + surf_workstation_model->model_private->share_resources = share_resources; + surf_workstation_model->model_private->update_actions_state = update_actions_state; - surf_workstation_model->common_private->update_resource_state = + surf_workstation_model->model_private->update_resource_state = update_resource_state; - surf_workstation_model->common_private->finalize = finalize; + surf_workstation_model->model_private->finalize = finalize; surf_workstation_model->extension.workstation.execute = execute; surf_workstation_model->extension.workstation.sleep = action_sleep; @@ -1057,7 +1052,7 @@ static void model_init_internal(void) get_link_latency; surf_workstation_model->extension.workstation.link_shared = link_shared; - surf_workstation_model->common_public.get_properties = get_properties; + surf_workstation_model->get_properties = get_properties; link_set = xbt_dict_new(); diff --git a/src/xbt/log.c b/src/xbt/log.c index 84e40ef695..f985905a03 100644 --- a/src/xbt/log.c +++ b/src/xbt/log.c @@ -463,7 +463,7 @@ This is on our TODO list for quite a while now, but your help would be welcome here, too. - *//*' */ + *//*' */ xbt_log_appender_t xbt_log_default_appender = NULL; /* set in log_init */ diff --git a/src/xbt/snprintf.c b/src/xbt/snprintf.c index 5fbb4100ea..a7acabcf14 100644 --- a/src/xbt/snprintf.c +++ b/src/xbt/snprintf.c @@ -357,8 +357,8 @@ #endif /* some other values of possible interest: */ - /* #define breakeven_point 8 *//* VAX 4000 - vaxc */ - /* #define breakeven_point 19 *//* VAX 4000 - gcc 2.7.0 */ + /* #define breakeven_point 8 *//* VAX 4000 - vaxc */ + /* #define breakeven_point 19 *//* VAX 4000 - gcc 2.7.0 */ #ifndef breakeven_point # define breakeven_point 6 /* some reasonable one-size-fits-all value */ diff --git a/src/xbt/xbt_context_private.h b/src/xbt/xbt_context_private.h index 9268560490..597648908a 100644 --- a/src/xbt/xbt_context_private.h +++ b/src/xbt/xbt_context_private.h @@ -122,6 +122,9 @@ SG_BEGIN_DECL() + + + xbt_context_init_factory_by_name(xbt_context_factory_t * factory, const char *name); diff --git a/teshsuite/gras/datadesc/datadesc_usage.c b/teshsuite/gras/datadesc/datadesc_usage.c index 7c326bccbb..b98e5ac1c1 100644 --- a/teshsuite/gras/datadesc/datadesc_usage.c +++ b/teshsuite/gras/datadesc/datadesc_usage.c @@ -457,19 +457,13 @@ static void test_dynar_ref(gras_socket_t sock, int direction) /**** PBIO *****/ GRAS_DEFINE_TYPE(s_pbio, struct s_pbio { /* structure presented in the IEEE article */ - int Cnstatv; - double Cstatev[12]; + int Cnstatv; double Cstatev[12]; int Cnprops; - double Cprops[110]; - int Cndi[4]; - int Cnshr; - int Cnpt; double Cdtime; double Ctime[2]; int Cntens; - double Cdfgrd0[373][3]; - double Cdfgrd1[3][3]; double Cstress[106]; - double Cddsdde[106][106]; - }; - - ) + double Cprops[110]; int Cndi[4]; int Cnshr; int Cnpt; + double Cdtime; + double Ctime[2]; + int Cntens; double Cdfgrd0[373][3]; double Cdfgrd1[3][3]; + double Cstress[106]; double Cddsdde[106][106];};) typedef struct s_pbio pbio_t; @@ -547,9 +541,10 @@ GRAS_DEFINE_TYPE(s_pbio, struct s_pbio { /* structure presented in the IE } GRAS_DEFINE_TYPE(s_clause, struct s_clause { - int num_lits; - int *literals GRAS_ANNOTE(size, num_lits); /* Tells GRAS where to find the size */ - };) + int num_lits; int *literals GRAS_ANNOTE(size, num_lits); /* Tells GRAS where to find the size */ + }; + + ) typedef struct s_clause Clause; diff --git a/testsuite/surf/surf_usage.c b/testsuite/surf/surf_usage.c index 785f5f13a3..6399cf16b8 100644 --- a/testsuite/surf/surf_usage.c +++ b/testsuite/surf/surf_usage.c @@ -106,27 +106,27 @@ void test(char *platform) DEBUG1("Next Event : %g", now); DEBUG0("\t CPU actions"); while ((action = - xbt_swag_extract(surf_cpu_model->common_public->states. - failed_action_set))) { + xbt_swag_extract(surf_cpu_model->common_public-> + states.failed_action_set))) { DEBUG1("\t * Failed : %p", action); action->model_type->common_public->action_free(action); } while ((action = - xbt_swag_extract(surf_cpu_model->common_public->states. - done_action_set))) { + xbt_swag_extract(surf_cpu_model->common_public-> + states.done_action_set))) { DEBUG1("\t * Done : %p", action); action->model_type->common_public->action_free(action); } DEBUG0("\t Network actions"); while ((action = - xbt_swag_extract(surf_network_model->common_public->states. - failed_action_set))) { + xbt_swag_extract(surf_network_model->common_public-> + states.failed_action_set))) { DEBUG1("\t * Failed : %p", action); action->model_type->common_public->action_free(action); } while ((action = - xbt_swag_extract(surf_network_model->common_public->states. - done_action_set))) { + xbt_swag_extract(surf_network_model->common_public-> + states.done_action_set))) { DEBUG1("\t * Done : %p", action); action->model_type->common_public->action_free(action); } diff --git a/testsuite/surf/surf_usage2.c b/testsuite/surf/surf_usage2.c index ad38d7ea3a..8ffdc0e387 100644 --- a/testsuite/surf/surf_usage2.c +++ b/testsuite/surf/surf_usage2.c @@ -61,11 +61,11 @@ void test(char *platform) /* Let's check that those two processors exist */ DEBUG2("%s : %p", - surf_workstation_model->common_public-> - get_resource_name(workstationA), workstationA); + surf_workstation_model-> + common_public->get_resource_name(workstationA), workstationA); DEBUG2("%s : %p", - surf_workstation_model->common_public-> - get_resource_name(workstationB), workstationB); + surf_workstation_model-> + common_public->get_resource_name(workstationB), workstationB); /* Let's do something on it */ actionA = @@ -92,14 +92,14 @@ void test(char *platform) xbt_dynar_foreach(model_list, iter, model) { DEBUG1("\t %s actions", model->common_public->name); while ((action = - xbt_swag_extract(model->common_public->states. - failed_action_set))) { + xbt_swag_extract(model->common_public-> + states.failed_action_set))) { DEBUG1("\t * Failed : %p", action); model->common_public->action_free(action); } while ((action = - xbt_swag_extract(model->common_public->states. - done_action_set))) { + xbt_swag_extract(model->common_public-> + states.done_action_set))) { DEBUG1("\t * Done : %p", action); model->common_public->action_free(action); }