-gras_datadesc_type_t gras_datadesc_struct(const char *name);
-void gras_datadesc_struct_append(gras_datadesc_type_t struct_type,
- const char *name,
- gras_datadesc_type_t field_type);
-void gras_datadesc_struct_close(gras_datadesc_type_t struct_type);
-
-
-gras_datadesc_type_t gras_datadesc_union(const char *name,
- gras_datadesc_type_cb_int_t selector);
-void gras_datadesc_union_append(gras_datadesc_type_t union_type,
- const char *name,
- gras_datadesc_type_t field_type);
-void gras_datadesc_union_close(gras_datadesc_type_t union_type);
-
-
-gras_datadesc_type_t
- gras_datadesc_ref(const char *name,
- gras_datadesc_type_t referenced_type);
-gras_datadesc_type_t
- gras_datadesc_ref_generic(const char *name,
- gras_datadesc_selector_t selector);
-
-gras_datadesc_type_t
- gras_datadesc_array_fixed(const char *name,
- gras_datadesc_type_t element_type,
- long int fixed_size);
-gras_datadesc_type_t
- gras_datadesc_array_dyn(const char *name,
- gras_datadesc_type_t element_type,
- gras_datadesc_type_cb_int_t dynamic_size);
-gras_datadesc_type_t
- gras_datadesc_ref_pop_arr(gras_datadesc_type_t element_type);
-
-gras_datadesc_type_t
- gras_datadesc_dynar(gras_datadesc_type_t elm_t,
- void_f_pvoid_t *free_func);
-gras_datadesc_type_t
- gras_datadesc_matrix(gras_datadesc_type_t elm_t,
- void_f_pvoid_t * const free_f);
+XBT_PUBLIC(gras_datadesc_type_t) gras_datadesc_struct(const char *name);
+XBT_PUBLIC(void) gras_datadesc_struct_append(gras_datadesc_type_t
+ struct_type, const char *name,
+ gras_datadesc_type_t
+ field_type);
+XBT_PUBLIC(void) gras_datadesc_struct_close(gras_datadesc_type_t
+ struct_type);
+
+
+XBT_PUBLIC(gras_datadesc_type_t) gras_datadesc_union(const char *name,
+ gras_datadesc_type_cb_int_t
+ selector);
+XBT_PUBLIC(void) gras_datadesc_union_append(gras_datadesc_type_t
+ union_type, const char *name,
+ gras_datadesc_type_t
+ field_type);
+XBT_PUBLIC(void) gras_datadesc_union_close(gras_datadesc_type_t
+ union_type);
+
+
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_ref(const char *name, gras_datadesc_type_t referenced_type);
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_copy(const char *name, gras_datadesc_type_t copied_type);
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_ref_generic(const char *name,
+ gras_datadesc_selector_t selector);
+
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_array_fixed(const char *name,
+ gras_datadesc_type_t element_type,
+ long int fixed_size);
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_array_dyn(const char *name,
+ gras_datadesc_type_t element_type,
+ gras_datadesc_type_cb_int_t dynamic_size);
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_ref_pop_arr(gras_datadesc_type_t element_type);
+
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_dynar(gras_datadesc_type_t elm_t, void_f_pvoid_t free_func);
+XBT_PUBLIC(gras_datadesc_type_t)
+ gras_datadesc_matrix(gras_datadesc_type_t elm_t,
+ void_f_pvoid_t const free_f);