X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bf70f2f039e841a623a5614f6325806637b3d7e1..db82f9e75280108116a8e70d2e7a163080020d29:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index d3e2ecc595..65694ccc28 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -100,6 +100,7 @@ typedef struct surf_action { xbt_swag_t state_set; double cost; /**< cost */ double priority; /**< priority (1.0 by default) */ + double bound; /**< the capping of the CPU use */ double max_duration; /**< max_duration (may fluctuate until the task is completed) */ double remains; /**< How much of that cost remains to @@ -290,6 +291,7 @@ typedef struct surf_workstation_model_extension_public { void (*get_params) (void *ind_vm_ws, ws_params_t param); void (*set_params) (void *ind_vm_ws, ws_params_t param); + xbt_dynar_t (*get_vms) (void *ind_vm_ws); } s_surf_model_extension_workstation_t; @@ -321,6 +323,8 @@ typedef struct surf_vm_workstation_model_extension_public { void * (*get_pm) (void *ind_vm_ws); // will be vm_ws_get_pm() + void (*set_vm_bound) (void *ind_vm_ws, double bound); // will be vm_ws_set_vm_bound() + } s_surf_model_extension_vm_workstation_t; /** \ingroup SURF_models @@ -369,6 +373,7 @@ typedef struct surf_model { 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 */ + void (*set_bound) (surf_action_t action, double bound); /**< Set the bound (the maximum CPU utilization) of an action */ #ifdef HAVE_TRACING void (*set_category) (surf_action_t action, const char *category); /**< Set the category of an action */ #endif @@ -708,6 +713,16 @@ XBT_PUBLIC_DATA(s_surf_model_description_t) surf_new_model_description[]; XBT_PUBLIC_DATA(xbt_dynar_t) model_list; XBT_PUBLIC_DATA(xbt_dynar_t) model_list_invoke; +/*******************************************/ +/*** SURF Platform *************************/ +/*******************************************/ +typedef struct s_as *AS_t; + +XBT_PUBLIC_DATA(AS_t) surf_AS_get_routing_root(void); +XBT_PUBLIC_DATA(const char *)surf_AS_get_name(AS_t as); +XBT_PUBLIC_DATA(xbt_dict_t) surf_AS_get_routing_sons(AS_t as); + + /*******************************************/ /*** SURF Globals **************************/ /*******************************************/