}
static
-int serialize_basic_type(enum lttng_abstract_types atype,
+int serialize_basic_type(enum ustctl_abstract_types *uatype,
+ enum lttng_abstract_types atype,
union _ustctl_basic_type *ubt,
const union _lttng_basic_type *lbt)
{
uit->base = lit->base;
uit->encoding = lit->encoding;
uit->alignment = lit->alignment;
+ *uatype = ustctl_atype_integer;
break;
}
case atype_string:
{
ubt->string.encoding = lbt->string.encoding;
+ *uatype = ustctl_atype_string;
break;
}
case atype_float:
uft->mant_dig = lft->mant_dig;
uft->alignment = lft->alignment;
uft->reverse_byte_order = lft->reverse_byte_order;
+ *uatype = ustctl_atype_float;
break;
}
case atype_enum:
return -EINVAL;
}
return 0;
-
}
static
case atype_integer:
case atype_float:
case atype_string:
- ret = serialize_basic_type(lt->atype,
+ ret = serialize_basic_type(&ut->atype, lt->atype,
&ut->u.basic, <->u.basic);
if (ret)
return ret;
ubt = &ut->u.array.elem_type;
lbt = <->u.array.elem_type;
ut->u.array.length = lt->u.array.length;
- ret = serialize_basic_type(lbt->atype,
+ ret = serialize_basic_type(&ubt->atype, lbt->atype,
&ubt->u.basic, &lbt->u.basic);
if (ret)
return -EINVAL;
+ ut->atype = ustctl_atype_array;
break;
}
case atype_sequence:
ubt = &ut->u.sequence.length_type;
lbt = <->u.sequence.length_type;
- ret = serialize_basic_type(lbt->atype,
+ ret = serialize_basic_type(&ubt->atype, lbt->atype,
&ubt->u.basic, &lbt->u.basic);
if (ret)
return -EINVAL;
ubt = &ut->u.sequence.elem_type;
lbt = <->u.sequence.elem_type;
- ret = serialize_basic_type(lbt->atype,
+ ret = serialize_basic_type(&ubt->atype, lbt->atype,
&ubt->u.basic, &lbt->u.basic);
if (ret)
return -EINVAL;
+ ut->atype = ustctl_atype_sequence;
break;
}
case atype_enum: