+void surf_action_state_set(surf_action_t action,
+ e_surf_action_state_t state);
+void surf_action_data_set(surf_action_t action, void *data); /* cannot declare inline since we use a pointer to it */
+FILE *surf_fopen(const char *name, const char *mode);
+
+extern tmgr_history_t history;
+extern xbt_dynar_t surf_path;
+
+void surf_config_init(int *argc, char **argv);
+void surf_config_finalize(void);
+void surf_config(const char *name, va_list pa);
+
+
+/*
+ * Returns the initial path. On Windows the initial path is
+ * the current directory for the current process in the other
+ * case the function returns "./" that represents the current
+ * directory on Unix/Linux platforms.
+ */
+const char *__surf_get_initial_path(void);
+
+/* The __surf_is_absolute_file_path() returns 1 if
+ * file_path is a absolute file path, in the other
+ * case the function returns 0.
+ */
+int __surf_is_absolute_file_path(const char *file_path);
+
+/*
+ * One link routing list
+ */
+typedef struct {
+ int src_id;
+ int dst_id;
+ void *link_ptr;
+}s_onelink, *s_onelink_t;
+
+
+/*
+ * Routing logic
+ */
+struct s_routing {
+ const char *name;
+ xbt_dict_t host_id; /* char* -> int* */
+ xbt_dynar_t (*get_route)(int src, int dst);
+ xbt_dict_t (*get_onelink_routes)(void);
+ int (*is_router)(int id);
+ void (*finalize)(void);
+ int host_count;
+ int router_count;
+};
+XBT_PUBLIC(void) routing_model_create(size_t size_of_link,void *loopback);
+
+
+/*
+ * Resource protected methods
+ */
+XBT_PUBLIC(xbt_dict_t) surf_resource_properties(const void *resource);