X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/31d626536ff0cdfa875075e092bf8c86a5e43710..d5c59d2c517e9d811871e580abac9513e6e949e1:/src/gras/DataDesc/datadesc.c diff --git a/src/gras/DataDesc/datadesc.c b/src/gras/DataDesc/datadesc.c index 984df708ad..605abc1e0d 100644 --- a/src/gras/DataDesc/datadesc.c +++ b/src/gras/DataDesc/datadesc.c @@ -28,97 +28,112 @@ _strlen_cb(void *vars, /** * gras_datadesc_init: * - * Initialize the datadesc module + * Initialize the datadesc module. + * FIXME: We assume that when neither signed nor unsigned is given, + * that means signed. To be checked by configure. **/ void gras_datadesc_init(void) { gras_error_t errcode; gras_datadesc_type_t *ddt; /* What to add */ - gras_datadesc_type_t *elm; /* element of ddt when needed */ + /* only initialize once */ + if (gras_datadesc_set_local != NULL) + return; + VERB0("Initializing DataDesc"); - + TRYFAIL(gras_set_new(&gras_datadesc_set_local)); - - TRYFAIL(gras_ddt_new_scalar("signed char", - gras_ddt_scalar_char, e_gras_dd_scalar_encoding_sint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("unsigned char", - gras_ddt_scalar_char, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("signed short int", - gras_ddt_scalar_short, e_gras_dd_scalar_encoding_sint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("unsigned short int", - gras_ddt_scalar_short, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("signed int", - gras_ddt_scalar_int, e_gras_dd_scalar_encoding_sint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("unsigned int", - gras_ddt_scalar_int, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("signed long int", - gras_ddt_scalar_long, e_gras_dd_scalar_encoding_sint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("unsigned long int", - gras_ddt_scalar_long, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("signed long long int", - gras_ddt_scalar_long_long, e_gras_dd_scalar_encoding_sint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("unsigned long long int", - gras_ddt_scalar_long_long, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("data pointer", - gras_ddt_scalar_pdata, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("function pointer", - gras_ddt_scalar_pfunc, e_gras_dd_scalar_encoding_uint, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - - TRYFAIL(gras_ddt_new_scalar("float", - gras_ddt_scalar_float, e_gras_dd_scalar_encoding_float, - NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_new_scalar("double", - gras_ddt_scalar_float, e_gras_dd_scalar_encoding_float, - NULL,&ddt)); - TRYFAIL(gras_ddt_register(ddt)); - - TRYFAIL(gras_ddt_get_by_name("unsigned char",&elm)); - TRYFAIL(gras_ddt_new_array("string", elm, 0, _strlen_cb, NULL, &ddt)); - TRYFAIL(gras_ddt_register(ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("signed char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("unsigned char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("signed short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("unsigned short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("signed int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("unsigned int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("signed long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("unsigned long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("signed long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_sint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("unsigned long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("data pointer", + gras_ddt_scalar_pdata, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("function pointer", + gras_ddt_scalar_pfunc, + e_gras_dd_scalar_encoding_uint, + NULL, &ddt)); + + TRYFAIL(gras_datadesc_declare_scalar("float", + gras_ddt_scalar_float, + e_gras_dd_scalar_encoding_float, + NULL, &ddt)); + TRYFAIL(gras_datadesc_declare_scalar("double", + gras_ddt_scalar_float, + e_gras_dd_scalar_encoding_float, + NULL,&ddt)); + + TRYFAIL(gras_datadesc_declare_array_dyn("string", + gras_datadesc_by_name("char"), + _strlen_cb,&ddt)); + + // elm=ddt; + // TRYFAIL(gras_datadesc_declare_ref("string", elm, &ddt)); } /** @@ -130,9 +145,7 @@ void gras_datadesc_exit(void) { VERB0("Exiting DataDesc"); gras_set_free(&gras_datadesc_set_local); + gras_datadesc_set_local = NULL; } -/*** - *** BOOTSTRAPING FUNCTIONS: known within GRAS only - ***/