-SD_workstation_t SD_workstation_get_by_name(const char *name);
-const SD_workstation_t* SD_workstation_get_list(void);
-int SD_workstation_get_number(void);
-void SD_workstation_set_data(SD_workstation_t workstation, void *data);
-void* SD_workstation_get_data(SD_workstation_t workstation);
-const char* SD_workstation_get_name(SD_workstation_t workstation);
-SD_link_t* SD_route_get_list(SD_workstation_t src, SD_workstation_t dst);
-int SD_route_get_size(SD_workstation_t src, SD_workstation_t dst);
-double SD_workstation_get_power(SD_workstation_t workstation);
-double SD_workstation_get_available_power(SD_workstation_t workstation);
-
-double SD_workstation_get_computation_time(SD_workstation_t workstation, double computation_amount);
-double SD_route_get_current_latency(SD_workstation_t src, SD_workstation_t dst);
-double SD_route_get_current_bandwidth(SD_workstation_t src, SD_workstation_t dst);
-double SD_route_get_communication_time(SD_workstation_t src, SD_workstation_t dst,
+XBT_PUBLIC(SD_workstation_t) SD_workstation_get_by_name(const char *name);
+XBT_PUBLIC(const SD_workstation_t*) SD_workstation_get_list(void);
+XBT_PUBLIC(int) SD_workstation_get_number(void);
+XBT_PUBLIC(void) SD_workstation_set_data(SD_workstation_t workstation, void *data);
+XBT_PUBLIC(void*) SD_workstation_get_data(SD_workstation_t workstation);
+XBT_PUBLIC(const char*) SD_workstation_get_name(SD_workstation_t workstation);
+/*property handling functions*/
+XBT_PUBLIC(xbt_dict_t) SD_workstation_get_properties(SD_workstation_t workstation);
+XBT_PUBLIC(const char*) SD_workstation_get_property_value(SD_workstation_t workstation, const char* name);
+
+XBT_PUBLIC(const SD_link_t*) SD_route_get_list(SD_workstation_t src, SD_workstation_t dst);
+XBT_PUBLIC(int) SD_route_get_size(SD_workstation_t src, SD_workstation_t dst);
+XBT_PUBLIC(double) SD_workstation_get_power(SD_workstation_t workstation);
+XBT_PUBLIC(double) SD_workstation_get_available_power(SD_workstation_t workstation);
+XBT_PUBLIC(e_SD_workstation_access_mode_t) SD_workstation_get_access_mode(SD_workstation_t workstation);
+XBT_PUBLIC(void) SD_workstation_set_access_mode(SD_workstation_t workstation,
+ e_SD_workstation_access_mode_t access_mode);
+
+XBT_PUBLIC(double) SD_workstation_get_computation_time(SD_workstation_t workstation, double computation_amount);
+XBT_PUBLIC(double) SD_route_get_current_latency(SD_workstation_t src, SD_workstation_t dst);
+XBT_PUBLIC(double) SD_route_get_current_bandwidth(SD_workstation_t src, SD_workstation_t dst);
+XBT_PUBLIC(double) SD_route_get_communication_time(SD_workstation_t src, SD_workstation_t dst,