+ } else if (fc->type == FS_SINK_CTF_FIELD_CLASS_TYPE_OPTION) {
+ struct fs_sink_ctf_field_class_option *opt_fc =
+ (void *) fc;
+
+ /*
+ * CTF 1.8 does not support the option field
+ * class type. To write something anyway, this
+ * component translates this type to a variant
+ * field class where the options are:
+ *
+ * * An empty structure field class.
+ * * The optional field class itself.
+ *
+ * The "tag" is always generated/before in that
+ * case (an 8-bit unsigned enumeration field
+ * class).
+ */
+ append_indent(ctx);
+ g_string_append(ctx->tsdl,
+ "/* The enumeration and variant field classes "
+ "below were a trace IR option field class. */\n");
+ append_indent(ctx);
+ g_string_append(ctx->tsdl, "enum : ");
+ append_integer_field_class_from_props(ctx,
+ 8, 8, false,
+ BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL,
+ NULL, NULL, false);
+ g_string_append(ctx->tsdl, " {\n");
+ ctx->indent_level++;
+ append_indent(ctx);
+ g_string_append(ctx->tsdl, "none = 0,\n");
+ append_indent(ctx);
+ g_string_append(ctx->tsdl, "content = 1,\n");
+ append_end_block(ctx);
+ g_string_append_printf(ctx->tsdl, " %s;\n",
+ opt_fc->tag_ref->str);