+ BT_LOGV("Set integer field type's signedness: addr=%p, is-signed=%d",
+ type, is_signed);
+end:
+ return ret;
+}
+
+int bt_ctf_field_type_integer_set_size(struct bt_ctf_field_type *type,
+ unsigned int size)
+{
+ int ret = 0;
+ struct bt_ctf_field_type_integer *integer;
+
+ if (!type) {
+ BT_LOGW_STR("Invalid parameter: field type is NULL.");
+ ret = -1;
+ goto end;
+ }
+
+ if (type->frozen) {
+ BT_LOGW("Invalid parameter: field type is frozen: addr=%p",
+ type);
+ ret = -1;
+ goto end;
+ }
+
+ if (type->id != BT_CTF_FIELD_TYPE_ID_INTEGER) {
+ BT_LOGW("Invalid parameter: field type is not an integer field type: "
+ "addr=%p, ft-id=%s", type,
+ bt_ctf_field_type_id_string(type->id));
+ ret = -1;
+ goto end;
+ }
+
+ if (size == 0 || size > 64) {
+ BT_LOGW("Invalid parameter: size must be between 1 and 64: "
+ "addr=%p, size=%u", type, size);
+ ret = -1;
+ goto end;
+ }
+
+ integer = container_of(type, struct bt_ctf_field_type_integer, parent);
+ integer->size = size;
+ BT_LOGV("Set integer field type's size: addr=%p, size=%u",
+ type, size);