From 4c624781260fac44edf38ebfd63aee200c889cd6 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Fri, 11 Sep 2015 23:24:54 -0400 Subject: [PATCH] Store "tracer_name" from the trace's environment MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- .../metadata/ctf-visitor-generate-io-struct.c | 16 ++++++++++++++++ include/babeltrace/ctf-ir/metadata.h | 1 + 2 files changed, 17 insertions(+) diff --git a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c index 4b171984..3b2fc782 100644 --- a/formats/ctf/metadata/ctf-visitor-generate-io-struct.c +++ b/formats/ctf/metadata/ctf-visitor-generate-io-struct.c @@ -2792,6 +2792,22 @@ int ctf_env_declaration_visit(FILE *fd, int depth, struct ctf_node *node, env->domain[TRACER_ENV_LEN - 1] = '\0'; printf_verbose("env.domain = \"%s\"\n", env->domain); g_free(right); + } else if (!strcmp(left, "tracer_name")) { + char *right; + + if (env->tracer_name[0]) { + fprintf(fd, "[warning] %s: duplicated env tracer_name\n", __func__); + goto error; /* ret is 0, so not an actual error, just warn. */ + } + right = concatenate_unary_strings(&node->u.ctf_expression.right); + if (!right) { + fprintf(fd, "[warning] %s: unexpected unary expression for env tracer_name\n", __func__); + goto error; /* ret is 0, so not an actual error, just warn. */ + } + strncpy(env->tracer_name, right, TRACER_ENV_LEN); + env->tracer_name[TRACER_ENV_LEN - 1] = '\0'; + printf_verbose("env.tracer_name = \"%s\"\n", env->tracer_name); + g_free(right); } else if (!strcmp(left, "sysname")) { char *right; diff --git a/include/babeltrace/ctf-ir/metadata.h b/include/babeltrace/ctf-ir/metadata.h index bc685801..0e16f621 100644 --- a/include/babeltrace/ctf-ir/metadata.h +++ b/include/babeltrace/ctf-ir/metadata.h @@ -184,6 +184,7 @@ struct ctf_tracer_env { char sysname[TRACER_ENV_LEN]; char release[TRACER_ENV_LEN]; char version[TRACER_ENV_LEN]; + char tracer_name[TRACER_ENV_LEN]; }; struct ctf_trace { -- 2.34.1