Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Rewrite the init of bypass mecanism (tks Martin;)
authornavarro <navarro@caraja.(none)>
Wed, 29 Aug 2012 10:10:43 +0000 (12:10 +0200)
committernavarro <navarro@caraja.(none)>
Wed, 29 Aug 2012 10:10:43 +0000 (12:10 +0200)
examples/msg/token_ring/token_bypass.c
include/simgrid/platf.h

index bbd4d2c..9e1c14b 100644 (file)
@@ -22,9 +22,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(ring,
  * 
  *  @section MSG_ex_apps Examples of full applications
  * 
- * - <b>token_ring/ring_call.c</b>: Classical token ring
- *   communication, where a token is exchanged along a ring to reach
- *   every participant.
+ * - <b>token_ring/token_bypass.c</b>: Classical token ring with a bypass deployment.
+ *   A token is exchanged along a ring to reach every participant.
  * 
  */
 
@@ -65,53 +64,25 @@ static int surf_parse_bypass_platform(void)
   sg_platf_begin();
   sg_platf_new_AS_begin("AS0", A_surfxml_AS_routing_Full);
 
-  s_sg_platf_host_cbarg_t bob;
-  memset(&bob,0,sizeof(bob));
+  s_sg_platf_host_cbarg_t bob = SG_PLATF_HOST_INITIALIZER;
   bob.id = "bob";
   bob.power_peak = 98095000;
-  bob.power_scale = 1.0;
-  bob.core_amount = 1;
-  bob.initial_state = A_surfxml_host_state_ON;
-  bob.power_trace = NULL;
-  bob.state_trace = NULL;
-  bob.coord = NULL;
-  bob.properties = NULL;
-
-  s_sg_platf_host_cbarg_t alice;
-  memset(&alice,0,sizeof(alice));
+  sg_platf_new_host(&bob);
+
+  s_sg_platf_host_cbarg_t alice = SG_PLATF_HOST_INITIALIZER;
   alice.id = "alice";
   alice.power_peak = 98095000;
-  alice.power_scale = 1.0;
-  alice.core_amount = 1;
-  alice.initial_state = A_surfxml_host_state_ON;
-  alice.power_trace = NULL;
-  alice.state_trace = NULL;
-  alice.coord = NULL;
-  alice.properties = NULL;
-
-  sg_platf_new_host(&bob);
   sg_platf_new_host(&alice);
 
-  s_sg_platf_link_cbarg_t link;
-  memset(&link, 0, sizeof(link));
+  s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
   link.id = "link1";
-  link.state = A_surfxml_link_state_ON;
-  link.policy = A_surfxml_link_sharing_policy_SHARED;
   link.latency = 0.000278066;
   link.bandwidth = 27946250;
   sg_platf_new_link(&link);
 
-  s_sg_platf_route_cbarg_t route;
-  memset(&route,0,sizeof(route));
+  s_sg_platf_route_cbarg_t route= SG_PLATF_ROUTE_INITIALIZER;
   route.src = "bob";
   route.dst = "alice";
-  route.symmetrical = FALSE;
-  sg_platf_route_begin(&route);
-  sg_platf_route_add_link("link1", &route);
-  sg_platf_route_end(&route);
-
-  route.src = "alice";
-  route.dst = "bob";
   sg_platf_route_begin(&route);
   sg_platf_route_add_link("link1", &route);
   sg_platf_route_end(&route);
index 31851b4..0c570ca 100644 (file)
@@ -93,18 +93,33 @@ typedef struct {
   xbt_dict_t properties;
 } s_sg_platf_host_cbarg_t, *sg_platf_host_cbarg_t;
 
+#define SG_PLATF_HOST_INITIALIZER {\
+    .id = NULL, \
+    .power_peak = 0, \
+    .core_amount = 1., \
+    .power_scale = 1, \
+    .initial_state = A_surfxml_host_state_ON, \
+    .power_trace = NULL, \
+    .state_trace = NULL, \
+    .coord = NULL, \
+    .properties = NULL \
+    }
+
 typedef struct {
   const char* id;
   const char* link_up;
   const char* link_down;
 } s_sg_platf_host_link_cbarg_t, *sg_platf_host_link_cbarg_t;
 
+#define SG_PLATF_HOST_LINK_INITIALIZER {NULL,NULL,NULL}
 
 typedef struct {
   const char* id;
   const char* coord;
 } s_sg_platf_router_cbarg_t, *sg_platf_router_cbarg_t;
 
