Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add AS support in MSG and java bindings
[simgrid.git] / src / include / surf / surf.h
index d3e2ecc..65694cc 100644 (file)
@@ -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 **************************/
 /*******************************************/