X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Ftypes.h;h=b4198c8f8b7c01017c79a4ab27c38899c64a89ba;hb=f3985ab106d89d8e764c1a8dd0c8bda09b755d10;hp=b32d2a41582e03f3c66ac1aad19fbcf6d4e554c5;hpb=8099326b3438eb003bf3f9849ad1b3cd1f0d618c;p=babeltrace.git diff --git a/include/babeltrace/types.h b/include/babeltrace/types.h index b32d2a41..b4198c8f 100644 --- a/include/babeltrace/types.h +++ b/include/babeltrace/types.h @@ -79,7 +79,7 @@ struct definition_scope { }; struct bt_declaration { - enum ctf_type_id id; + enum bt_ctf_type_id id; size_t alignment; /* type alignment, in bits */ int ref; /* number of references to the type */ /* @@ -125,7 +125,7 @@ struct bt_stream_pos { static inline int generic_rw(struct bt_stream_pos *pos, struct bt_definition *definition) { - enum ctf_type_id dispatch_id = definition->declaration->id; + enum bt_ctf_type_id dispatch_id = definition->declaration->id; rw_dispatch call; assert(pos->rw_table[dispatch_id] != NULL); @@ -141,13 +141,17 @@ int generic_rw(struct bt_stream_pos *pos, struct bt_definition *definition) struct declaration_integer { struct bt_declaration p; size_t len; /* length, in bits. */ - int byte_order; /* byte order */ + int byte_order; /* LITTLE_ENDIAN/BIG_ENDIAN, 0 == "Native" */ int signedness; int base; /* Base for pretty-printing: 2, 8, 10, 16 */ enum ctf_string_encoding encoding; struct ctf_clock *clock; }; +#ifdef ENABLE_DEBUG_INFO +struct debug_info_source; +#endif + struct definition_integer { struct bt_definition p; struct declaration_integer *declaration; @@ -156,6 +160,17 @@ struct definition_integer { uint64_t _unsigned; int64_t _signed; } value; + +#ifdef ENABLE_DEBUG_INFO + /* + * Debug infos (NULL if not set). + * + * This is extended debug informations set by the CTF input plugin + * itself when available. If it's set, then this integer definition + * is the "_ip" field of the stream event context. + */ + struct debug_info_source *debug_info_src; +#endif }; struct declaration_float { @@ -163,7 +178,7 @@ struct declaration_float { struct declaration_integer *sign; struct declaration_integer *mantissa; struct declaration_integer *exp; - int byte_order; + int byte_order; /* LITTLE_ENDIAN/BIG_ENDIAN, 0 == "Native" */ /* TODO: we might want to express more info about NaN, +inf and -inf */ }; @@ -527,6 +542,8 @@ void bt_append_scope_path(const char *path, GArray *q); */ struct bt_definition *bt_lookup_definition(const struct bt_definition *definition, const char *field_name); +struct bt_definition *bt_lookup_definition_by_quark(const struct bt_definition *definition, + GQuark quark); struct definition_integer *bt_lookup_integer(const struct bt_definition *definition, const char *field_name, int signedness);