SD_WORKSTATION_SEQUENTIAL_ACCESS /**< @brief Only one task can be executed, the others wait in a FIFO. */
} e_SD_workstation_access_mode_t;
+typedef enum {
+ SD_LINK_SHARED,
+ SD_LINK_FATPIPE
+} e_SD_link_sharing_policy_t;
+
/** @brief Link datatype
@ingroup SD_datatypes_management
XBT_PUBLIC(const char*) SD_link_get_name(SD_link_t link);
XBT_PUBLIC(double) SD_link_get_current_bandwidth(SD_link_t link);
XBT_PUBLIC(double) SD_link_get_current_latency(SD_link_t link);
+XBT_PUBLIC(e_SD_link_sharing_policy_t) SD_link_get_sharing_policy(SD_link_t link);
/*property handling functions*/
XBT_PUBLIC(xbt_dict_t) SD_link_get_properties(SD_link_t link);
XBT_PUBLIC(const char*) SD_link_get_property_value(SD_link_t link, const char* name);
typedef struct SD_link {
void *surf_link; /* surf object */
void *data; /* user data */
+ e_SD_link_sharing_policy_t sharing_policy;
} s_SD_link_t;
/* Workstation */
return surf_workstation_model->extension_public->get_link_latency(link->surf_link);
}
+/**
+ * \brief Returns the sharing policy of this workstation.
+ *
+ * \param link a link
+ * \return the sharing policyfor the flows going through this link:
+ * SD_LINK_SHARED or SD_LINK_FATPIPE
+ *
+ */
+e_SD_link_sharing_policy_t SD_link_get_sharing_policy (SD_link_t link) {
+ SD_CHECK_INIT_DONE();
+ xbt_assert0(link != NULL, "Invalid parameter");
+ return link->sharing_policy;
+}
+
+
/* Destroys a link.
*/
void __SD_link_destroy(void *link) {