X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Fcommon%2Fmetadata%2Fast.h;h=b2212fff7a87941255389e9500349bcedae0094f;hb=e5be10efe4d5543ba697c7e607ca0a5c33fa3ccb;hp=3ab552aa1966de743ed9b68868d9508581a4c811;hpb=3d9990ac8bcbb870300869ed217b80151b52bf4e;p=babeltrace.git diff --git a/plugins/ctf/common/metadata/ast.h b/plugins/ctf/common/metadata/ast.h index 3ab552aa..b2212fff 100644 --- a/plugins/ctf/common/metadata/ast.h +++ b/plugins/ctf/common/metadata/ast.h @@ -21,9 +21,12 @@ #include #include #include -#include +#include #include +#include "decoder.h" +#include "ctf-meta.h" + // the parameter name (of the reentrant 'yyparse' function) // data is a pointer to a 'SParserParam' structure //#define YYPARSE_PARAM scanner @@ -93,8 +96,8 @@ struct ctf_node { } unknown; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; struct bt_list_head trace; @@ -106,43 +109,43 @@ struct ctf_node { } root; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } event; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } stream; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } env; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } trace; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } clock; struct { /* - * Children nodes are ctf_expression, typedef, - * typealias and type_specifier_list. + * Children nodes are ctf_expression, field_class_def, + * field_class_alias and field_class_specifier_list. */ struct bt_list_head declaration_list; } callsite; @@ -176,22 +179,22 @@ struct ctf_node { } link; } unary_expression; struct { - struct ctf_node *type_specifier_list; - struct bt_list_head type_declarators; - } _typedef; + struct ctf_node *field_class_specifier_list; + struct bt_list_head field_class_declarators; + } field_class_def; /* new type is "alias", existing type "target" */ struct { - struct ctf_node *type_specifier_list; - struct bt_list_head type_declarators; - } typealias_target; + struct ctf_node *field_class_specifier_list; + struct bt_list_head field_class_declarators; + } field_class_alias_target; struct { - struct ctf_node *type_specifier_list; - struct bt_list_head type_declarators; - } typealias_alias; + struct ctf_node *field_class_specifier_list; + struct bt_list_head field_class_declarators; + } field_class_alias_name; struct { struct ctf_node *target; struct ctf_node *alias; - } typealias; + } field_class_alias; struct { enum { TYPESPEC_UNKNOWN = 0, @@ -219,11 +222,11 @@ struct ctf_node { /* For struct, variant and enum */ struct ctf_node *node; const char *id_type; - } type_specifier; + } field_class_specifier; struct { - /* list of type_specifier */ + /* list of field_class_specifier */ struct bt_list_head head; - } type_specifier_list; + } field_class_specifier_list; struct { unsigned int const_qualifier; } pointer; @@ -238,10 +241,10 @@ struct ctf_node { char *id; struct { /* typedec has no pointer list */ - struct ctf_node *type_declarator; + struct ctf_node *field_class_declarator; /* * unary expression (value) or - * type_specifier_list. + * field_class_specifier_list. */ struct bt_list_head length; /* for abstract type declarator */ @@ -249,7 +252,7 @@ struct ctf_node { } nested; } u; struct ctf_node *bitfield_len; - } type_declarator; + } field_class_declarator; struct { /* Children nodes are ctf_expression. */ struct bt_list_head expressions; @@ -274,26 +277,32 @@ struct ctf_node { char *enum_id; /* * Either NULL, or points to unary expression or - * type_specifier_list. + * field_class_specifier_list. */ - struct ctf_node *container_type; + struct ctf_node *container_field_class; struct bt_list_head enumerator_list; int has_body; } _enum; struct { - struct ctf_node *type_specifier_list; - struct bt_list_head type_declarators; + struct ctf_node *field_class_specifier_list; + struct bt_list_head field_class_declarators; } struct_or_variant_declaration; struct { char *name; char *choice; - /* list of typedef, typealias and declarations */ + /* + * list of field_class_def, field_class_alias and + * declarations + */ struct bt_list_head declaration_list; int has_body; } variant; struct { char *name; - /* list of typedef, typealias and declarations */ + /* + * list of field_class_def, field_class_alias and + * declarations + */ struct bt_list_head declaration_list; int has_body; struct bt_list_head min_align; /* align() attribute */ @@ -308,13 +317,18 @@ struct ctf_ast { const char *node_type(struct ctf_node *node); BT_HIDDEN -struct ctf_visitor_generate_ir *ctf_visitor_generate_ir_create(FILE *efd, - uint64_t clock_class_offset_ns); +struct ctf_visitor_generate_ir *ctf_visitor_generate_ir_create( + const struct ctf_metadata_decoder_config *config, + const char *name); void ctf_visitor_generate_ir_destroy(struct ctf_visitor_generate_ir *visitor); BT_HIDDEN -struct bt_ctf_trace *ctf_visitor_generate_ir_get_trace( +struct bt_private_trace *ctf_visitor_generate_ir_get_ir_trace( + struct ctf_visitor_generate_ir *visitor); + +BT_HIDDEN +struct ctf_trace_class *ctf_visitor_generate_ir_borrow_ctf_trace_class( struct ctf_visitor_generate_ir *visitor); BT_HIDDEN @@ -322,9 +336,9 @@ int ctf_visitor_generate_ir_visit_node(struct ctf_visitor_generate_ir *visitor, struct ctf_node *node); BT_HIDDEN -int ctf_visitor_semantic_check(FILE *fd, int depth, struct ctf_node *node); +int ctf_visitor_semantic_check(int depth, struct ctf_node *node); BT_HIDDEN -int ctf_visitor_parent_links(FILE *fd, int depth, struct ctf_node *node); +int ctf_visitor_parent_links(int depth, struct ctf_node *node); #endif /* _CTF_AST_H */