+
+ ret = serialize_fields(session, fields, iter_output,
+ lt->u.struct_nestable.nr_fields,
+ lt->u.struct_nestable.fields);
+ if (ret)
+ return -EINVAL;
+ break;
+ }
+ case atype_enum_nestable:
+ {
+ struct ustctl_field *uf = &fields[*iter_output];
+ struct ustctl_type *ut = &uf->type;
+
+ if (field_name) {
+ strncpy(uf->name, field_name, LTTNG_UST_SYM_NAME_LEN);
+ uf->name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
+ } else {
+ uf->name[0] = '\0';
+ }
+ strncpy(ut->u.enum_nestable.name, lt->u.enum_nestable.desc->name,
+ LTTNG_UST_SYM_NAME_LEN);
+ ut->u.enum_nestable.name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0';
+ ut->atype = ustctl_atype_enum_nestable;
+ (*iter_output)++;
+
+ ret = serialize_one_type(session, fields, iter_output, NULL,
+ lt->u.enum_nestable.container_type);
+ if (ret)
+ return -EINVAL;
+ if (session) {
+ const struct lttng_enum *_enum;
+
+ _enum = lttng_ust_enum_get_from_desc(session, lt->u.enum_nestable.desc);
+ if (!_enum)
+ return -EINVAL;
+ ut->u.enum_nestable.id = _enum->id;
+ } else {
+ ut->u.enum_nestable.id = -1ULL;
+ }