-/** \ingroup SURF_models
- * \brief Storage model extension public
- *
- * Public functions specific to the Storage model.
- */
-
-typedef struct surf_storage_model_extension_public {
- surf_action_t(*open) (void *storage, const char* mount, const char* path);
- surf_action_t(*close) (void *storage, surf_file_t fd);
- surf_action_t(*read) (void *storage, surf_file_t fd, sg_storage_size_t size);
- surf_action_t(*write) (void *storage, surf_file_t fd, sg_storage_size_t size);
- surf_action_t(*stat) (void *storage, surf_file_t fd);
- surf_action_t(*ls) (void *storage, const char *path);
- xbt_dict_t(*get_properties) (const void *storage);
- void (*rename) (const void *storage, const char *src, const char *dest);
- xbt_dict_t(*get_content) (void *storage);
- sg_storage_size_t(*get_size) (void *storage);
-} s_surf_model_extension_storage_t;
-
- /** \ingroup SURF_models
- * \brief Workstation model extension public
- *
- * 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 */
- surf_action_t(*sleep) (void *workstation, double duration); /**< Make a workstation sleep during a given duration */
- e_surf_resource_state_t(*get_state) (void *workstation); /**< Return the CPU state of a workstation */
-
- int (*get_core) (void *workstation);
- double (*get_speed) (void *workstation, double load); /**< Return the speed of a workstation */
- double (*get_available_speed) (void *workstation); /**< Return tha available speed of a workstation */
-
- double (*get_current_power_peak) (void *workstation); /**< Return the current CPU speed of a workstation */
- double (*get_power_peak_at) (void *workstation, int pstate_index); /**< Return the speed of a workstation for a specific pstate,
- (where higher pstate values represent lower processor speeds) */
- int (*get_nb_pstates) (void *workstation); /**< Return the number of pstates defined for a workstation (default is 1) */
- void (*set_power_peak_at) (void *workstation, int pstate_index); /**< Set the processor speed of a workstation to the speed associated with the pstate_index pstate */
- double (*get_consumed_energy) (void *workstation); /**< Return the total energy consumed by a workstation */
-
- surf_action_t(*communicate) (void *workstation_src, /**< Execute a communication amount between two workstations */
- void *workstation_dst, double size,
- double max_rate);
- // FIXME: kill next field, which duplicates the routing
- xbt_dynar_t(*get_route) (void *workstation_src, void *workstation_dst); /**< Get the list of links between two ws */
-
- surf_action_t(*execute_parallel_task) (int workstation_nb, /**< Execute a parallel task on several workstations */
- void **workstation_list,
- double *computation_amount,
- double *communication_amount,
- double rate);
- 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 */
- surf_action_t(*open) (void *workstation, const char* storage,
- const char* path);
- surf_action_t(*close) (void *workstation, surf_file_t fd);
- surf_action_t(*read) (void *workstation, surf_file_t fd, sg_storage_size_t size);
- surf_action_t(*write) (void *workstation, surf_file_t fd, sg_storage_size_t size);
- surf_action_t(*stat) (void *workstation, surf_file_t fd);
- int(*unlink) (void *workstation, surf_file_t fd);
- surf_action_t(*ls) (void *workstation, const char* mount, const char *path);
- sg_storage_size_t (*get_size) (void *workstation, surf_file_t fd);
- xbt_dynar_t (*get_info) (void *workstation, surf_file_t fd);
- int (*link_shared) (const void *link);
- xbt_dict_t(*get_properties) (const void *resource);
- void (*add_traces) (void);
-
- sg_storage_size_t (*get_free_size) (void *workstation,const char* name);
- sg_storage_size_t (*get_used_size) (void *workstation,const char* name);
- xbt_dict_t (*get_storage_list) (void *workstation);
-
-} s_surf_model_extension_workstation_t;