+#define SG_PLATF_ROUTER_INITIALIZER {NULL,NULL}
+
 typedef struct {
   const char* id;
   double bandwidth;
@@ -117,6 +132,18 @@ typedef struct {
   xbt_dict_t properties;
 } s_sg_platf_link_cbarg_t, *sg_platf_link_cbarg_t;
 
+#define SG_PLATF_LINK_INITIALIZER {\
+  .id = NULL,\
+  .bandwidth = 0.,\
+  .bandwidth_trace = NULL,\
+  .latency = 0.,\
+  .latency_trace = NULL,\
+  .state = A_surfxml_link_state_ON,\
+  .state_trace = NULL,\
+  .policy = A_surfxml_link_sharing_policy_SHARED,\
+  .properties = NULL\
+}
+
 typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t;
 typedef struct s_sg_platf_peer_cbarg {
   const char* id;
@@ -129,6 +156,8 @@ typedef struct s_sg_platf_peer_cbarg {
   tmgr_trace_t state_trace;
 } s_sg_platf_peer_cbarg_t;
 
+#define SG_PLATF_PEER_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
+
 typedef struct s_sg_platf_route_cbarg *sg_platf_route_cbarg_t;
 typedef struct s_sg_platf_route_cbarg {
   int symmetrical;
@@ -139,6 +168,8 @@ typedef struct s_sg_platf_route_cbarg {
   xbt_dynar_t link_list;
 } s_sg_platf_route_cbarg_t;
 
+#define SG_PLATF_ROUTE_INITIALIZER {TRUE,NULL,NULL,NULL,NULL,NULL}
+
 typedef struct s_sg_platf_cluster_cbarg *sg_platf_cluster_cbarg_t;
 typedef struct s_sg_platf_cluster_cbarg {
   const char* id;
@@ -158,6 +189,9 @@ typedef struct s_sg_platf_cluster_cbarg {
   const char* state_trace;
 } s_sg_platf_cluster_cbarg_t;
 
+#define SG_PLATF_CLUSTER_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL \
+  ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
+
 typedef struct s_sg_platf_cabinet_cbarg *sg_platf_cabinet_cbarg_t;
 typedef struct s_sg_platf_cabinet_cbarg {
   const char* id;
@@ -169,12 +203,16 @@ typedef struct s_sg_platf_cabinet_cbarg {
   double lat;
 } s_sg_platf_cabinet_cbarg_t;
 
+#define SG_PLATF_CABINET_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL,NULL}
+
 typedef struct {
   const char* id;
   const char* type_id;
   const char* content;
 } s_sg_platf_storage_cbarg_t, *sg_platf_storage_cbarg_t;
 
+#define SG_PLATF_STORAGE_INITIALIZER {NULL,NULL,NULL}
+
 typedef struct {
   const char* id;
   const char* model;
@@ -183,22 +221,30 @@ typedef struct {
   unsigned long size; /* size in Gbytes */
 } s_sg_platf_storage_type_cbarg_t, *sg_platf_storage_type_cbarg_t;
 
+#define SG_PLATF_STORAGE_TYPE_INITIALIZER {NULL,NULL,NULL,NULL,NULL}
+
 typedef struct {
   const char* type_id;
   const char* name;
 } s_sg_platf_mstorage_cbarg_t, *sg_platf_mstorage_cbarg_t;
 
+#define SG_PLATF_MSTORAGE_INITIALIZER {NULL,NULL}
+
 typedef struct {
   const char* id;
   const char* name;
 } s_sg_platf_mount_cbarg_t, *sg_platf_mount_cbarg_t;
 
+#define SG_PLATF_MOUNT_INITIALIZER {NULL,NULL}
+
 typedef struct s_sg_platf_prop_cbarg *sg_platf_prop_cbarg_t;
 typedef struct s_sg_platf_prop_cbarg {
   const char *id;
   const char *value;
 } s_sg_platf_prop_cbarg_t;
 
+#define SG_PLATF_PROP_INITIALIZER {NULL,NULL}
+
 typedef struct s_sg_platf_trace_cbarg *sg_platf_trace_cbarg_t;
 typedef struct s_sg_platf_trace_cbarg {
   const char *id;
@@ -207,6 +253,8 @@ typedef struct s_sg_platf_trace_cbarg {
   const char *pc_data;
 } s_sg_platf_trace_cbarg_t;
 
+#define SG_PLATF_TRACE_INITIALIZER {NULL,NULL,NULL,NULL}
+
 typedef struct s_sg_platf_trace_connect_cbarg *sg_platf_trace_connect_cbarg_t;
 typedef struct s_sg_platf_trace_connect_cbarg {
   e_surf_trace_connect_kin_t kind;
@@ -214,6 +262,8 @@ typedef struct s_sg_platf_trace_connect_cbarg {
   const char *element;
 } s_sg_platf_trace_connect_cbarg_t;
 
+#define SG_PLATF_TRACE_CONNECT_INITIALIZER {NULL,NULL,NULL}
+
 typedef struct s_sg_platf_process_cbarg *sg_platf_process_cbarg_t;
 typedef struct s_sg_platf_process_cbarg {
   const char **argv;
@@ -226,6 +276,8 @@ typedef struct s_sg_platf_process_cbarg {
   e_surf_process_on_failure_t on_failure;
 } s_sg_platf_process_cbarg_t;
 
+#define SG_PLATF_PROCESS_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
+
 XBT_PUBLIC(void) sg_platf_begin(void);  // Start a new platform
 XBT_PUBLIC(void) sg_platf_end(void); // Finish the creation of the platform