Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ex_t datadescription. We need it to propagate the exceptions accross the network...
[simgrid.git] / src / gras / DataDesc / datadesc.c
index fca00c4c024d4675d6716fa8832207f74ac63b3f..6fc0e5975cbb41f7687940fa557ec2f2a2e829d6 100644 (file)
@@ -112,6 +112,23 @@ gras_datadesc_init(void) {
                                _strlen_cb);
   ddt = gras_datadesc_ref("string",ddt);
 
+
+  ddt = gras_datadesc_struct("ex_t");
+  gras_datadesc_struct_append(ddt,"msg",gras_datadesc_by_name("string"));
+  gras_datadesc_struct_append(ddt,"category",gras_datadesc_by_name("short int"));
+  gras_datadesc_struct_append(ddt,"value",gras_datadesc_by_name("int"));
+
+  gras_datadesc_struct_append(ddt,"host",gras_datadesc_by_name("string"));
+  gras_datadesc_struct_append(ddt,"procname",gras_datadesc_by_name("string"));
+  gras_datadesc_struct_append(ddt,"file",gras_datadesc_by_name("string"));
+  gras_datadesc_struct_append(ddt,"line",gras_datadesc_by_name("int"));
+  gras_datadesc_struct_append(ddt,"func",gras_datadesc_by_name("string"));
+  gras_datadesc_struct_append(ddt,"bt", 
+                             gras_datadesc_array_fixed("char*{XBT_BACKTRACE_SIZE]", 
+                                                       gras_datadesc_by_name("string"),
+                                                       XBT_BACKTRACE_SIZE));
+  gras_datadesc_struct_append(ddt,"used",gras_datadesc_by_name("int"));
+  gras_datadesc_struct_close(ddt);
 }
 
 /**
@@ -144,7 +161,7 @@ gras_datadesc_get_id(gras_datadesc_type_t ddt) {
  *
  */
 int gras_datadesc_size(gras_datadesc_type_t type) {
-  return type->size[GRAS_THISARCH];
+  return type?type->size[GRAS_THISARCH]:0;
 }
 
 /**