Fix: Allow 64-bit packet offset
[babeltrace.git] / formats / ctf / metadata / ctf-visitor-generate-io-struct.c
index 43fdcb22442386cace3e60553842e3b5c7eabd82..af75788aa92dedfd9794ea9b2f80473330e23cca 100644 (file)
@@ -1741,6 +1741,23 @@ int ctf_event_declaration_visit(FILE *fd, int depth, struct ctf_node *node, stru
                        }
                        event->loglevel = (int) loglevel;
                        CTF_EVENT_SET_FIELD(event, loglevel);
+               } else if (!strcmp(left, "model.emf.uri")) {
+                       char *right;
+
+                       if (CTF_EVENT_FIELD_IS_SET(event, model_emf_uri)) {
+                               fprintf(fd, "[error] %s: model.emf.uri 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 model.emf.uri\n", __func__);
+                               ret = -EINVAL;
+                               goto error;
+                       }
+                       event->model_emf_uri = g_quark_from_string(right);
+                       g_free(right);
+                       CTF_EVENT_SET_FIELD(event, model_emf_uri);
                } else {
                        fprintf(fd, "[warning] %s: attribute \"%s\" is unknown in event declaration.\n", __func__, left);
                        /* Fall-through after warning */
@@ -2458,6 +2475,21 @@ int ctf_env_declaration_visit(FILE *fd, int depth, struct ctf_node *node,
                        strncpy(env->procname, right, TRACER_ENV_LEN);
                        env->procname[TRACER_ENV_LEN - 1] = '\0';
                        printf_verbose("env.procname = \"%s\"\n", env->procname);
+               } else if (!strcmp(left, "hostname")) {
+                       char *right;
+
+                       if (env->hostname[0]) {
+                               fprintf(fd, "[warning] %s: duplicated env hostname\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 hostname\n", __func__);
+                               goto error;     /* ret is 0, so not an actual error, just warn. */
+                       }
+                       strncpy(env->hostname, right, TRACER_ENV_LEN);
+                       env->hostname[TRACER_ENV_LEN - 1] = '\0';
+                       printf_verbose("env.hostname = \"%s\"\n", env->hostname);
                } else if (!strcmp(left, "domain")) {
                        char *right;
 
@@ -2562,6 +2594,7 @@ int ctf_env_visit(FILE *fd, int depth, struct ctf_node *node, struct ctf_trace *
 
        trace->env.vpid = -1;
        trace->env.procname[0] = '\0';
+       trace->env.hostname[0] = '\0';
        trace->env.domain[0] = '\0';
        trace->env.sysname[0] = '\0';
        trace->env.release[0] = '\0';
This page took 0.023479 seconds and 4 git commands to generate.