#include "xbt/swag.h"
#include "xbt/dynar.h"
#include "xbt/dict.h"
+#include "xbt/misc.h"
+#include "gras_config.h"
+
+SG_BEGIN_DECL()
+
+
/* Actions and resources are higly connected structures... */
/** \brief The timer resource
* \ingroup SURF_resources
*/
-extern surf_timer_resource_t XBT_DECLARE_DATA surf_timer_resource;
+XBT_PUBLIC_DATA(surf_timer_resource_t) surf_timer_resource;
/** \brief Initializes the timer resource
* \ingroup SURF_resources
/** \brief The CPU resource
* \ingroup SURF_resources
*/
-extern surf_cpu_resource_t XBT_DECLARE_DATA surf_cpu_resource;
+XBT_PUBLIC_DATA(surf_cpu_resource_t) surf_cpu_resource;
/** \brief Initializes the CPU resource with the model Cas01
* \ingroup SURF_resources
* resource should be accessed because depending on the platform model,
* the network resource can be NULL.
*/
-extern surf_network_resource_t XBT_DECLARE_DATA surf_network_resource;
+XBT_PUBLIC_DATA(surf_network_resource_t) surf_network_resource;
/** \brief Initializes the platform with the network model CM02
* \ingroup SURF_resources
* because depending on the platform model, the network resource and the CPU resource
* may not exist.
*/
-extern surf_workstation_resource_t XBT_DECLARE_DATA surf_workstation_resource;
+XBT_PUBLIC_DATA(surf_workstation_resource_t) surf_workstation_resource;
/** \brief Initializes the platform with the workstation model CLM03
* \ingroup SURF_resources
XBT_PUBLIC(void) surf_workstation_resource_init_KCCFLN05_proportionnal(const char *filename);
+#ifdef USE_GTNETS
+XBT_PUBLIC(void) surf_workstation_resource_init_GTNETS(const char *filename);
+#endif
/** \brief The network links
* \ingroup SURF_resources
*
* \see workstation_set
*/
-extern xbt_dict_t XBT_DECLARE_DATA network_link_set;
+XBT_PUBLIC_DATA(xbt_dict_t) network_link_set;
/** \brief The workstations
* \ingroup SURF_resources
*
* \see network_link_set
*/
-extern xbt_dict_t XBT_DECLARE_DATA workstation_set;
+XBT_PUBLIC_DATA(xbt_dict_t) workstation_set;
/** \brief List of initialized resources
* \ingroup SURF_resources
*/
-extern xbt_dynar_t XBT_DECLARE_DATA resource_list;
+XBT_PUBLIC_DATA(xbt_dynar_t) resource_list;
/*******************************************/
/*** SURF Globals **************************/
*
* Return the current time in millisecond.
*/
-XBT_PUBLIC(double) surf_get_clock(void);
+XBT_PUBLIC(double)surf_get_clock(void);
/** \brief Exit SURF
* \ingroup SURF_simulation
*/
XBT_PUBLIC(void) surf_exit(void);
+SG_END_DECL()
+
#endif /* _SURF_SURF_H */