X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fmetadata%2Fctf-visitor-xml.c;h=fca77046003a5c004857ef354ecee135dea6b886;hb=f3985ab106d89d8e764c1a8dd0c8bda09b755d10;hp=56974c382f70e07a4a1781467856decd14fd7d54;hpb=70bd0a12b09ce7f233189cf07e090fda593ebc48;p=babeltrace.git diff --git a/formats/ctf/metadata/ctf-visitor-xml.c b/formats/ctf/metadata/ctf-visitor-xml.c index 56974c38..fca77046 100644 --- a/formats/ctf/metadata/ctf-visitor-xml.c +++ b/formats/ctf/metadata/ctf-visitor-xml.c @@ -14,6 +14,14 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ #include @@ -96,16 +104,6 @@ int ctf_visitor_print_unary_expression(FILE *fd, int depth, struct ctf_node *nod print_tabs(fd, depth); fprintf(fd, "\n"); break; - case UNARY_NESTED: - print_tabs(fd, depth); - fprintf(fd, "\n"); - ret = ctf_visitor_print_unary_expression(fd, depth + 1, - node->u.unary_expression.u.nested_exp); - if (ret) - return ret; - print_tabs(fd, depth); - fprintf(fd, "\n"); - break; case UNARY_UNKNOWN: default: @@ -124,7 +122,7 @@ int ctf_visitor_print_type_specifier_list(FILE *fd, int depth, struct ctf_node * print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.type_specifier_list.head, siblings) { + bt_list_for_each_entry(iter, &node->u.type_specifier_list.head, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -280,10 +278,10 @@ int ctf_visitor_print_type_declarator(FILE *fd, int depth, struct ctf_node *node fprintf(fd, "\n"); depth++; - if (!cds_list_empty(&node->u.type_declarator.pointers)) { + if (!bt_list_empty(&node->u.type_declarator.pointers)) { print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.type_declarator.pointers, + bt_list_for_each_entry(iter, &node->u.type_declarator.pointers, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) @@ -318,10 +316,10 @@ int ctf_visitor_print_type_declarator(FILE *fd, int depth, struct ctf_node *node fprintf(fd, "\n"); print_tabs(fd, depth); fprintf(fd, "\n"); - } else if (!cds_list_empty(&node->u.type_declarator.u.nested.length)) { + } else if (!bt_list_empty(&node->u.type_declarator.u.nested.length)) { print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.type_declarator.u.nested.length, + bt_list_for_each_entry(iter, &node->u.type_declarator.u.nested.length, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) @@ -359,27 +357,30 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) int ret = 0; struct ctf_node *iter; + if (node->visited) + return 0; + switch (node->type) { case NODE_ROOT: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.root.declaration_list, + bt_list_for_each_entry(iter, &node->u.root.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; } - cds_list_for_each_entry(iter, &node->u.root.trace, siblings) { + bt_list_for_each_entry(iter, &node->u.root.trace, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; } - cds_list_for_each_entry(iter, &node->u.root.stream, siblings) { + bt_list_for_each_entry(iter, &node->u.root.stream, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; } - cds_list_for_each_entry(iter, &node->u.root.event, siblings) { + bt_list_for_each_entry(iter, &node->u.root.event, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -391,7 +392,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) case NODE_EVENT: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.event.declaration_list, siblings) { + bt_list_for_each_entry(iter, &node->u.event.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -402,7 +403,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) case NODE_STREAM: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.stream.declaration_list, siblings) { + bt_list_for_each_entry(iter, &node->u.stream.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -410,10 +411,21 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); break; + case NODE_ENV: + print_tabs(fd, depth); + fprintf(fd, "\n"); + bt_list_for_each_entry(iter, &node->u.env.declaration_list, siblings) { + ret = ctf_visitor_print_xml(fd, depth + 1, iter); + if (ret) + return ret; + } + print_tabs(fd, depth); + fprintf(fd, "\n"); + break; case NODE_TRACE: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.trace.declaration_list, siblings) { + bt_list_for_each_entry(iter, &node->u.trace.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -421,6 +433,29 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); break; + case NODE_CLOCK: + print_tabs(fd, depth); + fprintf(fd, "\n"); + bt_list_for_each_entry(iter, &node->u.clock.declaration_list, siblings) { + ret = ctf_visitor_print_xml(fd, depth + 1, iter); + if (ret) + return ret; + } + print_tabs(fd, depth); + fprintf(fd, "\n"); + break; + case NODE_CALLSITE: + print_tabs(fd, depth); + fprintf(fd, "\n"); + bt_list_for_each_entry(iter, &node->u.callsite.declaration_list, siblings) { + ret = ctf_visitor_print_xml(fd, depth + 1, iter); + if (ret) + return ret; + } + print_tabs(fd, depth); + fprintf(fd, "\n"); + break; + case NODE_CTF_EXPRESSION: print_tabs(fd, depth); @@ -428,7 +463,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) depth++; print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.ctf_expression.left, siblings) { + bt_list_for_each_entry(iter, &node->u.ctf_expression.left, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -439,7 +474,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.ctf_expression.right, siblings) { + bt_list_for_each_entry(iter, &node->u.ctf_expression.right, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -463,7 +498,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u._typedef.type_declarators, siblings) { + bt_list_for_each_entry(iter, &node->u._typedef.type_declarators, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -485,7 +520,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.typealias_target.type_declarators, siblings) { + bt_list_for_each_entry(iter, &node->u.typealias_target.type_declarators, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -508,7 +543,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.typealias_alias.type_declarators, siblings) { + bt_list_for_each_entry(iter, &node->u.typealias_alias.type_declarators, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -560,7 +595,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) case NODE_FLOATING_POINT: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.floating_point.expressions, siblings) { + bt_list_for_each_entry(iter, &node->u.floating_point.expressions, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -571,7 +606,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) case NODE_INTEGER: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.integer.expressions, siblings) { + bt_list_for_each_entry(iter, &node->u.integer.expressions, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -582,7 +617,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) case NODE_STRING: print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.string.expressions, siblings) { + bt_list_for_each_entry(iter, &node->u.string.expressions, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -596,7 +631,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) if (node->u.enumerator.id) fprintf(fd, " id=\"%s\"", node->u.enumerator.id); fprintf(fd, ">\n"); - cds_list_for_each_entry(iter, &node->u.enumerator.values, siblings) { + bt_list_for_each_entry(iter, &node->u.enumerator.values, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -625,7 +660,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u._enum.enumerator_list, siblings) { + bt_list_for_each_entry(iter, &node->u._enum.enumerator_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -645,7 +680,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u.struct_or_variant_declaration.type_declarators, siblings) { + bt_list_for_each_entry(iter, &node->u.struct_or_variant_declaration.type_declarators, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -661,7 +696,7 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) if (node->u.variant.choice) fprintf(fd, " choice=\"%s\"", node->u.variant.choice); fprintf(fd, ">\n"); - cds_list_for_each_entry(iter, &node->u.variant.declaration_list, siblings) { + bt_list_for_each_entry(iter, &node->u.variant.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; @@ -676,17 +711,17 @@ int ctf_visitor_print_xml(FILE *fd, int depth, struct ctf_node *node) node->u._struct.name); else fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u._struct.declaration_list, siblings) { + bt_list_for_each_entry(iter, &node->u._struct.declaration_list, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret; } print_tabs(fd, depth); fprintf(fd, "\n"); - if (!cds_list_empty(&node->u._struct.min_align)) { + if (!bt_list_empty(&node->u._struct.min_align)) { print_tabs(fd, depth); fprintf(fd, "\n"); - cds_list_for_each_entry(iter, &node->u._struct.min_align, siblings) { + bt_list_for_each_entry(iter, &node->u._struct.min_align, siblings) { ret = ctf_visitor_print_xml(fd, depth + 1, iter); if (ret) return ret;