X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2b2f8865b7d2f38344cb01a253c9018643598c10..e649c3530c0f9b73ecf464f7b2834f4b3da004e3:/src/gras/DataDesc/datadesc.c diff --git a/src/gras/DataDesc/datadesc.c b/src/gras/DataDesc/datadesc.c index 46739e460b..052790b95e 100644 --- a/src/gras/DataDesc/datadesc.c +++ b/src/gras/DataDesc/datadesc.c @@ -2,22 +2,23 @@ /* datadesc - data description in order to send/recv it in GRAS */ -/* Authors: Olivier Aumage, Martin Quinson */ -/* Copyright (C) 2003, 2004 the GRAS posse. */ +/* Copyright (c) 2003 Olivier Aumage. */ +/* Copyright (c) 2003, 2004 Martin Quinson. */ +/* All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - under the terms of the license (GNU LGPL) which comes with this package. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "DataDesc/datadesc_private.h" +#include "gras/DataDesc/datadesc_private.h" -GRAS_LOG_NEW_DEFAULT_SUBCATEGORY(datadesc,GRAS); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(datadesc,gras,"Data description"); /* FIXME: make this host-dependent using a trick such as UserData*/ -gras_set_t *gras_datadesc_set_local=NULL; +xbt_set_t gras_datadesc_set_local=NULL; /* callback for array size when sending strings */ static int -_strlen_cb(gras_cbps_t *vars, void *data) { +_strlen_cb(gras_cbps_t vars, void *data) { return 1+(long int)strlen(data); } @@ -32,8 +33,7 @@ _strlen_cb(gras_cbps_t *vars, void *data) { **/ void gras_datadesc_init(void) { - gras_error_t errcode; - gras_datadesc_type_t *ddt; /* What to add */ + gras_datadesc_type_t ddt; /* What to add */ /* only initialize once */ if (gras_datadesc_set_local != NULL) @@ -41,97 +41,76 @@ gras_datadesc_init(void) { VERB0("Initializing DataDesc"); - TRYFAIL(gras_set_new(&gras_datadesc_set_local)); + gras_datadesc_set_local = xbt_set_new(); - TRYFAIL(gras_datadesc_scalar("signed char", - gras_ddt_scalar_char, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("char", - gras_ddt_scalar_char, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("unsigned char", - gras_ddt_scalar_char, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("signed char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("unsigned char", + gras_ddt_scalar_char, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("signed short int", - gras_ddt_scalar_short, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("short int", - gras_ddt_scalar_short, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("unsigned short int", - gras_ddt_scalar_short, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("signed short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("unsigned short int", + gras_ddt_scalar_short, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("signed int", - gras_ddt_scalar_int, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("int", - gras_ddt_scalar_int, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("unsigned int", - gras_ddt_scalar_int, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("signed int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("unsigned int", + gras_ddt_scalar_int, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("signed long int", - gras_ddt_scalar_long, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("long int", - gras_ddt_scalar_long, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("unsigned long int", - gras_ddt_scalar_long, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("signed long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("unsigned long int", + gras_ddt_scalar_long, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("signed long long int", - gras_ddt_scalar_long_long, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("long long int", - gras_ddt_scalar_long_long, - e_gras_dd_scalar_encoding_sint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("unsigned long long int", - gras_ddt_scalar_long_long, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("signed long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_sint); + ddt = gras_datadesc_scalar("unsigned long long int", + gras_ddt_scalar_long_long, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("data pointer", - gras_ddt_scalar_pdata, - e_gras_dd_scalar_encoding_uint, - &ddt)); - TRYFAIL(gras_datadesc_scalar("function pointer", - gras_ddt_scalar_pfunc, - e_gras_dd_scalar_encoding_uint, - &ddt)); + ddt = gras_datadesc_scalar("data pointer", + gras_ddt_scalar_pdata, + e_gras_dd_scalar_encoding_uint); + ddt = gras_datadesc_scalar("function pointer", + gras_ddt_scalar_pfunc, + e_gras_dd_scalar_encoding_uint); - TRYFAIL(gras_datadesc_scalar("float", - gras_ddt_scalar_float, - e_gras_dd_scalar_encoding_float, - &ddt)); - TRYFAIL(gras_datadesc_scalar("double", - gras_ddt_scalar_double, - e_gras_dd_scalar_encoding_float, - &ddt)); - - TRYFAIL(gras_datadesc_array_dyn("char[]", - gras_datadesc_by_name("char"), - _strlen_cb,&ddt)); - TRYFAIL(gras_datadesc_ref("string", - gras_datadesc_by_name("char[]"), - &ddt)); + ddt = gras_datadesc_scalar("float", + gras_ddt_scalar_float, + e_gras_dd_scalar_encoding_float); + ddt = gras_datadesc_scalar("double", + gras_ddt_scalar_double, + e_gras_dd_scalar_encoding_float); + + ddt = gras_datadesc_array_dyn("char[]", + gras_datadesc_by_name("char"), + _strlen_cb); + ddt = gras_datadesc_ref("string",ddt); } @@ -143,27 +122,18 @@ gras_datadesc_init(void) { void gras_datadesc_exit(void) { VERB0("Exiting DataDesc"); - gras_set_free(&gras_datadesc_set_local); - gras_datadesc_set_local = NULL; + xbt_set_free(&gras_datadesc_set_local); DEBUG0("Exited DataDesc"); } -/** - * gras_datadesc_get_name: - * - * Returns the name of a datadescription (to ease the debug) - */ +/** This is mainly to debug */ char * -gras_datadesc_get_name(gras_datadesc_type_t *ddt) { +gras_datadesc_get_name(gras_datadesc_type_t ddt) { return ddt->name; } -/** - * gras_datadesc_get_id: - * - * Returns the name of a datadescription (to ease the debug) - */ +/** This is mainly to debug */ int -gras_datadesc_get_id(gras_datadesc_type_t *ddt) { +gras_datadesc_get_id(gras_datadesc_type_t ddt) { return ddt->code; } @@ -173,7 +143,7 @@ gras_datadesc_get_id(gras_datadesc_type_t *ddt) { * Returns the size occuped by data of this type (on the current arch). * */ -int gras_datadesc_size(gras_datadesc_type_t *type) { +int gras_datadesc_size(gras_datadesc_type_t type) { return type->size[GRAS_THISARCH]; } @@ -182,7 +152,7 @@ int gras_datadesc_size(gras_datadesc_type_t *type) { * * For debugging purpose */ -void gras_datadesc_type_dump(const gras_datadesc_type_t *ddt){ +void gras_datadesc_type_dump(const gras_datadesc_type_t ddt){ int cpt; printf("DataDesc dump:"); @@ -223,11 +193,11 @@ void gras_datadesc_type_dump(const gras_datadesc_type_t *ddt){ } printf ("]\n"); if (ddt->category_code == e_gras_datadesc_type_cat_struct) { - gras_dd_cat_struct_t struct_data; - gras_dd_cat_field_t *field; + gras_dd_cat_struct_t struct_data; + gras_dd_cat_field_t field; struct_data = ddt->category.struct_data; - gras_dynar_foreach(struct_data.fields, cpt, field) { + xbt_dynar_foreach(struct_data.fields, cpt, field) { printf(">>> Dump field #%d (%s) (offset=%ld)\n", cpt,field->name,field->offset[GRAS_THISARCH]); gras_datadesc_type_dump(field->type);