This is an old idea, that I want to implement since at least 3 years.
It removes an ambiguity with surf_action_t, and makes it explicit that
these things are a way to synchronize the processes with their
environment.
XBT_PUBLIC(msg_comm_t) MSG_task_isend_bounded(msg_task_t task, const char *alias, double maxrate);
XBT_PUBLIC(msg_comm_t) MSG_task_isend_with_matching(msg_task_t task,
const char *alias,
- int (*match_fun)(void*,void*, smx_action_t),
+ int (*match_fun)(void*,void*, smx_synchro_t),
void *match_data);
XBT_PUBLIC(void) MSG_task_dsend(msg_task_t task, const char *alias, void_f_pvoid_t cleanup);
typedef xbt_dictelm_t smx_storage_t;
typedef struct s_smx_storage_priv *smx_storage_priv_t;
-/********************************** Action *************************************/
-typedef struct s_smx_action *smx_action_t; /* FIXME: replace by specialized action handlers */
+/********************************** Synchro *************************************/
+typedef struct s_smx_synchro *smx_synchro_t; /* FIXME: replace by specialized synchro handlers */
/* ****************************** Process *********************************** */
/** @brief Process datatype
*/
typedef struct s_smx_rvpoint *smx_rdv_t;
-XBT_PUBLIC(void*) SIMIX_comm_get_src_data(smx_action_t action);
-XBT_PUBLIC(void*) SIMIX_comm_get_dst_data(smx_action_t action);
+XBT_PUBLIC(void*) SIMIX_comm_get_src_data(smx_synchro_t synchro);
+XBT_PUBLIC(void*) SIMIX_comm_get_dst_data(smx_synchro_t synchro);
/******************************** Context *************************************/
typedef struct s_smx_context *smx_context_t;
XBT_PUBLIC(void) SIMIX_process_on_exit(smx_process_t process, int_f_pvoid_pvoid_t fun, void *data);
/****************************** Communication *********************************/
-XBT_PUBLIC(void) SIMIX_comm_set_copy_data_callback(void (*callback) (smx_action_t, void*, size_t));
-XBT_PUBLIC(void) SIMIX_comm_copy_pointer_callback(smx_action_t comm, void* buff, size_t buff_size);
-XBT_PUBLIC(void) SIMIX_comm_copy_buffer_callback(smx_action_t comm, void* buff, size_t buff_size);
+XBT_PUBLIC(void) SIMIX_comm_set_copy_data_callback(void (*callback) (smx_synchro_t, void*, size_t));
+XBT_PUBLIC(void) SIMIX_comm_copy_pointer_callback(smx_synchro_t comm, void* buff, size_t buff_size);
+XBT_PUBLIC(void) SIMIX_comm_copy_buffer_callback(smx_synchro_t comm, void* buff, size_t buff_size);
-XBT_PUBLIC(smx_action_t) SIMIX_comm_get_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
+XBT_PUBLIC(smx_synchro_t) SIMIX_comm_get_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
XBT_PUBLIC(int) SIMIX_comm_has_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
XBT_PUBLIC(int) SIMIX_comm_has_recv_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), void* data);
-XBT_PUBLIC(void) SIMIX_comm_finish(smx_action_t action);
+XBT_PUBLIC(void) SIMIX_comm_finish(smx_synchro_t synchro);
/******************************************************************************/
/* SIMIX simcalls */
XBT_PUBLIC(void) simcall_host_set_power_peak_at(smx_host_t host, int pstate_index);
XBT_PUBLIC(double) simcall_host_get_consumed_energy(smx_host_t host);
-XBT_PUBLIC(smx_action_t) simcall_host_execute(const char *name, smx_host_t host,
+XBT_PUBLIC(smx_synchro_t) simcall_host_execute(const char *name, smx_host_t host,
double computation_amount,
double priority, double bound, unsigned long affinity_mask);
-XBT_PUBLIC(smx_action_t) simcall_host_parallel_execute(const char *name,
+XBT_PUBLIC(smx_synchro_t) simcall_host_parallel_execute(const char *name,
int host_nb,
smx_host_t *host_list,
double *computation_amount,
double *communication_amount,
double amount,
double rate);
-XBT_PUBLIC(void) simcall_host_execution_destroy(smx_action_t execution);
-XBT_PUBLIC(void) simcall_host_execution_cancel(smx_action_t execution);
-XBT_PUBLIC(double) simcall_host_execution_get_remains(smx_action_t execution);
-XBT_PUBLIC(e_smx_state_t) simcall_host_execution_get_state(smx_action_t execution);
-XBT_PUBLIC(void) simcall_host_execution_set_priority(smx_action_t execution, double priority);
-XBT_PUBLIC(void) simcall_host_execution_set_bound(smx_action_t execution, double bound);
-XBT_PUBLIC(void) simcall_host_execution_set_affinity(smx_action_t execution, smx_host_t host, unsigned long mask);
-XBT_PUBLIC(e_smx_state_t) simcall_host_execution_wait(smx_action_t execution);
+XBT_PUBLIC(void) simcall_host_execution_destroy(smx_synchro_t execution);
+XBT_PUBLIC(void) simcall_host_execution_cancel(smx_synchro_t execution);
+XBT_PUBLIC(double) simcall_host_execution_get_remains(smx_synchro_t execution);
+XBT_PUBLIC(e_smx_state_t) simcall_host_execution_get_state(smx_synchro_t execution);
+XBT_PUBLIC(void) simcall_host_execution_set_priority(smx_synchro_t execution, double priority);
+XBT_PUBLIC(void) simcall_host_execution_set_bound(smx_synchro_t execution, double bound);
+XBT_PUBLIC(void) simcall_host_execution_set_affinity(smx_synchro_t execution, smx_host_t host, unsigned long mask);
+XBT_PUBLIC(e_smx_state_t) simcall_host_execution_wait(smx_synchro_t execution);
XBT_PUBLIC(xbt_dict_t) simcall_host_get_mounted_storage_list(smx_host_t host);
XBT_PUBLIC(xbt_dynar_t) simcall_host_get_attached_storage_list(smx_host_t host);
XBT_PUBLIC(void) simcall_host_get_params(smx_host_t vm, ws_params_t param);
XBT_PUBLIC(void) simcall_rdv_destroy(smx_rdv_t rvp);
XBT_PUBLIC(smx_rdv_t) simcall_rdv_get_by_name(const char *name);
XBT_PUBLIC(int) simcall_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host);
-XBT_PUBLIC(smx_action_t) simcall_rdv_get_head(smx_rdv_t rdv);
+XBT_PUBLIC(smx_synchro_t) simcall_rdv_get_head(smx_rdv_t rdv);
XBT_PUBLIC(smx_process_t) simcall_rdv_get_receiver(smx_rdv_t rdv);
XBT_PUBLIC(void) simcall_rdv_set_receiver(smx_rdv_t rdv , smx_process_t process);
XBT_PUBLIC(void) simcall_comm_send(smx_process_t src, smx_rdv_t rdv, double task_size,
double rate, void *src_buff,
size_t src_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double timeout);
-XBT_PUBLIC(smx_action_t) simcall_comm_isend(smx_process_t src, smx_rdv_t rdv,
+XBT_PUBLIC(smx_synchro_t) simcall_comm_isend(smx_process_t src, smx_rdv_t rdv,
double task_size,
double rate, void *src_buff,
size_t src_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
void (*clean_fun)(void *),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, int detached);
XBT_PUBLIC(void) simcall_comm_recv(smx_rdv_t rdv, void *dst_buff,
size_t * dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double timeout, double rate);
-XBT_PUBLIC(smx_action_t) simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff,
+XBT_PUBLIC(smx_synchro_t) simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff,
size_t * dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double rate);
-XBT_PUBLIC(smx_action_t) simcall_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag,
- int (*match_fun)(void *, void *, smx_action_t), void *data);
-XBT_PUBLIC(void) simcall_comm_cancel(smx_action_t comm);
+XBT_PUBLIC(smx_synchro_t) simcall_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag,
+ int (*match_fun)(void *, void *, smx_synchro_t), void *data);
+XBT_PUBLIC(void) simcall_comm_cancel(smx_synchro_t comm);
/* FIXME: waitany is going to be a vararg function, and should take a timeout */
XBT_PUBLIC(unsigned int) simcall_comm_waitany(xbt_dynar_t comms);
-XBT_PUBLIC(void) simcall_comm_wait(smx_action_t comm, double timeout);
-XBT_PUBLIC(int) simcall_comm_test(smx_action_t comm);
+XBT_PUBLIC(void) simcall_comm_wait(smx_synchro_t comm, double timeout);
+XBT_PUBLIC(int) simcall_comm_test(smx_synchro_t comm);
XBT_PUBLIC(int) simcall_comm_testany(xbt_dynar_t comms);
/* Getters and setters */
-XBT_PUBLIC(double) simcall_comm_get_remains(smx_action_t comm);
-XBT_PUBLIC(e_smx_state_t) simcall_comm_get_state(smx_action_t comm);
-XBT_PUBLIC(void *) simcall_comm_get_src_data(smx_action_t comm);
-XBT_PUBLIC(void *) simcall_comm_get_dst_data(smx_action_t comm);
-XBT_PUBLIC(smx_process_t) simcall_comm_get_src_proc(smx_action_t comm);
-XBT_PUBLIC(smx_process_t) simcall_comm_get_dst_proc(smx_action_t comm);
+XBT_PUBLIC(double) simcall_comm_get_remains(smx_synchro_t comm);
+XBT_PUBLIC(e_smx_state_t) simcall_comm_get_state(smx_synchro_t comm);
+XBT_PUBLIC(void *) simcall_comm_get_src_data(smx_synchro_t comm);
+XBT_PUBLIC(void *) simcall_comm_get_dst_data(smx_synchro_t comm);
+XBT_PUBLIC(smx_process_t) simcall_comm_get_src_proc(smx_synchro_t comm);
+XBT_PUBLIC(smx_process_t) simcall_comm_get_dst_proc(smx_synchro_t comm);
#ifdef HAVE_LATENCY_BOUND_TRACKING
-XBT_PUBLIC(int) simcall_comm_is_latency_bounded(smx_action_t comm);
+XBT_PUBLIC(int) simcall_comm_is_latency_bounded(smx_synchro_t comm);
#endif
#ifdef HAVE_TRACING
/************************** Tracing handling **********************************/
-XBT_PUBLIC(void) simcall_set_category(smx_action_t action, const char *category);
+XBT_PUBLIC(void) simcall_set_category(smx_synchro_t synchro, const char *category);
#endif
/************************** Synchro simcalls **********************************/
XBT_PUBLIC(void) ETag_surfxml_model___prop(void);
/* XML application data. */
-typedef int AT_surfxml_backbone_id;
-#define AU_surfxml_backbone_id NULL
+typedef int AT_surfxml_bypassASroute_dst;
+#define AU_surfxml_bypassASroute_dst NULL
+typedef int AT_surfxml_link_latency___file;
+#define AU_surfxml_link_latency___file NULL
+typedef int AT_surfxml_prop_value;
+#define AU_surfxml_prop_value NULL
+typedef int AT_surfxml_cluster_power;
+#define AU_surfxml_cluster_power NULL
+typedef int AT_surfxml_random_min;
+#define AU_surfxml_random_min NULL
+typedef int AT_surfxml_host_availability___file;
+#define AU_surfxml_host_availability___file NULL
+typedef enum { AU_surfxml_link_sharing___policy, A_surfxml_link_sharing___policy_SHARED,A_surfxml_link_sharing___policy_FATPIPE,A_surfxml_link_sharing___policy_FULLDUPLEX } AT_surfxml_link_sharing___policy;
+typedef int AT_surfxml_storage___type_model;
+#define AU_surfxml_storage___type_model NULL
+typedef int AT_surfxml_argument_value;
+#define AU_surfxml_argument_value NULL
+typedef int AT_surfxml_AS_id;
+#define AU_surfxml_AS_id NULL
+typedef int AT_surfxml_cluster_loopback___bw;
+#define AU_surfxml_cluster_loopback___bw NULL
+typedef int AT_surfxml_mount_name;
+#define AU_surfxml_mount_name NULL
typedef int AT_surfxml_cluster_router___id;
#define AU_surfxml_cluster_router___id NULL
-typedef int AT_surfxml_trace_periodicity;
-#define AU_surfxml_trace_periodicity NULL
-typedef int AT_surfxml_cluster_core;
-#define AU_surfxml_cluster_core NULL
typedef int AT_surfxml_cluster_id;
#define AU_surfxml_cluster_id NULL
-typedef int AT_surfxml_storage___type_model;
-#define AU_surfxml_storage___type_model NULL
-typedef int AT_surfxml_link_latency;
-#define AU_surfxml_link_latency NULL
-typedef int AT_surfxml_cluster_prefix;
-#define AU_surfxml_cluster_prefix NULL
-typedef int AT_surfxml_host_availability;
-#define AU_surfxml_host_availability NULL
-typedef enum { AU_surfxml_cluster_topology, A_surfxml_cluster_topology_FLAT,A_surfxml_cluster_topology_TORUS,A_surfxml_cluster_topology_FAT___TREE } AT_surfxml_cluster_topology;
-typedef int AT_surfxml_cluster_bb___lat;
-#define AU_surfxml_cluster_bb___lat NULL
-typedef int AT_surfxml_cluster_loopback___lat;
-#define AU_surfxml_cluster_loopback___lat NULL
-typedef enum { AU_surfxml_route_symmetrical, A_surfxml_route_symmetrical_YES,A_surfxml_route_symmetrical_NO } AT_surfxml_route_symmetrical;
-typedef int AT_surfxml_trace_id;
-#define AU_surfxml_trace_id NULL
-typedef int AT_surfxml_cluster_radical;
-#define AU_surfxml_cluster_radical NULL
-typedef int AT_surfxml_host_core;
-#define AU_surfxml_host_core NULL
-typedef int AT_surfxml_random_radical;
-#define AU_surfxml_random_radical NULL
-typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy;
-typedef int AT_surfxml_trace_file;
-#define AU_surfxml_trace_file NULL
-typedef int AT_surfxml_host_state___file;
-#define AU_surfxml_host_state___file NULL
-typedef int AT_surfxml_router_coordinates;
-#define AU_surfxml_router_coordinates NULL
-typedef int AT_surfxml_ASroute_dst;
-#define AU_surfxml_ASroute_dst NULL
-typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state;
-typedef int AT_surfxml_cluster_lat;
-#define AU_surfxml_cluster_lat NULL
-typedef int AT_surfxml_storage___type_content;
-#define AU_surfxml_storage___type_content NULL
-typedef int AT_surfxml_ASroute_gw___dst;
-#define AU_surfxml_ASroute_gw___dst NULL
-typedef int AT_surfxml_platform_version;
-#define AU_surfxml_platform_version NULL
-typedef int AT_surfxml_host___link_down;
-#define AU_surfxml_host___link_down NULL
-typedef int AT_surfxml_random_seed;
-#define AU_surfxml_random_seed NULL
-typedef int AT_surfxml_cluster_limiter___link;
-#define AU_surfxml_cluster_limiter___link NULL
-typedef int AT_surfxml_process_function;
-#define AU_surfxml_process_function NULL
-typedef int AT_surfxml_host___link_up;
-#define AU_surfxml_host___link_up NULL
-typedef enum { AU_surfxml_link_state, A_surfxml_link_state_ON,A_surfxml_link_state_OFF } AT_surfxml_link_state;
-typedef int AT_surfxml_config_id;
-#define AU_surfxml_config_id NULL
+typedef enum { AU_surfxml_cluster_bb___sharing___policy, A_surfxml_cluster_bb___sharing___policy_SHARED,A_surfxml_cluster_bb___sharing___policy_FATPIPE } AT_surfxml_cluster_bb___sharing___policy;
+typedef int AT_surfxml_peer_bw___out;
+#define AU_surfxml_peer_bw___out NULL
+typedef int AT_surfxml_cluster_core;
+#define AU_surfxml_cluster_core NULL
typedef int AT_surfxml_random_std___deviation;
#define AU_surfxml_random_std___deviation NULL
-typedef int AT_surfxml_cluster_topo___parameters;
-#define AU_surfxml_cluster_topo___parameters NULL
-typedef int AT_surfxml_process_kill___time;
-#define AU_surfxml_process_kill___time NULL
+typedef int AT_surfxml_bypassRoute_src;
+#define AU_surfxml_bypassRoute_src NULL
+typedef int AT_surfxml_backbone_bandwidth;
+#define AU_surfxml_backbone_bandwidth NULL
+typedef int AT_surfxml_cabinet_radical;
+#define AU_surfxml_cabinet_radical NULL
+typedef int AT_surfxml_storage_content;
+#define AU_surfxml_storage_content NULL
+typedef int AT_surfxml_link_id;
+#define AU_surfxml_link_id NULL
+typedef int AT_surfxml_host___link_id;
+#define AU_surfxml_host___link_id NULL
+typedef int AT_surfxml_include_file;
+#define AU_surfxml_include_file NULL
typedef int AT_surfxml_storage_content___type;
#define AU_surfxml_storage_content___type NULL
-typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind;
-typedef int AT_surfxml_host_availability___file;
-#define AU_surfxml_host_availability___file NULL
-typedef int AT_surfxml_mount_storageId;
-#define AU_surfxml_mount_storageId NULL
-typedef int AT_surfxml_prop_id;
-#define AU_surfxml_prop_id NULL
-typedef int AT_surfxml_random_mean;
-#define AU_surfxml_random_mean NULL
+typedef int AT_surfxml_process_kill___time;
+#define AU_surfxml_process_kill___time NULL
+typedef int AT_surfxml_peer_state___file;
+#define AU_surfxml_peer_state___file NULL
+typedef enum { AU_surfxml_link___ctn_direction, A_surfxml_link___ctn_direction_UP,A_surfxml_link___ctn_direction_DOWN,A_surfxml_link___ctn_direction_NONE } AT_surfxml_link___ctn_direction;
+typedef int AT_surfxml_host___link_up;
+#define AU_surfxml_host___link_up NULL
+typedef int AT_surfxml_bypassASroute_gw___dst;
+#define AU_surfxml_bypassASroute_gw___dst NULL
+typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_Cluster___torus,A_surfxml_AS_routing_Cluster___fat___tree } AT_surfxml_AS_routing;
+typedef int AT_surfxml_bypassRoute_dst;
+#define AU_surfxml_bypassRoute_dst NULL
+typedef enum { AU_surfxml_cluster_topology, A_surfxml_cluster_topology_FLAT,A_surfxml_cluster_topology_TORUS,A_surfxml_cluster_topology_FAT___TREE } AT_surfxml_cluster_topology;
+typedef int AT_surfxml_link_latency;
+#define AU_surfxml_link_latency NULL
+typedef int AT_surfxml_route_src;
+#define AU_surfxml_route_src NULL
+typedef int AT_surfxml_bypassASroute_src;
+#define AU_surfxml_bypassASroute_src NULL
typedef int AT_surfxml_peer_bw___in;
#define AU_surfxml_peer_bw___in NULL
-typedef int AT_surfxml_trace___connect_element;
-#define AU_surfxml_trace___connect_element NULL
-typedef int AT_surfxml_peer_bw___out;
-#define AU_surfxml_peer_bw___out NULL
-typedef int AT_surfxml_random_min;
-#define AU_surfxml_random_min NULL
+typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind;
+typedef int AT_surfxml_cluster_prefix;
+#define AU_surfxml_cluster_prefix NULL
+typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state;
+typedef int AT_surfxml_cabinet_power;
+#define AU_surfxml_cabinet_power NULL
typedef int AT_surfxml_model___prop_value;
#define AU_surfxml_model___prop_value NULL
-typedef int AT_surfxml_cluster_power;
-#define AU_surfxml_cluster_power NULL
-typedef int AT_surfxml_peer_power;
-#define AU_surfxml_peer_power NULL
-typedef int AT_surfxml_router_id;
-#define AU_surfxml_router_id NULL
+typedef int AT_surfxml_route_dst;
+#define AU_surfxml_route_dst NULL
+typedef int AT_surfxml_storage___type_size;
+#define AU_surfxml_storage___type_size NULL
+typedef int AT_surfxml_host_id;
+#define AU_surfxml_host_id NULL
+typedef int AT_surfxml_ASroute_gw___src;
+#define AU_surfxml_ASroute_gw___src NULL
+typedef int AT_surfxml_peer_coordinates;
+#define AU_surfxml_peer_coordinates NULL
+typedef int AT_surfxml_cabinet_bw;
+#define AU_surfxml_cabinet_bw NULL
+typedef int AT_surfxml_cluster_availability___file;
+#define AU_surfxml_cluster_availability___file NULL
+typedef int AT_surfxml_host_coordinates;
+#define AU_surfxml_host_coordinates NULL
+typedef int AT_surfxml_random_max;
+#define AU_surfxml_random_max NULL
+typedef int AT_surfxml_trace___connect_trace;
+#define AU_surfxml_trace___connect_trace NULL
typedef int AT_surfxml_storage_id;
#define AU_surfxml_storage_id NULL
+typedef enum { AU_surfxml_ASroute_symmetrical, A_surfxml_ASroute_symmetrical_YES,A_surfxml_ASroute_symmetrical_NO } AT_surfxml_ASroute_symmetrical;
+typedef int AT_surfxml_random_seed;
+#define AU_surfxml_random_seed NULL
typedef int AT_surfxml_process_start___time;
#define AU_surfxml_process_start___time NULL
-typedef enum { AU_surfxml_random_generator, A_surfxml_random_generator_DRAND48,A_surfxml_random_generator_RAND,A_surfxml_random_generator_RNGSTREAM,A_surfxml_random_generator_NONE } AT_surfxml_random_generator;
-typedef int AT_surfxml_include_file;
-#define AU_surfxml_include_file NULL
+typedef int AT_surfxml_cluster_state___file;
+#define AU_surfxml_cluster_state___file NULL
+typedef int AT_surfxml_host_power;
+#define AU_surfxml_host_power NULL
+typedef int AT_surfxml_random_radical;
+#define AU_surfxml_random_radical NULL
+typedef int AT_surfxml_storage___type_id;
+#define AU_surfxml_storage___type_id NULL
+typedef int AT_surfxml_random_id;
+#define AU_surfxml_random_id NULL
typedef int AT_surfxml_cabinet_suffix;
#define AU_surfxml_cabinet_suffix NULL
-typedef enum { AU_surfxml_ASroute_symmetrical, A_surfxml_ASroute_symmetrical_YES,A_surfxml_ASroute_symmetrical_NO } AT_surfxml_ASroute_symmetrical;
+typedef enum { AU_surfxml_route_symmetrical, A_surfxml_route_symmetrical_YES,A_surfxml_route_symmetrical_NO } AT_surfxml_route_symmetrical;
typedef int AT_surfxml_cabinet_lat;
#define AU_surfxml_cabinet_lat NULL
-typedef int AT_surfxml_link_latency___file;
-#define AU_surfxml_link_latency___file NULL
-typedef int AT_surfxml_bypassRoute_dst;
-#define AU_surfxml_bypassRoute_dst NULL
-typedef int AT_surfxml_process_host;
-#define AU_surfxml_process_host NULL
-typedef int AT_surfxml_cluster_loopback___bw;
-#define AU_surfxml_cluster_loopback___bw NULL
-typedef int AT_surfxml_backbone_latency;
-#define AU_surfxml_backbone_latency NULL
-typedef int AT_surfxml_prop_value;
-#define AU_surfxml_prop_value NULL
typedef int AT_surfxml_bypassASroute_gw___src;
#define AU_surfxml_bypassASroute_gw___src NULL
-typedef int AT_surfxml_peer_id;
-#define AU_surfxml_peer_id NULL
-typedef int AT_surfxml_link_bandwidth___file;
-#define AU_surfxml_link_bandwidth___file NULL
-typedef int AT_surfxml_gpu_name;
-#define AU_surfxml_gpu_name NULL
-typedef int AT_surfxml_bypassASroute_gw___dst;
-#define AU_surfxml_bypassASroute_gw___dst NULL
-typedef int AT_surfxml_route_src;
-#define AU_surfxml_route_src NULL
-typedef enum { AU_surfxml_cluster_bb___sharing___policy, A_surfxml_cluster_bb___sharing___policy_SHARED,A_surfxml_cluster_bb___sharing___policy_FATPIPE } AT_surfxml_cluster_bb___sharing___policy;
-typedef int AT_surfxml_AS_id;
-#define AU_surfxml_AS_id NULL
-typedef int AT_surfxml_argument_value;
-#define AU_surfxml_argument_value NULL
-typedef int AT_surfxml_bypassRoute_src;
-#define AU_surfxml_bypassRoute_src NULL
+typedef int AT_surfxml_storage___type_content___type;
+#define AU_surfxml_storage___type_content___type NULL
+typedef int AT_surfxml_link___ctn_id;
+#define AU_surfxml_link___ctn_id NULL
+typedef int AT_surfxml_host_state___file;
+#define AU_surfxml_host_state___file NULL
+typedef int AT_surfxml_link_bandwidth;
+#define AU_surfxml_link_bandwidth NULL
+typedef int AT_surfxml_cluster_loopback___lat;
+#define AU_surfxml_cluster_loopback___lat NULL
+typedef int AT_surfxml_process_function;
+#define AU_surfxml_process_function NULL
+typedef int AT_surfxml_backbone_latency;
+#define AU_surfxml_backbone_latency NULL
+typedef enum { AU_surfxml_process_on___failure, A_surfxml_process_on___failure_DIE,A_surfxml_process_on___failure_RESTART } AT_surfxml_process_on___failure;
+typedef int AT_surfxml_host_core;
+#define AU_surfxml_host_core NULL
+typedef enum { AU_surfxml_random_generator, A_surfxml_random_generator_DRAND48,A_surfxml_random_generator_RAND,A_surfxml_random_generator_RNGSTREAM,A_surfxml_random_generator_NONE } AT_surfxml_random_generator;
+typedef int AT_surfxml_random_mean;
+#define AU_surfxml_random_mean NULL
+typedef int AT_surfxml_ASroute_gw___dst;
+#define AU_surfxml_ASroute_gw___dst NULL
typedef int AT_surfxml_peer_availability___file;
#define AU_surfxml_peer_availability___file NULL
-typedef int AT_surfxml_peer_coordinates;
-#define AU_surfxml_peer_coordinates NULL
-typedef int AT_surfxml_model___prop_id;
-#define AU_surfxml_model___prop_id NULL
-typedef int AT_surfxml_storage_content;
-#define AU_surfxml_storage_content NULL
-typedef int AT_surfxml_cabinet_prefix;
-#define AU_surfxml_cabinet_prefix NULL
-typedef int AT_surfxml_mstorage_name;
-#define AU_surfxml_mstorage_name NULL
-typedef int AT_surfxml_storage___type_id;
-#define AU_surfxml_storage___type_id NULL
-typedef int AT_surfxml_cabinet_id;
-#define AU_surfxml_cabinet_id NULL
-typedef int AT_surfxml_cluster_state___file;
-#define AU_surfxml_cluster_state___file NULL
-typedef int AT_surfxml_host_power;
-#define AU_surfxml_host_power NULL
+typedef int AT_surfxml_link_bandwidth___file;
+#define AU_surfxml_link_bandwidth___file NULL
+typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy;
+typedef int AT_surfxml_process_host;
+#define AU_surfxml_process_host NULL
+typedef int AT_surfxml_trace_periodicity;
+#define AU_surfxml_trace_periodicity NULL
+typedef int AT_surfxml_peer_lat;
+#define AU_surfxml_peer_lat NULL
+typedef int AT_surfxml_peer_power;
+#define AU_surfxml_peer_power NULL
+typedef int AT_surfxml_storage_attach;
+#define AU_surfxml_storage_attach NULL
+typedef int AT_surfxml_router_coordinates;
+#define AU_surfxml_router_coordinates NULL
+typedef int AT_surfxml_cabinet_prefix;
+#define AU_surfxml_cabinet_prefix NULL
+typedef int AT_surfxml_cluster_bw;
+#define AU_surfxml_cluster_bw NULL
+typedef int AT_surfxml_storage___type_content;
+#define AU_surfxml_storage___type_content NULL
+typedef int AT_surfxml_mstorage_typeId;
+#define AU_surfxml_mstorage_typeId NULL
+typedef int AT_surfxml_model___prop_id;
+#define AU_surfxml_model___prop_id NULL
+typedef int AT_surfxml_backbone_id;
+#define AU_surfxml_backbone_id NULL
+typedef int AT_surfxml_config_id;
+#define AU_surfxml_config_id NULL
+typedef int AT_surfxml_cluster_lat;
+#define AU_surfxml_cluster_lat NULL
+typedef int AT_surfxml_platform_version;
+#define AU_surfxml_platform_version NULL
+typedef int AT_surfxml_trace___connect_element;
+#define AU_surfxml_trace___connect_element NULL
+typedef int AT_surfxml_mount_storageId;
+#define AU_surfxml_mount_storageId NULL
+typedef int AT_surfxml_cluster_bb___bw;
+#define AU_surfxml_cluster_bb___bw NULL
+typedef int AT_surfxml_ASroute_dst;
+#define AU_surfxml_ASroute_dst NULL
typedef int AT_surfxml_host_pstate;
#define AU_surfxml_host_pstate NULL
-typedef int AT_surfxml_mount_name;
-#define AU_surfxml_mount_name NULL
-typedef int AT_surfxml_host___link_id;
-#define AU_surfxml_host___link_id NULL
-typedef int AT_surfxml_random_id;
-#define AU_surfxml_random_id NULL
-typedef int AT_surfxml_cabinet_bw;
-#define AU_surfxml_cabinet_bw NULL
-typedef int AT_surfxml_trace___connect_trace;
-#define AU_surfxml_trace___connect_trace NULL
-typedef int AT_surfxml_storage___type_size;
-#define AU_surfxml_storage___type_size NULL
-typedef enum { AU_surfxml_process_on___failure, A_surfxml_process_on___failure_DIE,A_surfxml_process_on___failure_RESTART } AT_surfxml_process_on___failure;
-typedef int AT_surfxml_link_bandwidth;
-#define AU_surfxml_link_bandwidth NULL
+typedef int AT_surfxml_peer_id;
+#define AU_surfxml_peer_id NULL
typedef int AT_surfxml_ASroute_src;
#define AU_surfxml_ASroute_src NULL
-typedef int AT_surfxml_host_id;
-#define AU_surfxml_host_id NULL
-typedef int AT_surfxml_random_max;
-#define AU_surfxml_random_max NULL
-typedef int AT_surfxml_backbone_bandwidth;
-#define AU_surfxml_backbone_bandwidth NULL
+typedef int AT_surfxml_gpu_name;
+#define AU_surfxml_gpu_name NULL
+typedef int AT_surfxml_host_availability;
+#define AU_surfxml_host_availability NULL
+typedef int AT_surfxml_mstorage_name;
+#define AU_surfxml_mstorage_name NULL
+typedef int AT_surfxml_cabinet_id;
+#define AU_surfxml_cabinet_id NULL
typedef int AT_surfxml_storage_typeId;
#define AU_surfxml_storage_typeId NULL
-typedef enum { AU_surfxml_link___ctn_direction, A_surfxml_link___ctn_direction_UP,A_surfxml_link___ctn_direction_DOWN,A_surfxml_link___ctn_direction_NONE } AT_surfxml_link___ctn_direction;
-typedef int AT_surfxml_ASroute_gw___src;
-#define AU_surfxml_ASroute_gw___src NULL
-typedef int AT_surfxml_bypassASroute_src;
-#define AU_surfxml_bypassASroute_src NULL
-typedef int AT_surfxml_host_coordinates;
-#define AU_surfxml_host_coordinates NULL
-typedef int AT_surfxml_cluster_availability___file;
-#define AU_surfxml_cluster_availability___file NULL
-typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_Cluster___torus,A_surfxml_AS_routing_Cluster___fat___tree } AT_surfxml_AS_routing;
-typedef int AT_surfxml_storage___type_content___type;
-#define AU_surfxml_storage___type_content___type NULL
-typedef int AT_surfxml_link_id;
-#define AU_surfxml_link_id NULL
-typedef int AT_surfxml_cluster_bb___bw;
-#define AU_surfxml_cluster_bb___bw NULL
-typedef int AT_surfxml_bypassASroute_dst;
-#define AU_surfxml_bypassASroute_dst NULL
-typedef int AT_surfxml_peer_state___file;
-#define AU_surfxml_peer_state___file NULL
-typedef int AT_surfxml_cabinet_power;
-#define AU_surfxml_cabinet_power NULL
-typedef int AT_surfxml_storage_attach;
-#define AU_surfxml_storage_attach NULL
+typedef int AT_surfxml_cluster_bb___lat;
+#define AU_surfxml_cluster_bb___lat NULL
+typedef int AT_surfxml_trace_file;
+#define AU_surfxml_trace_file NULL
+typedef int AT_surfxml_cluster_limiter___link;
+#define AU_surfxml_cluster_limiter___link NULL
+typedef int AT_surfxml_cluster_radical;
+#define AU_surfxml_cluster_radical NULL
+typedef int AT_surfxml_router_id;
+#define AU_surfxml_router_id NULL
+typedef int AT_surfxml_trace_id;
+#define AU_surfxml_trace_id NULL
+typedef enum { AU_surfxml_link_state, A_surfxml_link_state_ON,A_surfxml_link_state_OFF } AT_surfxml_link_state;
+typedef int AT_surfxml_prop_id;
+#define AU_surfxml_prop_id NULL
+typedef int AT_surfxml_host___link_down;
+#define AU_surfxml_host___link_down NULL
typedef int AT_surfxml_link_state___file;
#define AU_surfxml_link_state___file NULL
-typedef int AT_surfxml_peer_lat;
-#define AU_surfxml_peer_lat NULL
-typedef enum { AU_surfxml_link_sharing___policy, A_surfxml_link_sharing___policy_SHARED,A_surfxml_link_sharing___policy_FATPIPE,A_surfxml_link_sharing___policy_FULLDUPLEX } AT_surfxml_link_sharing___policy;
-typedef int AT_surfxml_cluster_bw;
-#define AU_surfxml_cluster_bw NULL
-typedef int AT_surfxml_route_dst;
-#define AU_surfxml_route_dst NULL
+typedef int AT_surfxml_cluster_topo___parameters;
+#define AU_surfxml_cluster_topo___parameters NULL
typedef int AT_surfxml_cluster_suffix;
#define AU_surfxml_cluster_suffix NULL
-typedef int AT_surfxml_cabinet_radical;
-#define AU_surfxml_cabinet_radical NULL
-typedef int AT_surfxml_link___ctn_id;
-#define AU_surfxml_link___ctn_id NULL
-typedef int AT_surfxml_mstorage_typeId;
-#define AU_surfxml_mstorage_typeId NULL
/* FleXML-provided data. */
XBT_PUBLIC_DATA(int) surfxml_pcdata_ix;
XBT_PUBLIC_DATA(char *) surfxml_bufferstack;
#define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
-XBT_PUBLIC_DATA(AT_surfxml_backbone_id) AX_surfxml_backbone_id;
-#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
-XBT_PUBLIC_DATA(short int) surfxml_backbone_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst) AX_surfxml_bypassASroute_dst;
+#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_latency___file) AX_surfxml_link_latency___file;
+#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
+XBT_PUBLIC_DATA(short int) surfxml_link_latency___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_prop_value) AX_surfxml_prop_value;
+#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
+XBT_PUBLIC_DATA(short int) surfxml_prop_value_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_power) AX_surfxml_cluster_power;
+#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_min) AX_surfxml_random_min;
+#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
+XBT_PUBLIC_DATA(short int) surfxml_random_min_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_availability___file) AX_surfxml_host_availability___file;
+#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
+XBT_PUBLIC_DATA(short int) surfxml_host_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy) AX_surfxml_link_sharing___policy;
+#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
+XBT_PUBLIC_DATA(short int) surfxml_link_sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_model) AX_surfxml_storage___type_model;
+#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_model_isset;
+XBT_PUBLIC_DATA(AT_surfxml_argument_value) AX_surfxml_argument_value;
+#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
+XBT_PUBLIC_DATA(short int) surfxml_argument_value_isset;
+XBT_PUBLIC_DATA(AT_surfxml_AS_id) AX_surfxml_AS_id;
+#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
+XBT_PUBLIC_DATA(short int) surfxml_AS_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___bw) AX_surfxml_cluster_loopback___bw;
+#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mount_name) AX_surfxml_mount_name;
+#define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
+XBT_PUBLIC_DATA(short int) surfxml_mount_name_isset;
XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id) AX_surfxml_cluster_router___id;
#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
XBT_PUBLIC_DATA(short int) surfxml_cluster_router___id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity) AX_surfxml_trace_periodicity;
-#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
-XBT_PUBLIC_DATA(short int) surfxml_trace_periodicity_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_core) AX_surfxml_cluster_core;
-#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_core_isset;
XBT_PUBLIC_DATA(AT_surfxml_cluster_id) AX_surfxml_cluster_id;
#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
XBT_PUBLIC_DATA(short int) surfxml_cluster_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_model) AX_surfxml_storage___type_model;
-#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
-XBT_PUBLIC_DATA(short int) surfxml_storage___type_model_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_latency) AX_surfxml_link_latency;
-#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
-XBT_PUBLIC_DATA(short int) surfxml_link_latency_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix;
-#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_availability) AX_surfxml_host_availability;
-#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
-XBT_PUBLIC_DATA(short int) surfxml_host_availability_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_topology) AX_surfxml_cluster_topology;
-#define A_surfxml_cluster_topology AX_surfxml_cluster_topology
-XBT_PUBLIC_DATA(short int) surfxml_cluster_topology_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat) AX_surfxml_cluster_bb___lat;
-#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___lat) AX_surfxml_cluster_loopback___lat;
-#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical) AX_surfxml_route_symmetrical;
-#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
-XBT_PUBLIC_DATA(short int) surfxml_route_symmetrical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_id) AX_surfxml_trace_id;
-#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
-XBT_PUBLIC_DATA(short int) surfxml_trace_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_radical) AX_surfxml_cluster_radical;
-#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_core) AX_surfxml_host_core;
-#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
-XBT_PUBLIC_DATA(short int) surfxml_host_core_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_radical) AX_surfxml_random_radical;
-#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
-XBT_PUBLIC_DATA(short int) surfxml_random_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy;
-#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
-XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace_file) AX_surfxml_trace_file;
-#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
-XBT_PUBLIC_DATA(short int) surfxml_trace_file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_state___file) AX_surfxml_host_state___file;
-#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
-XBT_PUBLIC_DATA(short int) surfxml_host_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_router_coordinates) AX_surfxml_router_coordinates;
-#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
-XBT_PUBLIC_DATA(short int) surfxml_router_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst) AX_surfxml_ASroute_dst;
-#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
-XBT_PUBLIC_DATA(short int) surfxml_ASroute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state;
-#define A_surfxml_host_state AX_surfxml_host_state
-XBT_PUBLIC_DATA(short int) surfxml_host_state_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_lat) AX_surfxml_cluster_lat;
-#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_content) AX_surfxml_storage___type_content;
-#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
-XBT_PUBLIC_DATA(short int) surfxml_storage___type_content_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst) AX_surfxml_ASroute_gw___dst;
-#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
-XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_platform_version) AX_surfxml_platform_version;
-#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
-XBT_PUBLIC_DATA(short int) surfxml_platform_version_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_down) AX_surfxml_host___link_down;
-#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
-XBT_PUBLIC_DATA(short int) surfxml_host___link_down_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_seed) AX_surfxml_random_seed;
-#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
-XBT_PUBLIC_DATA(short int) surfxml_random_seed_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_limiter___link) AX_surfxml_cluster_limiter___link;
-#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_limiter___link_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_function) AX_surfxml_process_function;
-#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
-XBT_PUBLIC_DATA(short int) surfxml_process_function_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_up) AX_surfxml_host___link_up;
-#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
-XBT_PUBLIC_DATA(short int) surfxml_host___link_up_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_state) AX_surfxml_link_state;
-#define A_surfxml_link_state AX_surfxml_link_state
-XBT_PUBLIC_DATA(short int) surfxml_link_state_isset;
-XBT_PUBLIC_DATA(AT_surfxml_config_id) AX_surfxml_config_id;
-#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
-XBT_PUBLIC_DATA(short int) surfxml_config_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy) AX_surfxml_cluster_bb___sharing___policy;
+#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out) AX_surfxml_peer_bw___out;
+#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
+XBT_PUBLIC_DATA(short int) surfxml_peer_bw___out_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_core) AX_surfxml_cluster_core;
+#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_core_isset;
XBT_PUBLIC_DATA(AT_surfxml_random_std___deviation) AX_surfxml_random_std___deviation;
#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
XBT_PUBLIC_DATA(short int) surfxml_random_std___deviation_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_topo___parameters) AX_surfxml_cluster_topo___parameters;
-#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_topo___parameters_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_kill___time) AX_surfxml_process_kill___time;
-#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
-XBT_PUBLIC_DATA(short int) surfxml_process_kill___time_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src) AX_surfxml_bypassRoute_src;
+#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
+XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth) AX_surfxml_backbone_bandwidth;
+#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
+XBT_PUBLIC_DATA(short int) surfxml_backbone_bandwidth_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical;
+#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage_content) AX_surfxml_storage_content;
+#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
+XBT_PUBLIC_DATA(short int) surfxml_storage_content_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_id) AX_surfxml_link_id;
+#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
+XBT_PUBLIC_DATA(short int) surfxml_link_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_id) AX_surfxml_host___link_id;
+#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
+XBT_PUBLIC_DATA(short int) surfxml_host___link_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_include_file) AX_surfxml_include_file;
+#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
+XBT_PUBLIC_DATA(short int) surfxml_include_file_isset;
XBT_PUBLIC_DATA(AT_surfxml_storage_content___type) AX_surfxml_storage_content___type;
#define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
XBT_PUBLIC_DATA(short int) surfxml_storage_content___type_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind) AX_surfxml_trace___connect_kind;
-#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
-XBT_PUBLIC_DATA(short int) surfxml_trace___connect_kind_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_availability___file) AX_surfxml_host_availability___file;
-#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
-XBT_PUBLIC_DATA(short int) surfxml_host_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mount_storageId) AX_surfxml_mount_storageId;
-#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
-XBT_PUBLIC_DATA(short int) surfxml_mount_storageId_isset;
-XBT_PUBLIC_DATA(AT_surfxml_prop_id) AX_surfxml_prop_id;
-#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
-XBT_PUBLIC_DATA(short int) surfxml_prop_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_mean) AX_surfxml_random_mean;
-#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
-XBT_PUBLIC_DATA(short int) surfxml_random_mean_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_kill___time) AX_surfxml_process_kill___time;
+#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
+XBT_PUBLIC_DATA(short int) surfxml_process_kill___time_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file;
+#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
+XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction) AX_surfxml_link___ctn_direction;
+#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
+XBT_PUBLIC_DATA(short int) surfxml_link___ctn_direction_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_up) AX_surfxml_host___link_up;
+#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
+XBT_PUBLIC_DATA(short int) surfxml_host___link_up_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst) AX_surfxml_bypassASroute_gw___dst;
+#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_AS_routing) AX_surfxml_AS_routing;
+#define A_surfxml_AS_routing AX_surfxml_AS_routing
+XBT_PUBLIC_DATA(short int) surfxml_AS_routing_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst) AX_surfxml_bypassRoute_dst;
+#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
+XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_topology) AX_surfxml_cluster_topology;
+#define A_surfxml_cluster_topology AX_surfxml_cluster_topology
+XBT_PUBLIC_DATA(short int) surfxml_cluster_topology_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_latency) AX_surfxml_link_latency;
+#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
+XBT_PUBLIC_DATA(short int) surfxml_link_latency_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_src) AX_surfxml_route_src;
+#define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
+XBT_PUBLIC_DATA(short int) surfxml_route_src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src) AX_surfxml_bypassASroute_src;
+#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_src_isset;
XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in) AX_surfxml_peer_bw___in;
#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
XBT_PUBLIC_DATA(short int) surfxml_peer_bw___in_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element) AX_surfxml_trace___connect_element;
-#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
-XBT_PUBLIC_DATA(short int) surfxml_trace___connect_element_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out) AX_surfxml_peer_bw___out;
-#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
-XBT_PUBLIC_DATA(short int) surfxml_peer_bw___out_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_min) AX_surfxml_random_min;
-#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
-XBT_PUBLIC_DATA(short int) surfxml_random_min_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind) AX_surfxml_trace___connect_kind;
+#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_kind_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix;
+#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state;
+#define A_surfxml_host_state AX_surfxml_host_state
+XBT_PUBLIC_DATA(short int) surfxml_host_state_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power;
+#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset;
XBT_PUBLIC_DATA(AT_surfxml_model___prop_value) AX_surfxml_model___prop_value;
#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
XBT_PUBLIC_DATA(short int) surfxml_model___prop_value_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_power) AX_surfxml_cluster_power;
-#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power;
-#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
-XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_router_id) AX_surfxml_router_id;
-#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
-XBT_PUBLIC_DATA(short int) surfxml_router_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_dst) AX_surfxml_route_dst;
+#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
+XBT_PUBLIC_DATA(short int) surfxml_route_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_size) AX_surfxml_storage___type_size;
+#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_size_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id;
+#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
+XBT_PUBLIC_DATA(short int) surfxml_host_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src) AX_surfxml_ASroute_gw___src;
+#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates) AX_surfxml_peer_coordinates;
+#define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
+XBT_PUBLIC_DATA(short int) surfxml_peer_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw) AX_surfxml_cabinet_bw;
+#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file) AX_surfxml_cluster_availability___file;
+#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_coordinates) AX_surfxml_host_coordinates;
+#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
+XBT_PUBLIC_DATA(short int) surfxml_host_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_max) AX_surfxml_random_max;
+#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
+XBT_PUBLIC_DATA(short int) surfxml_random_max_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace) AX_surfxml_trace___connect_trace;
+#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_trace_isset;
XBT_PUBLIC_DATA(AT_surfxml_storage_id) AX_surfxml_storage_id;
#define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
XBT_PUBLIC_DATA(short int) surfxml_storage_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_start___time) AX_surfxml_process_start___time;
-#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
-XBT_PUBLIC_DATA(short int) surfxml_process_start___time_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_generator) AX_surfxml_random_generator;
-#define A_surfxml_random_generator AX_surfxml_random_generator
-XBT_PUBLIC_DATA(short int) surfxml_random_generator_isset;
-XBT_PUBLIC_DATA(AT_surfxml_include_file) AX_surfxml_include_file;
-#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
-XBT_PUBLIC_DATA(short int) surfxml_include_file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix;
-#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset;
XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical) AX_surfxml_ASroute_symmetrical;
#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
XBT_PUBLIC_DATA(short int) surfxml_ASroute_symmetrical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat;
-#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_latency___file) AX_surfxml_link_latency___file;
-#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
-XBT_PUBLIC_DATA(short int) surfxml_link_latency___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst) AX_surfxml_bypassRoute_dst;
-#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
-XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_host) AX_surfxml_process_host;
-#define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
-XBT_PUBLIC_DATA(short int) surfxml_process_host_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___bw) AX_surfxml_cluster_loopback___bw;
-#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_backbone_latency) AX_surfxml_backbone_latency;
-#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
-XBT_PUBLIC_DATA(short int) surfxml_backbone_latency_isset;
-XBT_PUBLIC_DATA(AT_surfxml_prop_value) AX_surfxml_prop_value;
-#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
-XBT_PUBLIC_DATA(short int) surfxml_prop_value_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src) AX_surfxml_bypassASroute_gw___src;
-#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
-XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_id) AX_surfxml_peer_id;
-#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
-XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file) AX_surfxml_link_bandwidth___file;
-#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
-XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_gpu_name) AX_surfxml_gpu_name;
-#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
-XBT_PUBLIC_DATA(short int) surfxml_gpu_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst) AX_surfxml_bypassASroute_gw___dst;
-#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
-XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_src) AX_surfxml_route_src;
-#define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
-XBT_PUBLIC_DATA(short int) surfxml_route_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy) AX_surfxml_cluster_bb___sharing___policy;
-#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
-XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_AS_id) AX_surfxml_AS_id;
-#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
-XBT_PUBLIC_DATA(short int) surfxml_AS_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_argument_value) AX_surfxml_argument_value;
-#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
-XBT_PUBLIC_DATA(short int) surfxml_argument_value_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src) AX_surfxml_bypassRoute_src;
-#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
-XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file) AX_surfxml_peer_availability___file;
-#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
-XBT_PUBLIC_DATA(short int) surfxml_peer_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates) AX_surfxml_peer_coordinates;
-#define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
-XBT_PUBLIC_DATA(short int) surfxml_peer_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_model___prop_id) AX_surfxml_model___prop_id;
-#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
-XBT_PUBLIC_DATA(short int) surfxml_model___prop_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage_content) AX_surfxml_storage_content;
-#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
-XBT_PUBLIC_DATA(short int) surfxml_storage_content_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix;
-#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mstorage_name) AX_surfxml_mstorage_name;
-#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
-XBT_PUBLIC_DATA(short int) surfxml_mstorage_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_id) AX_surfxml_storage___type_id;
-#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
-XBT_PUBLIC_DATA(short int) surfxml_storage___type_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_id) AX_surfxml_cabinet_id;
-#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_seed) AX_surfxml_random_seed;
+#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
+XBT_PUBLIC_DATA(short int) surfxml_random_seed_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_start___time) AX_surfxml_process_start___time;
+#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
+XBT_PUBLIC_DATA(short int) surfxml_process_start___time_isset;
XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file) AX_surfxml_cluster_state___file;
#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
XBT_PUBLIC_DATA(short int) surfxml_cluster_state___file_isset;
XBT_PUBLIC_DATA(AT_surfxml_host_power) AX_surfxml_host_power;
#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
XBT_PUBLIC_DATA(short int) surfxml_host_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_pstate) AX_surfxml_host_pstate;
-#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
-XBT_PUBLIC_DATA(short int) surfxml_host_pstate_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mount_name) AX_surfxml_mount_name;
-#define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
-XBT_PUBLIC_DATA(short int) surfxml_mount_name_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host___link_id) AX_surfxml_host___link_id;
-#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
-XBT_PUBLIC_DATA(short int) surfxml_host___link_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_radical) AX_surfxml_random_radical;
+#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
+XBT_PUBLIC_DATA(short int) surfxml_random_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_id) AX_surfxml_storage___type_id;
+#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_id_isset;
XBT_PUBLIC_DATA(AT_surfxml_random_id) AX_surfxml_random_id;
#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
XBT_PUBLIC_DATA(short int) surfxml_random_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw) AX_surfxml_cabinet_bw;
-#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace) AX_surfxml_trace___connect_trace;
-#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
-XBT_PUBLIC_DATA(short int) surfxml_trace___connect_trace_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_size) AX_surfxml_storage___type_size;
-#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
-XBT_PUBLIC_DATA(short int) surfxml_storage___type_size_isset;
-XBT_PUBLIC_DATA(AT_surfxml_process_on___failure) AX_surfxml_process_on___failure;
-#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
-XBT_PUBLIC_DATA(short int) surfxml_process_on___failure_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix;
+#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical) AX_surfxml_route_symmetrical;
+#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
+XBT_PUBLIC_DATA(short int) surfxml_route_symmetrical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat;
+#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src) AX_surfxml_bypassASroute_gw___src;
+#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
+XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___src_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_content___type) AX_surfxml_storage___type_content___type;
+#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_content___type_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id) AX_surfxml_link___ctn_id;
+#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
+XBT_PUBLIC_DATA(short int) surfxml_link___ctn_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_state___file) AX_surfxml_host_state___file;
+#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
+XBT_PUBLIC_DATA(short int) surfxml_host_state___file_isset;
XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth) AX_surfxml_link_bandwidth;
#define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___lat) AX_surfxml_cluster_loopback___lat;
+#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_function) AX_surfxml_process_function;
+#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
+XBT_PUBLIC_DATA(short int) surfxml_process_function_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_latency) AX_surfxml_backbone_latency;
+#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
+XBT_PUBLIC_DATA(short int) surfxml_backbone_latency_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_on___failure) AX_surfxml_process_on___failure;
+#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
+XBT_PUBLIC_DATA(short int) surfxml_process_on___failure_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_core) AX_surfxml_host_core;
+#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
+XBT_PUBLIC_DATA(short int) surfxml_host_core_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_generator) AX_surfxml_random_generator;
+#define A_surfxml_random_generator AX_surfxml_random_generator
+XBT_PUBLIC_DATA(short int) surfxml_random_generator_isset;
+XBT_PUBLIC_DATA(AT_surfxml_random_mean) AX_surfxml_random_mean;
+#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
+XBT_PUBLIC_DATA(short int) surfxml_random_mean_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst) AX_surfxml_ASroute_gw___dst;
+#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file) AX_surfxml_peer_availability___file;
+#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
+XBT_PUBLIC_DATA(short int) surfxml_peer_availability___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file) AX_surfxml_link_bandwidth___file;
+#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
+XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth___file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy;
+#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
+XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_process_host) AX_surfxml_process_host;
+#define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
+XBT_PUBLIC_DATA(short int) surfxml_process_host_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity) AX_surfxml_trace_periodicity;
+#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
+XBT_PUBLIC_DATA(short int) surfxml_trace_periodicity_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_lat) AX_surfxml_peer_lat;
+#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
+XBT_PUBLIC_DATA(short int) surfxml_peer_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power;
+#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
+XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage_attach) AX_surfxml_storage_attach;
+#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
+XBT_PUBLIC_DATA(short int) surfxml_storage_attach_isset;
+XBT_PUBLIC_DATA(AT_surfxml_router_coordinates) AX_surfxml_router_coordinates;
+#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
+XBT_PUBLIC_DATA(short int) surfxml_router_coordinates_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix;
+#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bw) AX_surfxml_cluster_bw;
+#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_storage___type_content) AX_surfxml_storage___type_content;
+#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
+XBT_PUBLIC_DATA(short int) surfxml_storage___type_content_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId) AX_surfxml_mstorage_typeId;
+#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
+XBT_PUBLIC_DATA(short int) surfxml_mstorage_typeId_isset;
+XBT_PUBLIC_DATA(AT_surfxml_model___prop_id) AX_surfxml_model___prop_id;
+#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
+XBT_PUBLIC_DATA(short int) surfxml_model___prop_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_backbone_id) AX_surfxml_backbone_id;
+#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
+XBT_PUBLIC_DATA(short int) surfxml_backbone_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_config_id) AX_surfxml_config_id;
+#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
+XBT_PUBLIC_DATA(short int) surfxml_config_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_lat) AX_surfxml_cluster_lat;
+#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_platform_version) AX_surfxml_platform_version;
+#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
+XBT_PUBLIC_DATA(short int) surfxml_platform_version_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element) AX_surfxml_trace___connect_element;
+#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
+XBT_PUBLIC_DATA(short int) surfxml_trace___connect_element_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mount_storageId) AX_surfxml_mount_storageId;
+#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
+XBT_PUBLIC_DATA(short int) surfxml_mount_storageId_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw) AX_surfxml_cluster_bb___bw;
+#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___bw_isset;
+XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst) AX_surfxml_ASroute_dst;
+#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
+XBT_PUBLIC_DATA(short int) surfxml_ASroute_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_pstate) AX_surfxml_host_pstate;
+#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
+XBT_PUBLIC_DATA(short int) surfxml_host_pstate_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_id) AX_surfxml_peer_id;
+#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
+XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset;
XBT_PUBLIC_DATA(AT_surfxml_ASroute_src) AX_surfxml_ASroute_src;
#define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
XBT_PUBLIC_DATA(short int) surfxml_ASroute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id;
-#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
-XBT_PUBLIC_DATA(short int) surfxml_host_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_random_max) AX_surfxml_random_max;
-#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
-XBT_PUBLIC_DATA(short int) surfxml_random_max_isset;
-XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth) AX_surfxml_backbone_bandwidth;
-#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
-XBT_PUBLIC_DATA(short int) surfxml_backbone_bandwidth_isset;
+XBT_PUBLIC_DATA(AT_surfxml_gpu_name) AX_surfxml_gpu_name;
+#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
+XBT_PUBLIC_DATA(short int) surfxml_gpu_name_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_availability) AX_surfxml_host_availability;
+#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
+XBT_PUBLIC_DATA(short int) surfxml_host_availability_isset;
+XBT_PUBLIC_DATA(AT_surfxml_mstorage_name) AX_surfxml_mstorage_name;
+#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
+XBT_PUBLIC_DATA(short int) surfxml_mstorage_name_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_id) AX_surfxml_cabinet_id;
+#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset;
XBT_PUBLIC_DATA(AT_surfxml_storage_typeId) AX_surfxml_storage_typeId;
#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
XBT_PUBLIC_DATA(short int) surfxml_storage_typeId_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction) AX_surfxml_link___ctn_direction;
-#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
-XBT_PUBLIC_DATA(short int) surfxml_link___ctn_direction_isset;
-XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src) AX_surfxml_ASroute_gw___src;
-#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
-XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src) AX_surfxml_bypassASroute_src;
-#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
-XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_src_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_coordinates) AX_surfxml_host_coordinates;
-#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
-XBT_PUBLIC_DATA(short int) surfxml_host_coordinates_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file) AX_surfxml_cluster_availability___file;
-#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_availability___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_AS_routing) AX_surfxml_AS_routing;
-#define A_surfxml_AS_routing AX_surfxml_AS_routing
-XBT_PUBLIC_DATA(short int) surfxml_AS_routing_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage___type_content___type) AX_surfxml_storage___type_content___type;
-#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
-XBT_PUBLIC_DATA(short int) surfxml_storage___type_content___type_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_id) AX_surfxml_link_id;
-#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
-XBT_PUBLIC_DATA(short int) surfxml_link_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw) AX_surfxml_cluster_bb___bw;
-#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst) AX_surfxml_bypassASroute_dst;
-#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
-XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_dst_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file;
-#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
-XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power;
-#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset;
-XBT_PUBLIC_DATA(AT_surfxml_storage_attach) AX_surfxml_storage_attach;
-#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
-XBT_PUBLIC_DATA(short int) surfxml_storage_attach_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat) AX_surfxml_cluster_bb___lat;
+#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___lat_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_file) AX_surfxml_trace_file;
+#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
+XBT_PUBLIC_DATA(short int) surfxml_trace_file_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_limiter___link) AX_surfxml_cluster_limiter___link;
+#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_limiter___link_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_radical) AX_surfxml_cluster_radical;
+#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_router_id) AX_surfxml_router_id;
+#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
+XBT_PUBLIC_DATA(short int) surfxml_router_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_trace_id) AX_surfxml_trace_id;
+#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
+XBT_PUBLIC_DATA(short int) surfxml_trace_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_link_state) AX_surfxml_link_state;
+#define A_surfxml_link_state AX_surfxml_link_state
+XBT_PUBLIC_DATA(short int) surfxml_link_state_isset;
+XBT_PUBLIC_DATA(AT_surfxml_prop_id) AX_surfxml_prop_id;
+#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
+XBT_PUBLIC_DATA(short int) surfxml_prop_id_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host___link_down) AX_surfxml_host___link_down;
+#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
+XBT_PUBLIC_DATA(short int) surfxml_host___link_down_isset;
XBT_PUBLIC_DATA(AT_surfxml_link_state___file) AX_surfxml_link_state___file;
#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
XBT_PUBLIC_DATA(short int) surfxml_link_state___file_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_lat) AX_surfxml_peer_lat;
-#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
-XBT_PUBLIC_DATA(short int) surfxml_peer_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy) AX_surfxml_link_sharing___policy;
-#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
-XBT_PUBLIC_DATA(short int) surfxml_link_sharing___policy_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_bw) AX_surfxml_cluster_bw;
-#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_bw_isset;
-XBT_PUBLIC_DATA(AT_surfxml_route_dst) AX_surfxml_route_dst;
-#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
-XBT_PUBLIC_DATA(short int) surfxml_route_dst_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_topo___parameters) AX_surfxml_cluster_topo___parameters;
+#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_topo___parameters_isset;
XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix) AX_surfxml_cluster_suffix;
#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
XBT_PUBLIC_DATA(short int) surfxml_cluster_suffix_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical;
-#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset;
-XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id) AX_surfxml_link___ctn_id;
-#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
-XBT_PUBLIC_DATA(short int) surfxml_link___ctn_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId) AX_surfxml_mstorage_typeId;
-#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
-XBT_PUBLIC_DATA(short int) surfxml_mstorage_typeId_isset;
/* XML application utilities. */
XBT_PUBLIC(int) surfxml_element_context(int);
XBT_PUBLIC(void) ETag_graphxml_edge(void);
/* XML application data. */
-typedef int AT_graphxml_edge_name;
-#define AU_graphxml_edge_name NULL
-typedef int AT_graphxml_edge_source;
-#define AU_graphxml_edge_source NULL
+typedef int AT_graphxml_node_position___y;
+#define AU_graphxml_node_position___y NULL
+typedef int AT_graphxml_node_position___x;
+#define AU_graphxml_node_position___x NULL
+typedef int AT_graphxml_node_data;
+#define AU_graphxml_node_data NULL
typedef int AT_graphxml_edge_length;
#define AU_graphxml_edge_length NULL
typedef int AT_graphxml_node_label;
#define AU_graphxml_node_label NULL
typedef enum { AU_graphxml_graph_isDirected, A_graphxml_graph_isDirected_true,A_graphxml_graph_isDirected_false } AT_graphxml_graph_isDirected;
-typedef int AT_graphxml_edge_label;
-#define AU_graphxml_edge_label NULL
typedef int AT_graphxml_edge_data;
#define AU_graphxml_edge_data NULL
+typedef int AT_graphxml_edge_name;
+#define AU_graphxml_edge_name NULL
typedef int AT_graphxml_edge_target;
#define AU_graphxml_edge_target NULL
-typedef int AT_graphxml_node_position___x;
-#define AU_graphxml_node_position___x NULL
-typedef int AT_graphxml_node_data;
-#define AU_graphxml_node_data NULL
+typedef int AT_graphxml_edge_source;
+#define AU_graphxml_edge_source NULL
+typedef int AT_graphxml_edge_label;
+#define AU_graphxml_edge_label NULL
typedef int AT_graphxml_node_name;
#define AU_graphxml_node_name NULL
-typedef int AT_graphxml_node_position___y;
-#define AU_graphxml_node_position___y NULL
/* FleXML-provided data. */
XBT_PUBLIC_DATA(int) graphxml_pcdata_ix;
XBT_PUBLIC_DATA(char *) graphxml_bufferstack;
#define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
-XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name;
-#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
-XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_source) AX_graphxml_edge_source;
-#define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
-XBT_PUBLIC_DATA(short int) graphxml_edge_source_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y;
+#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
+XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x;
+#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
+XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data;
+#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
+XBT_PUBLIC_DATA(short int) graphxml_node_data_isset;
XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length;
#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset;
XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected) AX_graphxml_graph_isDirected;
#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
XBT_PUBLIC_DATA(short int) graphxml_graph_isDirected_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label;
-#define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
-XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset;
XBT_PUBLIC_DATA(AT_graphxml_edge_data) AX_graphxml_edge_data;
#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
XBT_PUBLIC_DATA(short int) graphxml_edge_data_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name;
+#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
+XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset;
XBT_PUBLIC_DATA(AT_graphxml_edge_target) AX_graphxml_edge_target;
#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
XBT_PUBLIC_DATA(short int) graphxml_edge_target_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x;
-#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
-XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data;
-#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
-XBT_PUBLIC_DATA(short int) graphxml_node_data_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_source) AX_graphxml_edge_source;
+#define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
+XBT_PUBLIC_DATA(short int) graphxml_edge_source_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label;
+#define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
+XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset;
XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name;
#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
XBT_PUBLIC_DATA(short int) graphxml_node_name_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y;
-#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
-XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset;
/* XML application utilities. */
XBT_PUBLIC(int) graphxml_element_context(int);
/**
* @param value The new bandwidth
- * @param date When to change the bandwidth
*/
public void updateBandwidth(double value, double date) {
SurfJNI.NetworkLink_updateBandwidth__SWIG_0(swigCPtr, this, value, date);
/**
* @param value The new latency
- * @param date When to change the latency
*/
public void updateLatency(double value, double date) {
SurfJNI.NetworkLink_updateLatency__SWIG_0(swigCPtr, this, value, date);
}
}
-static void update_comm_pattern(mc_comm_pattern_t comm_pattern, smx_action_t comm)
+static void update_comm_pattern(mc_comm_pattern_t comm_pattern, smx_synchro_t comm)
{
void *addr_pointed;
comm_pattern->src_proc = comm->comm.src_proc->pid;
}
-void complete_comm_pattern(xbt_dynar_t list, smx_action_t comm)
+void complete_comm_pattern(xbt_dynar_t list, smx_synchro_t comm)
{
mc_comm_pattern_t current_comm_pattern;
unsigned int cursor = 0;
break;
case MC_CALL_TYPE_WAIT:
{
- smx_action_t current_comm = NULL;
+ smx_synchro_t current_comm = NULL;
if (call_type == MC_CALL_TYPE_WAIT)
current_comm = simcall_comm_wait__get__comm(req);
else
- current_comm = xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value, smx_action_t);
+ current_comm = xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value, smx_synchro_t);
// First wait only must be considered:
if (current_comm->comm.refcount == 1)
complete_comm_pattern(pattern, current_comm);
typedef struct mc_state {
unsigned long max_pid; /* Maximum pid at state's creation time */
mc_procstate_t proc_status; /* State's exploration status by process */
- s_smx_action_t internal_comm; /* To be referenced by the internal_req */
+ s_smx_synchro_t internal_comm; /* To be referenced by the internal_req */
s_smx_simcall_t internal_req; /* Internal translation of request */
s_smx_simcall_t executed_req; /* The executed request of the state */
int req_num; /* The request number (in the case of a
typedef struct s_mc_comm_pattern{
int num;
- smx_action_t comm;
+ smx_synchro_t comm;
e_smx_comm_type_t type;
unsigned long src_proc;
unsigned long dst_proc;
void get_comm_pattern(xbt_dynar_t communications_pattern, smx_simcall_t request, mc_call_type call_type);
void mc_update_comm_pattern(mc_call_type call_type, smx_simcall_t request, int value, xbt_dynar_t current_pattern);
-void complete_comm_pattern(xbt_dynar_t list, smx_action_t comm);
+void complete_comm_pattern(xbt_dynar_t list, smx_synchro_t comm);
void MC_pre_modelcheck_comm_determinism(void);
void MC_modelcheck_comm_determinism(void);
char *MC_request_to_string(smx_simcall_t req, int value)
{
char *type = NULL, *args = NULL, *str = NULL, *p = NULL, *bs = NULL;
- smx_action_t act = NULL;
+ smx_synchro_t act = NULL;
size_t size = 0;
switch (req->call) {
if (!xbt_dynar_is_empty(simcall_comm_waitany__get__comms(req))) {
p = pointer_to_string(xbt_dynar_get_as
(simcall_comm_waitany__get__comms(req), value,
- smx_action_t));
+ smx_synchro_t));
args =
bprintf("comm=%s (%d of %lu)", p, value + 1,
xbt_dynar_length(simcall_comm_waitany__get__comms(req)));
unsigned int MC_request_testany_fail(smx_simcall_t req)
{
unsigned int cursor;
- smx_action_t action;
+ smx_synchro_t action;
xbt_dynar_foreach(simcall_comm_testany__get__comms(req), cursor, action) {
if (action->comm.src_proc && action->comm.dst_proc)
int MC_request_is_enabled(smx_simcall_t req)
{
unsigned int index = 0;
- smx_action_t act = 0;
+ smx_synchro_t act = 0;
switch (req->call) {
case SIMCALL_NONE:
int MC_request_is_enabled_by_idx(smx_simcall_t req, unsigned int idx)
{
- smx_action_t act;
+ smx_synchro_t act;
switch (req->call) {
case SIMCALL_COMM_WAITANY:
act =
xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), idx,
- smx_action_t);
+ smx_synchro_t);
return (act->comm.src_proc && act->comm.dst_proc);
break;
case SIMCALL_COMM_TESTANY:
act =
xbt_dynar_get_as(simcall_comm_testany__get__comms(req), idx,
- smx_action_t);
+ smx_synchro_t);
return (act->comm.src_proc && act->comm.dst_proc);
break;
{
char *str = NULL, *label = NULL;
- smx_action_t act = NULL;
+ smx_synchro_t act = NULL;
switch (req->call) {
case SIMCALL_COMM_ISEND:
state->internal_req.issuer = req->issuer;
state->internal_comm =
*xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value,
- smx_action_t);
+ smx_synchro_t);
simcall_comm_wait__set__comm(&state->internal_req, &state->internal_comm);
simcall_comm_wait__set__timeout(&state->internal_req, 0);
break;
if (value > 0)
state->internal_comm =
*xbt_dynar_get_as(simcall_comm_testany__get__comms(req), value,
- smx_action_t);
+ smx_synchro_t);
simcall_comm_test__set__comm(&state->internal_req, &state->internal_comm);
simcall_comm_test__set__result(&state->internal_req, value);
smx_process_t process = NULL;
mc_procstate_t procstate = NULL;
unsigned int start_count;
- smx_action_t act = NULL;
+ smx_synchro_t act = NULL;
xbt_swag_foreach(process, simix_global->process_list) {
procstate = &state->proc_status[process->pid];
*/
static XBT_INLINE
msg_comm_t MSG_task_isend_internal(msg_task_t task, const char *alias,
- int (*match_fun)(void*,void*, smx_action_t),
+ int (*match_fun)(void*,void*, smx_synchro_t),
void *match_data, void_f_pvoid_t cleanup,
int detached)
{
msg_global->sent_msg++;
/* Send it by calling SIMIX network layer */
- smx_action_t act = simcall_comm_isend(SIMIX_process_self(), mailbox, t_simdata->message_size,
+ smx_synchro_t act = simcall_comm_isend(SIMIX_process_self(), mailbox, t_simdata->message_size,
t_simdata->rate, task, sizeof(void *),
match_fun, cleanup, NULL, match_data,detached);
t_simdata->comm = act; /* FIXME: is the field t_simdata->comm still useful? */
*/
msg_comm_t MSG_task_isend_with_matching(msg_task_t task, const char *alias,
int (*match_fun)(void*, void*,
- smx_action_t),
+ smx_synchro_t),
void *match_data)
{
return MSG_task_isend_internal(task, alias, match_fun, match_data, NULL, 0);
int finished_index = -1;
/* create the equivalent dynar with SIMIX objects */
- xbt_dynar_t s_comms = xbt_dynar_new(sizeof(smx_action_t), NULL);
+ xbt_dynar_t s_comms = xbt_dynar_new(sizeof(smx_synchro_t), NULL);
msg_comm_t comm;
unsigned int cursor;
xbt_dynar_foreach(comms, cursor, comm) {
int finished_index = -1;
/* create the equivalent dynar with SIMIX objects */
- xbt_dynar_t s_comms = xbt_dynar_new(sizeof(smx_action_t), NULL);
+ xbt_dynar_t s_comms = xbt_dynar_new(sizeof(smx_synchro_t), NULL);
msg_comm_t comm;
unsigned int cursor;
xbt_dynar_foreach(comms, cursor, comm) {
* \param buff the data copied
* \param buff_size size of the buffer
*/
-void MSG_comm_copy_data_from_SIMIX(smx_action_t comm, void* buff, size_t buff_size) {
+void MSG_comm_copy_data_from_SIMIX(smx_synchro_t comm, void* buff, size_t buff_size) {
// copy the task
SIMIX_comm_copy_pointer_callback(comm, buff, buff_size);
msg_task_t MSG_mailbox_get_head(msg_mailbox_t mailbox)
{
- smx_action_t comm = simcall_rdv_get_head(mailbox);
+ smx_synchro_t comm = simcall_rdv_get_head(mailbox);
if (!comm)
return NULL;
/* Try to send it by calling SIMIX network layer */
TRY {
- smx_action_t comm = NULL; /* MC needs the comm to be set to NULL during the simix call */
+ smx_synchro_t comm = NULL; /* MC needs the comm to be set to NULL during the simix call */
comm = simcall_comm_isend(SIMIX_process_self(), mailbox,t_simdata->message_size,
t_simdata->rate, task, sizeof(void *),
NULL, NULL, NULL, task, 0);
ptr = _xbt_ex_t; } while(0)
typedef struct simdata_task {
- smx_action_t compute; /* SIMIX modeling of computation */
- smx_action_t comm; /* SIMIX modeling of communication */
+ smx_synchro_t compute; /* SIMIX modeling of computation */
+ smx_synchro_t comm; /* SIMIX modeling of communication */
double message_size; /* Data size */
double computation_amount; /* Computation size */
msg_process_t sender;
#ifdef MSG_USE_DEPRECATED
m_channel_t put_channel; /* used for debugging purposes */
#endif
- smx_action_t waiting_action;
+ smx_synchro_t waiting_action;
msg_task_t waiting_task;
char **argv; /* arguments table if any */
int argc; /* arguments number if any */
} s_process_arg_t, *process_arg_t;
typedef struct msg_comm {
- smx_action_t s_comm; /* SIMIX communication object encapsulated (the same for both processes) */
+ smx_synchro_t s_comm; /* SIMIX communication object encapsulated (the same for both processes) */
msg_task_t task_sent; /* task sent (NULL for the receiver) */
msg_task_t *task_received; /* where the task will be received (NULL for the sender) */
msg_error_t status; /* status of the communication once finished */
int argc, char **argv,
xbt_dict_t properties, int auto_restart,
smx_process_t parent_process);
-void MSG_comm_copy_data_from_SIMIX(smx_action_t comm, void* buff, size_t buff_size);
+void MSG_comm_copy_data_from_SIMIX(smx_synchro_t comm, void* buff, size_t buff_size);
void MSG_post_create_environment(void);
*/
msg_error_t MSG_task_destroy(msg_task_t task)
{
- smx_action_t action = NULL;
+ smx_synchro_t action = NULL;
xbt_assert((task != NULL), "Invalid parameter");
if (task->simdata->isused) {
}
{
- smx_action_t compute = task->simdata->compute;
+ smx_synchro_t compute = task->simdata->compute;
msg_host_t host_now = compute->execution.host; // simix_private.h is necessary
if (host_now != host) {
/* task is not yet executed on this host */
int dax__pcdata_ix;
extern char *dax__bufferstack;
#define dax__pcdata (dax__bufferstack + dax__pcdata_ix)
-AT_dax__job_version AX_dax__job_version;
-#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
-short int dax__job_version_isset;
-AT_dax__job_id AX_dax__job_id;
-#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
-short int dax__job_id_isset;
-AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation;
-#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
-short int dax__adag_xsi_c_schemaLocation_isset;
+AT_dax__uses_type AX_dax__uses_type;
+#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
+short int dax__uses_type_isset;
AT_dax__uses_register AX_dax__uses_register;
#define A_dax__uses_register AX_dax__uses_register
short int dax__uses_register_isset;
-AT_dax__job_namespace AX_dax__job_namespace;
-#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
-short int dax__job_namespace_isset;
-AT_dax__adag_version AX_dax__adag_version;
-#define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
-short int dax__adag_version_isset;
-AT_dax__uses_link AX_dax__uses_link;
-#define A_dax__uses_link AX_dax__uses_link
-short int dax__uses_link_isset;
-AT_dax__adag_fileCount AX_dax__adag_fileCount;
-#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
-short int dax__adag_fileCount_isset;
-AT_dax__uses_optional AX_dax__uses_optional;
-#define A_dax__uses_optional AX_dax__uses_optional
-short int dax__uses_optional_isset;
-AT_dax__job_level AX_dax__job_level;
-#define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
-short int dax__job_level_isset;
AT_dax__job_name AX_dax__job_name;
#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
short int dax__job_name_isset;
-AT_dax__adag_xmlns AX_dax__adag_xmlns;
-#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
-short int dax__adag_xmlns_isset;
-AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi;
-#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
-short int dax__adag_xmlns_c_xsi_isset;
-AT_dax__uses_file AX_dax__uses_file;
-#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
-short int dax__uses_file_isset;
-AT_dax__adag_index AX_dax__adag_index;
-#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
-short int dax__adag_index_isset;
-AT_dax__job_runtime AX_dax__job_runtime;
-#define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
-short int dax__job_runtime_isset;
-AT_dax__adag_childCount AX_dax__adag_childCount;
-#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
-short int dax__adag_childCount_isset;
+AT_dax__uses_optional AX_dax__uses_optional;
+#define A_dax__uses_optional AX_dax__uses_optional
+short int dax__uses_optional_isset;
AT_dax__uses_size AX_dax__uses_size;
#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
short int dax__uses_size_isset;
+AT_dax__job_runtime AX_dax__job_runtime;
+#define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
+short int dax__job_runtime_isset;
+AT_dax__adag_fileCount AX_dax__adag_fileCount;
+#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
+short int dax__adag_fileCount_isset;
+AT_dax__uses_link AX_dax__uses_link;
+#define A_dax__uses_link AX_dax__uses_link
+short int dax__uses_link_isset;
+AT_dax__uses_transfer AX_dax__uses_transfer;
+#define A_dax__uses_transfer AX_dax__uses_transfer
+short int dax__uses_transfer_isset;
+AT_dax__adag_jobCount AX_dax__adag_jobCount;
+#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
+short int dax__adag_jobCount_isset;
+AT_dax__adag_xmlns AX_dax__adag_xmlns;
+#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
+short int dax__adag_xmlns_isset;
+AT_dax__job_level AX_dax__job_level;
+#define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
+short int dax__job_level_isset;
+AT_dax__adag_version AX_dax__adag_version;
+#define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
+short int dax__adag_version_isset;
+AT_dax__job_id AX_dax__job_id;
+#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
+short int dax__job_id_isset;
+AT_dax__job_namespace AX_dax__job_namespace;
+#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
+short int dax__job_namespace_isset;
+AT_dax__parent_ref AX_dax__parent_ref;
+#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
+short int dax__parent_ref_isset;
AT_dax__adag_count AX_dax__adag_count;
#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
short int dax__adag_count_isset;
-AT_dax__uses_type AX_dax__uses_type;
-#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
-short int dax__uses_type_isset;
+AT_dax__adag_childCount AX_dax__adag_childCount;
+#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
+short int dax__adag_childCount_isset;
+AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation;
+#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
+short int dax__adag_xsi_c_schemaLocation_isset;
+AT_dax__uses_file AX_dax__uses_file;
+#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
+short int dax__uses_file_isset;
+AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi;
+#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
+short int dax__adag_xmlns_c_xsi_isset;
AT_dax__child_ref AX_dax__child_ref;
#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
short int dax__child_ref_isset;
-AT_dax__parent_ref AX_dax__parent_ref;
-#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
-short int dax__parent_ref_isset;
-AT_dax__adag_jobCount AX_dax__adag_jobCount;
-#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
-short int dax__adag_jobCount_isset;
+AT_dax__adag_index AX_dax__adag_index;
+#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
+short int dax__adag_index_isset;
AT_dax__adag_name AX_dax__adag_name;
#define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
short int dax__adag_name_isset;
-AT_dax__uses_transfer AX_dax__uses_transfer;
-#define A_dax__uses_transfer AX_dax__uses_transfer
-short int dax__uses_transfer_isset;
+AT_dax__job_version AX_dax__job_version;
+#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
+short int dax__job_version_isset;
/* XML state. */
#ifdef FLEX_DEBUG
YY_RULE_SETUP
FAIL("Unexpected character `%c': `</adag>' expected.",dax_text[0]);
YY_BREAK
-case YY_STATE_EOF(S_dax__adag_5):
+case YY_STATE_EOF(S_dax__adag):
case YY_STATE_EOF(S_dax__adag_3):
-case YY_STATE_EOF(E_dax__adag):
case YY_STATE_EOF(S_dax__adag_1):
-case YY_STATE_EOF(S_dax__adag):
+case YY_STATE_EOF(S_dax__adag_5):
+case YY_STATE_EOF(E_dax__adag):
FAIL("Premature EOF: `</adag>' expected.");
YY_BREAK
if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
LEAVE; STag_dax__job(); dax__pcdata_ix = 0; ETag_dax__job(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__adag: case S_dax__adag_2: case S_dax__adag_3: SET(S_dax__adag_3); break;
+ case S_dax__adag_2: case S_dax__adag: case S_dax__adag_3: SET(S_dax__adag_3); break;
}
}
YY_BREAK
ETag_dax__job();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__adag: case S_dax__adag_2: case S_dax__adag_3: SET(S_dax__adag_3); break;
+ case S_dax__adag_2: case S_dax__adag: case S_dax__adag_3: SET(S_dax__adag_3); break;
}
}
YY_BREAK
YY_RULE_SETUP
FAIL("Unexpected character `%c': `</job>' expected.",dax_text[0]);
YY_BREAK
-case YY_STATE_EOF(S_dax__job):
case YY_STATE_EOF(E_dax__job):
case YY_STATE_EOF(S_dax__job_2):
+case YY_STATE_EOF(S_dax__job):
FAIL("Premature EOF: `</job>' expected.");
YY_BREAK
if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
LEAVE; STag_dax__uses(); dax__pcdata_ix = 0; ETag_dax__uses(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__job_1: case S_dax__job: case S_dax__job_2: SET(S_dax__job_2); break;
+ case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break;
}
}
YY_BREAK
ETag_dax__uses();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__job_1: case S_dax__job: case S_dax__job_2: SET(S_dax__job_2); break;
+ case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break;
}
}
YY_BREAK
if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
LEAVE; STag_dax__child(); dax__pcdata_ix = 0; ETag_dax__child(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_4: case S_dax__adag_5: SET(S_dax__adag_5); break;
+ case S_dax__adag_4: case S_dax__adag: case S_dax__adag_3: case S_dax__adag_1: case S_dax__adag_5: SET(S_dax__adag_5); break;
}
}
YY_BREAK
ETag_dax__child();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_4: case S_dax__adag_5: SET(S_dax__adag_5); break;
+ case S_dax__adag_4: case S_dax__adag: case S_dax__adag_3: case S_dax__adag_1: case S_dax__adag_5: SET(S_dax__adag_5); break;
}
}
YY_BREAK
YY_RULE_SETUP
FAIL("Unexpected character `%c': `</child>' expected.",dax_text[0]);
YY_BREAK
+case YY_STATE_EOF(S_dax__child_2):
case YY_STATE_EOF(S_dax__child):
case YY_STATE_EOF(E_dax__child):
-case YY_STATE_EOF(S_dax__child_2):
FAIL("Premature EOF: `</child>' expected.");
YY_BREAK
if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
LEAVE; STag_dax__parent(); dax__pcdata_ix = 0; ETag_dax__parent(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__child: case S_dax__child_1: case S_dax__child_2: SET(S_dax__child_2); break;
+ case S_dax__child: case S_dax__child_2: case S_dax__child_1: SET(S_dax__child_2); break;
}
}
YY_BREAK
ETag_dax__parent();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_dax__child: case S_dax__child_1: case S_dax__child_2: SET(S_dax__child_2); break;
+ case S_dax__child: case S_dax__child_2: case S_dax__child_1: SET(S_dax__child_2); break;
}
}
YY_BREAK
XBT_PUBLIC(void) ETag_dax__parent(void);
/* XML application data. */
-typedef int AT_dax__child_ref;
-#define AU_dax__child_ref NULL
-typedef int AT_dax__adag_jobCount;
-#define AU_dax__adag_jobCount NULL
-typedef int AT_dax__job_namespace;
-#define AU_dax__job_namespace NULL
-typedef int AT_dax__uses_size;
-#define AU_dax__uses_size NULL
-typedef int AT_dax__job_name;
-#define AU_dax__job_name NULL
typedef int AT_dax__uses_type;
#define AU_dax__uses_type NULL
typedef int AT_dax__parent_ref;
#define AU_dax__parent_ref NULL
-typedef int AT_dax__adag_xmlns_c_xsi;
-#define AU_dax__adag_xmlns_c_xsi NULL
+typedef int AT_dax__uses_file;
+#define AU_dax__uses_file NULL
+typedef int AT_dax__job_name;
+#define AU_dax__job_name NULL
+typedef int AT_dax__job_version;
+#define AU_dax__job_version NULL
+typedef int AT_dax__job_namespace;
+#define AU_dax__job_namespace NULL
typedef int AT_dax__adag_xsi_c_schemaLocation;
#define AU_dax__adag_xsi_c_schemaLocation NULL
-typedef enum { AU_dax__uses_optional, A_dax__uses_optional_false,A_dax__uses_optional_true } AT_dax__uses_optional;
+typedef int AT_dax__adag_fileCount;
+#define AU_dax__adag_fileCount NULL
+typedef int AT_dax__adag_count;
+#define AU_dax__adag_count NULL
+typedef int AT_dax__adag_index;
+#define AU_dax__adag_index NULL
+typedef int AT_dax__adag_xmlns_c_xsi;
+#define AU_dax__adag_xmlns_c_xsi NULL
typedef int AT_dax__adag_childCount;
#define AU_dax__adag_childCount NULL
typedef int AT_dax__adag_xmlns;
#define AU_dax__adag_xmlns NULL
-typedef enum { AU_dax__uses_transfer, A_dax__uses_transfer_false,A_dax__uses_transfer_true } AT_dax__uses_transfer;
-typedef int AT_dax__job_id;
-#define AU_dax__job_id NULL
+typedef int AT_dax__adag_name;
+#define AU_dax__adag_name NULL
+typedef int AT_dax__adag_jobCount;
+#define AU_dax__adag_jobCount NULL
+typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register;
typedef int AT_dax__adag_version;
#define AU_dax__adag_version NULL
-typedef int AT_dax__adag_count;
-#define AU_dax__adag_count NULL
+typedef enum { AU_dax__uses_optional, A_dax__uses_optional_false,A_dax__uses_optional_true } AT_dax__uses_optional;
typedef int AT_dax__job_level;
#define AU_dax__job_level NULL
-typedef int AT_dax__adag_name;
-#define AU_dax__adag_name NULL
-typedef int AT_dax__job_version;
-#define AU_dax__job_version NULL
typedef int AT_dax__job_runtime;
#define AU_dax__job_runtime NULL
-typedef int AT_dax__adag_index;
-#define AU_dax__adag_index NULL
-typedef int AT_dax__adag_fileCount;
-#define AU_dax__adag_fileCount NULL
-typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register;
-typedef int AT_dax__uses_file;
-#define AU_dax__uses_file NULL
+typedef int AT_dax__uses_size;
+#define AU_dax__uses_size NULL
+typedef enum { AU_dax__uses_transfer, A_dax__uses_transfer_false,A_dax__uses_transfer_true } AT_dax__uses_transfer;
+typedef int AT_dax__job_id;
+#define AU_dax__job_id NULL
+typedef int AT_dax__child_ref;
+#define AU_dax__child_ref NULL
typedef enum { AU_dax__uses_link, A_dax__uses_link_input,A_dax__uses_link_output } AT_dax__uses_link;
/* FleXML-provided data. */
XBT_PUBLIC_DATA(int) dax__pcdata_ix;
XBT_PUBLIC_DATA(char *) dax__bufferstack;
#define dax__pcdata (dax__bufferstack + dax__pcdata_ix)
-XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref;
-#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
-XBT_PUBLIC_DATA(short int) dax__child_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount;
-#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
-XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset;
-XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace;
-#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
-XBT_PUBLIC_DATA(short int) dax__job_namespace_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size;
-#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
-XBT_PUBLIC_DATA(short int) dax__uses_size_isset;
-XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name;
-#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
-XBT_PUBLIC_DATA(short int) dax__job_name_isset;
XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type;
#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
XBT_PUBLIC_DATA(short int) dax__uses_type_isset;
XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref;
#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
XBT_PUBLIC_DATA(short int) dax__parent_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi;
-#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
-XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file;
+#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
+XBT_PUBLIC_DATA(short int) dax__uses_file_isset;
+XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name;
+#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
+XBT_PUBLIC_DATA(short int) dax__job_name_isset;
+XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version;
+#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
+XBT_PUBLIC_DATA(short int) dax__job_version_isset;
+XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace;
+#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
+XBT_PUBLIC_DATA(short int) dax__job_namespace_isset;
XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation) AX_dax__adag_xsi_c_schemaLocation;
#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
XBT_PUBLIC_DATA(short int) dax__adag_xsi_c_schemaLocation_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional;
-#define A_dax__uses_optional AX_dax__uses_optional
-XBT_PUBLIC_DATA(short int) dax__uses_optional_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount;
+#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
+XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count;
+#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
+XBT_PUBLIC_DATA(short int) dax__adag_count_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index;
+#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
+XBT_PUBLIC_DATA(short int) dax__adag_index_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi;
+#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
+XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset;
XBT_PUBLIC_DATA(AT_dax__adag_childCount) AX_dax__adag_childCount;
#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
XBT_PUBLIC_DATA(short int) dax__adag_childCount_isset;
XBT_PUBLIC_DATA(AT_dax__adag_xmlns) AX_dax__adag_xmlns;
#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
XBT_PUBLIC_DATA(short int) dax__adag_xmlns_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer;
-#define A_dax__uses_transfer AX_dax__uses_transfer
-XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset;
-XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id;
-#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
-XBT_PUBLIC_DATA(short int) dax__job_id_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_name) AX_dax__adag_name;
+#define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
+XBT_PUBLIC_DATA(short int) dax__adag_name_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount;
+#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
+XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register;
+#define A_dax__uses_register AX_dax__uses_register
+XBT_PUBLIC_DATA(short int) dax__uses_register_isset;
XBT_PUBLIC_DATA(AT_dax__adag_version) AX_dax__adag_version;
#define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
XBT_PUBLIC_DATA(short int) dax__adag_version_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count;
-#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
-XBT_PUBLIC_DATA(short int) dax__adag_count_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional;
+#define A_dax__uses_optional AX_dax__uses_optional
+XBT_PUBLIC_DATA(short int) dax__uses_optional_isset;
XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level;
#define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
XBT_PUBLIC_DATA(short int) dax__job_level_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_name) AX_dax__adag_name;
-#define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
-XBT_PUBLIC_DATA(short int) dax__adag_name_isset;
-XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version;
-#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
-XBT_PUBLIC_DATA(short int) dax__job_version_isset;
XBT_PUBLIC_DATA(AT_dax__job_runtime) AX_dax__job_runtime;
#define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
XBT_PUBLIC_DATA(short int) dax__job_runtime_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index;
-#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
-XBT_PUBLIC_DATA(short int) dax__adag_index_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount;
-#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
-XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register;
-#define A_dax__uses_register AX_dax__uses_register
-XBT_PUBLIC_DATA(short int) dax__uses_register_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file;
-#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
-XBT_PUBLIC_DATA(short int) dax__uses_file_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size;
+#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
+XBT_PUBLIC_DATA(short int) dax__uses_size_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer;
+#define A_dax__uses_transfer AX_dax__uses_transfer
+XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset;
+XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id;
+#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
+XBT_PUBLIC_DATA(short int) dax__job_id_isset;
+XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref;
+#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
+XBT_PUBLIC_DATA(short int) dax__child_ref_isset;
XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link;
#define A_dax__uses_link AX_dax__uses_link
XBT_PUBLIC_DATA(short int) dax__uses_link_isset;
/**
* \ingroup simix_host_management
- * \brief Creates an action that executes some computation of an host.
+ * \brief Creates a synchro that executes some computation of an host.
*
* This function creates a SURF action and allocates the data necessary
- * to create the SIMIX action. It can raise a host_error exception if the host crashed.
+ * to create the SIMIX synchro. It can raise a host_error exception if the host crashed.
*
- * \param name Name of the execution action to create
- * \param host SIMIX host where the action will be executed
+ * \param name Name of the execution synchro to create
+ * \param host SIMIX host where the synchro will be executed
* \param computation_amount amount Computation amount (in bytes)
* \param priority computation priority
* \param bound
* \param affinity_mask
- * \return A new SIMIX execution action
+ * \return A new SIMIX execution synchronization
*/
-smx_action_t simcall_host_execute(const char *name, smx_host_t host,
+smx_synchro_t simcall_host_execute(const char *name, smx_host_t host,
double computation_amount,
double priority, double bound, unsigned long affinity_mask)
{
/**
* \ingroup simix_host_management
- * \brief Creates an action that may involve parallel computation on
+ * \brief Creates a synchro that may involve parallel computation on
* several hosts and communication between them.
*
- * \param name Name of the execution action to create
- * \param host_nb Number of hosts where the action will be executed
- * \param host_list Array (of size host_nb) of hosts where the action will be executed
+ * \param name Name of the execution synchro to create
+ * \param host_nb Number of hosts where the synchro will be executed
+ * \param host_list Array (of size host_nb) of hosts where the synchro will be executed
* \param computation_amount Array (of size host_nb) of computation amount of hosts (in bytes)
* \param communication_amount Array (of size host_nb * host_nb) representing the communication
* amount between each pair of hosts
* \param amount the SURF action amount
* \param rate the SURF action rate
- * \return A new SIMIX execution action
+ * \return A new SIMIX execution synchronization
*/
-smx_action_t simcall_host_parallel_execute(const char *name,
+smx_synchro_t simcall_host_parallel_execute(const char *name,
int host_nb,
smx_host_t *host_list,
double *computation_amount,
/**
* \ingroup simix_host_management
- * \brief Destroys an execution action.
+ * \brief Destroys an execution synchro.
*
- * Destroys an action, freing its memory. This function cannot be called if there are a conditional waiting for it.
- * \param execution The execution action to destroy
+ * Destroys a synchro, freeing its memory. This function cannot be called if there are a conditional waiting for it.
+ * \param execution The execution synchro to destroy
*/
-void simcall_host_execution_destroy(smx_action_t execution)
+void simcall_host_execution_destroy(smx_synchro_t execution)
{
simcall_BODY_host_execution_destroy(execution);
}
/**
* \ingroup simix_host_management
- * \brief Cancels an execution action.
+ * \brief Cancels an execution synchro.
*
* This functions stops the execution. It calls a surf function.
- * \param execution The execution action to cancel
+ * \param execution The execution synchro to cancel
*/
-void simcall_host_execution_cancel(smx_action_t execution)
+void simcall_host_execution_cancel(smx_synchro_t execution)
{
simcall_BODY_host_execution_cancel(execution);
}
/**
* \ingroup simix_host_management
- * \brief Returns how much of an execution action remains to be done.
+ * \brief Returns how much of an execution synchro remains to be done.
*
- * \param execution The execution action
+ * \param execution The execution synchro
* \return The remaining amount
*/
-double simcall_host_execution_get_remains(smx_action_t execution)
+double simcall_host_execution_get_remains(smx_synchro_t execution)
{
return simcall_BODY_host_execution_get_remains(execution);
}
/**
* \ingroup simix_host_management
- * \brief Returns the state of an execution action.
+ * \brief Returns the state of an execution synchro.
*
- * \param execution The execution action
+ * \param execution The execution synchro
* \return The state
*/
-e_smx_state_t simcall_host_execution_get_state(smx_action_t execution)
+e_smx_state_t simcall_host_execution_get_state(smx_synchro_t execution)
{
return simcall_BODY_host_execution_get_state(execution);
}
/**
* \ingroup simix_host_management
- * \brief Changes the priority of an execution action.
+ * \brief Changes the priority of an execution synchro.
*
* This functions changes the priority only. It calls a surf function.
- * \param execution The execution action
+ * \param execution The execution synchro
* \param priority The new priority
*/
-void simcall_host_execution_set_priority(smx_action_t execution, double priority)
+void simcall_host_execution_set_priority(smx_synchro_t execution, double priority)
{
/* checking for infinite values */
xbt_assert(isfinite(priority), "priority is not finite!");
/**
* \ingroup simix_host_management
- * \brief Changes the capping (the maximum CPU utilization) of an execution action.
+ * \brief Changes the capping (the maximum CPU utilization) of an execution synchro.
*
* This functions changes the capping only. It calls a surf function.
- * \param execution The execution action
+ * \param execution The execution synchro
* \param bound The new bound
*/
-void simcall_host_execution_set_bound(smx_action_t execution, double bound)
+void simcall_host_execution_set_bound(smx_synchro_t execution, double bound)
{
simcall_BODY_host_execution_set_bound(execution, bound);
}
/**
* \ingroup simix_host_management
- * \brief Changes the CPU affinity of an execution action.
+ * \brief Changes the CPU affinity of an execution synchro.
*
- * This functions changes the CPU affinity of an execution action. See taskset(1) on Linux.
- * \param execution The execution action
+ * This functions changes the CPU affinity of an execution synchro. See taskset(1) on Linux.
+ * \param execution The execution synchro
* \param host Host
* \param mask Affinity mask
*/
-void simcall_host_execution_set_affinity(smx_action_t execution, smx_host_t host, unsigned long mask)
+void simcall_host_execution_set_affinity(smx_synchro_t execution, smx_host_t host, unsigned long mask)
{
simcall_BODY_host_execution_set_affinity(execution, host, mask);
}
/**
* \ingroup simix_host_management
- * \brief Waits for the completion of an execution action and destroy it.
+ * \brief Waits for the completion of an execution synchro and destroy it.
*
- * \param execution The execution action
+ * \param execution The execution synchro
*/
-e_smx_state_t simcall_host_execution_wait(smx_action_t execution)
+e_smx_state_t simcall_host_execution_wait(smx_synchro_t execution)
{
return simcall_BODY_host_execution_wait(execution);
}
* \ingroup simix_process_management
* \brief Suspends a process.
*
- * This function suspends the process by suspending the action
+ * This function suspends the process by suspending the synchro
* it was waiting for completion.
*
* \param process a SIMIX process
* \ingroup simix_process_management
* \brief Resumes a suspended process.
*
- * This function resumes a suspended process by resuming the action
+ * This function resumes a suspended process by resuming the synchro
* it was waiting for completion.
*
* \param process a SIMIX process
}
/**
* \ingroup simix_process_management
- * \brief Creates a new sleep SIMIX action.
+ * \brief Creates a new sleep SIMIX synchro.
*
* This function creates a SURF action and allocates the data necessary
- * to create the SIMIX action. It can raise a host_error exception if the
- * host crashed. The default SIMIX name of the action is "sleep".
+ * to create the SIMIX synchro. It can raise a host_error exception if the
+ * host crashed. The default SIMIX name of the synchro is "sleep".
*
* \param duration Time duration of the sleep.
* \return A result telling whether the sleep was successful
/**
* \ingroup simix_rdv_management
- * \brief Counts the number of communication actions of a given host pending
+ * \brief Counts the number of communication synchros of a given host pending
* on a rendez-vous point.
* \param rdv The rendez-vous point
* \param host The host to be counted
- * \return The number of comm actions pending in the rdv
+ * \return The number of comm synchros pending in the rdv
*/
int simcall_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host)
{
* \param rdv The rendez-vous point
* \return The communication or NULL if empty
*/
-smx_action_t simcall_rdv_get_head(smx_rdv_t rdv)
+smx_synchro_t simcall_rdv_get_head(smx_rdv_t rdv)
{
return simcall_BODY_rdv_get_head(rdv);
}
*/
void simcall_comm_send(smx_process_t src, smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t), void *data,
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t), void *data,
double timeout)
{
/* checking for infinite values */
if (MC_is_active()) {
/* the model-checker wants two separate simcalls */
- smx_action_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
+ smx_synchro_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
comm = simcall_comm_isend(src, rdv, task_size, rate,
src_buff, src_buff_size, match_fun, NULL, copy_data_fun, data, 0);
simcall_comm_wait(comm, timeout);
/**
* \ingroup simix_comm_management
*/
-smx_action_t simcall_comm_isend(smx_process_t src, smx_rdv_t rdv, double task_size, double rate,
+smx_synchro_t simcall_comm_isend(smx_process_t src, smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
void (*clean_fun)(void *),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data,
int detached)
{
* \ingroup simix_comm_management
*/
void simcall_comm_recv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double timeout, double rate)
{
xbt_assert(isfinite(timeout), "timeout is not finite!");
if (MC_is_active()) {
/* the model-checker wants two separate simcalls */
- smx_action_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
+ smx_synchro_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
comm = simcall_comm_irecv(rdv, dst_buff, dst_buff_size,
match_fun, copy_data_fun, data, rate);
simcall_comm_wait(comm, timeout);
/**
* \ingroup simix_comm_management
*/
-smx_action_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+smx_synchro_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_size,
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double rate)
{
xbt_assert(rdv, "No rendez-vous point defined for irecv");
/**
* \ingroup simix_comm_management
*/
-smx_action_t simcall_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag,
- int (*match_fun)(void *, void *, smx_action_t), void *data)
+smx_synchro_t simcall_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag,
+ int (*match_fun)(void *, void *, smx_synchro_t), void *data)
{
xbt_assert(rdv, "No rendez-vous point defined for iprobe");
/**
* \ingroup simix_comm_management
*/
-void simcall_comm_cancel(smx_action_t comm)
+void simcall_comm_cancel(smx_synchro_t comm)
{
simcall_BODY_comm_cancel(comm);
}
/**
* \ingroup simix_comm_management
*/
-void simcall_comm_wait(smx_action_t comm, double timeout)
+void simcall_comm_wait(smx_synchro_t comm, double timeout)
{
xbt_assert(isfinite(timeout), "timeout is not finite!");
simcall_BODY_comm_wait(comm, timeout);
#ifdef HAVE_TRACING
/**
- * \brief Set the category of an action.
+ * \brief Set the category of an synchro.
*
* This functions changes the category only. It calls a surf function.
- * \param execution The execution action
+ * \param execution The execution synchro
* \param category The tracing category
*/
-void simcall_set_category(smx_action_t action, const char *category)
+void simcall_set_category(smx_synchro_t synchro, const char *category)
{
if (category == NULL) {
return;
}
- simcall_BODY_set_category(action, category);
+ simcall_BODY_set_category(synchro, category);
}
#endif
* \ingroup simix_comm_management
*
*/
-int simcall_comm_test(smx_action_t comm)
+int simcall_comm_test(smx_synchro_t comm)
{
return simcall_BODY_comm_test(comm);
}
* \ingroup simix_comm_management
*
*/
-double simcall_comm_get_remains(smx_action_t comm)
+double simcall_comm_get_remains(smx_synchro_t comm)
{
return simcall_BODY_comm_get_remains(comm);
}
* \ingroup simix_comm_management
*
*/
-e_smx_state_t simcall_comm_get_state(smx_action_t comm)
+e_smx_state_t simcall_comm_get_state(smx_synchro_t comm)
{
return simcall_BODY_comm_get_state(comm);
}
* \ingroup simix_comm_management
*
*/
-void *simcall_comm_get_src_data(smx_action_t comm)
+void *simcall_comm_get_src_data(smx_synchro_t comm)
{
return simcall_BODY_comm_get_src_data(comm);
}
* \ingroup simix_comm_management
*
*/
-void *simcall_comm_get_dst_data(smx_action_t comm)
+void *simcall_comm_get_dst_data(smx_synchro_t comm)
{
return simcall_BODY_comm_get_dst_data(comm);
}
* \ingroup simix_comm_management
*
*/
-smx_process_t simcall_comm_get_src_proc(smx_action_t comm)
+smx_process_t simcall_comm_get_src_proc(smx_synchro_t comm)
{
return simcall_BODY_comm_get_src_proc(comm);
}
* \ingroup simix_comm_management
*
*/
-smx_process_t simcall_comm_get_dst_proc(smx_action_t comm)
+smx_process_t simcall_comm_get_dst_proc(smx_synchro_t comm)
{
return simcall_BODY_comm_get_dst_proc(comm);
}
#ifdef HAVE_LATENCY_BOUND_TRACKING
-int simcall_comm_is_latency_bounded(smx_action_t comm)
+int simcall_comm_is_latency_bounded(smx_synchro_t comm)
{
return simcall_BODY_comm_is_latency_bounded(comm);
}
}
}
-void SIMIX_simcall_exit(smx_action_t action)
+void SIMIX_simcall_exit(smx_synchro_t synchro)
{
- switch (action->type) {
+ switch (synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- SIMIX_post_host_execute(action);
+ case SIMIX_SYNC_EXECUTE:
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ SIMIX_post_host_execute(synchro);
break;
- case SIMIX_ACTION_COMMUNICATE:
- SIMIX_post_comm(action);
+ case SIMIX_SYNC_COMMUNICATE:
+ SIMIX_post_comm(synchro);
break;
- case SIMIX_ACTION_SLEEP:
- SIMIX_post_process_sleep(action);
+ case SIMIX_SYNC_SLEEP:
+ SIMIX_post_process_sleep(synchro);
break;
- case SIMIX_ACTION_JOIN:
- SIMIX_post_process_sleep(action);
+ case SIMIX_SYNC_JOIN:
+ SIMIX_post_process_sleep(synchro);
break;
- case SIMIX_ACTION_SYNCHRO:
- SIMIX_post_synchro(action);
+ case SIMIX_SYNC_SYNCHRO:
+ SIMIX_post_synchro(synchro);
break;
- case SIMIX_ACTION_IO:
- SIMIX_post_io(action);
+ case SIMIX_SYNC_IO:
+ SIMIX_post_io(synchro);
break;
}
}
static inline void simcall_host_execute__set__affinity_mask(smx_simcall_t simcall, unsigned long arg) {
simcall->args[5].ul = arg;
}
-static inline smx_action_t simcall_host_execute__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_host_execute__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_host_execute__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
static inline void simcall_host_parallel_execute__set__rate(smx_simcall_t simcall, double arg) {
simcall->args[6].d = arg;
}
-static inline smx_action_t simcall_host_parallel_execute__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_host_parallel_execute__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_host_parallel_execute__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
}
-static inline smx_action_t simcall_host_execution_destroy__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_destroy__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_destroy__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
}
-static inline smx_action_t simcall_host_execution_cancel__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_cancel__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_cancel__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
}
-static inline smx_action_t simcall_host_execution_get_remains__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_get_remains__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_get_remains__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.d = result;
}
-static inline smx_action_t simcall_host_execution_get_state__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_get_state__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_get_state__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.i = result;
}
-static inline smx_action_t simcall_host_execution_set_priority__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_set_priority__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_set_priority__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->args[1].d = arg;
}
-static inline smx_action_t simcall_host_execution_set_bound__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_set_bound__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_set_bound__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->args[1].d = arg;
}
-static inline smx_action_t simcall_host_execution_set_affinity__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_set_affinity__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_set_affinity__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->args[2].ul = arg;
}
-static inline smx_action_t simcall_host_execution_wait__get__execution(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_host_execution_wait__get__execution(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_host_execution_wait__set__execution(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
static inline void simcall_rdv_get_head__set__rdv(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
}
-static inline smx_action_t simcall_rdv_get_head__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_rdv_get_head__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_rdv_get_head__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
static inline void simcall_comm_iprobe__set__data(smx_simcall_t simcall, void* arg) {
simcall->args[5].dp = arg;
}
-static inline smx_action_t simcall_comm_iprobe__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_comm_iprobe__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_comm_iprobe__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
static inline void simcall_comm_isend__set__detached(smx_simcall_t simcall, int arg) {
simcall->args[10].i = arg;
}
-static inline smx_action_t simcall_comm_isend__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_comm_isend__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_comm_isend__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
static inline void simcall_comm_irecv__set__rate(smx_simcall_t simcall, double arg) {
simcall->args[6].d = arg;
}
-static inline smx_action_t simcall_comm_irecv__get__result(smx_simcall_t simcall){
- return (smx_action_t) simcall->result.dp;
+static inline smx_synchro_t simcall_comm_irecv__get__result(smx_simcall_t simcall){
+ return (smx_synchro_t) simcall->result.dp;
}
static inline void simcall_comm_irecv__set__result(smx_simcall_t simcall, void* result){
simcall->result.dp = result;
}
-static inline smx_action_t simcall_comm_cancel__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_cancel__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_cancel__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.i = result;
}
-static inline smx_action_t simcall_comm_wait__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_wait__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_wait__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->args[1].d = arg;
}
-static inline smx_action_t simcall_comm_test__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_test__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_test__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.i = result;
}
-static inline smx_action_t simcall_comm_get_remains__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_remains__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_remains__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.d = result;
}
-static inline smx_action_t simcall_comm_get_state__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_state__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_state__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.i = result;
}
-static inline smx_action_t simcall_comm_get_src_data__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_src_data__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_src_data__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.dp = result;
}
-static inline smx_action_t simcall_comm_get_dst_data__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_dst_data__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_dst_data__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.dp = result;
}
-static inline smx_action_t simcall_comm_get_src_proc__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_src_proc__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_src_proc__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
simcall->result.dp = result;
}
-static inline smx_action_t simcall_comm_get_dst_proc__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_get_dst_proc__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_get_dst_proc__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
}
#ifdef HAVE_LATENCY_BOUND_TRACKING
-static inline smx_action_t simcall_comm_is_latency_bounded__get__comm(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_comm_is_latency_bounded__get__comm(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
static inline void simcall_comm_is_latency_bounded__set__comm(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
#ifdef HAVE_TRACING
-static inline smx_action_t simcall_set_category__get__action(smx_simcall_t simcall) {
- return (smx_action_t) simcall->args[0].dp;
+static inline smx_synchro_t simcall_set_category__get__synchro(smx_simcall_t simcall) {
+ return (smx_synchro_t) simcall->args[0].dp;
}
-static inline void simcall_set_category__set__action(smx_simcall_t simcall, void* arg) {
+static inline void simcall_set_category__set__synchro(smx_simcall_t simcall, void* arg) {
simcall->args[0].dp = arg;
}
static inline const char* simcall_set_category__get__category(smx_simcall_t simcall) {
int simcall_HANDLER_host_get_nb_pstates(smx_simcall_t simcall, smx_host_t host);
void simcall_HANDLER_host_set_power_peak_at(smx_simcall_t simcall, smx_host_t host, int pstate_index);
double simcall_HANDLER_host_get_consumed_energy(smx_simcall_t simcall, smx_host_t host);
-smx_action_t simcall_HANDLER_host_execute(smx_simcall_t simcall, const char* name, smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask);
-smx_action_t simcall_HANDLER_host_parallel_execute(smx_simcall_t simcall, const char* name, int host_nb, smx_host_t* host_list, double* computation_amount, double* communication_amount, double amount, double rate);
-void simcall_HANDLER_host_execution_destroy(smx_simcall_t simcall, smx_action_t execution);
-void simcall_HANDLER_host_execution_cancel(smx_simcall_t simcall, smx_action_t execution);
-double simcall_HANDLER_host_execution_get_remains(smx_simcall_t simcall, smx_action_t execution);
-e_smx_state_t simcall_HANDLER_host_execution_get_state(smx_simcall_t simcall, smx_action_t execution);
-void simcall_HANDLER_host_execution_set_priority(smx_simcall_t simcall, smx_action_t execution, double priority);
-void simcall_HANDLER_host_execution_set_bound(smx_simcall_t simcall, smx_action_t execution, double bound);
-void simcall_HANDLER_host_execution_set_affinity(smx_simcall_t simcall, smx_action_t execution, smx_host_t ws, unsigned long mask);
-void simcall_HANDLER_host_execution_wait(smx_simcall_t simcall, smx_action_t execution);
+smx_synchro_t simcall_HANDLER_host_execute(smx_simcall_t simcall, const char* name, smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask);
+smx_synchro_t simcall_HANDLER_host_parallel_execute(smx_simcall_t simcall, const char* name, int host_nb, smx_host_t* host_list, double* computation_amount, double* communication_amount, double amount, double rate);
+void simcall_HANDLER_host_execution_destroy(smx_simcall_t simcall, smx_synchro_t execution);
+void simcall_HANDLER_host_execution_cancel(smx_simcall_t simcall, smx_synchro_t execution);
+double simcall_HANDLER_host_execution_get_remains(smx_simcall_t simcall, smx_synchro_t execution);
+e_smx_state_t simcall_HANDLER_host_execution_get_state(smx_simcall_t simcall, smx_synchro_t execution);
+void simcall_HANDLER_host_execution_set_priority(smx_simcall_t simcall, smx_synchro_t execution, double priority);
+void simcall_HANDLER_host_execution_set_bound(smx_simcall_t simcall, smx_synchro_t execution, double bound);
+void simcall_HANDLER_host_execution_set_affinity(smx_simcall_t simcall, smx_synchro_t execution, smx_host_t ws, unsigned long mask);
+void simcall_HANDLER_host_execution_wait(smx_simcall_t simcall, smx_synchro_t execution);
xbt_dict_t simcall_HANDLER_host_get_mounted_storage_list(smx_simcall_t simcall, smx_host_t host);
xbt_dynar_t simcall_HANDLER_host_get_attached_storage_list(smx_simcall_t simcall, smx_host_t host);
void simcall_HANDLER_host_get_params(smx_simcall_t simcall, smx_host_t ind_vm, ws_params_t params);
smx_rdv_t simcall_HANDLER_rdv_create(smx_simcall_t simcall, const char* name);
void simcall_HANDLER_rdv_destroy(smx_simcall_t simcall, smx_rdv_t rdv);
unsigned int simcall_HANDLER_rdv_comm_count_by_host(smx_simcall_t simcall, smx_rdv_t rdv, smx_host_t host);
-smx_action_t simcall_HANDLER_rdv_get_head(smx_simcall_t simcall, smx_rdv_t rdv);
+smx_synchro_t simcall_HANDLER_rdv_get_head(smx_simcall_t simcall, smx_rdv_t rdv);
void simcall_HANDLER_rdv_set_receiver(smx_simcall_t simcall, smx_rdv_t rdv, smx_process_t receiver);
smx_process_t simcall_HANDLER_rdv_get_receiver(smx_simcall_t simcall, smx_rdv_t rdv);
-smx_action_t simcall_HANDLER_comm_iprobe(smx_simcall_t simcall, smx_rdv_t rdv, int type, int src, int tag, simix_match_func_t match_fun, void* data);
+smx_synchro_t simcall_HANDLER_comm_iprobe(smx_simcall_t simcall, smx_rdv_t rdv, int type, int src, int tag, simix_match_func_t match_fun, void* data);
void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout);
-smx_action_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached);
+smx_synchro_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached);
void simcall_HANDLER_comm_recv(smx_simcall_t simcall, smx_rdv_t rdv, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout, double rate);
-smx_action_t simcall_HANDLER_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double rate);
-void simcall_HANDLER_comm_cancel(smx_simcall_t simcall, smx_action_t comm);
+smx_synchro_t simcall_HANDLER_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double rate);
+void simcall_HANDLER_comm_cancel(smx_simcall_t simcall, smx_synchro_t comm);
void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, xbt_dynar_t comms);
-void simcall_HANDLER_comm_wait(smx_simcall_t simcall, smx_action_t comm, double timeout);
-void simcall_HANDLER_comm_test(smx_simcall_t simcall, smx_action_t comm);
+void simcall_HANDLER_comm_wait(smx_simcall_t simcall, smx_synchro_t comm, double timeout);
+void simcall_HANDLER_comm_test(smx_simcall_t simcall, smx_synchro_t comm);
void simcall_HANDLER_comm_testany(smx_simcall_t simcall, xbt_dynar_t comms);
-double simcall_HANDLER_comm_get_remains(smx_simcall_t simcall, smx_action_t comm);
-e_smx_state_t simcall_HANDLER_comm_get_state(smx_simcall_t simcall, smx_action_t comm);
-void* simcall_HANDLER_comm_get_src_data(smx_simcall_t simcall, smx_action_t comm);
-void* simcall_HANDLER_comm_get_dst_data(smx_simcall_t simcall, smx_action_t comm);
-smx_process_t simcall_HANDLER_comm_get_src_proc(smx_simcall_t simcall, smx_action_t comm);
-smx_process_t simcall_HANDLER_comm_get_dst_proc(smx_simcall_t simcall, smx_action_t comm);
+double simcall_HANDLER_comm_get_remains(smx_simcall_t simcall, smx_synchro_t comm);
+e_smx_state_t simcall_HANDLER_comm_get_state(smx_simcall_t simcall, smx_synchro_t comm);
+void* simcall_HANDLER_comm_get_src_data(smx_simcall_t simcall, smx_synchro_t comm);
+void* simcall_HANDLER_comm_get_dst_data(smx_simcall_t simcall, smx_synchro_t comm);
+smx_process_t simcall_HANDLER_comm_get_src_proc(smx_simcall_t simcall, smx_synchro_t comm);
+smx_process_t simcall_HANDLER_comm_get_dst_proc(smx_simcall_t simcall, smx_synchro_t comm);
smx_mutex_t simcall_HANDLER_mutex_init(smx_simcall_t simcall);
void simcall_HANDLER_mutex_destroy(smx_simcall_t simcall, smx_mutex_t mutex);
void simcall_HANDLER_mutex_lock(smx_simcall_t simcall, smx_mutex_t mutex);
xbt_dict_t simcall_HANDLER_storage_get_content(smx_simcall_t simcall, smx_storage_t storage);
xbt_dict_t simcall_HANDLER_asr_get_properties(smx_simcall_t simcall, const char* name);
#ifdef HAVE_LATENCY_BOUND_TRACKING
-int simcall_HANDLER_comm_is_latency_bounded(smx_simcall_t simcall, smx_action_t comm);
+int simcall_HANDLER_comm_is_latency_bounded(smx_simcall_t simcall, smx_synchro_t comm);
#endif
#ifdef HAVE_TRACING
-void simcall_HANDLER_set_category(smx_simcall_t simcall, smx_action_t action, const char* category);
+void simcall_HANDLER_set_category(smx_simcall_t simcall, smx_synchro_t synchro, const char* category);
#endif
#ifdef HAVE_MC
return self->simcall.result.d;
}
-inline static smx_action_t simcall_BODY_host_execute(const char* name, smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask) {
+inline static smx_synchro_t simcall_BODY_host_execute(const char* name, smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static smx_action_t simcall_BODY_host_parallel_execute(const char* name, int host_nb, smx_host_t* host_list, double* computation_amount, double* communication_amount, double amount, double rate) {
+inline static smx_synchro_t simcall_BODY_host_parallel_execute(const char* name, int host_nb, smx_host_t* host_list, double* computation_amount, double* communication_amount, double amount, double rate) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static void simcall_BODY_host_execution_destroy(smx_action_t execution) {
+inline static void simcall_BODY_host_execution_destroy(smx_synchro_t execution) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static void simcall_BODY_host_execution_cancel(smx_action_t execution) {
+inline static void simcall_BODY_host_execution_cancel(smx_synchro_t execution) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static double simcall_BODY_host_execution_get_remains(smx_action_t execution) {
+inline static double simcall_BODY_host_execution_get_remains(smx_synchro_t execution) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.d;
}
-inline static e_smx_state_t simcall_BODY_host_execution_get_state(smx_action_t execution) {
+inline static e_smx_state_t simcall_BODY_host_execution_get_state(smx_synchro_t execution) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.i;
}
-inline static void simcall_BODY_host_execution_set_priority(smx_action_t execution, double priority) {
+inline static void simcall_BODY_host_execution_set_priority(smx_synchro_t execution, double priority) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static void simcall_BODY_host_execution_set_bound(smx_action_t execution, double bound) {
+inline static void simcall_BODY_host_execution_set_bound(smx_synchro_t execution, double bound) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static void simcall_BODY_host_execution_set_affinity(smx_action_t execution, smx_host_t ws, unsigned long mask) {
+inline static void simcall_BODY_host_execution_set_affinity(smx_synchro_t execution, smx_host_t ws, unsigned long mask) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static int simcall_BODY_host_execution_wait(smx_action_t execution) {
+inline static int simcall_BODY_host_execution_wait(smx_synchro_t execution) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.ui;
}
-inline static smx_action_t simcall_BODY_rdv_get_head(smx_rdv_t rdv) {
+inline static smx_synchro_t simcall_BODY_rdv_get_head(smx_rdv_t rdv) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static smx_action_t simcall_BODY_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag, simix_match_func_t match_fun, void* data) {
+inline static smx_synchro_t simcall_BODY_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag, simix_match_func_t match_fun, void* data) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static smx_action_t simcall_BODY_comm_isend(smx_process_t src, smx_rdv_t rdv, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached) {
+inline static smx_synchro_t simcall_BODY_comm_isend(smx_process_t src, smx_rdv_t rdv, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static smx_action_t simcall_BODY_comm_irecv(smx_rdv_t rdv, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double rate) {
+inline static smx_synchro_t simcall_BODY_comm_irecv(smx_rdv_t rdv, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double rate) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static void simcall_BODY_comm_cancel(smx_action_t comm) {
+inline static void simcall_BODY_comm_cancel(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.i;
}
-inline static void simcall_BODY_comm_wait(smx_action_t comm, double timeout) {
+inline static void simcall_BODY_comm_wait(smx_synchro_t comm, double timeout) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
-inline static int simcall_BODY_comm_test(smx_action_t comm) {
+inline static int simcall_BODY_comm_test(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.i;
}
-inline static double simcall_BODY_comm_get_remains(smx_action_t comm) {
+inline static double simcall_BODY_comm_get_remains(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.d;
}
-inline static e_smx_state_t simcall_BODY_comm_get_state(smx_action_t comm) {
+inline static e_smx_state_t simcall_BODY_comm_get_state(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.i;
}
-inline static void* simcall_BODY_comm_get_src_data(smx_action_t comm) {
+inline static void* simcall_BODY_comm_get_src_data(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static void* simcall_BODY_comm_get_dst_data(smx_action_t comm) {
+inline static void* simcall_BODY_comm_get_dst_data(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static smx_process_t simcall_BODY_comm_get_src_proc(smx_action_t comm) {
+inline static smx_process_t simcall_BODY_comm_get_src_proc(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
return self->simcall.result.dp;
}
-inline static smx_process_t simcall_BODY_comm_get_dst_proc(smx_action_t comm) {
+inline static smx_process_t simcall_BODY_comm_get_dst_proc(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
}
#ifdef HAVE_LATENCY_BOUND_TRACKING
-inline static int simcall_BODY_comm_is_latency_bounded(smx_action_t comm) {
+inline static int simcall_BODY_comm_is_latency_bounded(smx_synchro_t comm) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
#ifdef HAVE_TRACING
-inline static void simcall_BODY_set_category(smx_action_t action, const char* category) {
+inline static void simcall_BODY_set_category(smx_synchro_t synchro, const char* category) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
- if (0) simcall_HANDLER_set_category(&self->simcall, action, category);
+ if (0) simcall_HANDLER_set_category(&self->simcall, synchro, category);
/* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
self->simcall.call = SIMCALL_SET_CATEGORY;
memset(&self->simcall.result, 0, sizeof(self->simcall.result));
memset(self->simcall.args, 0, sizeof(self->simcall.args));
- self->simcall.args[0].dp = (void*) action;
+ self->simcall.args[0].dp = (void*) synchro;
self->simcall.args[1].cc = (const char*) category;
if (self != simix_global->maestro_process) {
XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
break;
case SIMCALL_HOST_EXECUTION_DESTROY:
- simcall_HANDLER_host_execution_destroy(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall_HANDLER_host_execution_destroy(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_CANCEL:
- simcall_HANDLER_host_execution_cancel(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall_HANDLER_host_execution_cancel(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_GET_REMAINS:
- simcall->result.d = simcall_HANDLER_host_execution_get_remains(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.d = simcall_HANDLER_host_execution_get_remains(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_GET_STATE:
- simcall->result.i = simcall_HANDLER_host_execution_get_state(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.i = simcall_HANDLER_host_execution_get_state(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_SET_PRIORITY:
- simcall_HANDLER_host_execution_set_priority(simcall , (smx_action_t) simcall->args[0].dp, simcall->args[1].d);
+ simcall_HANDLER_host_execution_set_priority(simcall , (smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_SET_BOUND:
- simcall_HANDLER_host_execution_set_bound(simcall , (smx_action_t) simcall->args[0].dp, simcall->args[1].d);
+ simcall_HANDLER_host_execution_set_bound(simcall , (smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_SET_AFFINITY:
- simcall_HANDLER_host_execution_set_affinity(simcall , (smx_action_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp, simcall->args[2].ul);
+ simcall_HANDLER_host_execution_set_affinity(simcall , (smx_synchro_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp, simcall->args[2].ul);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_EXECUTION_WAIT:
- simcall_HANDLER_host_execution_wait(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall_HANDLER_host_execution_wait(simcall , (smx_synchro_t) simcall->args[0].dp);
break;
case SIMCALL_HOST_GET_MOUNTED_STORAGE_LIST:
break;
case SIMCALL_COMM_CANCEL:
- simcall_HANDLER_comm_cancel(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall_HANDLER_comm_cancel(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
break;
case SIMCALL_COMM_WAIT:
- simcall_HANDLER_comm_wait(simcall , (smx_action_t) simcall->args[0].dp, simcall->args[1].d);
+ simcall_HANDLER_comm_wait(simcall , (smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
break;
case SIMCALL_COMM_TEST:
- simcall_HANDLER_comm_test(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall_HANDLER_comm_test(simcall , (smx_synchro_t) simcall->args[0].dp);
break;
case SIMCALL_COMM_TESTANY:
break;
case SIMCALL_COMM_GET_REMAINS:
- simcall->result.d = simcall_HANDLER_comm_get_remains(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.d = simcall_HANDLER_comm_get_remains(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_GET_STATE:
- simcall->result.i = simcall_HANDLER_comm_get_state(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.i = simcall_HANDLER_comm_get_state(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_GET_SRC_DATA:
- simcall->result.dp = simcall_HANDLER_comm_get_src_data(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.dp = simcall_HANDLER_comm_get_src_data(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_GET_DST_DATA:
- simcall->result.dp = simcall_HANDLER_comm_get_dst_data(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.dp = simcall_HANDLER_comm_get_dst_data(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_GET_SRC_PROC:
- simcall->result.dp = simcall_HANDLER_comm_get_src_proc(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.dp = simcall_HANDLER_comm_get_src_proc(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_GET_DST_PROC:
- simcall->result.dp = simcall_HANDLER_comm_get_dst_proc(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.dp = simcall_HANDLER_comm_get_dst_proc(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
#ifdef HAVE_LATENCY_BOUND_TRACKING
case SIMCALL_COMM_IS_LATENCY_BOUNDED:
- simcall->result.i = simcall_HANDLER_comm_is_latency_bounded(simcall , (smx_action_t) simcall->args[0].dp);
+ simcall->result.i = simcall_HANDLER_comm_is_latency_bounded(simcall , (smx_synchro_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
#ifdef HAVE_TRACING
case SIMCALL_SET_CATEGORY:
- simcall_HANDLER_set_category(simcall , (smx_action_t) simcall->args[0].dp, simcall->args[1].cc);
+ simcall_HANDLER_set_category(simcall , (smx_synchro_t) simcall->args[0].dp, simcall->args[1].cc);
SIMIX_simcall_answer(simcall);
break;
#include "popping_enum.h" /* Definition of e_smx_simcall_t, with one value per simcall */
#include "mc/mc_interface.h" /* Definition of mc_snapshot_t, used by one simcall */
-typedef int (*simix_match_func_t)(void *, void *, smx_action_t);
-typedef void (*simix_copy_data_func_t)(smx_action_t, void*, size_t);
+typedef int (*simix_match_func_t)(void *, void *, smx_synchro_t);
+typedef void (*simix_copy_data_func_t)(smx_synchro_t, void*, size_t);
typedef void (*simix_clean_func_t)(void *);
typedef void (*FPtr)(void); // Hide the ugliness
void SIMIX_simcall_answer(smx_simcall_t);
void SIMIX_simcall_handle(smx_simcall_t, int);
-void SIMIX_simcall_exit(smx_action_t);
+void SIMIX_simcall_exit(smx_synchro_t);
const char *SIMIX_simcall_name(e_smx_simcall_t kind);
SG_END_DECL()
Func host_get_nb_pstates (int) (host, void*, smx_host_t)
Proc host_set_power_peak_at (void) (host, void*, smx_host_t) (pstate_index, int)
Func host_get_consumed_energy (double) (host, void*, smx_host_t)
-Func host_execute (void*, smx_action_t) (name, const char*) (host, void*, smx_host_t) (computation_amount, double) (priority, double) (bound, double) (affinity_mask, unsigned long)
-Func host_parallel_execute (void*, smx_action_t) (name, const char*) (host_nb, int) (host_list, void*, smx_host_t*) (computation_amount, void*, double*) (communication_amount, void*, double*) (amount, double) (rate, double)
-Proc host_execution_destroy (void) (execution, void*, smx_action_t)
-Proc host_execution_cancel (void) (execution, void*, smx_action_t)
-Func host_execution_get_remains (double) (execution, void*, smx_action_t)
-Func host_execution_get_state (int, e_smx_state_t) (execution, void*, smx_action_t)
-Proc host_execution_set_priority (void) (execution, void*, smx_action_t) (priority, double)
-Proc host_execution_set_bound (void) (execution, void*, smx_action_t) (bound, double)
-Proc host_execution_set_affinity (void) (execution, void*, smx_action_t) (ws, void*, smx_host_t) (mask, unsigned long)
-Blck host_execution_wait (int) (execution, void*, smx_action_t)
+Func host_execute (void*, smx_synchro_t) (name, const char*) (host, void*, smx_host_t) (computation_amount, double) (priority, double) (bound, double) (affinity_mask, unsigned long)
+Func host_parallel_execute (void*, smx_synchro_t) (name, const char*) (host_nb, int) (host_list, void*, smx_host_t*) (computation_amount, void*, double*) (communication_amount, void*, double*) (amount, double) (rate, double)
+Proc host_execution_destroy (void) (execution, void*, smx_synchro_t)
+Proc host_execution_cancel (void) (execution, void*, smx_synchro_t)
+Func host_execution_get_remains (double) (execution, void*, smx_synchro_t)
+Func host_execution_get_state (int, e_smx_state_t) (execution, void*, smx_synchro_t)
+Proc host_execution_set_priority (void) (execution, void*, smx_synchro_t) (priority, double)
+Proc host_execution_set_bound (void) (execution, void*, smx_synchro_t) (bound, double)
+Proc host_execution_set_affinity (void) (execution, void*, smx_synchro_t) (ws, void*, smx_host_t) (mask, unsigned long)
+Blck host_execution_wait (int) (execution, void*, smx_synchro_t)
Func host_get_mounted_storage_list (void*, xbt_dict_t) (host, void*, smx_host_t)
Func host_get_attached_storage_list (void*, xbt_dynar_t) (host, void*, smx_host_t)
Proc host_get_params (void) (ind_vm, void*, smx_host_t) (params, void*, ws_params_t)
Func rdv_create (void*, smx_rdv_t) (name, const char*)
Proc rdv_destroy (void) (rdv, void*, smx_rdv_t)
Func rdv_comm_count_by_host (unsigned int) (rdv, void*, smx_rdv_t) (host, void*, smx_host_t)
-Func rdv_get_head (void*, smx_action_t) (rdv, void*, smx_rdv_t)
+Func rdv_get_head (void*, smx_synchro_t) (rdv, void*, smx_rdv_t)
Proc rdv_set_receiver (void) (rdv, void*, smx_rdv_t) (receiver, void*, smx_process_t)
Func rdv_get_receiver (void*, smx_process_t) (rdv, void*, smx_rdv_t)
-Func comm_iprobe (void*, smx_action_t) (rdv, void*, smx_rdv_t) (type, int) (src, int) (tag, int) (match_fun, FPtr, simix_match_func_t) (data, void*)
+Func comm_iprobe (void*, smx_synchro_t) (rdv, void*, smx_rdv_t) (type, int) (src, int) (tag, int) (match_fun, FPtr, simix_match_func_t) (data, void*)
Blck comm_send (void) (src, void*, smx_process_t) (rdv, void*, smx_rdv_t) (task_size, double) (rate, double) (src_buff, void*) (src_buff_size, size_t) (match_fun, FPtr, simix_match_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (timeout, double)
-Func comm_isend (void*, smx_action_t) (src, void*, smx_process_t) (rdv, void*, smx_rdv_t) (task_size, double) (rate, double) (src_buff, void*) (src_buff_size, size_t) (match_fun, FPtr, simix_match_func_t) (clean_fun, FPtr, simix_clean_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (detached, int)
+Func comm_isend (void*, smx_synchro_t) (src, void*, smx_process_t) (rdv, void*, smx_rdv_t) (task_size, double) (rate, double) (src_buff, void*) (src_buff_size, size_t) (match_fun, FPtr, simix_match_func_t) (clean_fun, FPtr, simix_clean_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (detached, int)
Blck comm_recv (void) (rdv, void*, smx_rdv_t) (dst_buff, void*) (dst_buff_size, void*, size_t*) (match_fun, FPtr, simix_match_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (timeout, double) (rate, double)
-Func comm_irecv (void*, smx_action_t) (rdv, void*, smx_rdv_t) (dst_buff, void*) (dst_buff_size, void*, size_t*) (match_fun, FPtr, simix_match_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (rate, double)
-Proc comm_cancel (void) (comm, void*, smx_action_t)
+Func comm_irecv (void*, smx_synchro_t) (rdv, void*, smx_rdv_t) (dst_buff, void*) (dst_buff_size, void*, size_t*) (match_fun, FPtr, simix_match_func_t) (copy_data_fun, FPtr, simix_copy_data_func_t) (data, void*) (rate, double)
+Proc comm_cancel (void) (comm, void*, smx_synchro_t)
Blck comm_waitany (int) (comms, void*, xbt_dynar_t)
-Blck comm_wait (void) (comm, void*, smx_action_t) (timeout, double)
-Blck comm_test (int) (comm, void*, smx_action_t)
+Blck comm_wait (void) (comm, void*, smx_synchro_t) (timeout, double)
+Blck comm_test (int) (comm, void*, smx_synchro_t)
Blck comm_testany (int) (comms, void*, xbt_dynar_t)
-Func comm_get_remains (double) (comm, void*, smx_action_t)
-Func comm_get_state (int, e_smx_state_t) (comm, void*, smx_action_t)
-Func comm_get_src_data (void*) (comm, void*, smx_action_t)
-Func comm_get_dst_data (void*) (comm, void*, smx_action_t)
-Func comm_get_src_proc (void*, smx_process_t) (comm, void*, smx_action_t)
-Func comm_get_dst_proc (void*, smx_process_t) (comm, void*, smx_action_t)
+Func comm_get_remains (double) (comm, void*, smx_synchro_t)
+Func comm_get_state (int, e_smx_state_t) (comm, void*, smx_synchro_t)
+Func comm_get_src_data (void*) (comm, void*, smx_synchro_t)
+Func comm_get_dst_data (void*) (comm, void*, smx_synchro_t)
+Func comm_get_src_proc (void*, smx_process_t) (comm, void*, smx_synchro_t)
+Func comm_get_dst_proc (void*, smx_process_t) (comm, void*, smx_synchro_t)
Func mutex_init (void*, smx_mutex_t)
Proc mutex_destroy (void) (mutex, void*, smx_mutex_t)
Blck mutex_lock (void) (mutex, void*, smx_mutex_t)
Func storage_get_content (void*, xbt_dict_t) (storage, void*, smx_storage_t)
Func asr_get_properties (void*, xbt_dict_t) (name, const char*)
## HAVE_LATENCY_BOUND_TRACKING
-Func comm_is_latency_bounded (int) (comm, void*, smx_action_t)
+Func comm_is_latency_bounded (int) (comm, void*, smx_synchro_t)
## HAVE_TRACING
-Proc set_category (void) (action, void*, smx_action_t) (category, const char*)
+Proc set_category (void) (synchro, void*, smx_synchro_t) (category, const char*)
## HAVE_MC
Func mc_snapshot (void*, mc_snapshot_t)
Func mc_compare_snapshots (int) (s1, void*, mc_snapshot_t) (s2, void*, mc_snapshot_t)
smx_global_t simix_global = NULL;
static xbt_heap_t simix_timers = NULL;
-static void* SIMIX_action_mallocator_new_f(void);
-static void SIMIX_action_mallocator_free_f(void* action);
-static void SIMIX_action_mallocator_reset_f(void* action);
+static void* SIMIX_synchro_mallocator_new_f(void);
+static void SIMIX_synchro_mallocator_free_f(void* synchro);
+static void SIMIX_synchro_mallocator_reset_f(void* synchro);
/* FIXME: Yeah, I'll do it in a portable maner one day [Mt] */
#include <signal.h>
simix_global->create_process_function = SIMIX_process_create;
simix_global->kill_process_function = SIMIX_process_kill;
simix_global->cleanup_process_function = SIMIX_process_cleanup;
- simix_global->action_mallocator = xbt_mallocator_new(65536,
- SIMIX_action_mallocator_new_f, SIMIX_action_mallocator_free_f,
- SIMIX_action_mallocator_reset_f);
+ simix_global->synchro_mallocator = xbt_mallocator_new(65536,
+ SIMIX_synchro_mallocator_new_f, SIMIX_synchro_mallocator_free_f,
+ SIMIX_synchro_mallocator_reset_f);
simix_global->autorestart = SIMIX_host_restart_processes;
surf_init(argc, argv); /* Initialize SURF structures */
xbt_os_timer_free(simix_global->timer_par);
#endif
- xbt_mallocator_free(simix_global->action_mallocator);
+ xbt_mallocator_free(simix_global->synchro_mallocator);
xbt_free(simix_global);
simix_global = NULL;
* - because the communication failed or were canceled after startup. In this case, it's called from the function
* we are in, by the chunk:
* set = model->states.failed_action_set;
- * while ((action = xbt_swag_extract(set)))
- * SIMIX_simcall_post((smx_action_t) action->data);
+ * while ((synchro = xbt_swag_extract(set)))
+ * SIMIX_simcall_post((smx_synchro_t) synchro->data);
* This order is also fixed because it depends of the order in which the surf actions were
* added to the system, and only maestro can add stuff this way, through simcalls.
- * We thus use the inductive hypothesis once again to conclude that the order in which actions are
+ * We thus use the inductive hypothesis once again to conclude that the order in which synchros are
* poped out of the swag does not depend on the user code's execution order.
- * - because the communication terminated. In this case, actions are served in the order given by
+ * - because the communication terminated. In this case, synchros are served in the order given by
* set = model->states.done_action_set;
- * while ((action = xbt_swag_extract(set)))
- * SIMIX_simcall_post((smx_action_t) action->data);
+ * while ((synchro = xbt_swag_extract(set)))
+ * SIMIX_simcall_post((smx_synchro_t) synchro->data);
* and the argument is very similar to the previous one.
* So, in any case, the orders of calls to SIMIX_comm_finish() do not depend on the order in which user processes are executed.
* So, in any cases, the orders of processes within process_to_run do not depend on the order in which user processes were executed previously.
/* Wake up all processes waiting for a Surf action to finish */
xbt_dynar_foreach(model_list, iter, model) {
while ((action = surf_model_extract_failed_action_set(model)))
- SIMIX_simcall_exit((smx_action_t) surf_action_get_data(action));
+ SIMIX_simcall_exit((smx_synchro_t) surf_action_get_data(action));
while ((action = surf_model_extract_done_action_set(model)))
if (surf_action_get_data(action) == NULL)
XBT_DEBUG("probably vcpu's action %p, skip", action);
else
- SIMIX_simcall_exit((smx_action_t) surf_action_get_data(action));
+ SIMIX_simcall_exit((smx_synchro_t) surf_action_get_data(action));
}
/* Autorestart all process */
("Legend of the following listing: \"Process <pid> (<name>@<host>): <status>\"");
xbt_swag_foreach(process, simix_global->process_list) {
- if (process->waiting_action) {
+ if (process->waiting_synchro) {
- const char* action_description = "unknown";
- switch (process->waiting_action->type) {
+ const char* synchro_description = "unknown";
+ switch (process->waiting_synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- action_description = "execution";
+ case SIMIX_SYNC_EXECUTE:
+ synchro_description = "execution";
break;
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- action_description = "parallel execution";
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ synchro_description = "parallel execution";
break;
- case SIMIX_ACTION_COMMUNICATE:
- action_description = "communication";
+ case SIMIX_SYNC_COMMUNICATE:
+ synchro_description = "communication";
break;
- case SIMIX_ACTION_SLEEP:
- action_description = "sleeping";
+ case SIMIX_SYNC_SLEEP:
+ synchro_description = "sleeping";
break;
- case SIMIX_ACTION_JOIN:
- action_description = "joining";
+ case SIMIX_SYNC_JOIN:
+ synchro_description = "joining";
break;
- case SIMIX_ACTION_SYNCHRO:
- action_description = "synchronization";
+ case SIMIX_SYNC_SYNCHRO:
+ synchro_description = "synchronization";
break;
- case SIMIX_ACTION_IO:
- action_description = "I/O";
+ case SIMIX_SYNC_IO:
+ synchro_description = "I/O";
break;
}
- XBT_INFO("Process %lu (%s@%s): waiting for %s action %p (%s) in state %d to finish",
+ XBT_INFO("Process %lu (%s@%s): waiting for %s synchro %p (%s) in state %d to finish",
process->pid, process->name, sg_host_name(process->smx_host),
- action_description, process->waiting_action,
- process->waiting_action->name, (int)process->waiting_action->state);
+ synchro_description, process->waiting_synchro,
+ process->waiting_synchro->name, (int)process->waiting_synchro->state);
}
else {
XBT_INFO("Process %lu (%s@%s)", process->pid, process->name, sg_host_name(process->smx_host));
}
}
-static void* SIMIX_action_mallocator_new_f(void) {
- smx_action_t action = xbt_new(s_smx_action_t, 1);
- action->simcalls = xbt_fifo_new();
- return action;
+static void* SIMIX_synchro_mallocator_new_f(void) {
+ smx_synchro_t synchro = xbt_new(s_smx_synchro_t, 1);
+ synchro->simcalls = xbt_fifo_new();
+ return synchro;
}
-static void SIMIX_action_mallocator_free_f(void* action) {
- xbt_fifo_free(((smx_action_t) action)->simcalls);
- xbt_free(action);
+static void SIMIX_synchro_mallocator_free_f(void* synchro) {
+ xbt_fifo_free(((smx_synchro_t) synchro)->simcalls);
+ xbt_free(synchro);
}
-static void SIMIX_action_mallocator_reset_f(void* action) {
+static void SIMIX_synchro_mallocator_reset_f(void* synchro) {
// we also recycle the simcall list
- xbt_fifo_t fifo = ((smx_action_t) action)->simcalls;
+ xbt_fifo_t fifo = ((smx_synchro_t) synchro)->simcalls;
xbt_fifo_reset(fifo);
- memset(action, 0, sizeof(s_smx_action_t));
- ((smx_action_t) action)->simcalls = fifo;
+ memset(synchro, 0, sizeof(s_smx_synchro_t));
+ ((smx_synchro_t) synchro)->simcalls = fifo;
}
xbt_dict_t simcall_HANDLER_asr_get_properties(smx_simcall_t simcall, const char *name){
#include "mc/mc.h"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_host, simix,
- "Logging specific to SIMIX (hosts)");
+ "SIMIX hosts");
-static void SIMIX_execution_finish(smx_action_t action);
+static void SIMIX_execution_finish(smx_synchro_t synchro);
/**
* \brief Internal function to create a SIMIX host.
xbt_die("No function for simix_global->autorestart");
}
-smx_action_t simcall_HANDLER_host_execute(smx_simcall_t simcall,const char *name,
+smx_synchro_t simcall_HANDLER_host_execute(smx_simcall_t simcall,const char *name,
smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask){
return SIMIX_host_execute(name, host, computation_amount, priority, bound, affinity_mask);
}
-smx_action_t SIMIX_host_execute(const char *name,
+smx_synchro_t SIMIX_host_execute(const char *name,
smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask){
/* alloc structures and initialize */
- smx_action_t action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_EXECUTE;
- action->name = xbt_strdup(name);
- action->state = SIMIX_RUNNING;
- action->execution.host = host;
+ smx_synchro_t synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_EXECUTE;
+ synchro->name = xbt_strdup(name);
+ synchro->state = SIMIX_RUNNING;
+ synchro->execution.host = host;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
/* set surf's action */
if (!MC_is_active()) {
- action->execution.surf_exec = surf_workstation_execute(host, computation_amount);
- surf_action_set_data(action->execution.surf_exec, action);
- surf_action_set_priority(action->execution.surf_exec, priority);
+ synchro->execution.surf_exec = surf_workstation_execute(host, computation_amount);
+ surf_action_set_data(synchro->execution.surf_exec, synchro);
+ surf_action_set_priority(synchro->execution.surf_exec, priority);
/* Note (hypervisor): for multicore, the bound value being passed to the
* surf layer should not be zero (i.e., unlimited). It should be the
* capacity of a CPU core. */
if (bound == 0)
- surf_cpu_action_set_bound(action->execution.surf_exec, SIMIX_host_get_speed(host));
+ surf_cpu_action_set_bound(synchro->execution.surf_exec, SIMIX_host_get_speed(host));
else
- surf_cpu_action_set_bound(action->execution.surf_exec, bound);
+ surf_cpu_action_set_bound(synchro->execution.surf_exec, bound);
if (affinity_mask != 0) {
/* just a double check to confirm that this host is the host where this task is running. */
- xbt_assert(action->execution.host == host);
- surf_cpu_action_set_affinity(action->execution.surf_exec, host, affinity_mask);
+ xbt_assert(synchro->execution.host == host);
+ surf_cpu_action_set_affinity(synchro->execution.surf_exec, host, affinity_mask);
}
}
- XBT_DEBUG("Create execute action %p: %s", action, action->name);
+ XBT_DEBUG("Create execute synchro %p: %s", synchro, synchro->name);
- return action;
+ return synchro;
}
-smx_action_t simcall_HANDLER_host_parallel_execute(smx_simcall_t simcall, const char *name,
+smx_synchro_t simcall_HANDLER_host_parallel_execute(smx_simcall_t simcall, const char *name,
int host_nb, smx_host_t *host_list,
double *computation_amount, double *communication_amount,
double amount, double rate){
return SIMIX_host_parallel_execute(name, host_nb, host_list, computation_amount,
communication_amount, amount, rate);
}
-smx_action_t SIMIX_host_parallel_execute(const char *name,
+smx_synchro_t SIMIX_host_parallel_execute(const char *name,
int host_nb, smx_host_t *host_list,
double *computation_amount, double *communication_amount,
double amount, double rate){
int i;
/* alloc structures and initialize */
- smx_action_t action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_PARALLEL_EXECUTE;
- action->name = xbt_strdup(name);
- action->state = SIMIX_RUNNING;
- action->execution.host = NULL; /* FIXME: do we need the list of hosts? */
+ smx_synchro_t synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_PARALLEL_EXECUTE;
+ synchro->name = xbt_strdup(name);
+ synchro->state = SIMIX_RUNNING;
+ synchro->execution.host = NULL; /* FIXME: do we need the list of hosts? */
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- /* set surf's action */
+ /* set surf's synchro */
workstation_list = xbt_new0(void *, host_nb);
for (i = 0; i < host_nb; i++)
workstation_list[i] = surf_workstation_resource_priv(host_list[i]);
}
}
- /* set surf's action */
+ /* set surf's synchro */
if (!MC_is_active()) {
- action->execution.surf_exec =
+ synchro->execution.surf_exec =
surf_workstation_model_execute_parallel_task((surf_workstation_model_t)surf_workstation_model,
host_nb, workstation_list, computation_amount, communication_amount, rate);
- surf_action_set_data(action->execution.surf_exec, action);
+ surf_action_set_data(synchro->execution.surf_exec, synchro);
}
- XBT_DEBUG("Create parallel execute action %p", action);
+ XBT_DEBUG("Create parallel execute synchro %p", synchro);
- return action;
+ return synchro;
}
-void simcall_HANDLER_host_execution_destroy(smx_simcall_t simcall, smx_action_t action){
- SIMIX_host_execution_destroy(action);
+void simcall_HANDLER_host_execution_destroy(smx_simcall_t simcall, smx_synchro_t synchro){
+ SIMIX_host_execution_destroy(synchro);
}
-void SIMIX_host_execution_destroy(smx_action_t action){
- XBT_DEBUG("Destroy action %p", action);
+void SIMIX_host_execution_destroy(smx_synchro_t synchro){
+ XBT_DEBUG("Destroy synchro %p", synchro);
- if (action->execution.surf_exec) {
- surf_action_unref(action->execution.surf_exec);
- action->execution.surf_exec = NULL;
+ if (synchro->execution.surf_exec) {
+ surf_action_unref(synchro->execution.surf_exec);
+ synchro->execution.surf_exec = NULL;
}
- xbt_free(action->name);
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ xbt_free(synchro->name);
+ xbt_mallocator_release(simix_global->synchro_mallocator, synchro);
}
-void simcall_HANDLER_host_execution_cancel(smx_simcall_t simcall, smx_action_t action){
- SIMIX_host_execution_cancel(action);
+void simcall_HANDLER_host_execution_cancel(smx_simcall_t simcall, smx_synchro_t synchro){
+ SIMIX_host_execution_cancel(synchro);
}
-void SIMIX_host_execution_cancel(smx_action_t action){
- XBT_DEBUG("Cancel action %p", action);
+void SIMIX_host_execution_cancel(smx_synchro_t synchro){
+ XBT_DEBUG("Cancel synchro %p", synchro);
- if (action->execution.surf_exec)
- surf_action_cancel(action->execution.surf_exec);
+ if (synchro->execution.surf_exec)
+ surf_action_cancel(synchro->execution.surf_exec);
}
-double simcall_HANDLER_host_execution_get_remains(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_host_execution_get_remains(action);
+double simcall_HANDLER_host_execution_get_remains(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_host_execution_get_remains(synchro);
}
-double SIMIX_host_execution_get_remains(smx_action_t action){
+double SIMIX_host_execution_get_remains(smx_synchro_t synchro){
double result = 0.0;
- if (action->state == SIMIX_RUNNING)
- result = surf_action_get_remains(action->execution.surf_exec);
+ if (synchro->state == SIMIX_RUNNING)
+ result = surf_action_get_remains(synchro->execution.surf_exec);
return result;
}
-e_smx_state_t simcall_HANDLER_host_execution_get_state(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_host_execution_get_state(action);
+e_smx_state_t simcall_HANDLER_host_execution_get_state(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_host_execution_get_state(synchro);
}
-e_smx_state_t SIMIX_host_execution_get_state(smx_action_t action){
- return action->state;
+e_smx_state_t SIMIX_host_execution_get_state(smx_synchro_t synchro){
+ return synchro->state;
}
-void simcall_HANDLER_host_execution_set_priority(smx_simcall_t simcall, smx_action_t action,
+void simcall_HANDLER_host_execution_set_priority(smx_simcall_t simcall, smx_synchro_t synchro,
double priority){
- SIMIX_host_execution_set_priority(action, priority);
+ SIMIX_host_execution_set_priority(synchro, priority);
}
-void SIMIX_host_execution_set_priority(smx_action_t action, double priority){
+void SIMIX_host_execution_set_priority(smx_synchro_t synchro, double priority){
- if(action->execution.surf_exec)
- surf_action_set_priority(action->execution.surf_exec, priority);
+ if(synchro->execution.surf_exec)
+ surf_action_set_priority(synchro->execution.surf_exec, priority);
}
-void simcall_HANDLER_host_execution_set_bound(smx_simcall_t simcall, smx_action_t action,
+void simcall_HANDLER_host_execution_set_bound(smx_simcall_t simcall, smx_synchro_t synchro,
double bound){
- SIMIX_host_execution_set_bound(action, bound);
+ SIMIX_host_execution_set_bound(synchro, bound);
}
-void SIMIX_host_execution_set_bound(smx_action_t action, double bound){
+void SIMIX_host_execution_set_bound(smx_synchro_t synchro, double bound){
- if(action->execution.surf_exec)
- surf_cpu_action_set_bound(action->execution.surf_exec, bound);
+ if(synchro->execution.surf_exec)
+ surf_cpu_action_set_bound(synchro->execution.surf_exec, bound);
}
void simcall_HANDLER_host_execution_set_affinity(smx_simcall_t simcall,
- smx_action_t action, smx_host_t host, unsigned long mask){
- SIMIX_host_execution_set_affinity(action, host, mask);
+ smx_synchro_t synchro, smx_host_t host, unsigned long mask){
+ SIMIX_host_execution_set_affinity(synchro, host, mask);
}
-void SIMIX_host_execution_set_affinity(smx_action_t action, smx_host_t host, unsigned long mask){
- xbt_assert(action->type == SIMIX_ACTION_EXECUTE);
+void SIMIX_host_execution_set_affinity(smx_synchro_t synchro, smx_host_t host, unsigned long mask){
+ xbt_assert(synchro->type == SIMIX_SYNC_EXECUTE);
- if (action->execution.surf_exec) {
+ if (synchro->execution.surf_exec) {
/* just a double check to confirm that this host is the host where this task is running. */
- xbt_assert(action->execution.host == host);
- surf_cpu_action_set_affinity(action->execution.surf_exec, host, mask);
+ xbt_assert(synchro->execution.host == host);
+ surf_cpu_action_set_affinity(synchro->execution.surf_exec, host, mask);
}
}
-void simcall_HANDLER_host_execution_wait(smx_simcall_t simcall, smx_action_t action){
+void simcall_HANDLER_host_execution_wait(smx_simcall_t simcall, smx_synchro_t synchro){
- XBT_DEBUG("Wait for execution of action %p, state %d", action, (int)action->state);
+ XBT_DEBUG("Wait for execution of synchro %p, state %d", synchro, (int)synchro->state);
- /* Associate this simcall to the action */
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ /* Associate this simcall to the synchro */
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
- /* set surf's action */
+ /* set surf's synchro */
if (MC_is_active()) {
- action->state = SIMIX_DONE;
- SIMIX_execution_finish(action);
+ synchro->state = SIMIX_DONE;
+ SIMIX_execution_finish(synchro);
return;
}
- /* If the action is already finished then perform the error handling */
- if (action->state != SIMIX_RUNNING)
- SIMIX_execution_finish(action);
+ /* If the synchro is already finished then perform the error handling */
+ if (synchro->state != SIMIX_RUNNING)
+ SIMIX_execution_finish(synchro);
}
-void SIMIX_host_execution_suspend(smx_action_t action)
+void SIMIX_host_execution_suspend(smx_synchro_t synchro)
{
- if(action->execution.surf_exec)
- surf_action_suspend(action->execution.surf_exec);
+ if(synchro->execution.surf_exec)
+ surf_action_suspend(synchro->execution.surf_exec);
}
-void SIMIX_host_execution_resume(smx_action_t action)
+void SIMIX_host_execution_resume(smx_synchro_t synchro)
{
- if(action->execution.surf_exec)
- surf_action_resume(action->execution.surf_exec);
+ if(synchro->execution.surf_exec)
+ surf_action_resume(synchro->execution.surf_exec);
}
-void SIMIX_execution_finish(smx_action_t action)
+void SIMIX_execution_finish(smx_synchro_t synchro)
{
xbt_fifo_item_t item;
smx_simcall_t simcall;
- xbt_fifo_foreach(action->simcalls, item, simcall, smx_simcall_t) {
+ xbt_fifo_foreach(synchro->simcalls, item, simcall, smx_simcall_t) {
- switch (action->state) {
+ switch (synchro->state) {
case SIMIX_DONE:
- /* do nothing, action done */
- XBT_DEBUG("SIMIX_execution_finished: execution successful");
+ /* do nothing, synchro done */
+ XBT_DEBUG("SIMIX_execution_finished: execution successful");
break;
case SIMIX_FAILED:
break;
default:
- xbt_die("Internal error in SIMIX_execution_finish: unexpected action state %d",
- (int)action->state);
+ xbt_die("Internal error in SIMIX_execution_finish: unexpected synchro state %d",
+ (int)synchro->state);
}
/* check if the host is down */
if (surf_resource_get_state(surf_workstation_resource_priv(simcall->issuer->smx_host)) != SURF_RESOURCE_ON) {
simcall->issuer->context->iwannadie = 1;
}
- simcall->issuer->waiting_action = NULL;
- simcall_host_execution_wait__set__result(simcall, action->state);
+ simcall->issuer->waiting_synchro = NULL;
+ simcall_host_execution_wait__set__result(simcall, synchro->state);
SIMIX_simcall_answer(simcall);
}
/* We no longer need it */
- SIMIX_host_execution_destroy(action);
+ SIMIX_host_execution_destroy(synchro);
}
-void SIMIX_post_host_execute(smx_action_t action)
+void SIMIX_post_host_execute(smx_synchro_t synchro)
{
- if (action->type == SIMIX_ACTION_EXECUTE && /* FIMXE: handle resource failure
+ if (synchro->type == SIMIX_SYNC_EXECUTE && /* FIMXE: handle resource failure
* for parallel tasks too */
- surf_resource_get_state(surf_workstation_resource_priv(action->execution.host)) == SURF_RESOURCE_OFF) {
- /* If the host running the action failed, notice it so that the asking
+ surf_resource_get_state(surf_workstation_resource_priv(synchro->execution.host)) == SURF_RESOURCE_OFF) {
+ /* If the host running the synchro failed, notice it so that the asking
* process can be killed if it runs on that host itself */
- action->state = SIMIX_FAILED;
- } else if (surf_action_get_state(action->execution.surf_exec) == SURF_ACTION_FAILED) {
- /* If the host running the action didn't fail, then the action was
+ synchro->state = SIMIX_FAILED;
+ } else if (surf_action_get_state(synchro->execution.surf_exec) == SURF_ACTION_FAILED) {
+ /* If the host running the synchro didn't fail, then the synchro was
* canceled */
- action->state = SIMIX_CANCELED;
+ synchro->state = SIMIX_CANCELED;
} else {
- action->state = SIMIX_DONE;
+ synchro->state = SIMIX_DONE;
}
- if (action->execution.surf_exec) {
- surf_action_unref(action->execution.surf_exec);
- action->execution.surf_exec = NULL;
+ if (synchro->execution.surf_exec) {
+ surf_action_unref(synchro->execution.surf_exec);
+ synchro->execution.surf_exec = NULL;
}
- /* If there are simcalls associated with the action, then answer them */
- if (xbt_fifo_size(action->simcalls)) {
- SIMIX_execution_finish(action);
+ /* If there are simcalls associated with the synchro, then answer them */
+ if (xbt_fifo_size(synchro->simcalls)) {
+ SIMIX_execution_finish(synchro);
}
}
#ifdef HAVE_TRACING
-void simcall_HANDLER_set_category(smx_simcall_t simcall, smx_action_t action,
+void simcall_HANDLER_set_category(smx_simcall_t simcall, smx_synchro_t synchro,
const char *category){
- SIMIX_set_category(action, category);
+ SIMIX_set_category(synchro, category);
}
-void SIMIX_set_category(smx_action_t action, const char *category)
+void SIMIX_set_category(smx_synchro_t synchro, const char *category)
{
- if (action->state != SIMIX_RUNNING) return;
- if (action->type == SIMIX_ACTION_EXECUTE){
- surf_action_set_category(action->execution.surf_exec, category);
- }else if (action->type == SIMIX_ACTION_COMMUNICATE){
- surf_action_set_category(action->comm.surf_comm, category);
+ if (synchro->state != SIMIX_RUNNING) return;
+ if (synchro->type == SIMIX_SYNC_EXECUTE){
+ surf_action_set_category(synchro->execution.surf_exec, category);
+ }else if (synchro->type == SIMIX_SYNC_COMMUNICATE){
+ surf_action_set_category(synchro->comm.surf_comm, category);
}
}
#endif
int SIMIX_host_get_nb_pstates(smx_host_t host);
double SIMIX_host_get_consumed_energy(smx_host_t host);
void SIMIX_host_set_power_peak_at(smx_host_t host, int pstate_index);
-smx_action_t SIMIX_host_execute(const char *name,
+smx_synchro_t SIMIX_host_execute(const char *name,
smx_host_t host, double computation_amount, double priority, double bound, unsigned long affinity_mask);
-smx_action_t SIMIX_host_parallel_execute(const char *name,
+smx_synchro_t SIMIX_host_parallel_execute(const char *name,
int host_nb, smx_host_t *host_list,
double *computation_amount, double *communication_amount,
double amount, double rate);
-void SIMIX_host_execution_destroy(smx_action_t action);
-void SIMIX_host_execution_cancel(smx_action_t action);
-double SIMIX_host_execution_get_remains(smx_action_t action);
-e_smx_state_t SIMIX_host_execution_get_state(smx_action_t action);
-void SIMIX_host_execution_set_priority(smx_action_t action, double priority);
-void SIMIX_host_execution_set_bound(smx_action_t action, double bound);
-void SIMIX_host_execution_set_affinity(smx_action_t action, smx_host_t host, unsigned long mask);
+void SIMIX_host_execution_destroy(smx_synchro_t synchro);
+void SIMIX_host_execution_cancel(smx_synchro_t synchro);
+double SIMIX_host_execution_get_remains(smx_synchro_t synchro);
+e_smx_state_t SIMIX_host_execution_get_state(smx_synchro_t synchro);
+void SIMIX_host_execution_set_priority(smx_synchro_t synchro, double priority);
+void SIMIX_host_execution_set_bound(smx_synchro_t synchro, double bound);
+void SIMIX_host_execution_set_affinity(smx_synchro_t synchro, smx_host_t host, unsigned long mask);
xbt_dict_t SIMIX_host_get_mounted_storage_list(smx_host_t host);
xbt_dynar_t SIMIX_host_get_attached_storage_list(smx_host_t host);
-void SIMIX_host_execution_suspend(smx_action_t action);
-void SIMIX_host_execution_resume(smx_action_t action);
+void SIMIX_host_execution_suspend(smx_synchro_t synchro);
+void SIMIX_host_execution_resume(smx_synchro_t synchro);
-void SIMIX_post_host_execute(smx_action_t action);
+void SIMIX_post_host_execute(smx_synchro_t synchro);
#ifdef HAVE_TRACING
-void SIMIX_set_category(smx_action_t action, const char *category);
+void SIMIX_set_category(smx_synchro_t synchro, const char *category);
#endif
/* vm related stuff */
smx_host_t SIMIX_vm_create(const char *name, smx_host_t ind_phys_host);
//SIMIX FILE READ
void simcall_HANDLER_file_read(smx_simcall_t simcall, smx_file_t fd, sg_size_t size, smx_host_t host)
{
- smx_action_t action = SIMIX_file_read(simcall->issuer, fd, size, host);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t synchro = SIMIX_file_read(simcall->issuer, fd, size, host);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
}
-smx_action_t SIMIX_file_read(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host)
+smx_synchro_t SIMIX_file_read(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host)
{
- smx_action_t action;
+ smx_synchro_t synchro;
/* check if the host is active */
if (surf_resource_get_state(surf_workstation_resource_priv(host)) != SURF_RESOURCE_ON) {
sg_host_name(host));
}
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_IO;
- action->name = NULL;
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_IO;
+ synchro->name = NULL;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- action->io.host = host;
- action->io.surf_io = surf_workstation_read(host, fd->surf_file, size);
+ synchro->io.host = host;
+ synchro->io.surf_io = surf_workstation_read(host, fd->surf_file, size);
- surf_action_set_data(action->io.surf_io, action);
- XBT_DEBUG("Create io action %p", action);
+ surf_action_set_data(synchro->io.surf_io, synchro);
+ XBT_DEBUG("Create io synchro %p", synchro);
- return action;
+ return synchro;
}
//SIMIX FILE WRITE
void simcall_HANDLER_file_write(smx_simcall_t simcall, smx_file_t fd, sg_size_t size, smx_host_t host)
{
- smx_action_t action = SIMIX_file_write(simcall->issuer, fd, size, host);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t synchro = SIMIX_file_write(simcall->issuer, fd, size, host);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
}
-smx_action_t SIMIX_file_write(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host)
+smx_synchro_t SIMIX_file_write(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host)
{
- smx_action_t action;
+ smx_synchro_t synchro;
/* check if the host is active */
if (surf_resource_get_state(surf_workstation_resource_priv(host)) != SURF_RESOURCE_ON) {
sg_host_name(host));
}
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_IO;
- action->name = NULL;
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_IO;
+ synchro->name = NULL;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- action->io.host = host;
- action->io.surf_io = surf_workstation_write(host, fd->surf_file, size);
+ synchro->io.host = host;
+ synchro->io.surf_io = surf_workstation_write(host, fd->surf_file, size);
- surf_action_set_data(action->io.surf_io, action);
- XBT_DEBUG("Create io action %p", action);
+ surf_action_set_data(synchro->io.surf_io, synchro);
+ XBT_DEBUG("Create io synchro %p", synchro);
- return action;
+ return synchro;
}
//SIMIX FILE OPEN
void simcall_HANDLER_file_open(smx_simcall_t simcall, const char* fullpath, smx_host_t host)
{
- smx_action_t action = SIMIX_file_open(simcall->issuer, fullpath, host);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t synchro = SIMIX_file_open(simcall->issuer, fullpath, host);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
}
-smx_action_t SIMIX_file_open(smx_process_t process, const char* fullpath, smx_host_t host)
+smx_synchro_t SIMIX_file_open(smx_process_t process, const char* fullpath, smx_host_t host)
{
- smx_action_t action;
+ smx_synchro_t synchro;
/* check if the host is active */
if (surf_resource_get_state(surf_workstation_resource_priv(host)) != SURF_RESOURCE_ON) {
sg_host_name(host));
}
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_IO;
- action->name = NULL;
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_IO;
+ synchro->name = NULL;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- action->io.host = host;
- action->io.surf_io = surf_workstation_open(host, fullpath);
+ synchro->io.host = host;
+ synchro->io.surf_io = surf_workstation_open(host, fullpath);
- surf_action_set_data(action->io.surf_io, action);
- XBT_DEBUG("Create io action %p", action);
+ surf_action_set_data(synchro->io.surf_io, synchro);
+ XBT_DEBUG("Create io synchro %p", synchro);
- return action;
+ return synchro;
}
//SIMIX FILE CLOSE
void simcall_HANDLER_file_close(smx_simcall_t simcall, smx_file_t fd, smx_host_t host)
{
- smx_action_t action = SIMIX_file_close(simcall->issuer, fd, host);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t synchro = SIMIX_file_close(simcall->issuer, fd, host);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
}
-smx_action_t SIMIX_file_close(smx_process_t process, smx_file_t fd, smx_host_t host)
+smx_synchro_t SIMIX_file_close(smx_process_t process, smx_file_t fd, smx_host_t host)
{
- smx_action_t action;
+ smx_synchro_t synchro;
/* check if the host is active */
if (surf_resource_get_state(surf_workstation_resource_priv(host)) != SURF_RESOURCE_ON) {
sg_host_name(host));
}
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_IO;
- action->name = NULL;
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_IO;
+ synchro->name = NULL;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- action->io.host = host;
- action->io.surf_io = surf_workstation_close(host, fd->surf_file);
+ synchro->io.host = host;
+ synchro->io.surf_io = surf_workstation_close(host, fd->surf_file);
- surf_action_set_data(action->io.surf_io, action);
- XBT_DEBUG("Create io action %p", action);
+ surf_action_set_data(synchro->io.surf_io, synchro);
+ XBT_DEBUG("Create io synchro %p", synchro);
- return action;
+ return synchro;
}
return surf_storage_get_host(storage);
}
-void SIMIX_post_io(smx_action_t action)
+void SIMIX_post_io(smx_synchro_t synchro)
{
xbt_fifo_item_t i;
smx_simcall_t simcall;
- xbt_fifo_foreach(action->simcalls,i,simcall,smx_simcall_t) {
+ xbt_fifo_foreach(synchro->simcalls,i,simcall,smx_simcall_t) {
switch (simcall->call) {
case SIMCALL_FILE_OPEN: {
smx_file_t tmp = xbt_new(s_smx_file_t,1);
- tmp->surf_file = surf_storage_action_get_file(action->io.surf_io);
+ tmp->surf_file = surf_storage_action_get_file(synchro->io.surf_io);
simcall_file_open__set__result(simcall, tmp);
break;
}
simcall_file_close__set__result(simcall, 0);
break;
case SIMCALL_FILE_WRITE:
- simcall_file_write__set__result(simcall, surf_action_get_cost(action->io.surf_io));
+ simcall_file_write__set__result(simcall, surf_action_get_cost(synchro->io.surf_io));
break;
case SIMCALL_FILE_READ:
- simcall_file_read__set__result(simcall, surf_action_get_cost(action->io.surf_io));
+ simcall_file_read__set__result(simcall, surf_action_get_cost(synchro->io.surf_io));
break;
default:
}
}
- switch (surf_action_get_state(action->io.surf_io)) {
+ switch (surf_action_get_state(synchro->io.surf_io)) {
case SURF_ACTION_FAILED:
- action->state = SIMIX_FAILED;
+ synchro->state = SIMIX_FAILED;
break;
case SURF_ACTION_DONE:
- action->state = SIMIX_DONE;
+ synchro->state = SIMIX_DONE;
break;
default:
break;
}
- SIMIX_io_finish(action);
+ SIMIX_io_finish(synchro);
}
-void SIMIX_io_destroy(smx_action_t action)
+void SIMIX_io_destroy(smx_synchro_t synchro)
{
- XBT_DEBUG("Destroy action %p", action);
- if (action->io.surf_io)
- surf_action_unref(action->io.surf_io);
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ XBT_DEBUG("Destroy synchro %p", synchro);
+ if (synchro->io.surf_io)
+ surf_action_unref(synchro->io.surf_io);
+ xbt_mallocator_release(simix_global->synchro_mallocator, synchro);
}
-void SIMIX_io_finish(smx_action_t action)
+void SIMIX_io_finish(smx_synchro_t synchro)
{
xbt_fifo_item_t item;
smx_simcall_t simcall;
- xbt_fifo_foreach(action->simcalls, item, simcall, smx_simcall_t) {
+ xbt_fifo_foreach(synchro->simcalls, item, simcall, smx_simcall_t) {
- switch (action->state) {
+ switch (synchro->state) {
case SIMIX_DONE:
- /* do nothing, action done */
+ /* do nothing, synchro done */
break;
case SIMIX_FAILED:
break;
default:
- xbt_die("Internal error in SIMIX_io_finish: unexpected action state %d",
- (int)action->state);
+ xbt_die("Internal error in SIMIX_io_finish: unexpected synchro state %d",
+ (int)synchro->state);
}
if (surf_resource_get_state(surf_workstation_resource_priv(simcall->issuer->smx_host)) != SURF_RESOURCE_ON) {
simcall->issuer->context->iwannadie = 1;
}
- simcall->issuer->waiting_action = NULL;
+ simcall->issuer->waiting_synchro = NULL;
SIMIX_simcall_answer(simcall);
}
/* We no longer need it */
- SIMIX_io_destroy(action);
+ SIMIX_io_destroy(synchro);
}
smx_storage_t SIMIX_storage_create(const char *name, void *storage, void *data);
void SIMIX_storage_destroy(void *s);
-smx_action_t SIMIX_file_read(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host);
-smx_action_t SIMIX_file_write(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host);
-smx_action_t SIMIX_file_open(smx_process_t process, const char* fullpath, smx_host_t host);
-smx_action_t SIMIX_file_close(smx_process_t process, smx_file_t fd, smx_host_t host);
+smx_synchro_t SIMIX_file_read(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host);
+smx_synchro_t SIMIX_file_write(smx_process_t process, smx_file_t fd, sg_size_t size, smx_host_t host);
+smx_synchro_t SIMIX_file_open(smx_process_t process, const char* fullpath, smx_host_t host);
+smx_synchro_t SIMIX_file_close(smx_process_t process, smx_file_t fd, smx_host_t host);
int SIMIX_file_unlink(smx_process_t process, smx_file_t fd, smx_host_t host);
sg_size_t SIMIX_file_get_size(smx_process_t process, smx_file_t fd);
sg_size_t SIMIX_file_tell(smx_process_t process, smx_file_t fd);
xbt_dict_t SIMIX_storage_get_content(smx_storage_t storage);
-void SIMIX_post_io(smx_action_t action);
-void SIMIX_io_destroy(smx_action_t action);
-void SIMIX_io_finish(smx_action_t action);
+void SIMIX_post_io(smx_synchro_t synchro);
+void SIMIX_io_destroy(smx_synchro_t synchro);
+void SIMIX_io_finish(smx_synchro_t synchro);
#endif
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_network, simix,
- "Logging specific to SIMIX (network)");
+ "SIMIX network-related synchronization");
static xbt_dict_t rdv_points = NULL;
XBT_EXPORT_NO_IMPORT(unsigned long int) smx_total_comms = 0;
static void SIMIX_waitany_remove_simcall_from_actions(smx_simcall_t simcall);
-static void SIMIX_comm_copy_data(smx_action_t comm);
-static smx_action_t SIMIX_comm_new(e_smx_comm_type_t type);
-static XBT_INLINE void SIMIX_rdv_push(smx_rdv_t rdv, smx_action_t comm);
-static smx_action_t SIMIX_fifo_probe_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
- int (*match_fun)(void *, void *,smx_action_t),
- void *user_data, smx_action_t my_action);
-static smx_action_t SIMIX_fifo_get_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
- int (*match_fun)(void *, void *,smx_action_t),
- void *user_data, smx_action_t my_action);
+static void SIMIX_comm_copy_data(smx_synchro_t comm);
+static smx_synchro_t SIMIX_comm_new(e_smx_comm_type_t type);
+static XBT_INLINE void SIMIX_rdv_push(smx_rdv_t rdv, smx_synchro_t comm);
+static smx_synchro_t SIMIX_fifo_probe_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void *user_data, smx_synchro_t my_synchro);
+static smx_synchro_t SIMIX_fifo_get_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void *user_data, smx_synchro_t my_synchro);
static void SIMIX_rdv_free(void *data);
-static void SIMIX_comm_start(smx_action_t action);
+static void SIMIX_comm_start(smx_synchro_t synchro);
void SIMIX_network_init(void)
{
}
int SIMIX_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host)
{
- smx_action_t comm = NULL;
+ smx_synchro_t comm = NULL;
xbt_fifo_item_t item = NULL;
int count = 0;
- xbt_fifo_foreach(rdv->comm_fifo, item, comm, smx_action_t) {
+ xbt_fifo_foreach(rdv->comm_fifo, item, comm, smx_synchro_t) {
if (comm->comm.src_proc->smx_host == host)
count++;
}
return count;
}
-smx_action_t simcall_HANDLER_rdv_get_head(smx_simcall_t simcall, smx_rdv_t rdv){
+smx_synchro_t simcall_HANDLER_rdv_get_head(smx_simcall_t simcall, smx_rdv_t rdv){
return SIMIX_rdv_get_head(rdv);
}
-smx_action_t SIMIX_rdv_get_head(smx_rdv_t rdv)
+smx_synchro_t SIMIX_rdv_get_head(smx_rdv_t rdv)
{
return xbt_fifo_get_item_content(xbt_fifo_get_first_item(rdv->comm_fifo));
}
}
/**
- * \brief Pushes a communication action into a rendez-vous point
+ * \brief Pushes a communication synchro into a rendez-vous point
* \param rdv The rendez-vous point
- * \param comm The communication action
+ * \param comm The communication synchro
*/
-static XBT_INLINE void SIMIX_rdv_push(smx_rdv_t rdv, smx_action_t comm)
+static XBT_INLINE void SIMIX_rdv_push(smx_rdv_t rdv, smx_synchro_t comm)
{
xbt_fifo_push(rdv->comm_fifo, comm);
comm->comm.rdv = rdv;
}
/**
- * \brief Removes a communication action from a rendez-vous point
+ * \brief Removes a communication synchro from a rendez-vous point
* \param rdv The rendez-vous point
- * \param comm The communication action
+ * \param comm The communication synchro
*/
-XBT_INLINE void SIMIX_rdv_remove(smx_rdv_t rdv, smx_action_t comm)
+XBT_INLINE void SIMIX_rdv_remove(smx_rdv_t rdv, smx_synchro_t comm)
{
xbt_fifo_remove(rdv->comm_fifo, comm);
comm->comm.rdv = NULL;
}
/**
- * \brief Checks if there is a communication action queued in a fifo matching our needs
+ * \brief Checks if there is a communication synchro queued in a fifo matching our needs
* \param type The type of communication we are looking for (comm_send, comm_recv)
- * \return The communication action if found, NULL otherwise
+ * \return The communication synchro if found, NULL otherwise
*/
-smx_action_t SIMIX_fifo_get_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
- int (*match_fun)(void *, void *,smx_action_t),
- void *this_user_data, smx_action_t my_action)
+smx_synchro_t SIMIX_fifo_get_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void *this_user_data, smx_synchro_t my_synchro)
{
- smx_action_t action;
+ smx_synchro_t synchro;
xbt_fifo_item_t item;
void* other_user_data = NULL;
- xbt_fifo_foreach(fifo, item, action, smx_action_t) {
- if (action->comm.type == SIMIX_COMM_SEND) {
- other_user_data = action->comm.src_data;
- } else if (action->comm.type == SIMIX_COMM_RECEIVE) {
- other_user_data = action->comm.dst_data;
+ xbt_fifo_foreach(fifo, item, synchro, smx_synchro_t) {
+ if (synchro->comm.type == SIMIX_COMM_SEND) {
+ other_user_data = synchro->comm.src_data;
+ } else if (synchro->comm.type == SIMIX_COMM_RECEIVE) {
+ other_user_data = synchro->comm.dst_data;
}
- if (action->comm.type == type &&
- (!match_fun || match_fun(this_user_data, other_user_data, action)) &&
- (!action->comm.match_fun || action->comm.match_fun(other_user_data, this_user_data, my_action))) {
- XBT_DEBUG("Found a matching communication action %p", action);
+ if (synchro->comm.type == type &&
+ (!match_fun || match_fun(this_user_data, other_user_data, synchro)) &&
+ (!synchro->comm.match_fun || synchro->comm.match_fun(other_user_data, this_user_data, my_synchro))) {
+ XBT_DEBUG("Found a matching communication synchro %p", synchro);
xbt_fifo_remove_item(fifo, item);
xbt_fifo_free_item(item);
- action->comm.refcount++;
+ synchro->comm.refcount++;
#ifdef HAVE_MC
- action->comm.rdv_cpy = action->comm.rdv;
+ synchro->comm.rdv_cpy = synchro->comm.rdv;
#endif
- action->comm.rdv = NULL;
- return action;
+ synchro->comm.rdv = NULL;
+ return synchro;
}
- XBT_DEBUG("Sorry, communication action %p does not match our needs:"
+ XBT_DEBUG("Sorry, communication synchro %p does not match our needs:"
" its type is %d but we are looking for a comm of type %d (or maybe the filtering didn't match)",
- action, (int)action->comm.type, (int)type);
+ synchro, (int)synchro->comm.type, (int)type);
}
- XBT_DEBUG("No matching communication action found");
+ XBT_DEBUG("No matching communication synchro found");
return NULL;
}
/**
- * \brief Checks if there is a communication action queued in a fifo matching our needs, but leave it there
+ * \brief Checks if there is a communication synchro queued in a fifo matching our needs, but leave it there
* \param type The type of communication we are looking for (comm_send, comm_recv)
- * \return The communication action if found, NULL otherwise
+ * \return The communication synchro if found, NULL otherwise
*/
-smx_action_t SIMIX_fifo_probe_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
- int (*match_fun)(void *, void *,smx_action_t),
- void *this_user_data, smx_action_t my_action)
+smx_synchro_t SIMIX_fifo_probe_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void *this_user_data, smx_synchro_t my_synchro)
{
- smx_action_t action;
+ smx_synchro_t synchro;
xbt_fifo_item_t item;
void* other_user_data = NULL;
- xbt_fifo_foreach(fifo, item, action, smx_action_t) {
- if (action->comm.type == SIMIX_COMM_SEND) {
- other_user_data = action->comm.src_data;
- } else if (action->comm.type == SIMIX_COMM_RECEIVE) {
- other_user_data = action->comm.dst_data;
+ xbt_fifo_foreach(fifo, item, synchro, smx_synchro_t) {
+ if (synchro->comm.type == SIMIX_COMM_SEND) {
+ other_user_data = synchro->comm.src_data;
+ } else if (synchro->comm.type == SIMIX_COMM_RECEIVE) {
+ other_user_data = synchro->comm.dst_data;
}
- if (action->comm.type == type &&
- (!match_fun || match_fun(this_user_data, other_user_data, action)) &&
- (!action->comm.match_fun || action->comm.match_fun(other_user_data, this_user_data, my_action))) {
- XBT_DEBUG("Found a matching communication action %p", action);
- action->comm.refcount++;
+ if (synchro->comm.type == type &&
+ (!match_fun || match_fun(this_user_data, other_user_data, synchro)) &&
+ (!synchro->comm.match_fun || synchro->comm.match_fun(other_user_data, this_user_data, my_synchro))) {
+ XBT_DEBUG("Found a matching communication synchro %p", synchro);
+ synchro->comm.refcount++;
- return action;
+ return synchro;
}
- XBT_DEBUG("Sorry, communication action %p does not match our needs:"
+ XBT_DEBUG("Sorry, communication synchro %p does not match our needs:"
" its type is %d but we are looking for a comm of type %d (or maybe the filtering didn't match)",
- action, (int)action->comm.type, (int)type);
+ synchro, (int)synchro->comm.type, (int)type);
}
- XBT_DEBUG("No matching communication action found");
+ XBT_DEBUG("No matching communication synchro found");
return NULL;
}
/******************************************************************************/
-/* Communication Actions */
+/* Communication synchros */
/******************************************************************************/
/**
- * \brief Creates a new communicate action
+ * \brief Creates a new communicate synchro
* \param type The direction of communication (comm_send, comm_recv)
- * \return The new communicate action
+ * \return The new communicate synchro
*/
-smx_action_t SIMIX_comm_new(e_smx_comm_type_t type)
+smx_synchro_t SIMIX_comm_new(e_smx_comm_type_t type)
{
- smx_action_t act;
+ smx_synchro_t synchro;
/* alloc structures */
- act = xbt_mallocator_get(simix_global->action_mallocator);
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
- act->type = SIMIX_ACTION_COMMUNICATE;
- act->state = SIMIX_WAITING;
+ synchro->type = SIMIX_SYNC_COMMUNICATE;
+ synchro->state = SIMIX_WAITING;
/* set communication */
- act->comm.type = type;
- act->comm.refcount = 1;
- act->comm.src_data=NULL;
- act->comm.dst_data=NULL;
+ synchro->comm.type = type;
+ synchro->comm.refcount = 1;
+ synchro->comm.src_data=NULL;
+ synchro->comm.dst_data=NULL;
#ifdef HAVE_LATENCY_BOUND_TRACKING
//initialize with unknown value
- act->latency_limited = -1;
+ synchro->latency_limited = -1;
#endif
#ifdef HAVE_TRACING
- act->category = NULL;
+ synchro->category = NULL;
#endif
- XBT_DEBUG("Create communicate action %p", act);
+ XBT_DEBUG("Create communicate synchro %p", synchro);
++smx_total_comms;
- return act;
+ return synchro;
}
/**
- * \brief Destroy a communicate action
- * \param action The communicate action to be destroyed
+ * \brief Destroy a communicate synchro
+ * \param synchro The communicate synchro to be destroyed
*/
-void SIMIX_comm_destroy(smx_action_t action)
+void SIMIX_comm_destroy(smx_synchro_t synchro)
{
- XBT_DEBUG("Destroy action %p (refcount: %d), state: %d",
- action, action->comm.refcount, (int)action->state);
+ XBT_DEBUG("Destroy synchro %p (refcount: %d), state: %d",
+ synchro, synchro->comm.refcount, (int)synchro->state);
- if (action->comm.refcount <= 0) {
+ if (synchro->comm.refcount <= 0) {
xbt_backtrace_display_current();
xbt_die("The refcount of comm %p is already 0 before decreasing it. "
- "That's a bug! If you didn't test and/or wait the same communication twice in your code, then the bug is SimGrid's...", action);
+ "That's a bug! If you didn't test and/or wait the same communication twice in your code, then the bug is SimGrid's...", synchro);
}
- action->comm.refcount--;
- if (action->comm.refcount > 0)
+ synchro->comm.refcount--;
+ if (synchro->comm.refcount > 0)
return;
- XBT_DEBUG("Really free communication %p; refcount is now %d", action,
- action->comm.refcount);
+ XBT_DEBUG("Really free communication %p; refcount is now %d", synchro,
+ synchro->comm.refcount);
#ifdef HAVE_LATENCY_BOUND_TRACKING
- action->latency_limited = SIMIX_comm_is_latency_bounded( action ) ;
+ synchro->latency_limited = SIMIX_comm_is_latency_bounded( synchro ) ;
#endif
- xbt_free(action->name);
- SIMIX_comm_destroy_internal_actions(action);
+ xbt_free(synchro->name);
+ SIMIX_comm_destroy_internal_actions(synchro);
- if (action->comm.detached && action->state != SIMIX_DONE) {
+ if (synchro->comm.detached && synchro->state != SIMIX_DONE) {
/* the communication has failed and was detached:
* we have to free the buffer */
- if (action->comm.clean_fun) {
- action->comm.clean_fun(action->comm.src_buff);
+ if (synchro->comm.clean_fun) {
+ synchro->comm.clean_fun(synchro->comm.src_buff);
}
- action->comm.src_buff = NULL;
+ synchro->comm.src_buff = NULL;
}
- if(action->comm.rdv)
- SIMIX_rdv_remove(action->comm.rdv, action);
+ if(synchro->comm.rdv)
+ SIMIX_rdv_remove(synchro->comm.rdv, synchro);
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ xbt_mallocator_release(simix_global->synchro_mallocator, synchro);
}
-void SIMIX_comm_destroy_internal_actions(smx_action_t action)
+void SIMIX_comm_destroy_internal_actions(smx_synchro_t synchro)
{
- if (action->comm.surf_comm){
+ if (synchro->comm.surf_comm){
#ifdef HAVE_LATENCY_BOUND_TRACKING
- action->latency_limited = SIMIX_comm_is_latency_bounded(action);
+ synchro->latency_limited = SIMIX_comm_is_latency_bounded(synchro);
#endif
- surf_action_unref(action->comm.surf_comm);
- action->comm.surf_comm = NULL;
+ surf_action_unref(synchro->comm.surf_comm);
+ synchro->comm.surf_comm = NULL;
}
- if (action->comm.src_timeout){
- surf_action_unref(action->comm.src_timeout);
- action->comm.src_timeout = NULL;
+ if (synchro->comm.src_timeout){
+ surf_action_unref(synchro->comm.src_timeout);
+ synchro->comm.src_timeout = NULL;
}
- if (action->comm.dst_timeout){
- surf_action_unref(action->comm.dst_timeout);
- action->comm.dst_timeout = NULL;
+ if (synchro->comm.dst_timeout){
+ surf_action_unref(synchro->comm.dst_timeout);
+ synchro->comm.dst_timeout = NULL;
}
}
void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv,
double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *,smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double timeout){
- smx_action_t comm = SIMIX_comm_isend(src, rdv, task_size, rate,
+ smx_synchro_t comm = SIMIX_comm_isend(src, rdv, task_size, rate,
src_buff, src_buff_size, match_fun, NULL, copy_data_fun,
data, 0);
SIMCALL_SET_MC_VALUE(simcall, 0);
simcall_HANDLER_comm_wait(simcall, comm, timeout);
}
-smx_action_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv,
+smx_synchro_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_process_t src, smx_rdv_t rdv,
double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *,smx_action_t),
+ int (*match_fun)(void *, void *,smx_synchro_t),
void (*clean_fun)(void *),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, int detached){
return SIMIX_comm_isend(src, rdv, task_size, rate, src_buff,
src_buff_size, match_fun, clean_fun, copy_data_fun, data, detached);
}
-smx_action_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
+smx_synchro_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *,smx_action_t),
- void (*clean_fun)(void *), // used to free the action in case of problem after a detached send
- void (*copy_data_fun)(smx_action_t, void*, size_t), // used to copy data if not default one
+ int (*match_fun)(void *, void *,smx_synchro_t),
+ void (*clean_fun)(void *), // used to free the synchro in case of problem after a detached send
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t), // used to copy data if not default one
void *data,
int detached)
{
XBT_DEBUG("send from %p", rdv);
- /* Prepare an action describing us, so that it gets passed to the user-provided filter of other side */
- smx_action_t this_action = SIMIX_comm_new(SIMIX_COMM_SEND);
+ /* Prepare a synchro describing us, so that it gets passed to the user-provided filter of other side */
+ smx_synchro_t this_synchro = SIMIX_comm_new(SIMIX_COMM_SEND);
- /* Look for communication action matching our needs. We also provide a description of
+ /* Look for communication synchro matching our needs. We also provide a description of
* ourself so that the other side also gets a chance of choosing if it wants to match with us.
*
* If it is not found then push our communication into the rendez-vous point */
- smx_action_t other_action = SIMIX_fifo_get_comm(rdv->comm_fifo, SIMIX_COMM_RECEIVE, match_fun, data, this_action);
+ smx_synchro_t other_synchro = SIMIX_fifo_get_comm(rdv->comm_fifo, SIMIX_COMM_RECEIVE, match_fun, data, this_synchro);
- if (!other_action) {
- other_action = this_action;
+ if (!other_synchro) {
+ other_synchro = this_synchro;
if (rdv->permanent_receiver!=NULL){
//this mailbox is for small messages, which have to be sent right now
- other_action->state = SIMIX_READY;
- other_action->comm.dst_proc=rdv->permanent_receiver;
- other_action->comm.refcount++;
- xbt_fifo_push(rdv->done_comm_fifo,other_action);
- other_action->comm.rdv=rdv;
- XBT_DEBUG("pushing a message into the permanent receive fifo %p, comm %p", rdv, &(other_action->comm));
+ other_synchro->state = SIMIX_READY;
+ other_synchro->comm.dst_proc=rdv->permanent_receiver;
+ other_synchro->comm.refcount++;
+ xbt_fifo_push(rdv->done_comm_fifo,other_synchro);
+ other_synchro->comm.rdv=rdv;
+ XBT_DEBUG("pushing a message into the permanent receive fifo %p, comm %p", rdv, &(other_synchro->comm));
}else{
- SIMIX_rdv_push(rdv, this_action);
+ SIMIX_rdv_push(rdv, this_synchro);
}
} else {
XBT_DEBUG("Receive already pushed");
- SIMIX_comm_destroy(this_action);
+ SIMIX_comm_destroy(this_synchro);
--smx_total_comms; // this creation was a pure waste
- other_action->state = SIMIX_READY;
- other_action->comm.type = SIMIX_COMM_READY;
+ other_synchro->state = SIMIX_READY;
+ other_synchro->comm.type = SIMIX_COMM_READY;
}
- xbt_fifo_push(src_proc->comms, other_action);
+ xbt_fifo_push(src_proc->comms, other_synchro);
- /* if the communication action is detached then decrease the refcount
+ /* if the communication synchro is detached then decrease the refcount
* by one, so it will be eliminated by the receiver's destroy call */
if (detached) {
- other_action->comm.detached = 1;
- other_action->comm.refcount--;
- other_action->comm.clean_fun = clean_fun;
+ other_synchro->comm.detached = 1;
+ other_synchro->comm.refcount--;
+ other_synchro->comm.clean_fun = clean_fun;
} else {
- other_action->comm.clean_fun = NULL;
+ other_synchro->comm.clean_fun = NULL;
}
- /* Setup the communication action */
- other_action->comm.src_proc = src_proc;
- other_action->comm.task_size = task_size;
- other_action->comm.rate = rate;
- other_action->comm.src_buff = src_buff;
- other_action->comm.src_buff_size = src_buff_size;
- other_action->comm.src_data = data;
+ /* Setup the communication synchro */
+ other_synchro->comm.src_proc = src_proc;
+ other_synchro->comm.task_size = task_size;
+ other_synchro->comm.rate = rate;
+ other_synchro->comm.src_buff = src_buff;
+ other_synchro->comm.src_buff_size = src_buff_size;
+ other_synchro->comm.src_data = data;
- other_action->comm.match_fun = match_fun;
- other_action->comm.copy_data_fun = copy_data_fun;
+ other_synchro->comm.match_fun = match_fun;
+ other_synchro->comm.copy_data_fun = copy_data_fun;
if (MC_is_active()) {
- other_action->state = SIMIX_RUNNING;
- return (detached ? NULL : other_action);
+ other_synchro->state = SIMIX_RUNNING;
+ return (detached ? NULL : other_synchro);
}
- SIMIX_comm_start(other_action);
- return (detached ? NULL : other_action);
+ SIMIX_comm_start(other_synchro);
+ return (detached ? NULL : other_synchro);
}
void simcall_HANDLER_comm_recv(smx_simcall_t simcall, smx_rdv_t rdv,
void *dst_buff, size_t *dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double timeout, double rate)
{
- smx_action_t comm = SIMIX_comm_irecv(simcall->issuer, rdv, dst_buff,
+ smx_synchro_t comm = SIMIX_comm_irecv(simcall->issuer, rdv, dst_buff,
dst_buff_size, match_fun, copy_data_fun, data, rate);
SIMCALL_SET_MC_VALUE(simcall, 0);
simcall_HANDLER_comm_wait(simcall, comm, timeout);
}
-smx_action_t simcall_HANDLER_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv,
+smx_synchro_t simcall_HANDLER_comm_irecv(smx_simcall_t simcall, smx_rdv_t rdv,
void *dst_buff, size_t *dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double rate)
{
return SIMIX_comm_irecv(simcall->issuer, rdv, dst_buff, dst_buff_size,
match_fun, copy_data_fun, data, rate);
}
-smx_action_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
+smx_synchro_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
void *dst_buff, size_t *dst_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t), // used to copy data if not default one
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t), // used to copy data if not default one
void *data, double rate)
{
XBT_DEBUG("recv from %p %p", rdv, rdv->comm_fifo);
- smx_action_t this_action = SIMIX_comm_new(SIMIX_COMM_RECEIVE);
+ smx_synchro_t this_synchro = SIMIX_comm_new(SIMIX_COMM_RECEIVE);
- smx_action_t other_action;
+ smx_synchro_t other_synchro;
//communication already done, get it inside the fifo of completed comms
//permanent receive v1
//int already_received=0;
XBT_DEBUG("We have a comm that has probably already been received, trying to match it, to skip the communication");
//find a match in the already received fifo
- other_action = SIMIX_fifo_get_comm(rdv->done_comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_action);
+ other_synchro = SIMIX_fifo_get_comm(rdv->done_comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_synchro);
//if not found, assume the receiver came first, register it to the mailbox in the classical way
- if (!other_action) {
+ if (!other_synchro) {
XBT_DEBUG("We have messages in the permanent receive list, but not the one we are looking for, pushing request into fifo");
- other_action = this_action;
- SIMIX_rdv_push(rdv, this_action);
+ other_synchro = this_synchro;
+ SIMIX_rdv_push(rdv, this_synchro);
}else{
- if(other_action->comm.surf_comm && SIMIX_comm_get_remains(other_action)==0.0)
+ if(other_synchro->comm.surf_comm && SIMIX_comm_get_remains(other_synchro)==0.0)
{
- XBT_DEBUG("comm %p has been already sent, and is finished, destroy it",&(other_action->comm));
- other_action->state = SIMIX_DONE;
- other_action->comm.type = SIMIX_COMM_DONE;
- other_action->comm.rdv = NULL;
+ XBT_DEBUG("comm %p has been already sent, and is finished, destroy it",&(other_synchro->comm));
+ other_synchro->state = SIMIX_DONE;
+ other_synchro->comm.type = SIMIX_COMM_DONE;
+ other_synchro->comm.rdv = NULL;
}/*else{
XBT_DEBUG("Not yet finished, we have to wait %d", xbt_fifo_size(rdv->comm_fifo));
}*/
- other_action->comm.refcount--;
- SIMIX_comm_destroy(this_action);
+ other_synchro->comm.refcount--;
+ SIMIX_comm_destroy(this_synchro);
--smx_total_comms; // this creation was a pure waste
}
}else{
- /* Prepare an action describing us, so that it gets passed to the user-provided filter of other side */
+ /* Prepare a synchro describing us, so that it gets passed to the user-provided filter of other side */
- /* Look for communication action matching our needs. We also provide a description of
+ /* Look for communication synchro matching our needs. We also provide a description of
* ourself so that the other side also gets a chance of choosing if it wants to match with us.
*
* If it is not found then push our communication into the rendez-vous point */
- other_action = SIMIX_fifo_get_comm(rdv->comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_action);
+ other_synchro = SIMIX_fifo_get_comm(rdv->comm_fifo, SIMIX_COMM_SEND, match_fun, data, this_synchro);
- if (!other_action) {
+ if (!other_synchro) {
XBT_DEBUG("Receive pushed first %d", xbt_fifo_size(rdv->comm_fifo));
- other_action = this_action;
- SIMIX_rdv_push(rdv, this_action);
+ other_synchro = this_synchro;
+ SIMIX_rdv_push(rdv, this_synchro);
} else {
- SIMIX_comm_destroy(this_action);
+ SIMIX_comm_destroy(this_synchro);
--smx_total_comms; // this creation was a pure waste
- other_action->state = SIMIX_READY;
- other_action->comm.type = SIMIX_COMM_READY;
- //other_action->comm.refcount--;
+ other_synchro->state = SIMIX_READY;
+ other_synchro->comm.type = SIMIX_COMM_READY;
+ //other_synchro->comm.refcount--;
}
- xbt_fifo_push(dst_proc->comms, other_action);
+ xbt_fifo_push(dst_proc->comms, other_synchro);
}
- /* Setup communication action */
- other_action->comm.dst_proc = dst_proc;
- other_action->comm.dst_buff = dst_buff;
- other_action->comm.dst_buff_size = dst_buff_size;
- other_action->comm.dst_data = data;
+ /* Setup communication synchro */
+ other_synchro->comm.dst_proc = dst_proc;
+ other_synchro->comm.dst_buff = dst_buff;
+ other_synchro->comm.dst_buff_size = dst_buff_size;
+ other_synchro->comm.dst_data = data;
if (rate != -1.0 &&
- (other_action->comm.rate == -1.0 || rate < other_action->comm.rate))
- other_action->comm.rate = rate;
+ (other_synchro->comm.rate == -1.0 || rate < other_synchro->comm.rate))
+ other_synchro->comm.rate = rate;
- other_action->comm.match_fun = match_fun;
- other_action->comm.copy_data_fun = copy_data_fun;
+ other_synchro->comm.match_fun = match_fun;
+ other_synchro->comm.copy_data_fun = copy_data_fun;
/*if(already_received)//do the actual copy, because the first one after the comm didn't have all the info
- SIMIX_comm_copy_data(other_action);*/
+ SIMIX_comm_copy_data(other_synchro);*/
if (MC_is_active()) {
- other_action->state = SIMIX_RUNNING;
- return other_action;
+ other_synchro->state = SIMIX_RUNNING;
+ return other_synchro;
}
- SIMIX_comm_start(other_action);
+ SIMIX_comm_start(other_synchro);
// }
- return other_action;
+ return other_synchro;
}
-smx_action_t simcall_HANDLER_comm_iprobe(smx_simcall_t simcall, smx_rdv_t rdv,
+smx_synchro_t simcall_HANDLER_comm_iprobe(smx_simcall_t simcall, smx_rdv_t rdv,
int type, int src, int tag,
- int (*match_fun)(void *, void *, smx_action_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
void *data){
return SIMIX_comm_iprobe(simcall->issuer, rdv, type, src, tag, match_fun, data);
}
-smx_action_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_rdv_t rdv, int type, int src,
- int tag, int (*match_fun)(void *, void *, smx_action_t), void *data)
+smx_synchro_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_rdv_t rdv, int type, int src,
+ int tag, int (*match_fun)(void *, void *, smx_synchro_t), void *data)
{
XBT_DEBUG("iprobe from %p %p", rdv, rdv->comm_fifo);
- smx_action_t this_action;
+ smx_synchro_t this_synchro;
int smx_type;
if(type == 1){
- this_action=SIMIX_comm_new(SIMIX_COMM_SEND);
+ this_synchro=SIMIX_comm_new(SIMIX_COMM_SEND);
smx_type = SIMIX_COMM_RECEIVE;
} else{
- this_action=SIMIX_comm_new(SIMIX_COMM_RECEIVE);
+ this_synchro=SIMIX_comm_new(SIMIX_COMM_RECEIVE);
smx_type = SIMIX_COMM_SEND;
}
- smx_action_t other_action=NULL;
+ smx_synchro_t other_synchro=NULL;
if(rdv->permanent_receiver && xbt_fifo_size(rdv->done_comm_fifo)!=0){
//find a match in the already received fifo
XBT_DEBUG("first try in the perm recv mailbox");
- other_action = SIMIX_fifo_probe_comm(rdv->done_comm_fifo, smx_type, match_fun, data, this_action);
+ other_synchro = SIMIX_fifo_probe_comm(rdv->done_comm_fifo, smx_type, match_fun, data, this_synchro);
}
// }else{
- if(!other_action){
+ if(!other_synchro){
XBT_DEBUG("try in the normal mailbox");
- other_action = SIMIX_fifo_probe_comm(rdv->comm_fifo, smx_type, match_fun, data, this_action);
+ other_synchro = SIMIX_fifo_probe_comm(rdv->comm_fifo, smx_type, match_fun, data, this_synchro);
}
// }
- if(other_action)other_action->comm.refcount--;
+ if(other_synchro)other_synchro->comm.refcount--;
- SIMIX_comm_destroy(this_action);
+ SIMIX_comm_destroy(this_synchro);
--smx_total_comms;
- return other_action;
+ return other_synchro;
}
-void simcall_HANDLER_comm_wait(smx_simcall_t simcall, smx_action_t action, double timeout)
+void simcall_HANDLER_comm_wait(smx_simcall_t simcall, smx_synchro_t synchro, double timeout)
{
/* the simcall may be a wait, a send or a recv */
surf_action_t sleep;
- /* Associate this simcall to the wait action */
- XBT_DEBUG("simcall_HANDLER_comm_wait, %p", action);
+ /* Associate this simcall to the wait synchro */
+ XBT_DEBUG("simcall_HANDLER_comm_wait, %p", synchro);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
if (MC_is_active()) {
int idx = SIMCALL_GET_MC_VALUE(simcall);
if (idx == 0) {
- action->state = SIMIX_DONE;
+ synchro->state = SIMIX_DONE;
} else {
/* If we reached this point, the wait simcall must have a timeout */
/* Otherwise it shouldn't be enabled and executed by the MC */
if (timeout == -1)
THROW_IMPOSSIBLE;
- if (action->comm.src_proc == simcall->issuer)
- action->state = SIMIX_SRC_TIMEOUT;
+ if (synchro->comm.src_proc == simcall->issuer)
+ synchro->state = SIMIX_SRC_TIMEOUT;
else
- action->state = SIMIX_DST_TIMEOUT;
+ synchro->state = SIMIX_DST_TIMEOUT;
}
- SIMIX_comm_finish(action);
+ SIMIX_comm_finish(synchro);
return;
}
- /* If the action has already finish perform the error handling, */
- /* otherwise set up a waiting timeout on the right side */
- if (action->state != SIMIX_WAITING && action->state != SIMIX_RUNNING) {
- SIMIX_comm_finish(action);
+ /* If the synchro has already finish perform the error handling, */
+ /* otherwise set up a waiting timeout on the right side */
+ if (synchro->state != SIMIX_WAITING && synchro->state != SIMIX_RUNNING) {
+ SIMIX_comm_finish(synchro);
} else { /* if (timeout >= 0) { we need a surf sleep action even when there is no timeout, otherwise surf won't tell us when the host fails */
sleep = surf_workstation_sleep(simcall->issuer->smx_host, timeout);
- surf_action_set_data(sleep, action);
+ surf_action_set_data(sleep, synchro);
- if (simcall->issuer == action->comm.src_proc)
- action->comm.src_timeout = sleep;
+ if (simcall->issuer == synchro->comm.src_proc)
+ synchro->comm.src_timeout = sleep;
else
- action->comm.dst_timeout = sleep;
+ synchro->comm.dst_timeout = sleep;
}
}
-void simcall_HANDLER_comm_test(smx_simcall_t simcall, smx_action_t action)
+void simcall_HANDLER_comm_test(smx_simcall_t simcall, smx_synchro_t synchro)
{
if(MC_is_active()){
- simcall_comm_test__set__result(simcall, action->comm.src_proc && action->comm.dst_proc);
+ simcall_comm_test__set__result(simcall, synchro->comm.src_proc && synchro->comm.dst_proc);
if(simcall_comm_test__get__result(simcall)){
- action->state = SIMIX_DONE;
- xbt_fifo_push(action->simcalls, simcall);
- SIMIX_comm_finish(action);
+ synchro->state = SIMIX_DONE;
+ xbt_fifo_push(synchro->simcalls, simcall);
+ SIMIX_comm_finish(synchro);
}else{
SIMIX_simcall_answer(simcall);
}
return;
}
- simcall_comm_test__set__result(simcall, (action->state != SIMIX_WAITING && action->state != SIMIX_RUNNING));
+ simcall_comm_test__set__result(simcall, (synchro->state != SIMIX_WAITING && synchro->state != SIMIX_RUNNING));
if (simcall_comm_test__get__result(simcall)) {
- xbt_fifo_push(action->simcalls, simcall);
- SIMIX_comm_finish(action);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ SIMIX_comm_finish(synchro);
} else {
SIMIX_simcall_answer(simcall);
}
}
-void simcall_HANDLER_comm_testany(smx_simcall_t simcall, xbt_dynar_t actions)
+void simcall_HANDLER_comm_testany(smx_simcall_t simcall, xbt_dynar_t synchros)
{
unsigned int cursor;
- smx_action_t action;
+ smx_synchro_t synchro;
simcall_comm_testany__set__result(simcall, -1);
if (MC_is_active()){
if(idx == -1){
SIMIX_simcall_answer(simcall);
}else{
- action = xbt_dynar_get_as(actions, idx, smx_action_t);
+ synchro = xbt_dynar_get_as(synchros, idx, smx_synchro_t);
simcall_comm_testany__set__result(simcall, idx);
- xbt_fifo_push(action->simcalls, simcall);
- action->state = SIMIX_DONE;
- SIMIX_comm_finish(action);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ synchro->state = SIMIX_DONE;
+ SIMIX_comm_finish(synchro);
}
return;
}
- xbt_dynar_foreach(simcall_comm_testany__get__comms(simcall), cursor,action) {
- if (action->state != SIMIX_WAITING && action->state != SIMIX_RUNNING) {
+ xbt_dynar_foreach(simcall_comm_testany__get__comms(simcall), cursor,synchro) {
+ if (synchro->state != SIMIX_WAITING && synchro->state != SIMIX_RUNNING) {
simcall_comm_testany__set__result(simcall, cursor);
- xbt_fifo_push(action->simcalls, simcall);
- SIMIX_comm_finish(action);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ SIMIX_comm_finish(synchro);
return;
}
}
SIMIX_simcall_answer(simcall);
}
-void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, xbt_dynar_t actions)
+void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, xbt_dynar_t synchros)
{
- smx_action_t action;
+ smx_synchro_t synchro;
unsigned int cursor = 0;
if (MC_is_active()){
int idx = SIMCALL_GET_MC_VALUE(simcall);
- action = xbt_dynar_get_as(actions, idx, smx_action_t);
- xbt_fifo_push(action->simcalls, simcall);
+ synchro = xbt_dynar_get_as(synchros, idx, smx_synchro_t);
+ xbt_fifo_push(synchro->simcalls, simcall);
simcall_comm_waitany__set__result(simcall, idx);
- action->state = SIMIX_DONE;
- SIMIX_comm_finish(action);
+ synchro->state = SIMIX_DONE;
+ SIMIX_comm_finish(synchro);
return;
}
- xbt_dynar_foreach(actions, cursor, action){
- /* associate this simcall to the the action */
- xbt_fifo_push(action->simcalls, simcall);
+ xbt_dynar_foreach(synchros, cursor, synchro){
+ /* associate this simcall to the the synchro */
+ xbt_fifo_push(synchro->simcalls, simcall);
- /* see if the action is already finished */
- if (action->state != SIMIX_WAITING && action->state != SIMIX_RUNNING){
- SIMIX_comm_finish(action);
+ /* see if the synchro is already finished */
+ if (synchro->state != SIMIX_WAITING && synchro->state != SIMIX_RUNNING){
+ SIMIX_comm_finish(synchro);
break;
}
}
void SIMIX_waitany_remove_simcall_from_actions(smx_simcall_t simcall)
{
- smx_action_t action;
+ smx_synchro_t synchro;
unsigned int cursor = 0;
- xbt_dynar_t actions = simcall_comm_waitany__get__comms(simcall);
+ xbt_dynar_t synchros = simcall_comm_waitany__get__comms(simcall);
- xbt_dynar_foreach(actions, cursor, action) {
- xbt_fifo_remove(action->simcalls, simcall);
+ xbt_dynar_foreach(synchros, cursor, synchro) {
+ xbt_fifo_remove(synchro->simcalls, simcall);
}
}
/**
- * \brief Starts the simulation of a communication action.
- * \param action the communication action
+ * \brief Starts the simulation of a communication synchro.
+ * \param synchro the communication synchro
*/
-static XBT_INLINE void SIMIX_comm_start(smx_action_t action)
+static XBT_INLINE void SIMIX_comm_start(smx_synchro_t synchro)
{
/* If both the sender and the receiver are already there, start the communication */
- if (action->state == SIMIX_READY) {
+ if (synchro->state == SIMIX_READY) {
- smx_host_t sender = action->comm.src_proc->smx_host;
- smx_host_t receiver = action->comm.dst_proc->smx_host;
+ smx_host_t sender = synchro->comm.src_proc->smx_host;
+ smx_host_t receiver = synchro->comm.dst_proc->smx_host;
- XBT_DEBUG("Starting communication %p from '%s' to '%s'", action,
+ XBT_DEBUG("Starting communication %p from '%s' to '%s'", synchro,
SIMIX_host_get_name(sender), SIMIX_host_get_name(receiver));
- action->comm.surf_comm = surf_workstation_model_communicate(surf_workstation_model,
+ synchro->comm.surf_comm = surf_workstation_model_communicate(surf_workstation_model,
sender, receiver,
- action->comm.task_size, action->comm.rate);
+ synchro->comm.task_size, synchro->comm.rate);
- surf_action_set_data(action->comm.surf_comm, action);
+ surf_action_set_data(synchro->comm.surf_comm, synchro);
- action->state = SIMIX_RUNNING;
+ synchro->state = SIMIX_RUNNING;
/* If a link is failed, detect it immediately */
- if (surf_action_get_state(action->comm.surf_comm) == SURF_ACTION_FAILED) {
+ if (surf_action_get_state(synchro->comm.surf_comm) == SURF_ACTION_FAILED) {
XBT_DEBUG("Communication from '%s' to '%s' failed to start because of a link failure",
SIMIX_host_get_name(sender), SIMIX_host_get_name(receiver));
- action->state = SIMIX_LINK_FAILURE;
- SIMIX_comm_destroy_internal_actions(action);
+ synchro->state = SIMIX_LINK_FAILURE;
+ SIMIX_comm_destroy_internal_actions(synchro);
}
- /* If any of the process is suspend, create the action but stop its execution,
+ /* If any of the process is suspend, create the synchro but stop its execution,
it will be restarted when the sender process resume */
- if (SIMIX_process_is_suspended(action->comm.src_proc) ||
- SIMIX_process_is_suspended(action->comm.dst_proc)) {
- /* FIXME: check what should happen with the action state */
+ if (SIMIX_process_is_suspended(synchro->comm.src_proc) ||
+ SIMIX_process_is_suspended(synchro->comm.dst_proc)) {
+ /* FIXME: check what should happen with the synchro state */
- if (SIMIX_process_is_suspended(action->comm.src_proc))
+ if (SIMIX_process_is_suspended(synchro->comm.src_proc))
XBT_DEBUG("The communication is suspended on startup because src (%s:%s) were suspended since it initiated the communication",
- SIMIX_host_get_name(action->comm.src_proc->smx_host), action->comm.src_proc->name);
+ SIMIX_host_get_name(synchro->comm.src_proc->smx_host), synchro->comm.src_proc->name);
else
XBT_DEBUG("The communication is suspended on startup because dst (%s:%s) were suspended since it initiated the communication",
- SIMIX_host_get_name(action->comm.dst_proc->smx_host), action->comm.dst_proc->name);
+ SIMIX_host_get_name(synchro->comm.dst_proc->smx_host), synchro->comm.dst_proc->name);
- surf_action_suspend(action->comm.surf_comm);
+ surf_action_suspend(synchro->comm.surf_comm);
}
}
}
/**
- * \brief Answers the SIMIX simcalls associated to a communication action.
- * \param action a finished communication action
+ * \brief Answers the SIMIX simcalls associated to a communication synchro.
+ * \param synchro a finished communication synchro
*/
-void SIMIX_comm_finish(smx_action_t action)
+void SIMIX_comm_finish(smx_synchro_t synchro)
{
unsigned int destroy_count = 0;
smx_simcall_t simcall;
- while ((simcall = xbt_fifo_shift(action->simcalls))) {
+ while ((simcall = xbt_fifo_shift(synchro->simcalls))) {
- /* If a waitany simcall is waiting for this action to finish, then remove
- it from the other actions in the waitany list. Afterwards, get the
- position of the actual action in the waitany dynar and
+ /* If a waitany simcall is waiting for this synchro to finish, then remove
+ it from the other synchros in the waitany list. Afterwards, get the
+ position of the actual synchro in the waitany dynar and
return it as the result of the simcall */
if (simcall->call == SIMCALL_NONE) //FIXME: maybe a better way to handle this case
if (simcall->call == SIMCALL_COMM_WAITANY) {
SIMIX_waitany_remove_simcall_from_actions(simcall);
if (!MC_is_active())
- simcall_comm_waitany__set__result(simcall, xbt_dynar_search(simcall_comm_waitany__get__comms(simcall), &action));
+ simcall_comm_waitany__set__result(simcall, xbt_dynar_search(simcall_comm_waitany__get__comms(simcall), &synchro));
}
- /* If the action is still in a rendez-vous point then remove from it */
- if (action->comm.rdv)
- SIMIX_rdv_remove(action->comm.rdv, action);
+ /* If the synchro is still in a rendez-vous point then remove from it */
+ if (synchro->comm.rdv)
+ SIMIX_rdv_remove(synchro->comm.rdv, synchro);
- XBT_DEBUG("SIMIX_comm_finish: action state = %d", (int)action->state);
+ XBT_DEBUG("SIMIX_comm_finish: synchro state = %d", (int)synchro->state);
/* Check out for errors */
- switch (action->state) {
+ switch (synchro->state) {
case SIMIX_DONE:
- XBT_DEBUG("Communication %p complete!", action);
- SIMIX_comm_copy_data(action);
+ XBT_DEBUG("Communication %p complete!", synchro);
+ SIMIX_comm_copy_data(synchro);
break;
case SIMIX_SRC_TIMEOUT:
break;
case SIMIX_SRC_HOST_FAILURE:
- if (simcall->issuer == action->comm.src_proc)
+ if (simcall->issuer == synchro->comm.src_proc)
simcall->issuer->context->iwannadie = 1;
// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
else
break;
case SIMIX_DST_HOST_FAILURE:
- if (simcall->issuer == action->comm.dst_proc)
+ if (simcall->issuer == synchro->comm.dst_proc)
simcall->issuer->context->iwannadie = 1;
// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
else
break;
case SIMIX_LINK_FAILURE:
- XBT_DEBUG("Link failure in action %p between '%s' and '%s': posting an exception to the issuer: %s (%p) detached:%d",
- action,
- action->comm.src_proc ? sg_host_name(action->comm.src_proc->smx_host) : NULL,
- action->comm.dst_proc ? sg_host_name(action->comm.dst_proc->smx_host) : NULL,
- simcall->issuer->name, simcall->issuer, action->comm.detached);
- if (action->comm.src_proc == simcall->issuer) {
+ XBT_DEBUG("Link failure in synchro %p between '%s' and '%s': posting an exception to the issuer: %s (%p) detached:%d",
+ synchro,
+ synchro->comm.src_proc ? sg_host_name(synchro->comm.src_proc->smx_host) : NULL,
+ synchro->comm.dst_proc ? sg_host_name(synchro->comm.dst_proc->smx_host) : NULL,
+ simcall->issuer->name, simcall->issuer, synchro->comm.detached);
+ if (synchro->comm.src_proc == simcall->issuer) {
XBT_DEBUG("I'm source");
- } else if (action->comm.dst_proc == simcall->issuer) {
+ } else if (synchro->comm.dst_proc == simcall->issuer) {
XBT_DEBUG("I'm dest");
} else {
XBT_DEBUG("I'm neither source nor dest");
break;
case SIMIX_CANCELED:
- if (simcall->issuer == action->comm.dst_proc)
+ if (simcall->issuer == synchro->comm.dst_proc)
SMX_EXCEPTION(simcall->issuer, cancel_error, 0,
"Communication canceled by the sender");
else
break;
default:
- xbt_die("Unexpected action state in SIMIX_comm_finish: %d", (int)action->state);
+ xbt_die("Unexpected synchro state in SIMIX_comm_finish: %d", (int)synchro->state);
}
/* if there is an exception during a waitany or a testany, indicate the position of the failed communication */
if (simcall->issuer->doexception) {
if (simcall->call == SIMCALL_COMM_WAITANY) {
- simcall->issuer->running_ctx->exception.value = xbt_dynar_search(simcall_comm_waitany__get__comms(simcall), &action);
+ simcall->issuer->running_ctx->exception.value = xbt_dynar_search(simcall_comm_waitany__get__comms(simcall), &synchro);
}
else if (simcall->call == SIMCALL_COMM_TESTANY) {
- simcall->issuer->running_ctx->exception.value = xbt_dynar_search(simcall_comm_testany__get__comms(simcall), &action);
+ simcall->issuer->running_ctx->exception.value = xbt_dynar_search(simcall_comm_testany__get__comms(simcall), &synchro);
}
}
simcall->issuer->context->iwannadie = 1;
}
- simcall->issuer->waiting_action = NULL;
- xbt_fifo_remove(simcall->issuer->comms, action);
- if(action->comm.detached){
- if(simcall->issuer == action->comm.src_proc){
- if(action->comm.dst_proc)
- xbt_fifo_remove(action->comm.dst_proc->comms, action);
+ simcall->issuer->waiting_synchro = NULL;
+ xbt_fifo_remove(simcall->issuer->comms, synchro);
+ if(synchro->comm.detached){
+ if(simcall->issuer == synchro->comm.src_proc){
+ if(synchro->comm.dst_proc)
+ xbt_fifo_remove(synchro->comm.dst_proc->comms, synchro);
}
- if(simcall->issuer == action->comm.dst_proc){
- if(action->comm.src_proc)
- xbt_fifo_remove(action->comm.src_proc->comms, action);
+ if(simcall->issuer == synchro->comm.dst_proc){
+ if(synchro->comm.src_proc)
+ xbt_fifo_remove(synchro->comm.src_proc->comms, synchro);
}
}
SIMIX_simcall_answer(simcall);
}
while (destroy_count-- > 0)
- SIMIX_comm_destroy(action);
+ SIMIX_comm_destroy(synchro);
}
/**
- * \brief This function is called when a Surf communication action is finished.
- * \param action the corresponding Simix communication
+ * \brief This function is called when a Surf communication synchro is finished.
+ * \param synchro the corresponding Simix communication
*/
-void SIMIX_post_comm(smx_action_t action)
+void SIMIX_post_comm(smx_synchro_t synchro)
{
- /* Update action state */
- if (action->comm.src_timeout &&
- surf_action_get_state(action->comm.src_timeout) == SURF_ACTION_DONE)
- action->state = SIMIX_SRC_TIMEOUT;
- else if (action->comm.dst_timeout &&
- surf_action_get_state(action->comm.dst_timeout) == SURF_ACTION_DONE)
- action->state = SIMIX_DST_TIMEOUT;
- else if (action->comm.src_timeout &&
- surf_action_get_state(action->comm.src_timeout) == SURF_ACTION_FAILED)
- action->state = SIMIX_SRC_HOST_FAILURE;
- else if (action->comm.dst_timeout &&
- surf_action_get_state(action->comm.dst_timeout) == SURF_ACTION_FAILED)
- action->state = SIMIX_DST_HOST_FAILURE;
- else if (action->comm.surf_comm &&
- surf_action_get_state(action->comm.surf_comm) == SURF_ACTION_FAILED) {
+ /* Update synchro state */
+ if (synchro->comm.src_timeout &&
+ surf_action_get_state(synchro->comm.src_timeout) == SURF_ACTION_DONE)
+ synchro->state = SIMIX_SRC_TIMEOUT;
+ else if (synchro->comm.dst_timeout &&
+ surf_action_get_state(synchro->comm.dst_timeout) == SURF_ACTION_DONE)
+ synchro->state = SIMIX_DST_TIMEOUT;
+ else if (synchro->comm.src_timeout &&
+ surf_action_get_state(synchro->comm.src_timeout) == SURF_ACTION_FAILED)
+ synchro->state = SIMIX_SRC_HOST_FAILURE;
+ else if (synchro->comm.dst_timeout &&
+ surf_action_get_state(synchro->comm.dst_timeout) == SURF_ACTION_FAILED)
+ synchro->state = SIMIX_DST_HOST_FAILURE;
+ else if (synchro->comm.surf_comm &&
+ surf_action_get_state(synchro->comm.surf_comm) == SURF_ACTION_FAILED) {
XBT_DEBUG("Puta madre. Surf says that the link broke");
- action->state = SIMIX_LINK_FAILURE;
+ synchro->state = SIMIX_LINK_FAILURE;
} else
- action->state = SIMIX_DONE;
+ synchro->state = SIMIX_DONE;
XBT_DEBUG("SIMIX_post_comm: comm %p, state %d, src_proc %p, dst_proc %p, detached: %d",
- action, (int)action->state, action->comm.src_proc, action->comm.dst_proc, action->comm.detached);
+ synchro, (int)synchro->state, synchro->comm.src_proc, synchro->comm.dst_proc, synchro->comm.detached);
/* destroy the surf actions associated with the Simix communication */
- SIMIX_comm_destroy_internal_actions(action);
+ SIMIX_comm_destroy_internal_actions(synchro);
- /* if there are simcalls associated with the action, then answer them */
- if (xbt_fifo_size(action->simcalls)) {
- SIMIX_comm_finish(action);
+ /* if there are simcalls associated with the synchro, then answer them */
+ if (xbt_fifo_size(synchro->simcalls)) {
+ SIMIX_comm_finish(synchro);
}
}
-void simcall_HANDLER_comm_cancel(smx_simcall_t simcall, smx_action_t action){
- SIMIX_comm_cancel(action);
+void simcall_HANDLER_comm_cancel(smx_simcall_t simcall, smx_synchro_t synchro){
+ SIMIX_comm_cancel(synchro);
}
-void SIMIX_comm_cancel(smx_action_t action)
+void SIMIX_comm_cancel(smx_synchro_t synchro)
{
- /* if the action is a waiting state means that it is still in a rdv */
+ /* if the synchro is a waiting state means that it is still in a rdv */
/* so remove from it and delete it */
- if (action->state == SIMIX_WAITING) {
- SIMIX_rdv_remove(action->comm.rdv, action);
- action->state = SIMIX_CANCELED;
+ if (synchro->state == SIMIX_WAITING) {
+ SIMIX_rdv_remove(synchro->comm.rdv, synchro);
+ synchro->state = SIMIX_CANCELED;
}
else if (!MC_is_active() /* when running the MC there are no surf actions */
- && (action->state == SIMIX_READY || action->state == SIMIX_RUNNING)) {
+ && (synchro->state == SIMIX_READY || synchro->state == SIMIX_RUNNING)) {
- surf_action_cancel(action->comm.surf_comm);
+ surf_action_cancel(synchro->comm.surf_comm);
}
}
-void SIMIX_comm_suspend(smx_action_t action)
+void SIMIX_comm_suspend(smx_synchro_t synchro)
{
- /*FIXME: shall we suspend also the timeout actions? */
- if (action->comm.surf_comm)
- surf_action_suspend(action->comm.surf_comm);
+ /*FIXME: shall we suspend also the timeout synchro? */
+ if (synchro->comm.surf_comm)
+ surf_action_suspend(synchro->comm.surf_comm);
/* in the other case, the action will be suspended on creation, in SIMIX_comm_start() */
}
-void SIMIX_comm_resume(smx_action_t action)
+void SIMIX_comm_resume(smx_synchro_t synchro)
{
/*FIXME: check what happen with the timeouts */
- if (action->comm.surf_comm)
- surf_action_resume(action->comm.surf_comm);
- /* in the other case, the action were not really suspended yet, see SIMIX_comm_suspend() and SIMIX_comm_start() */
+ if (synchro->comm.surf_comm)
+ surf_action_resume(synchro->comm.surf_comm);
+ /* in the other case, the synchro were not really suspended yet, see SIMIX_comm_suspend() and SIMIX_comm_start() */
}
-/************* Action Getters **************/
+/************* synchro Getters **************/
-double simcall_HANDLER_comm_get_remains(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_remains(action);
+double simcall_HANDLER_comm_get_remains(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_remains(synchro);
}
/**
* \brief get the amount remaining from the communication
- * \param action The communication
+ * \param synchro The communication
*/
-double SIMIX_comm_get_remains(smx_action_t action)
+double SIMIX_comm_get_remains(smx_synchro_t synchro)
{
double remains;
- if(!action){
+ if(!synchro){
return 0;
}
- switch (action->state) {
+ switch (synchro->state) {
case SIMIX_RUNNING:
- remains = surf_action_get_remains(action->comm.surf_comm);
+ remains = surf_action_get_remains(synchro->comm.surf_comm);
break;
case SIMIX_WAITING:
return remains;
}
-e_smx_state_t simcall_HANDLER_comm_get_state(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_state(action);
+e_smx_state_t simcall_HANDLER_comm_get_state(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_state(synchro);
}
-e_smx_state_t SIMIX_comm_get_state(smx_action_t action)
+e_smx_state_t SIMIX_comm_get_state(smx_synchro_t synchro)
{
- return action->state;
+ return synchro->state;
}
-void* simcall_HANDLER_comm_get_src_data(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_src_data(action);
+void* simcall_HANDLER_comm_get_src_data(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_src_data(synchro);
}
/**
* \brief Return the user data associated to the sender of the communication
- * \param action The communication
+ * \param synchro The communication
* \return the user data
*/
-void* SIMIX_comm_get_src_data(smx_action_t action)
+void* SIMIX_comm_get_src_data(smx_synchro_t synchro)
{
- return action->comm.src_data;
+ return synchro->comm.src_data;
}
-void* simcall_HANDLER_comm_get_dst_data(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_dst_data(action);
+void* simcall_HANDLER_comm_get_dst_data(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_dst_data(synchro);
}
/**
* \brief Return the user data associated to the receiver of the communication
- * \param action The communication
+ * \param synchro The communication
* \return the user data
*/
-void* SIMIX_comm_get_dst_data(smx_action_t action)
+void* SIMIX_comm_get_dst_data(smx_synchro_t synchro)
{
- return action->comm.dst_data;
+ return synchro->comm.dst_data;
}
-smx_process_t simcall_HANDLER_comm_get_src_proc(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_src_proc(action);
+smx_process_t simcall_HANDLER_comm_get_src_proc(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_src_proc(synchro);
}
-smx_process_t SIMIX_comm_get_src_proc(smx_action_t action)
+smx_process_t SIMIX_comm_get_src_proc(smx_synchro_t synchro)
{
- return action->comm.src_proc;
+ return synchro->comm.src_proc;
}
-smx_process_t simcall_HANDLER_comm_get_dst_proc(smx_simcall_t simcall, smx_action_t action){
- return SIMIX_comm_get_dst_proc(action);
+smx_process_t simcall_HANDLER_comm_get_dst_proc(smx_simcall_t simcall, smx_synchro_t synchro){
+ return SIMIX_comm_get_dst_proc(synchro);
}
-smx_process_t SIMIX_comm_get_dst_proc(smx_action_t action)
+smx_process_t SIMIX_comm_get_dst_proc(smx_synchro_t synchro)
{
- return action->comm.dst_proc;
+ return synchro->comm.dst_proc;
}
#ifdef HAVE_LATENCY_BOUND_TRACKING
-int simcall_HANDLER_comm_is_latency_bounded(smx_simcall_t simcall, smx_action_t action)
+int simcall_HANDLER_comm_is_latency_bounded(smx_simcall_t simcall, smx_synchro_t synchro)
{
- return SIMIX_comm_is_latency_bounded(action);
+ return SIMIX_comm_is_latency_bounded(synchro);
}
/**
* \brief verify if communication is latency bounded
* \param comm The communication
*/
-int SIMIX_comm_is_latency_bounded(smx_action_t action)
+int SIMIX_comm_is_latency_bounded(smx_synchro_t synchro)
{
- if(!action){
+ if(!synchro){
return 0;
}
- if (action->comm.surf_comm){
- XBT_DEBUG("Getting latency limited for surf_action (%p)", action->comm.surf_comm);
- action->latency_limited = surf_network_action_get_latency_limited(action->comm.surf_comm);
- XBT_DEBUG("Action limited is %d", action->latency_limited);
+ if (synchro->comm.surf_comm){
+ XBT_DEBUG("Getting latency limited for surf_action (%p)", synchro->comm.surf_comm);
+ synchro->latency_limited = surf_network_action_get_latency_limited(synchro->comm.surf_comm);
+ XBT_DEBUG("synchro limited is %d", synchro->latency_limited);
}
- return action->latency_limited;
+ return synchro->latency_limited;
}
#endif
/******************************************************************************/
/* SIMIX_comm_copy_data callbacks */
/******************************************************************************/
-static void (*SIMIX_comm_copy_data_callback) (smx_action_t, void*, size_t) =
+static void (*SIMIX_comm_copy_data_callback) (smx_synchro_t, void*, size_t) =
&SIMIX_comm_copy_pointer_callback;
void
-SIMIX_comm_set_copy_data_callback(void (*callback) (smx_action_t, void*, size_t))
+SIMIX_comm_set_copy_data_callback(void (*callback) (smx_synchro_t, void*, size_t))
{
SIMIX_comm_copy_data_callback = callback;
}
-void SIMIX_comm_copy_pointer_callback(smx_action_t comm, void* buff, size_t buff_size)
+void SIMIX_comm_copy_pointer_callback(smx_synchro_t comm, void* buff, size_t buff_size)
{
xbt_assert((buff_size == sizeof(void *)),
"Cannot copy %zu bytes: must be sizeof(void*)", buff_size);
*(void **) (comm->comm.dst_buff) = buff;
}
-void SIMIX_comm_copy_buffer_callback(smx_action_t comm, void* buff, size_t buff_size)
+void SIMIX_comm_copy_buffer_callback(smx_synchro_t comm, void* buff, size_t buff_size)
{
XBT_DEBUG("Copy the data over");
memcpy(comm->comm.dst_buff, buff, buff_size);
* \brief Copy the communication data from the sender's buffer to the receiver's one
* \param comm The communication
*/
-void SIMIX_comm_copy_data(smx_action_t comm)
+void SIMIX_comm_copy_data(smx_synchro_t comm)
{
size_t buff_size = comm->comm.src_buff_size;
/* If there is no data to be copy then return */
void SIMIX_network_exit(void);
#ifdef HAVE_LATENCY_BOUND_TRACKING
-XBT_PUBLIC(int) SIMIX_comm_is_latency_bounded(smx_action_t comm);
+XBT_PUBLIC(int) SIMIX_comm_is_latency_bounded(smx_synchro_t comm);
#endif
smx_rdv_t SIMIX_rdv_create(const char *name);
void SIMIX_rdv_destroy(smx_rdv_t rdv);
smx_rdv_t SIMIX_rdv_get_by_name(const char *name);
-void SIMIX_rdv_remove(smx_rdv_t rdv, smx_action_t comm);
+void SIMIX_rdv_remove(smx_rdv_t rdv, smx_synchro_t comm);
int SIMIX_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host);
-smx_action_t SIMIX_rdv_get_head(smx_rdv_t rdv);
+smx_synchro_t SIMIX_rdv_get_head(smx_rdv_t rdv);
void SIMIX_rdv_set_receiver(smx_rdv_t rdv, smx_process_t proc);
smx_process_t SIMIX_rdv_get_receiver(smx_rdv_t rdv);
-smx_action_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
+smx_synchro_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *, smx_action_t),
- void (*clean_fun)(void *), // used to free the action in case of problem after a detached send
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*match_fun)(void *, void *, smx_synchro_t),
+ void (*clean_fun)(void *), // used to free the synchro in case of problem after a detached send
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data,
int detached);
-smx_action_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
+smx_synchro_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
void *dst_buff, size_t *dst_buff_size,
- int (*)(void *, void *, smx_action_t),
- void (*copy_data_fun)(smx_action_t, void*, size_t),
+ int (*)(void *, void *, smx_synchro_t),
+ void (*copy_data_fun)(smx_synchro_t, void*, size_t),
void *data, double rate);
-void SIMIX_comm_destroy(smx_action_t action);
-void SIMIX_comm_destroy_internal_actions(smx_action_t action);
-smx_action_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_rdv_t rdv, int type, int src,
- int tag, int (*match_fun)(void *, void *, smx_action_t), void *data);
-void SIMIX_post_comm(smx_action_t action);
-void SIMIX_comm_cancel(smx_action_t action);
-double SIMIX_comm_get_remains(smx_action_t action);
-e_smx_state_t SIMIX_comm_get_state(smx_action_t action);
-void SIMIX_comm_suspend(smx_action_t action);
-void SIMIX_comm_resume(smx_action_t action);
-smx_process_t SIMIX_comm_get_src_proc(smx_action_t action);
-smx_process_t SIMIX_comm_get_dst_proc(smx_action_t action);
+void SIMIX_comm_destroy(smx_synchro_t synchro);
+void SIMIX_comm_destroy_internal_actions(smx_synchro_t synchro);
+smx_synchro_t SIMIX_comm_iprobe(smx_process_t dst_proc, smx_rdv_t rdv, int type, int src,
+ int tag, int (*match_fun)(void *, void *, smx_synchro_t), void *data);
+void SIMIX_post_comm(smx_synchro_t synchro);
+void SIMIX_comm_cancel(smx_synchro_t synchro);
+double SIMIX_comm_get_remains(smx_synchro_t synchro);
+e_smx_state_t SIMIX_comm_get_state(smx_synchro_t synchro);
+void SIMIX_comm_suspend(smx_synchro_t synchro);
+void SIMIX_comm_resume(smx_synchro_t synchro);
+smx_process_t SIMIX_comm_get_src_proc(smx_synchro_t synchro);
+smx_process_t SIMIX_comm_get_dst_proc(smx_synchro_t synchro);
#endif
smx_creation_func_t create_process_function;
void_pfn_smxprocess_t_smxprocess_t kill_process_function;
void_pfn_smxprocess_t cleanup_process_function;
- xbt_mallocator_t action_mallocator;
+ xbt_mallocator_t synchro_mallocator;
void_pfn_smxhost_t autorestart;
#ifdef TIME_BENCH_AMDAHL
void* args;
} s_smx_timer_t;
-/********************************* Action *************************************/
+/********************************* synchro *************************************/
typedef enum {
- SIMIX_ACTION_EXECUTE,
- SIMIX_ACTION_PARALLEL_EXECUTE,
- SIMIX_ACTION_COMMUNICATE,
- SIMIX_ACTION_JOIN,
- SIMIX_ACTION_SLEEP,
- SIMIX_ACTION_SYNCHRO,
- SIMIX_ACTION_IO,
-} e_smx_action_type_t;
+ SIMIX_SYNC_EXECUTE,
+ SIMIX_SYNC_PARALLEL_EXECUTE,
+ SIMIX_SYNC_COMMUNICATE,
+ SIMIX_SYNC_JOIN,
+ SIMIX_SYNC_SLEEP,
+ SIMIX_SYNC_SYNCHRO,
+ SIMIX_SYNC_IO,
+} e_smx_synchro_type_t;
typedef enum {
SIMIX_COMM_SEND,
SIMIX_IO_STAT
} e_smx_io_type_t;
-/** @brief Action datatype */
-typedef struct s_smx_action {
+/** @brief synchro datatype */
+typedef struct s_smx_synchro {
- e_smx_action_type_t type; /* Type of SIMIX action*/
- e_smx_state_t state; /* State of the action */
- char *name; /* Action name if any */
- xbt_fifo_t simcalls; /* List of simcalls waiting for this action */
+ e_smx_synchro_type_t type; /* Type of SIMIX synchro */
+ e_smx_state_t state; /* State of the synchro */
+ char *name; /* synchro name if any */
+ xbt_fifo_t simcalls; /* List of simcalls waiting for this synchro */
- /* Data specific to each action type */
+ /* Data specific to each synchro type */
union {
struct {
int detached; /* If detached or not */
void (*clean_fun)(void*); /* Function to clean the detached src_buf if something goes wrong */
- int (*match_fun)(void*,void*,smx_action_t); /* Filter function used by the other side. It is used when
+ int (*match_fun)(void*,void*,smx_synchro_t); /* Filter function used by the other side. It is used when
looking if a given communication matches my needs. For that, myself must match the
expectations of the other side, too. See */
- void (*copy_data_fun) (smx_action_t, void*, size_t);
+ void (*copy_data_fun) (smx_synchro_t, void*, size_t);
/* Surf action data */
surf_action_t surf_comm; /* The Surf communication action encapsulated */
#ifdef HAVE_TRACING
char *category; /* simix action category for instrumentation */
#endif
-} s_smx_action_t;
+} s_smx_synchro_t;
void SIMIX_context_mod_init(void);
void SIMIX_context_mod_exit(void);
*/
void SIMIX_process_cleanup(smx_process_t process)
{
- XBT_DEBUG("Cleanup process %s (%p), waiting action %p",
- process->name, process, process->waiting_action);
+ XBT_DEBUG("Cleanup process %s (%p), waiting synchro %p",
+ process->name, process, process->waiting_synchro);
SIMIX_process_on_exit_runall(process);
/* cancel non-blocking communications */
- smx_action_t action;
- while ((action = xbt_fifo_pop(process->comms))) {
+ smx_synchro_t synchro;
+ while ((synchro = xbt_fifo_pop(process->comms))) {
/* make sure no one will finish the comm after this process is destroyed,
* because src_proc or dst_proc would be an invalid pointer */
- SIMIX_comm_cancel(action);
+ SIMIX_comm_cancel(synchro);
- if (action->comm.src_proc == process) {
+ if (synchro->comm.src_proc == process) {
XBT_DEBUG("Found an unfinished send comm %p (detached = %d), state %d, src = %p, dst = %p",
- action, action->comm.detached, (int)action->state, action->comm.src_proc, action->comm.dst_proc);
- action->comm.src_proc = NULL;
+ synchro, synchro->comm.detached, (int)synchro->state, synchro->comm.src_proc, synchro->comm.dst_proc);
+ synchro->comm.src_proc = NULL;
/* I'm not supposed to destroy a detached comm from the sender side, */
- if (!action->comm.detached)
- SIMIX_comm_destroy(action);
+ if (!synchro->comm.detached)
+ SIMIX_comm_destroy(synchro);
else
XBT_DEBUG("Don't destroy it since it's a detached comm");
}
- else if (action->comm.dst_proc == process){
+ else if (synchro->comm.dst_proc == process){
XBT_DEBUG("Found an unfinished recv comm %p, state %d, src = %p, dst = %p",
- action, (int)action->state, action->comm.src_proc, action->comm.dst_proc);
- action->comm.dst_proc = NULL;
+ synchro, (int)synchro->state, synchro->comm.src_proc, synchro->comm.dst_proc);
+ synchro->comm.dst_proc = NULL;
- if (action->comm.detached && action->comm.refcount == 1
- && action->comm.src_proc != NULL) {
+ if (synchro->comm.detached && synchro->comm.refcount == 1
+ && synchro->comm.src_proc != NULL) {
/* the comm will be freed right now, remove it from the sender */
- xbt_fifo_remove(action->comm.src_proc->comms, action);
+ xbt_fifo_remove(synchro->comm.src_proc->comms, synchro);
}
- SIMIX_comm_destroy(action);
+ SIMIX_comm_destroy(synchro);
}
else {
- xbt_die("Communication action %p is in my list but I'm not the sender "
- "or the receiver", action);
+ xbt_die("Communication synchro %p is in my list but I'm not the sender "
+ "or the receiver", synchro);
}
}
process->suspended = 0;
process->doexception = 0;
- /* destroy the blocking action if any */
- if (process->waiting_action) {
+ /* destroy the blocking synchro if any */
+ if (process->waiting_synchro) {
- switch (process->waiting_action->type) {
+ switch (process->waiting_synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- SIMIX_host_execution_destroy(process->waiting_action);
+ case SIMIX_SYNC_EXECUTE:
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ SIMIX_host_execution_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_COMMUNICATE:
- xbt_fifo_remove(process->comms, process->waiting_action);
- SIMIX_comm_cancel(process->waiting_action);
- SIMIX_comm_destroy(process->waiting_action);
+ case SIMIX_SYNC_COMMUNICATE:
+ xbt_fifo_remove(process->comms, process->waiting_synchro);
+ SIMIX_comm_cancel(process->waiting_synchro);
+ SIMIX_comm_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_SLEEP:
- SIMIX_process_sleep_destroy(process->waiting_action);
+ case SIMIX_SYNC_SLEEP:
+ SIMIX_process_sleep_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_JOIN:
- SIMIX_process_sleep_destroy(process->waiting_action);
+ case SIMIX_SYNC_JOIN:
+ SIMIX_process_sleep_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_SYNCHRO:
+ case SIMIX_SYNC_SYNCHRO:
SIMIX_synchro_stop_waiting(process, &process->simcall);
- SIMIX_synchro_destroy(process->waiting_action);
+ SIMIX_synchro_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_IO:
- SIMIX_io_destroy(process->waiting_action);
+ case SIMIX_SYNC_IO:
+ SIMIX_io_destroy(process->waiting_synchro);
break;
}
if (process->suspended)
SIMIX_process_resume(process,SIMIX_process_self());
- /* cancel the blocking action if any */
- if (process->waiting_action) {
+ /* cancel the blocking synchro if any */
+ if (process->waiting_synchro) {
- switch (process->waiting_action->type) {
+ switch (process->waiting_synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- SIMIX_host_execution_cancel(process->waiting_action);
+ case SIMIX_SYNC_EXECUTE:
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ SIMIX_host_execution_cancel(process->waiting_synchro);
break;
- case SIMIX_ACTION_COMMUNICATE:
- xbt_fifo_remove(process->comms, process->waiting_action);
- SIMIX_comm_cancel(process->waiting_action);
+ case SIMIX_SYNC_COMMUNICATE:
+ xbt_fifo_remove(process->comms, process->waiting_synchro);
+ SIMIX_comm_cancel(process->waiting_synchro);
break;
- case SIMIX_ACTION_SLEEP:
- SIMIX_process_sleep_destroy(process->waiting_action);
+ case SIMIX_SYNC_SLEEP:
+ SIMIX_process_sleep_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_JOIN:
- SIMIX_process_sleep_destroy(process->waiting_action);
+ case SIMIX_SYNC_JOIN:
+ SIMIX_process_sleep_destroy(process->waiting_synchro);
break;
- case SIMIX_ACTION_SYNCHRO:
+ case SIMIX_SYNC_SYNCHRO:
SIMIX_synchro_stop_waiting(process, &process->simcall);
break;
- case SIMIX_ACTION_IO:
- SIMIX_io_destroy(process->waiting_action);
+ case SIMIX_SYNC_IO:
+ SIMIX_io_destroy(process->waiting_synchro);
break;
}
}
- process->waiting_action = NULL;
+ process->waiting_synchro = NULL;
if (!xbt_dynar_member(simix_global->process_to_run, &(process)) && process != SIMIX_process_self())
xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
void simcall_HANDLER_process_suspend(smx_simcall_t simcall, smx_process_t process)
{
- smx_action_t action_suspend =
+ smx_synchro_t sync_suspend =
SIMIX_process_suspend(process, simcall->issuer);
if (process != simcall->issuer) {
SIMIX_simcall_answer(simcall);
} else {
- xbt_fifo_push(action_suspend->simcalls, simcall);
- process->waiting_action = action_suspend;
- SIMIX_host_execution_suspend(process->waiting_action);
+ xbt_fifo_push(sync_suspend->simcalls, simcall);
+ process->waiting_synchro = sync_suspend;
+ SIMIX_host_execution_suspend(process->waiting_synchro);
}
/* If we are suspending ourselves, then just do not finish the simcall now */
}
-smx_action_t SIMIX_process_suspend(smx_process_t process, smx_process_t issuer)
+smx_synchro_t SIMIX_process_suspend(smx_process_t process, smx_process_t issuer)
{
xbt_assert((process != NULL), "Invalid parameters");
process->suspended = 1;
- /* If we are suspending another process, and it is waiting on an action,
- suspend its action. */
+ /* If we are suspending another process, and it is waiting on a sync,
+ suspend its synchronization. */
if (process != issuer) {
- if (process->waiting_action) {
+ if (process->waiting_synchro) {
- switch (process->waiting_action->type) {
+ switch (process->waiting_synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- SIMIX_host_execution_suspend(process->waiting_action);
+ case SIMIX_SYNC_EXECUTE:
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ SIMIX_host_execution_suspend(process->waiting_synchro);
break;
- case SIMIX_ACTION_COMMUNICATE:
- SIMIX_comm_suspend(process->waiting_action);
+ case SIMIX_SYNC_COMMUNICATE:
+ SIMIX_comm_suspend(process->waiting_synchro);
break;
- case SIMIX_ACTION_SLEEP:
- SIMIX_process_sleep_suspend(process->waiting_action);
+ case SIMIX_SYNC_SLEEP:
+ SIMIX_process_sleep_suspend(process->waiting_synchro);
break;
- case SIMIX_ACTION_SYNCHRO:
+ case SIMIX_SYNC_SYNCHRO:
/* Suspension is delayed to when the process is rescheduled. */
break;
default:
- xbt_die("Internal error in SIMIX_process_suspend: unexpected action type %d",
- (int)process->waiting_action->type);
+ xbt_die("Internal error in SIMIX_process_suspend: unexpected synchronization type %d",
+ (int)process->waiting_synchro->type);
}
return NULL;
} else {
if(!process->suspended) return;
process->suspended = 0;
- /* If we are resuming another process, resume the action it was waiting for
+ /* If we are resuming another process, resume the synchronization it was waiting for
if any. Otherwise add it to the list of process to run in the next round. */
if (process != issuer) {
- if (process->waiting_action) {
+ if (process->waiting_synchro) {
- switch (process->waiting_action->type) {
+ switch (process->waiting_synchro->type) {
- case SIMIX_ACTION_EXECUTE:
- case SIMIX_ACTION_PARALLEL_EXECUTE:
- SIMIX_host_execution_resume(process->waiting_action);
+ case SIMIX_SYNC_EXECUTE:
+ case SIMIX_SYNC_PARALLEL_EXECUTE:
+ SIMIX_host_execution_resume(process->waiting_synchro);
break;
- case SIMIX_ACTION_COMMUNICATE:
- SIMIX_comm_resume(process->waiting_action);
+ case SIMIX_SYNC_COMMUNICATE:
+ SIMIX_comm_resume(process->waiting_synchro);
break;
- case SIMIX_ACTION_SLEEP:
- SIMIX_process_sleep_resume(process->waiting_action);
+ case SIMIX_SYNC_SLEEP:
+ SIMIX_process_sleep_resume(process->waiting_synchro);
break;
- case SIMIX_ACTION_SYNCHRO:
+ case SIMIX_SYNC_SYNCHRO:
/* I cannot resume it now. This is delayed to when the process is rescheduled at
* the end of the synchro. */
break;
default:
- xbt_die("Internal error in SIMIX_process_resume: unexpected action type %d",
- (int)process->waiting_action->type);
+ xbt_die("Internal error in SIMIX_process_resume: unexpected synchronization type %d",
+ (int)process->waiting_synchro->type);
}
}
} else XBT_WARN("Strange. Process %p is trying to resume himself.", issuer);
void simcall_HANDLER_process_join(smx_simcall_t simcall, smx_process_t process, double timeout)
{
- smx_action_t action = SIMIX_process_join(simcall->issuer, process, timeout);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t sync = SIMIX_process_join(simcall->issuer, process, timeout);
+ xbt_fifo_push(sync->simcalls, simcall);
+ simcall->issuer->waiting_synchro = sync;
}
-static int SIMIX_process_join_finish(smx_process_exit_status_t status, smx_action_t action){
- if (action->sleep.surf_sleep) {
- surf_action_cancel(action->sleep.surf_sleep);
+static int SIMIX_process_join_finish(smx_process_exit_status_t status, smx_synchro_t sync){
+ if (sync->sleep.surf_sleep) {
+ surf_action_cancel(sync->sleep.surf_sleep);
smx_simcall_t simcall;
- while ((simcall = xbt_fifo_shift(action->simcalls))) {
+ while ((simcall = xbt_fifo_shift(sync->simcalls))) {
simcall_process_sleep__set__result(simcall, SIMIX_DONE);
- simcall->issuer->waiting_action = NULL;
+ simcall->issuer->waiting_synchro = NULL;
if (simcall->issuer->suspended) {
XBT_DEBUG("Wait! This process is suspended and can't wake up now.");
simcall->issuer->suspended = 0;
SIMIX_simcall_answer(simcall);
}
}
- surf_action_unref(action->sleep.surf_sleep);
- action->sleep.surf_sleep = NULL;
+ surf_action_unref(sync->sleep.surf_sleep);
+ sync->sleep.surf_sleep = NULL;
}
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ xbt_mallocator_release(simix_global->synchro_mallocator, sync);
return 0;
}
-smx_action_t SIMIX_process_join(smx_process_t issuer, smx_process_t process, double timeout)
+smx_synchro_t SIMIX_process_join(smx_process_t issuer, smx_process_t process, double timeout)
{
- smx_action_t res = SIMIX_process_sleep(issuer, timeout);
- res->type = SIMIX_ACTION_JOIN;
+ smx_synchro_t res = SIMIX_process_sleep(issuer, timeout);
+ res->type = SIMIX_SYNC_JOIN;
SIMIX_process_on_exit(process, (int_f_pvoid_pvoid_t)SIMIX_process_join_finish, res);
return res;
}
SIMIX_simcall_answer(simcall);
return;
}
- smx_action_t action = SIMIX_process_sleep(simcall->issuer, duration);
- xbt_fifo_push(action->simcalls, simcall);
- simcall->issuer->waiting_action = action;
+ smx_synchro_t sync = SIMIX_process_sleep(simcall->issuer, duration);
+ xbt_fifo_push(sync->simcalls, simcall);
+ simcall->issuer->waiting_synchro = sync;
}
-smx_action_t SIMIX_process_sleep(smx_process_t process, double duration)
+smx_synchro_t SIMIX_process_sleep(smx_process_t process, double duration)
{
- smx_action_t action;
+ smx_synchro_t synchro;
smx_host_t host = process->smx_host;
/* check if the host is active */
sg_host_name(host));
}
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_SLEEP;
- action->name = NULL;
+ synchro = xbt_mallocator_get(simix_global->synchro_mallocator);
+ synchro->type = SIMIX_SYNC_SLEEP;
+ synchro->name = NULL;
#ifdef HAVE_TRACING
- action->category = NULL;
+ synchro->category = NULL;
#endif
- action->sleep.host = host;
- action->sleep.surf_sleep =
+ synchro->sleep.host = host;
+ synchro->sleep.surf_sleep =
surf_workstation_sleep(host, duration);
- surf_action_set_data(action->sleep.surf_sleep, action);
- XBT_DEBUG("Create sleep action %p", action);
+ surf_action_set_data(synchro->sleep.surf_sleep, synchro);
+ XBT_DEBUG("Create sleep synchronization %p", synchro);
- return action;
+ return synchro;
}
-void SIMIX_post_process_sleep(smx_action_t action)
+void SIMIX_post_process_sleep(smx_synchro_t synchro)
{
smx_simcall_t simcall;
e_smx_state_t state;
- xbt_assert(action->type == SIMIX_ACTION_SLEEP || action->type == SIMIX_ACTION_JOIN);
+ xbt_assert(synchro->type == SIMIX_SYNC_SLEEP || synchro->type == SIMIX_SYNC_JOIN);
- while ((simcall = xbt_fifo_shift(action->simcalls))) {
+ while ((simcall = xbt_fifo_shift(synchro->simcalls))) {
- switch(surf_action_get_state(action->sleep.surf_sleep)){
+ switch(surf_action_get_state(synchro->sleep.surf_sleep)){
case SURF_ACTION_FAILED:
simcall->issuer->context->iwannadie = 1;
//SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
simcall->issuer->context->iwannadie = 1;
}
simcall_process_sleep__set__result(simcall, state);
- simcall->issuer->waiting_action = NULL;
+ simcall->issuer->waiting_synchro = NULL;
if (simcall->issuer->suspended) {
XBT_DEBUG("Wait! This process is suspended and can't wake up now.");
simcall->issuer->suspended = 0;
}
}
- SIMIX_process_sleep_destroy(action);
+ SIMIX_process_sleep_destroy(synchro);
}
-void SIMIX_process_sleep_destroy(smx_action_t action)
+void SIMIX_process_sleep_destroy(smx_synchro_t synchro)
{
- XBT_DEBUG("Destroy action %p", action);
- xbt_assert(action->type == SIMIX_ACTION_SLEEP || action->type == SIMIX_ACTION_JOIN);
+ XBT_DEBUG("Destroy synchro %p", synchro);
+ xbt_assert(synchro->type == SIMIX_SYNC_SLEEP || synchro->type == SIMIX_SYNC_JOIN);
- if (action->sleep.surf_sleep) {
- surf_action_unref(action->sleep.surf_sleep);
- action->sleep.surf_sleep = NULL;
+ if (synchro->sleep.surf_sleep) {
+ surf_action_unref(synchro->sleep.surf_sleep);
+ synchro->sleep.surf_sleep = NULL;
}
- if (action->type == SIMIX_ACTION_SLEEP)
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ if (synchro->type == SIMIX_SYNC_SLEEP)
+ xbt_mallocator_release(simix_global->synchro_mallocator, synchro);
}
-void SIMIX_process_sleep_suspend(smx_action_t action)
+void SIMIX_process_sleep_suspend(smx_synchro_t synchro)
{
- xbt_assert(action->type == SIMIX_ACTION_SLEEP);
- surf_action_suspend(action->sleep.surf_sleep);
+ xbt_assert(synchro->type == SIMIX_SYNC_SLEEP);
+ surf_action_suspend(synchro->sleep.surf_sleep);
}
-void SIMIX_process_sleep_resume(smx_action_t action)
+void SIMIX_process_sleep_resume(smx_synchro_t synchro)
{
- XBT_DEBUG("Action state is %d on process_sleep_resume.", action->state);
- xbt_assert(action->type == SIMIX_ACTION_SLEEP);
- surf_action_resume(action->sleep.surf_sleep);
+ XBT_DEBUG("Synchro state is %d on process_sleep_resume.", synchro->state);
+ xbt_assert(synchro->type == SIMIX_SYNC_SLEEP);
+ surf_action_resume(synchro->sleep.surf_sleep);
}
/**
unsigned auto_restart:1;
smx_host_t new_host; /* if not null, the host on which the process must migrate to */
- smx_action_t waiting_action; /* the current blocking action if any */
- xbt_fifo_t comms; /* the current non-blocking communication actions */
+ smx_synchro_t waiting_synchro; /* the current blocking synchro if any */
+ xbt_fifo_t comms; /* the current non-blocking communication synchros */
xbt_dict_t properties;
s_smx_simcall_t simcall;
void *data; /* kept for compatibility, it should be replaced with moddata */
void SIMIX_process_exception_terminate(xbt_ex_t * e);
void SIMIX_process_change_host(smx_process_t process,
smx_host_t dest);
-smx_action_t SIMIX_process_suspend(smx_process_t process, smx_process_t issuer);
+smx_synchro_t SIMIX_process_suspend(smx_process_t process, smx_process_t issuer);
void SIMIX_process_resume(smx_process_t process, smx_process_t issuer);
int SIMIX_process_get_PID(smx_process_t self);
int SIMIX_process_get_PPID(smx_process_t self);
smx_process_t SIMIX_process_get_by_name(const char* name);
int SIMIX_process_is_suspended(smx_process_t process);
xbt_dict_t SIMIX_process_get_properties(smx_process_t process);
-smx_action_t SIMIX_process_join(smx_process_t issuer, smx_process_t process, double timeout);
-smx_action_t SIMIX_process_sleep(smx_process_t process, double duration);
-void SIMIX_post_process_sleep(smx_action_t action);
+smx_synchro_t SIMIX_process_join(smx_process_t issuer, smx_process_t process, double timeout);
+smx_synchro_t SIMIX_process_sleep(smx_process_t process, double duration);
+void SIMIX_post_process_sleep(smx_synchro_t synchro);
-void SIMIX_process_sleep_suspend(smx_action_t action);
-void SIMIX_process_sleep_resume(smx_action_t action);
-void SIMIX_process_sleep_destroy(smx_action_t action);
+void SIMIX_process_sleep_suspend(smx_synchro_t synchro);
+void SIMIX_process_sleep_resume(smx_synchro_t synchro);
+void SIMIX_process_sleep_destroy(smx_synchro_t synchro);
void SIMIX_process_auto_restart_set(smx_process_t process, int auto_restart);
smx_process_t SIMIX_process_restart(smx_process_t process, smx_process_t issuer);
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_synchro, simix,
- "Logging specific to SIMIX (synchronization)");
+ "SIMIX Synchronization (mutex, semaphores and conditions)");
-static smx_action_t SIMIX_synchro_wait(smx_host_t smx_host, double timeout);
-static void SIMIX_synchro_finish(smx_action_t action);
+static smx_synchro_t SIMIX_synchro_wait(smx_host_t smx_host, double timeout);
+static void SIMIX_synchro_finish(smx_synchro_t synchro);
static void _SIMIX_cond_wait(smx_cond_t cond, smx_mutex_t mutex, double timeout,
smx_process_t issuer, smx_simcall_t simcall);
static void _SIMIX_sem_wait(smx_sem_t sem, double timeout, smx_process_t issuer,
smx_simcall_t simcall);
-/***************************** Synchro action *********************************/
+/***************************** Raw synchronization *********************************/
-static smx_action_t SIMIX_synchro_wait(smx_host_t smx_host, double timeout)
+static smx_synchro_t SIMIX_synchro_wait(smx_host_t smx_host, double timeout)
{
XBT_IN("(%p, %f)",smx_host,timeout);
- smx_action_t action;
- action = xbt_mallocator_get(simix_global->action_mallocator);
- action->type = SIMIX_ACTION_SYNCHRO;
- action->name = xbt_strdup("synchro");
- action->synchro.sleep =
+ smx_synchro_t sync;
+ sync = xbt_mallocator_get(simix_global->synchro_mallocator);
+ sync->type = SIMIX_SYNC_SYNCHRO;
+ sync->name = xbt_strdup("synchro");
+ sync->synchro.sleep =
surf_workstation_sleep(smx_host, timeout);
- surf_action_set_data(action->synchro.sleep, action);
+ surf_action_set_data(sync->synchro.sleep, sync);
XBT_OUT();
- return action;
+ return sync;
}
void SIMIX_synchro_stop_waiting(smx_process_t process, smx_simcall_t simcall)
XBT_OUT();
}
-void SIMIX_synchro_destroy(smx_action_t action)
+void SIMIX_synchro_destroy(smx_synchro_t synchro)
{
- XBT_IN("(%p)",action);
- XBT_DEBUG("Destroying synchro %p", action);
- xbt_assert(action->type == SIMIX_ACTION_SYNCHRO);
- surf_action_unref(action->synchro.sleep);
- xbt_free(action->name);
- xbt_mallocator_release(simix_global->action_mallocator, action);
+ XBT_IN("(%p)",synchro);
+ XBT_DEBUG("Destroying synchro %p", synchro);
+ xbt_assert(synchro->type == SIMIX_SYNC_SYNCHRO);
+ surf_action_unref(synchro->synchro.sleep);
+ xbt_free(synchro->name);
+ xbt_mallocator_release(simix_global->synchro_mallocator, synchro);
XBT_OUT();
}
-void SIMIX_post_synchro(smx_action_t action)
+void SIMIX_post_synchro(smx_synchro_t synchro)
{
- XBT_IN("(%p)",action);
- xbt_assert(action->type == SIMIX_ACTION_SYNCHRO);
- if (surf_action_get_state(action->synchro.sleep) == SURF_ACTION_FAILED)
- action->state = SIMIX_FAILED;
- else if(surf_action_get_state(action->synchro.sleep) == SURF_ACTION_DONE)
- action->state = SIMIX_SRC_TIMEOUT;
-
- SIMIX_synchro_finish(action);
+ XBT_IN("(%p)",synchro);
+ xbt_assert(synchro->type == SIMIX_SYNC_SYNCHRO);
+ if (surf_action_get_state(synchro->synchro.sleep) == SURF_ACTION_FAILED)
+ synchro->state = SIMIX_FAILED;
+ else if(surf_action_get_state(synchro->synchro.sleep) == SURF_ACTION_DONE)
+ synchro->state = SIMIX_SRC_TIMEOUT;
+
+ SIMIX_synchro_finish(synchro);
XBT_OUT();
}
-static void SIMIX_synchro_finish(smx_action_t action)
+static void SIMIX_synchro_finish(smx_synchro_t synchro)
{
- XBT_IN("(%p)",action);
- smx_simcall_t simcall = xbt_fifo_shift(action->simcalls);
+ XBT_IN("(%p)",synchro);
+ smx_simcall_t simcall = xbt_fifo_shift(synchro->simcalls);
- switch (action->state) {
+ switch (synchro->state) {
case SIMIX_SRC_TIMEOUT:
SMX_EXCEPTION(simcall->issuer, timeout_error, 0, "Synchro's wait timeout");
}
SIMIX_synchro_stop_waiting(simcall->issuer, simcall);
- simcall->issuer->waiting_action = NULL;
- SIMIX_synchro_destroy(action);
+ simcall->issuer->waiting_synchro = NULL;
+ SIMIX_synchro_destroy(synchro);
SIMIX_simcall_answer(simcall);
XBT_OUT();
}
{
XBT_IN("(%p)",simcall);
/* FIXME: check where to validate the arguments */
- smx_action_t sync_act = NULL;
+ smx_synchro_t synchro = NULL;
smx_process_t process = simcall->issuer;
if (mutex->locked) {
/* FIXME: check if the host is active ? */
- /* Somebody using the mutex, use a synchro action to get host failures */
- sync_act = SIMIX_synchro_wait(process->smx_host, -1);
- xbt_fifo_push(sync_act->simcalls, simcall);
- simcall->issuer->waiting_action = sync_act;
+ /* Somebody using the mutex, use a synchronization to get host failures */
+ synchro = SIMIX_synchro_wait(process->smx_host, -1);
+ xbt_fifo_push(synchro->simcalls, simcall);
+ simcall->issuer->waiting_synchro = synchro;
xbt_swag_insert(simcall->issuer, mutex->sleeping);
} else {
/* mutex free */
if (xbt_swag_size(mutex->sleeping) > 0) {
p = xbt_swag_extract(mutex->sleeping);
- SIMIX_synchro_destroy(p->waiting_action);
- p->waiting_action = NULL;
+ SIMIX_synchro_destroy(p->waiting_synchro);
+ p->waiting_synchro = NULL;
mutex->owner = p;
SIMIX_simcall_answer(&p->simcall);
} else {
smx_process_t issuer, smx_simcall_t simcall)
{
XBT_IN("(%p, %p, %f, %p,%p)",cond,mutex,timeout,issuer,simcall);
- smx_action_t sync_act = NULL;
+ smx_synchro_t synchro = NULL;
XBT_DEBUG("Wait condition %p", cond);
SIMIX_mutex_unlock(mutex, issuer);
}
- sync_act = SIMIX_synchro_wait(issuer->smx_host, timeout);
- xbt_fifo_unshift(sync_act->simcalls, simcall);
- issuer->waiting_action = sync_act;
+ synchro = SIMIX_synchro_wait(issuer->smx_host, timeout);
+ xbt_fifo_unshift(synchro->simcalls, simcall);
+ issuer->waiting_synchro = synchro;
xbt_swag_insert(simcall->issuer, cond->sleeping);
XBT_OUT();
}
to make it acquire the mutex */
if ((proc = xbt_swag_extract(cond->sleeping))) {
- /* Destroy waiter's synchro action */
- SIMIX_synchro_destroy(proc->waiting_action);
- proc->waiting_action = NULL;
+ /* Destroy waiter's synchronization */
+ SIMIX_synchro_destroy(proc->waiting_synchro);
+ proc->waiting_synchro = NULL;
/* Now transform the cond wait simcall into a mutex lock one */
simcall = &proc->simcall;
XBT_DEBUG("Sem release semaphore %p", sem);
if ((proc = xbt_swag_extract(sem->sleeping))) {
- SIMIX_synchro_destroy(proc->waiting_action);
- proc->waiting_action = NULL;
+ SIMIX_synchro_destroy(proc->waiting_synchro);
+ proc->waiting_synchro = NULL;
SIMIX_simcall_answer(&proc->simcall);
} else if (sem->value < SMX_SEM_NOLIMIT) {
sem->value++;
smx_simcall_t simcall)
{
XBT_IN("(%p, %f, %p, %p)",sem,timeout,issuer,simcall);
- smx_action_t sync_act = NULL;
+ smx_synchro_t synchro = NULL;
XBT_DEBUG("Wait semaphore %p (timeout:%f)", sem, timeout);
if (sem->value <= 0) {
- sync_act = SIMIX_synchro_wait(issuer->smx_host, timeout);
- xbt_fifo_unshift(sync_act->simcalls, simcall);
- issuer->waiting_action = sync_act;
+ synchro = SIMIX_synchro_wait(issuer->smx_host, timeout);
+ xbt_fifo_unshift(synchro->simcalls, simcall);
+ issuer->waiting_synchro = synchro;
xbt_swag_insert(issuer, sem->sleeping);
} else {
sem->value--;
xbt_swag_t sleeping; /* list of sleeping process */
} s_smx_sem_t;
-void SIMIX_post_synchro(smx_action_t action);
+void SIMIX_post_synchro(smx_synchro_t synchro);
void SIMIX_synchro_stop_waiting(smx_process_t process, smx_simcall_t simcall);
-void SIMIX_synchro_destroy(smx_action_t action);
+void SIMIX_synchro_destroy(smx_synchro_t synchro);
smx_mutex_t SIMIX_mutex_init(void);
void SIMIX_mutex_destroy(smx_mutex_t mutex);
int truncated;
size_t real_size;
MPI_Comm comm;
- smx_action_t action;
+ smx_synchro_t action;
unsigned flags;
int detached;
MPI_Request detached_sender;
void smpi_deployment_register_process(const char* instance_id, int rank, int index, MPI_Comm**, xbt_bar_t*);
void smpi_deployment_cleanup_instances(void);
-void smpi_comm_copy_buffer_callback(smx_action_t comm,
+void smpi_comm_copy_buffer_callback(smx_synchro_t comm,
void *buff, size_t buff_size);
-void smpi_comm_null_copy_buffer_callback(smx_action_t comm,
+void smpi_comm_null_copy_buffer_callback(smx_synchro_t comm,
void *buff, size_t buff_size);
void print_request(const char *message, MPI_Request request);
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_base, smpi, "Logging specific to SMPI (base)");
-static int match_recv(void* a, void* b, smx_action_t ignored) {
+static int match_recv(void* a, void* b, smx_synchro_t ignored) {
MPI_Request ref = (MPI_Request)a;
MPI_Request req = (MPI_Request)b;
XBT_DEBUG("Trying to match a recv of src %d against %d, tag %d against %d",ref->src,req->src, ref->tag, req->tag);
}else return 0;
}
-static int match_send(void* a, void* b,smx_action_t ignored) {
+static int match_send(void* a, void* b,smx_synchro_t ignored) {
MPI_Request ref = (MPI_Request)a;
MPI_Request req = (MPI_Request)b;
XBT_DEBUG("Trying to match a send of src %d against %d, tag %d against %d",ref->src,req->src, ref->tag, req->tag);
//We have to check both mailboxes (because SSEND messages are sent to the large mbox). begin with the more appropriate one : the small one.
mailbox = smpi_process_mailbox_small();
XBT_DEBUG("Is there a corresponding send already posted the small mailbox %p (in case of SSEND)?", mailbox);
- smx_action_t action = simcall_comm_iprobe(mailbox, 0, request->src,request->tag, &match_recv, (void*)request);
+ smx_synchro_t action = simcall_comm_iprobe(mailbox, 0, request->src,request->tag, &match_recv, (void*)request);
if(action ==NULL){
mailbox = smpi_process_mailbox();
}else{
mailbox = smpi_process_mailbox_small();
XBT_DEBUG("Is there a corresponding send already posted the small mailbox?");
- smx_action_t action = simcall_comm_iprobe(mailbox, 0, request->src,request->tag, &match_recv, (void*)request);
+ smx_synchro_t action = simcall_comm_iprobe(mailbox, 0, request->src,request->tag, &match_recv, (void*)request);
if(action ==NULL){
XBT_DEBUG("No, nothing in the permanent receive mailbox");
if (request->flags & RMA || request->size < sg_cfg_get_int("smpi/async_small_thres")) { // eager mode
mailbox = smpi_process_remote_mailbox(receiver);
XBT_DEBUG("Is there a corresponding recv already posted in the large mailbox %p?", mailbox);
- smx_action_t action = simcall_comm_iprobe(mailbox, 1,request->dst, request->tag, &match_send, (void*)request);
+ smx_synchro_t action = simcall_comm_iprobe(mailbox, 1,request->dst, request->tag, &match_send, (void*)request);
if(action ==NULL){
if (! (request->flags & SSEND)){
mailbox = smpi_process_remote_mailbox_small(receiver);
*index = MPI_UNDEFINED;
flag = 0;
- comms = xbt_dynar_new(sizeof(smx_action_t), NULL);
+ comms = xbt_dynar_new(sizeof(smx_synchro_t), NULL);
map = xbt_new(int, count);
size = 0;
for(i = 0; i < count; i++) {
index = MPI_UNDEFINED;
if(count > 0) {
// Wait for a request to complete
- comms = xbt_dynar_new(sizeof(smx_action_t), NULL);
+ comms = xbt_dynar_new(sizeof(smx_synchro_t), NULL);
map = xbt_new(int, count);
size = 0;
XBT_DEBUG("Wait for one of %d", count);
}
void smpi_execute_flops(double flops) {
- smx_action_t action;
+ smx_synchro_t action;
smx_host_t host;
host = SIMIX_host_self();
XBT_DEBUG("Handle real computation time: %f flops", flops);
request->dst, request->tag, request->flags);
}
-void smpi_comm_copy_buffer_callback(smx_action_t comm,
+void smpi_comm_copy_buffer_callback(smx_synchro_t comm,
void *buff, size_t buff_size)
{
XBT_DEBUG("Copy the data over");
}
-void smpi_comm_null_copy_buffer_callback(smx_action_t comm,
+void smpi_comm_null_copy_buffer_callback(smx_synchro_t comm,
void *buff, size_t buff_size)
{
return;
int surfxml_pcdata_ix;
extern char *surfxml_bufferstack;
#define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
-AT_surfxml_storage_content AX_surfxml_storage_content;
-#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
-short int surfxml_storage_content_isset;
-AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
-#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
-short int surfxml_cabinet_radical_isset;
-AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
-#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
-short int surfxml_host_availability___file_isset;
-AT_surfxml_peer_lat AX_surfxml_peer_lat;
-#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
-short int surfxml_peer_lat_isset;
-AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
-#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
-short int surfxml_route_symmetrical_isset;
-AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
-#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
-short int surfxml_link___ctn_id_isset;
-AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
-#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
-short int surfxml_mount_storageId_isset;
-AT_surfxml_random_id AX_surfxml_random_id;
-#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
-short int surfxml_random_id_isset;
-AT_surfxml_storage_attach AX_surfxml_storage_attach;
-#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
-short int surfxml_storage_attach_isset;
-AT_surfxml_link_state AX_surfxml_link_state;
-#define A_surfxml_link_state AX_surfxml_link_state
-short int surfxml_link_state_isset;
-AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
-#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
-short int surfxml_storage___type_size_isset;
AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
short int surfxml_cluster_radical_isset;
-AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
-#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
-short int surfxml_mstorage_typeId_isset;
-AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
-#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
-short int surfxml_cluster_suffix_isset;
-AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
-#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
-short int surfxml_trace___connect_element_isset;
-AT_surfxml_host_pstate AX_surfxml_host_pstate;
-#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
-short int surfxml_host_pstate_isset;
-AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
-#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
-short int surfxml_cluster_loopback___bw_isset;
-AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
-#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
-short int surfxml_link_latency___file_isset;
-AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
-#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
-short int surfxml_cluster_sharing___policy_isset;
+AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
+#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
+short int surfxml_cluster_bb___lat_isset;
+AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
+#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
+short int surfxml_trace_periodicity_isset;
+AT_surfxml_cluster_core AX_surfxml_cluster_core;
+#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
+short int surfxml_cluster_core_isset;
+AT_surfxml_config_id AX_surfxml_config_id;
+#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
+short int surfxml_config_id_isset;
+AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
+#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
+short int surfxml_bypassASroute_gw___dst_isset;
+AT_surfxml_AS_id AX_surfxml_AS_id;
+#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
+short int surfxml_AS_id_isset;
+AT_surfxml_trace_file AX_surfxml_trace_file;
+#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
+short int surfxml_trace_file_isset;
+AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
+#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
+short int surfxml_cabinet_bw_isset;
+AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
+#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
+short int surfxml_cluster_topo___parameters_isset;
AT_surfxml_host___link_up AX_surfxml_host___link_up;
#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
short int surfxml_host___link_up_isset;
-AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
-#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
-short int surfxml_cabinet_id_isset;
-AT_surfxml_route_dst AX_surfxml_route_dst;
-#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
-short int surfxml_route_dst_isset;
-AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
-#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
-short int surfxml_ASroute_gw___src_isset;
-AT_surfxml_gpu_name AX_surfxml_gpu_name;
-#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
-short int surfxml_gpu_name_isset;
-AT_surfxml_host_core AX_surfxml_host_core;
-#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
-short int surfxml_host_core_isset;
-AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
-#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
-short int surfxml_peer_bw___in_isset;
+AT_surfxml_storage_attach AX_surfxml_storage_attach;
+#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
+short int surfxml_storage_attach_isset;
+AT_surfxml_peer_power AX_surfxml_peer_power;
+#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
+short int surfxml_peer_power_isset;
+AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
+#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
+short int surfxml_storage___type_content___type_isset;
+AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
+#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
+short int surfxml_cluster_prefix_isset;
+AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
+#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
+short int surfxml_ASroute_dst_isset;
+AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
+#define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
+short int surfxml_ASroute_src_isset;
+AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
+#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
+short int surfxml_peer_state___file_isset;
+AT_surfxml_prop_id AX_surfxml_prop_id;
+#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
+short int surfxml_prop_id_isset;
+AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
+#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
+short int surfxml_cluster_router___id_isset;
+AT_surfxml_host___link_down AX_surfxml_host___link_down;
+#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
+short int surfxml_host___link_down_isset;
+AT_surfxml_random_min AX_surfxml_random_min;
+#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
+short int surfxml_random_min_isset;
+AT_surfxml_cluster_power AX_surfxml_cluster_power;
+#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
+short int surfxml_cluster_power_isset;
+AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
+#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
+short int surfxml_cluster_availability___file_isset;
+AT_surfxml_process_start___time AX_surfxml_process_start___time;
+#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
+short int surfxml_process_start___time_isset;
+AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
+#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
+short int surfxml_peer_availability___file_isset;
+AT_surfxml_random_generator AX_surfxml_random_generator;
+#define A_surfxml_random_generator AX_surfxml_random_generator
+short int surfxml_random_generator_isset;
+AT_surfxml_host___link_id AX_surfxml_host___link_id;
+#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
+short int surfxml_host___link_id_isset;
+AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
+#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
+short int surfxml_link_bandwidth___file_isset;
+AT_surfxml_storage_id AX_surfxml_storage_id;
+#define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
+short int surfxml_storage_id_isset;
+AT_surfxml_AS_routing AX_surfxml_AS_routing;
+#define A_surfxml_AS_routing AX_surfxml_AS_routing
+short int surfxml_AS_routing_isset;
+AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
+#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
+short int surfxml_host_availability___file_isset;
+AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
+#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
+short int surfxml_cluster_lat_isset;
+AT_surfxml_storage_content AX_surfxml_storage_content;
+#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
+short int surfxml_storage_content_isset;
+AT_surfxml_host_availability AX_surfxml_host_availability;
+#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
+short int surfxml_host_availability_isset;
+AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
+#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
+short int surfxml_link_latency___file_isset;
AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
short int surfxml_cabinet_power_isset;
+AT_surfxml_host_core AX_surfxml_host_core;
+#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
+short int surfxml_host_core_isset;
+AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
+#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
+short int surfxml_cluster_bb___sharing___policy_isset;
+AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
+#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
+short int surfxml_cabinet_lat_isset;
+AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
+#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
+short int surfxml_ASroute_gw___src_isset;
+AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
+#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
+short int surfxml_cabinet_radical_isset;
+AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
+#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
+short int surfxml_bypassRoute_src_isset;
+AT_surfxml_host_state AX_surfxml_host_state;
+#define A_surfxml_host_state AX_surfxml_host_state
+short int surfxml_host_state_isset;
+AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
+#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
+short int surfxml_cabinet_prefix_isset;
+AT_surfxml_random_mean AX_surfxml_random_mean;
+#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
+short int surfxml_random_mean_isset;
+AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
+#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
+short int surfxml_backbone_latency_isset;
+AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
+#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
+short int surfxml_peer_bw___out_isset;
AT_surfxml_argument_value AX_surfxml_argument_value;
#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
short int surfxml_argument_value_isset;
-AT_surfxml_cluster_power AX_surfxml_cluster_power;
-#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
-short int surfxml_cluster_power_isset;
+AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
+#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
+short int surfxml_process_on___failure_isset;
+AT_surfxml_route_dst AX_surfxml_route_dst;
+#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
+short int surfxml_route_dst_isset;
+AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
+#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
+short int surfxml_cluster_suffix_isset;
+AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
+#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
+short int surfxml_trace___connect_kind_isset;
+AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
+#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
+short int surfxml_cabinet_id_isset;
AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
short int surfxml_cluster_limiter___link_isset;
AT_surfxml_mount_name AX_surfxml_mount_name;
#define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
short int surfxml_mount_name_isset;
-AT_surfxml_trace_file AX_surfxml_trace_file;
-#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
-short int surfxml_trace_file_isset;
-AT_surfxml_peer_id AX_surfxml_peer_id;
-#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
-short int surfxml_peer_id_isset;
-AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
-#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
-short int surfxml_bypassRoute_dst_isset;
-AT_surfxml_host_state AX_surfxml_host_state;
-#define A_surfxml_host_state AX_surfxml_host_state
-short int surfxml_host_state_isset;
-AT_surfxml_storage_id AX_surfxml_storage_id;
-#define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
-short int surfxml_storage_id_isset;
+AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
+#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
+short int surfxml_bypassASroute_src_isset;
AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
short int surfxml_host_coordinates_isset;
AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
short int surfxml_link___ctn_direction_isset;
-AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
-#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
-short int surfxml_cluster_prefix_isset;
-AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
-#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
-short int surfxml_cluster_availability___file_isset;
-AT_surfxml_peer_power AX_surfxml_peer_power;
-#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
-short int surfxml_peer_power_isset;
-AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
-#define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
-short int surfxml_ASroute_src_isset;
-AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
-#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
-short int surfxml_link_sharing___policy_isset;
-AT_surfxml_AS_id AX_surfxml_AS_id;
-#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
-short int surfxml_AS_id_isset;
-AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
-#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
-short int surfxml_link_bandwidth___file_isset;
-AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
-#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
-short int surfxml_cluster_bb___lat_isset;
-AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
-#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
-short int surfxml_model___prop_id_isset;
+AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
+#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
+short int surfxml_mstorage_name_isset;
+AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
+#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
+short int surfxml_cluster_sharing___policy_isset;
AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
short int surfxml_ASroute_symmetrical_isset;
-AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
-#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
-short int surfxml_cluster_bb___sharing___policy_isset;
-AT_surfxml_router_id AX_surfxml_router_id;
-#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
-short int surfxml_router_id_isset;
-AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
-#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
-short int surfxml_cluster_bw_isset;
-AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
-#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
-short int surfxml_cluster_loopback___lat_isset;
-AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
-#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
-short int surfxml_bypassASroute_gw___dst_isset;
-AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
-#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
-short int surfxml_cluster_state___file_isset;
-AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
-#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
-short int surfxml_storage_typeId_isset;
-AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
-#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
-short int surfxml_bypassRoute_src_isset;
-AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
-#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
-short int surfxml_cabinet_bw_isset;
-AT_surfxml_backbone_id AX_surfxml_backbone_id;
-#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
-short int surfxml_backbone_id_isset;
-AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
-#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
-short int surfxml_storage___type_content___type_isset;
-AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
-#define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
-short int surfxml_link_bandwidth_isset;
-AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
-#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
-short int surfxml_cabinet_suffix_isset;
-AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
-#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
-short int surfxml_router_coordinates_isset;
-AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
-#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
-short int surfxml_process_kill___time_isset;
-AT_surfxml_trace_id AX_surfxml_trace_id;
-#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
-short int surfxml_trace_id_isset;
-AT_surfxml_process_function AX_surfxml_process_function;
-#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
-short int surfxml_process_function_isset;
-AT_surfxml_include_file AX_surfxml_include_file;
-#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
-short int surfxml_include_file_isset;
-AT_surfxml_random_min AX_surfxml_random_min;
-#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
-short int surfxml_random_min_isset;
-AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
-#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
-short int surfxml_cluster_router___id_isset;
-AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
-#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
-short int surfxml_backbone_bandwidth_isset;
-AT_surfxml_cluster_core AX_surfxml_cluster_core;
-#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
-short int surfxml_cluster_core_isset;
-AT_surfxml_platform_version AX_surfxml_platform_version;
-#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
-short int surfxml_platform_version_isset;
-AT_surfxml_prop_id AX_surfxml_prop_id;
-#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
-short int surfxml_prop_id_isset;
-AT_surfxml_config_id AX_surfxml_config_id;
-#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
-short int surfxml_config_id_isset;
-AT_surfxml_random_radical AX_surfxml_random_radical;
-#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
-short int surfxml_random_radical_isset;
-AT_surfxml_link_latency AX_surfxml_link_latency;
-#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
-short int surfxml_link_latency_isset;
-AT_surfxml_host___link_down AX_surfxml_host___link_down;
-#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
-short int surfxml_host___link_down_isset;
AT_surfxml_host_power AX_surfxml_host_power;
#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
short int surfxml_host_power_isset;
+AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
+#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
+short int surfxml_model___prop_id_isset;
+AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
+#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
+short int surfxml_mstorage_typeId_isset;
+AT_surfxml_cluster_id AX_surfxml_cluster_id;
+#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
+short int surfxml_cluster_id_isset;
+AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
+#define A_surfxml_cluster_topology AX_surfxml_cluster_topology
+short int surfxml_cluster_topology_isset;
+AT_surfxml_include_file AX_surfxml_include_file;
+#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
+short int surfxml_include_file_isset;
+AT_surfxml_link_state AX_surfxml_link_state;
+#define A_surfxml_link_state AX_surfxml_link_state
+short int surfxml_link_state_isset;
+AT_surfxml_random_max AX_surfxml_random_max;
+#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
+short int surfxml_random_max_isset;
+AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
+#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
+short int surfxml_storage___type_content_isset;
AT_surfxml_host_state___file AX_surfxml_host_state___file;
#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
short int surfxml_host_state___file_isset;
-AT_surfxml_random_seed AX_surfxml_random_seed;
-#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
-short int surfxml_random_seed_isset;
-AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
-#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
-short int surfxml_random_std___deviation_isset;
-AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
-#define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
-short int surfxml_storage_content___type_isset;
-AT_surfxml_random_generator AX_surfxml_random_generator;
-#define A_surfxml_random_generator AX_surfxml_random_generator
-short int surfxml_random_generator_isset;
-AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
-#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
-short int surfxml_trace___connect_trace_isset;
-AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
-#define A_surfxml_process_on___failure AX_surfxml_process_on___failure
-short int surfxml_process_on___failure_isset;
+AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
+#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
+short int surfxml_route_symmetrical_isset;
+AT_surfxml_random_id AX_surfxml_random_id;
+#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
+short int surfxml_random_id_isset;
+AT_surfxml_link_state___file AX_surfxml_link_state___file;
+#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
+short int surfxml_link_state___file_isset;
+AT_surfxml_gpu_name AX_surfxml_gpu_name;
+#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
+short int surfxml_gpu_name_isset;
+AT_surfxml_backbone_id AX_surfxml_backbone_id;
+#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
+short int surfxml_backbone_id_isset;
+AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
+#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
+short int surfxml_link___ctn_id_isset;
+AT_surfxml_router_id AX_surfxml_router_id;
+#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
+short int surfxml_router_id_isset;
+AT_surfxml_process_host AX_surfxml_process_host;
+#define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
+short int surfxml_process_host_isset;
+AT_surfxml_random_radical AX_surfxml_random_radical;
+#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
+short int surfxml_random_radical_isset;
AT_surfxml_host_id AX_surfxml_host_id;
#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
short int surfxml_host_id_isset;
-AT_surfxml_process_start___time AX_surfxml_process_start___time;
-#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
-short int surfxml_process_start___time_isset;
-AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
-#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
-short int surfxml_storage___type_id_isset;
-AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
-#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
-short int surfxml_ASroute_dst_isset;
-AT_surfxml_link_id AX_surfxml_link_id;
-#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
-short int surfxml_link_id_isset;
-AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
-#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
-short int surfxml_peer_state___file_isset;
-AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
-#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
-short int surfxml_storage___type_content_isset;
+AT_surfxml_peer_lat AX_surfxml_peer_lat;
+#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
+short int surfxml_peer_lat_isset;
+AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
+#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
+short int surfxml_cluster_loopback___bw_isset;
+AT_surfxml_process_function AX_surfxml_process_function;
+#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
+short int surfxml_process_function_isset;
+AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
+#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
+short int surfxml_ASroute_gw___dst_isset;
+AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
+#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
+short int surfxml_mount_storageId_isset;
+AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
+#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
+short int surfxml_bypassRoute_dst_isset;
+AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
+#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
+short int surfxml_cluster_state___file_isset;
AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
short int surfxml_storage___type_model_isset;
+AT_surfxml_trace_id AX_surfxml_trace_id;
+#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
+short int surfxml_trace_id_isset;
AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
short int surfxml_bypassASroute_gw___src_isset;
-AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
-#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
-short int surfxml_bypassASroute_dst_isset;
-AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
-#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
-short int surfxml_peer_bw___out_isset;
-AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
-#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
-short int surfxml_cabinet_prefix_isset;
-AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
-#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
-short int surfxml_backbone_latency_isset;
-AT_surfxml_random_mean AX_surfxml_random_mean;
-#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
-short int surfxml_random_mean_isset;
-AT_surfxml_random_max AX_surfxml_random_max;
-#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
-short int surfxml_random_max_isset;
+AT_surfxml_host_pstate AX_surfxml_host_pstate;
+#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
+short int surfxml_host_pstate_isset;
+AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
+#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
+short int surfxml_process_kill___time_isset;
+AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
+#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
+short int surfxml_random_std___deviation_isset;
+AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
+#define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
+short int surfxml_link_bandwidth_isset;
AT_surfxml_route_src AX_surfxml_route_src;
#define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
short int surfxml_route_src_isset;
-AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
-#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
-short int surfxml_mstorage_name_isset;
-AT_surfxml_host_availability AX_surfxml_host_availability;
-#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
-short int surfxml_host_availability_isset;
-AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
-#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
-short int surfxml_trace_periodicity_isset;
-AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
-#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
-short int surfxml_ASroute_gw___dst_isset;
-AT_surfxml_cluster_id AX_surfxml_cluster_id;
-#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
-short int surfxml_cluster_id_isset;
AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
short int surfxml_cluster_bb___bw_isset;
-AT_surfxml_link_state___file AX_surfxml_link_state___file;
-#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
-short int surfxml_link_state___file_isset;
-AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
-#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
-short int surfxml_cluster_lat_isset;
-AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
-#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
-short int surfxml_cabinet_lat_isset;
-AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
-#define A_surfxml_cluster_topology AX_surfxml_cluster_topology
-short int surfxml_cluster_topology_isset;
-AT_surfxml_host___link_id AX_surfxml_host___link_id;
-#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
-short int surfxml_host___link_id_isset;
-AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
-#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
-short int surfxml_peer_availability___file_isset;
-AT_surfxml_prop_value AX_surfxml_prop_value;
-#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
-short int surfxml_prop_value_isset;
-AT_surfxml_process_host AX_surfxml_process_host;
-#define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
-short int surfxml_process_host_isset;
+AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
+#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
+short int surfxml_link_sharing___policy_isset;
+AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
+#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
+short int surfxml_storage___type_id_isset;
+AT_surfxml_platform_version AX_surfxml_platform_version;
+#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
+short int surfxml_platform_version_isset;
+AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
+#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
+short int surfxml_cluster_loopback___lat_isset;
+AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
+#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
+short int surfxml_storage_typeId_isset;
+AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
+#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
+short int surfxml_backbone_bandwidth_isset;
+AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
+#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
+short int surfxml_cluster_bw_isset;
+AT_surfxml_peer_id AX_surfxml_peer_id;
+#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
+short int surfxml_peer_id_isset;
+AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
+#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
+short int surfxml_storage___type_size_isset;
+AT_surfxml_link_id AX_surfxml_link_id;
+#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
+short int surfxml_link_id_isset;
AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
short int surfxml_model___prop_value_isset;
-AT_surfxml_AS_routing AX_surfxml_AS_routing;
-#define A_surfxml_AS_routing AX_surfxml_AS_routing
-short int surfxml_AS_routing_isset;
-AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
-#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
-short int surfxml_bypassASroute_src_isset;
-AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
-#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
-short int surfxml_trace___connect_kind_isset;
+AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
+#define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
+short int surfxml_storage_content___type_isset;
+AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
+#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
+short int surfxml_trace___connect_element_isset;
AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
#define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
short int surfxml_peer_coordinates_isset;
-AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
-#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
-short int surfxml_cluster_topo___parameters_isset;
+AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
+#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
+short int surfxml_trace___connect_trace_isset;
+AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
+#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
+short int surfxml_cabinet_suffix_isset;
+AT_surfxml_random_seed AX_surfxml_random_seed;
+#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
+short int surfxml_random_seed_isset;
+AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
+#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
+short int surfxml_peer_bw___in_isset;
+AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
+#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
+short int surfxml_bypassASroute_dst_isset;
+AT_surfxml_prop_value AX_surfxml_prop_value;
+#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
+short int surfxml_prop_value_isset;
+AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
+#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
+short int surfxml_router_coordinates_isset;
+AT_surfxml_link_latency AX_surfxml_link_latency;
+#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
+short int surfxml_link_latency_isset;
/* XML state. */
#ifdef FLEX_DEBUG
YY_RULE_SETUP
FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
YY_BREAK
-case YY_STATE_EOF(E_surfxml_platform):
+case YY_STATE_EOF(S_surfxml_platform_3):
+case YY_STATE_EOF(S_surfxml_platform_6):
case YY_STATE_EOF(S_surfxml_platform_1):
case YY_STATE_EOF(S_surfxml_platform_8):
case YY_STATE_EOF(S_surfxml_platform_4):
+case YY_STATE_EOF(E_surfxml_platform):
case YY_STATE_EOF(S_surfxml_platform):
-case YY_STATE_EOF(S_surfxml_platform_3):
-case YY_STATE_EOF(S_surfxml_platform_6):
if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
YY_BREAK
if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
- case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
- case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
- case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+ case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
+ case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+ case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
}
}
YY_BREAK
ETag_surfxml_include();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
- case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
- case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
- case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+ case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
+ case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+ case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
}
}
YY_BREAK
FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
YY_BREAK
case YY_STATE_EOF(S_surfxml_include):
-case YY_STATE_EOF(S_surfxml_include_2):
case YY_STATE_EOF(E_surfxml_include):
+case YY_STATE_EOF(S_surfxml_include_2):
if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
YY_BREAK
if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
- case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
- case S_surfxml_AS_11: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
+ case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
+ case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+ case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
+ case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
- case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
- case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
- case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
+ case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
}
}
YY_BREAK
surfxml_pcdata_ix = popbuffer();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
- case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
- case S_surfxml_AS_11: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
+ case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
+ case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+ case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
+ case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
- case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
- case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
- case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
+ case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
}
}
YY_BREAK
if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
}
}
YY_BREAK
ETag_surfxml_random();
popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
+ case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
}
}
YY_BREAK
if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
switch (YY_START) {
- case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break;
- case S_surfxml_AS_11: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_10: SET(S_surfxml_AS_11); break;
+ case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
+ case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+ case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break;
+ case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
- case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
- case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
- case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
- case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
+ case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
}
}
YY_BREAK