From: Philippe Proulx Date: Sat, 12 Sep 2015 03:24:54 +0000 (-0400) Subject: Store "tracer_name" from the trace's environment X-Git-Tag: v1.4.0-rc1~85 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=4c624781260fac44edf38ebfd63aee200c889cd6;hp=bac09c442e3ca429d72b4770deabd14b3a278956 Store "tracer_name" from the trace's environment Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- 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 {