X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=include%2Fbabeltrace%2Ftypes.h;h=5523eb42987adcc7af24a6e3fe2702109f835269;hp=da9ca5c5faeabef771f70fcadf5e57599ffc209a;hb=620961f6401b2ccf70979dd758204f8a9fa3912d;hpb=81dee1bb528a95f7bf2bc622948807150794a75e diff --git a/include/babeltrace/types.h b/include/babeltrace/types.h index da9ca5c5..5523eb42 100644 --- a/include/babeltrace/types.h +++ b/include/babeltrace/types.h @@ -105,6 +105,7 @@ struct definition { GQuark name; /* Field name in its container (or 0 if unset) */ int ref; /* number of references to the definition */ GQuark path; + struct definition_scope *scope; }; typedef int (*rw_dispatch)(struct stream_pos *pos, @@ -175,7 +176,6 @@ struct definition_float { struct definition_integer *sign; struct definition_integer *mantissa; struct definition_integer *exp; - struct definition_scope *scope; /* Last values read */ long double value; }; @@ -228,7 +228,6 @@ struct definition_enum { struct definition p; struct definition_integer *integer; struct declaration_enum *declaration; - struct definition_scope *scope; /* Last GQuark values read. Keeping a reference on the GQuark array. */ GArray *value; }; @@ -260,7 +259,6 @@ struct declaration_struct { struct definition_struct { struct definition p; struct declaration_struct *declaration; - struct definition_scope *scope; GPtrArray *fields; /* Array of pointers to struct definition */ }; @@ -281,7 +279,6 @@ struct declaration_variant { struct definition_variant { struct definition p; struct declaration_variant *declaration; - struct definition_scope *scope; struct definition *enum_tag; GPtrArray *fields; /* Array of pointers to struct definition */ struct definition *current_field; /* Last field read */ @@ -297,7 +294,6 @@ struct declaration_array { struct definition_array { struct definition p; struct declaration_array *declaration; - struct definition_scope *scope; GPtrArray *elems; /* Array of pointers to struct definition */ GString *string; /* String for encoded integer children */ }; @@ -312,7 +308,6 @@ struct declaration_sequence { struct definition_sequence { struct definition p; struct declaration_sequence *declaration; - struct definition_scope *scope; struct definition_integer *length; GPtrArray *elems; /* Array of pointers to struct definition */ GString *string; /* String for encoded integer children */ @@ -357,9 +352,9 @@ void free_declaration_scope(struct declaration_scope *scope); * definition scopes. */ struct definition * - lookup_definition(GArray *cur_path, /* array of GQuark */ - GArray *lookup_path, /* array of GQuark */ - struct definition_scope *scope); + lookup_path_definition(GArray *cur_path, /* array of GQuark */ + GArray *lookup_path, /* array of GQuark */ + struct definition_scope *scope); int register_field_definition(GQuark field_name, struct definition *definition, struct definition_scope *scope); @@ -412,7 +407,7 @@ GArray *enum_uint_to_quark_set(const struct declaration_enum *enum_declaration, * Caller must release the GArray with g_array_unref(). */ GArray *enum_int_to_quark_set(const struct declaration_enum *enum_declaration, - uint64_t v); + int64_t v); /* * Returns a GArray of struct enum_range or NULL. @@ -514,4 +509,18 @@ int sequence_rw(struct stream_pos *pos, struct definition *definition); */ void append_scope_path(const char *path, GArray *q); +/* + * Lookup helpers. + */ +struct definition *lookup_definition(struct definition *definition, + const char *field_name); +struct definition_integer *lookup_integer(struct definition *definition, + const char *field_name, + int signedness); +struct definition_enum *lookup_enum(struct definition *definition, + const char *field_name, + int signedness); +struct definition *lookup_variant(struct definition *definition, + const char *field_name); + #endif /* _BABELTRACE_TYPES_H */