fprintf(fp, " (default: payload,context)\n");
fprintf(fp, " -f, --fields name1<,name2,...> Print additional fields:\n");
fprintf(fp, " all, trace, trace:hostname, trace:domain,\n");
- fprintf(fp, " trace:procname, trace:vpid, loglevel.\n");
+ fprintf(fp, " trace:procname, trace:vpid, loglevel, emf.\n");
fprintf(fp, " (default: trace:hostname,trace:procname,trace:vpid)\n");
fprintf(fp, " --clock-cycles Timestamp in cycles\n");
fprintf(fp, " --clock-offset seconds Clock offset in seconds\n");
opt_trace_vpid_field = 1;
else if (!strcmp(str, "loglevel"))
opt_loglevel_field = 1;
+ else if (!strcmp(str, "emf"))
+ opt_emf_field = 1;
else {
fprintf(stderr, "[error] unknown field type %s\n", str);
return -EINVAL;
opt_trace_hostname_field,
opt_trace_default_fields = 1,
opt_loglevel_field,
+ opt_emf_field,
opt_delta_field = 1;
enum field_item {
fprintf(pos->fp, ", ");
dom_print = 1;
}
+ if ((opt_emf_field || opt_all_fields) && event_class->model_emf_uri) {
+ set_field_names_print(pos, ITEM_HEADER);
+ if (pos->print_names) {
+ fprintf(pos->fp, "model.emf.uri = ");
+ } else if (dom_print) {
+ fprintf(pos->fp, ":");
+ }
+ fprintf(pos->fp, "%s",
+ g_quark_to_string(event_class->model_emf_uri));
+ if (pos->print_names)
+ fprintf(pos->fp, ", ");
+ dom_print = 1;
+ }
if (dom_print && !pos->print_names)
fprintf(pos->fp, " ");
set_field_names_print(pos, ITEM_HEADER);
}
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 */
opt_trace_hostname_field,
opt_trace_default_fields,
opt_loglevel_field,
+ opt_emf_field,
opt_delta_field,
opt_clock_cycles,
opt_clock_seconds,
uint64_t id; /* Numeric identifier within the stream */
uint64_t stream_id;
int loglevel;
+ GQuark model_emf_uri;
enum { /* Fields populated mask */
CTF_EVENT_name = (1 << 0),
CTF_EVENT_id = (1 << 1),
CTF_EVENT_stream_id = (1 << 2),
CTF_EVENT_loglevel = (1 << 4),
+ CTF_EVENT_model_emf_uri = (1 << 5),
} field_mask;
};