#include "xbt/fifo.h"
#include "simgrid/simdag.h"
#include "surf/surf.h"
-#include "xbt/swag.h"
#include "xbt/mallocator.h"
#include <stdbool.h>
typedef struct SD_global {
SD_workstation_t *workstation_list; /* array of workstations, created only if
necessary in SD_workstation_get_list */
- SD_link_t *link_list; /* array of links, created only if
- necessary in SD_link_get_list */
+ SD_link_t *link_list; /* array of links */
SD_link_t *recyclable_route; /* array returned by SD_route_get_list
and mallocated only once */
xbt_dynar_t executable_task_set;
xbt_dynar_t completed_task_set;
- xbt_swag_t return_set;
+ xbt_dynar_t return_set;
int task_number;
} s_SD_global_t, *SD_global_t;
/* Task */
typedef struct SD_task {
- s_xbt_swag_hookup_t return_hookup;
e_SD_task_state_t state;
void *data; /* user data */
char *name;
- int kind;
+ e_SD_task_kind_t kind;
double amount;
double alpha; /* used by typed parallel tasks */
double remains;
} s_SD_dependency_t, *SD_dependency_t;
/* SimDag private functions */
-
-/* could be public, but you need to see the SD_task_t internals to use it */
-XBT_PRIVATE xbt_swag_t SD_simulate_swag(double how_long);
-
-
XBT_PRIVATE SD_workstation_t __SD_workstation_create(const char* name);
XBT_PRIVATE void __SD_workstation_destroy(void *workstation);
XBT_PRIVATE int __SD_workstation_is_busy(SD_workstation_t workstation);
XBT_PRIVATE void __SD_task_just_done(SD_task_t task);
XBT_PRIVATE int __SD_task_try_to_run(SD_task_t task);
XBT_PRIVATE bool acyclic_graph_detail(xbt_dynar_t dag);
+XBT_PRIVATE void uniq_transfer_task_name(SD_task_t task);
/* Task mallocator functions */
XBT_PRIVATE void* SD_task_new_f(void);