X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4e78565ea6b354a0e6250a87b483f909665a0ac3..db82f9e75280108116a8e70d2e7a163080020d29:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index b13bff235d..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 @@ -288,6 +289,10 @@ typedef struct surf_workstation_model_extension_public { xbt_dict_t(*get_properties) (const void *resource); void (*add_traces) (void); + 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; typedef struct surf_vm_workstation_model_extension_public { @@ -300,13 +305,26 @@ typedef struct surf_vm_workstation_model_extension_public { * */ s_surf_model_extension_workstation_t basic; - void (*create) (const char *name, void *ind_phys_workstation); // First operation of the VM model // start does not appear here as it corresponds to turn the state from created to running (see smx_vm.c) - int (*get_state) (void *ind_vm_workstation); - void (*set_state) (void *ind_vms_workstation, int state); - void (*migrate) (void *ind_vm_workstation, void *ind_dest_phys_workstation); // will be vm_ws_migrate() - const char * (*get_phys_host) (void *ind_vm_workstation); // will be vm_ws_get_phys_host() - void (*destroy) (void *ind_vm_workstation); // will be vm_ws_destroy(), which destroies the vm-workstation-specific data + + void (*create) (const char *name, void *ind_phys_workstation); // First operation of the VM model + void (*destroy) (void *ind_vm_ws); // will be vm_ws_destroy(), which destroies the vm-workstation-specific data + + void (*suspend) (void *ind_vm_ws); + void (*resume) (void *ind_vm_ws); + + void (*save) (void *ind_vm_ws); + void (*restore) (void *ind_vm_ws); + + void (*migrate) (void *ind_vm_ws, void *ind_vm_ws_dest); // will be vm_ws_migrate() + + int (*get_state) (void *ind_vm_ws); + void (*set_state) (void *ind_vm_ws, int state); + + 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 @@ -355,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 @@ -694,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 **************************/ /*******************************************/