From 306eeaa621ff1e69d8b0fcabd71560f62c16c46a Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 1 Feb 2012 18:24:56 -0500 Subject: [PATCH] Show loglevel information only with value Signed-off-by: Mathieu Desnoyers --- formats/ctf-text/ctf-text.c | 7 ++--- .../metadata/ctf-visitor-generate-io-struct.c | 31 ++++++------------- include/babeltrace/ctf-ir/metadata.h | 6 ++-- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/formats/ctf-text/ctf-text.c b/formats/ctf-text/ctf-text.c index 83f0cf9c..150cf3a5 100644 --- a/formats/ctf-text/ctf-text.c +++ b/formats/ctf-text/ctf-text.c @@ -282,16 +282,15 @@ int ctf_text_write_event(struct stream_pos *ppos, fprintf(pos->fp, ", "); dom_print = 1; } - if ((opt_loglevel_field || opt_all_fields) && event_class->loglevel_identifier != 0) { + if ((opt_loglevel_field || opt_all_fields) && event_class->loglevel != -1) { set_field_names_print(pos, ITEM_HEADER); if (pos->print_names) { fprintf(pos->fp, "loglevel = "); } else if (dom_print) { fprintf(pos->fp, ":"); } - fprintf(pos->fp, "%s (%lld)", - g_quark_to_string(event_class->loglevel_identifier), - (long long) event_class->loglevel_value); + fprintf(pos->fp, "(%d)", + event_class->loglevel); if (pos->print_names) fprintf(pos->fp, ", "); dom_print = 1; diff --git a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c index 31e55f42..6a8e1ab6 100644 --- a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c +++ b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c @@ -1649,36 +1649,22 @@ int ctf_event_declaration_visit(FILE *fd, int depth, struct ctf_node *node, stru goto error; } event->fields_decl = container_of(declaration, struct declaration_struct, p); - } else if (!strcmp(left, "loglevel.identifier")) { - char *right; + } else if (!strcmp(left, "loglevel")) { + int64_t loglevel = -1; - if (CTF_EVENT_FIELD_IS_SET(event, loglevel_identifier)) { - fprintf(fd, "[error] %s: identifier already declared in event declaration\n", __func__); - ret = -EPERM; - goto error; - } - right = concatenate_unary_strings(&node->u.ctf_expression.right); - if (!right) { - fprintf(fd, "[error] %s: unexpected unary expression for event identifier\n", __func__); - ret = -EINVAL; - goto error; - } - event->loglevel_identifier = g_quark_from_string(right); - g_free(right); - CTF_EVENT_SET_FIELD(event, loglevel_identifier); - } else if (!strcmp(left, "loglevel.value")) { - if (CTF_EVENT_FIELD_IS_SET(event, loglevel_value)) { - fprintf(fd, "[error] %s: loglevel value already declared in event declaration\n", __func__); + if (CTF_EVENT_FIELD_IS_SET(event, loglevel)) { + fprintf(fd, "[error] %s: loglevel already declared in event declaration\n", __func__); ret = -EPERM; goto error; } - ret = get_unary_signed(&node->u.ctf_expression.right, &event->loglevel_value); + ret = get_unary_signed(&node->u.ctf_expression.right, &loglevel); + event->loglevel = (int) loglevel; if (ret) { - fprintf(fd, "[error] %s: unexpected unary expression for event loglevel value\n", __func__); + fprintf(fd, "[error] %s: unexpected unary expression for event loglevel\n", __func__); ret = -EINVAL; goto error; } - CTF_EVENT_SET_FIELD(event, loglevel_value); + CTF_EVENT_SET_FIELD(event, loglevel); } else { fprintf(fd, "[warning] %s: attribute \"%s\" is unknown in event declaration.\n", __func__, left); /* Fall-through after warning */ @@ -1705,6 +1691,7 @@ int ctf_event_visit(FILE *fd, int depth, struct ctf_node *node, event = g_new0(struct ctf_event, 1); event->declaration_scope = new_declaration_scope(parent_declaration_scope); + event->loglevel = -1; cds_list_for_each_entry(iter, &node->u.event.declaration_list, siblings) { ret = ctf_event_declaration_visit(fd, depth + 1, iter, event, trace); if (ret) diff --git a/include/babeltrace/ctf-ir/metadata.h b/include/babeltrace/ctf-ir/metadata.h index ad40e03e..dde51bb4 100644 --- a/include/babeltrace/ctf-ir/metadata.h +++ b/include/babeltrace/ctf-ir/metadata.h @@ -212,15 +212,13 @@ struct ctf_event { GQuark name; uint64_t id; /* Numeric identifier within the stream */ uint64_t stream_id; - GQuark loglevel_identifier; - int64_t loglevel_value; + int loglevel; enum { /* Fields populated mask */ CTF_EVENT_name = (1 << 0), CTF_EVENT_id = (1 << 1), CTF_EVENT_stream_id = (1 << 2), - CTF_EVENT_loglevel_identifier = (1 << 3), - CTF_EVENT_loglevel_value = (1 << 4), + CTF_EVENT_loglevel = (1 << 4), } field_mask; }; -- 2.34.1