X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1b2e70eb620dda84721dd3b5b8c9d60ca0ae4ce..2d16ebcee6bde01575b4cd88a853e1ac1c2532bf:/src/gras/DataDesc/datadesc_private.h diff --git a/src/gras/DataDesc/datadesc_private.h b/src/gras/DataDesc/datadesc_private.h deleted file mode 100644 index 7d678e370e..0000000000 --- a/src/gras/DataDesc/datadesc_private.h +++ /dev/null @@ -1,229 +0,0 @@ -/* $Id$ */ - -/* datadesc_private - declarations visible only from within datadesc */ - -/* Authors: Olivier Aumage, Martin Quinson */ -/* Copyright (C) 2003, 2004 the GRAS posse. */ - -/* 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. */ - -#ifndef GRAS_DATADESC_PRIVATE_H -#define GRAS_DATADESC_PRIVATE_H - -#include "gras_private.h" -#include "DataDesc/datadesc_interface.h" - -#define aligned(v, a) (((v) + (a - 1)) & ~(a - 1)) - - - -/**********************************************************/ -/* Actual definitions of the stuff in the type descriptor */ -/**********************************************************/ - -/** - * e_gras_datadesc_type_category: - * - * Defines all possible type categories - */ -typedef enum e_gras_datadesc_type_category { - e_gras_datadesc_type_cat_undefined = 0, - - e_gras_datadesc_type_cat_scalar, - e_gras_datadesc_type_cat_struct, - e_gras_datadesc_type_cat_union, - e_gras_datadesc_type_cat_ref, /* ref to an uniq element */ - e_gras_datadesc_type_cat_array, - e_gras_datadesc_type_cat_ignored, - - e_gras_datadesc_type_cat_invalid -} gras_datadesc_type_category_t; - - -/*------------------------------------------------*/ -/* definitions of specific data for each category */ -/*------------------------------------------------*/ -/** - * s_gras_dd_cat_field: - * - * Fields of struct and union - */ -typedef struct s_gras_dd_cat_field { - - char *name; - long int offset; /* only for struct */ - int code; - - gras_datadesc_type_cb_void_t pre; - gras_datadesc_type_cb_void_t post; - -} gras_dd_cat_field_t; -void gras_dd_cat_field_free(void *f); - -/** - * gras_dd_cat_scalar_t: - * - * Specific fields of a scalar - */ -enum e_gras_dd_scalar_encoding { - e_gras_dd_scalar_encoding_undefined = 0, - - e_gras_dd_scalar_encoding_uint, - e_gras_dd_scalar_encoding_sint, - e_gras_dd_scalar_encoding_float, - - e_gras_dd_scalar_encoding_invalid -}; -typedef struct s_gras_dd_cat_scalar { - enum e_gras_dd_scalar_encoding encoding; -} gras_dd_cat_scalar_t; - -/** - * gras_dd_cat_struct_t: - * - * Specific fields of a struct - */ -typedef struct s_gras_dd_cat_struct { - gras_dynar_t *fields; /* elm type = gras_dd_cat_struct_field_t */ -} gras_dd_cat_struct_t; - -/** - * gras_dd_cat_union_t: - * - * Specific fields of a union - */ -typedef struct s_gras_dd_cat_union { - gras_datadesc_type_cb_int_t field_count; - gras_dynar_t *fields; /* elm type = gras_dd_cat_union_field_t */ -} gras_dd_cat_union_t; - -/** - * gras_dd_cat_ref_t: - * - * Specific fields of a reference - */ -typedef struct s_gras_dd_cat_ref { - int code; - - /* callback used to return the referenced type number */ - gras_datadesc_type_cb_int_t discriminant; -} gras_dd_cat_ref_t; - - -/** - * gras_dd_cat_array_t: - * - * Specific fields of an array - */ -typedef struct s_gras_dd_cat_array { - int code; - - /* element_count < 0 means dynamically defined */ - long int fixed_size; - - /* callback used to return the dynamic length */ - gras_datadesc_type_cb_int_t dynamic_size; -} gras_dd_cat_array_t; - -/** - * gras_dd_cat_ignored_t: - * - * Specific fields of an ignored field - */ -typedef struct s_gras_dd_cat_ignored { - void *default_value; -} gras_dd_cat_ignored_t; - - -/** - * u_gras_datadesc_category: - * - * Specific data to each possible category - */ -union u_gras_datadesc_category { - void *undefined_data; - gras_dd_cat_scalar_t scalar_data; - gras_dd_cat_struct_t struct_data; - gras_dd_cat_union_t union_data; - gras_dd_cat_ref_t ref_data; - gras_dd_cat_array_t array_data; - gras_dd_cat_ignored_t ignored_data; -}; - - -/****************************************/ -/* The holy grail: type descriptor type */ -/****************************************/ -/** - * s_gras_datadesc_type: - * - * Type descriptor. - */ -struct s_gras_datadesc_type { - /* headers for the data set */ - unsigned int code; - char *name; - unsigned int name_len; - - /* payload */ - long int size; - - long int alignment; - long int aligned_size; - - enum e_gras_datadesc_type_category category_code; - union u_gras_datadesc_category category; - - gras_datadesc_type_cb_void_t pre; - gras_datadesc_type_cb_void_t post; -}; - -/*************************** - * Type creation functions * - ***************************/ -gras_error_t -gras_ddt_new_scalar(const char *name, - long int size, - enum e_gras_dd_scalar_encoding encoding, - gras_datadesc_type_cb_void_t cb, - gras_datadesc_type_t **dst); -gras_error_t -gras_ddt_new_struct(const char *name, - gras_datadesc_type_cb_void_t pre, - gras_datadesc_type_cb_void_t post, - gras_datadesc_type_t **dst); -gras_error_t -gras_ddt_new_struct_append(gras_datadesc_type_t *struct_type, - const char *name, - gras_datadesc_type_t *field_type, - gras_datadesc_type_cb_void_t pre, - gras_datadesc_type_cb_void_t post); -gras_error_t -gras_ddt_new_union(const char *name, - gras_datadesc_type_cb_int_t field_count, - gras_datadesc_type_cb_void_t post, - gras_datadesc_type_t **dst); -gras_error_t -gras_ddt_new_union_append(gras_datadesc_type_t *union_type, - const char *name, - gras_datadesc_type_t *field_type, - gras_datadesc_type_cb_void_t pre, - gras_datadesc_type_cb_void_t post); -gras_error_t -gras_ddt_new_ref(const char *name, - gras_datadesc_type_t *referenced_type, - gras_datadesc_type_cb_int_t discriminant, - gras_datadesc_type_cb_void_t post, - gras_datadesc_type_t **dst); -gras_error_t -gras_ddt_new_array(const char *name, - gras_datadesc_type_t *element_type, - long int fixed_size, - gras_datadesc_type_cb_int_t dynamic_size, - gras_datadesc_type_cb_void_t post, - gras_datadesc_type_t **dst); - - - -#endif /* GRAS_DATADESC_PRIVATE_H */