}
BT_LOGD_STR("Creating trace object.");
- trace->native_byte_order = BT_CTF_BYTE_ORDER_NONE;
+ trace->native_byte_order = BT_CTF_BYTE_ORDER_UNSPECIFIED;
bt_object_init(trace, bt_ctf_trace_destroy);
trace->clocks = g_ptr_array_new_with_free_func(
(GDestroyNotify) bt_put);
goto end;
}
- memcpy(trace->uuid, uuid, sizeof(uuid_t));
+ memcpy(trace->uuid, uuid, BABELTRACE_UUID_LEN);
trace->uuid_set = BT_TRUE;
BT_LOGV("Set trace's UUID: addr=%p, name=\"%s\", "
"uuid=\"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\"",
BT_PUT(field_type);
}
+ /*
+ * If there's a `packet_seq_num` field, it must be an unsigned
+ * integer field type.
+ */
+ field_type = bt_ctf_field_type_structure_get_field_type_by_name(
+ packet_header_type, "packet_seq_num");
+ if (field_type) {
+ if (!bt_ctf_field_type_is_integer(field_type)) {
+ BT_LOGW("Invalid packet header field type: `packet_seq_num` field must be an integer field type: "
+ "stream-id-ft-addr=%p, packet-seq-num-ft-id=%s",
+ field_type,
+ bt_ctf_field_type_id_string(field_type->id));
+ goto invalid;
+ }
+
+ if (bt_ctf_field_type_integer_is_signed(field_type)) {
+ BT_LOGW("Invalid packet header field type: `packet_seq_num` field must be an unsigned integer field type: "
+ "packet-seq-num-ft-addr=%p", field_type);
+ goto invalid;
+ }
+
+ BT_PUT(field_type);
+ }
+
goto end;
invalid:
int ret = 0;
if (trace->native_byte_order == BT_CTF_BYTE_ORDER_NATIVE ||
- trace->native_byte_order == BT_CTF_BYTE_ORDER_NONE) {
- BT_LOGW("Invalid parameter: trace's byte order cannot be BT_CTF_BYTE_ORDER_NATIVE or BT_CTF_BYTE_ORDER_NONE at this point; "
+ trace->native_byte_order == BT_CTF_BYTE_ORDER_UNSPECIFIED) {
+ BT_LOGW("Invalid parameter: trace's byte order cannot be BT_CTF_BYTE_ORDER_NATIVE or BT_CTF_BYTE_ORDER_UNSPECIFIED at this point; "
"set it with bt_ctf_trace_set_native_byte_order(): "
"addr=%p, name=\"%s\"",
trace, bt_ctf_trace_get_name(trace));
}
if (trace->is_created_by_writer &&
- byte_order == BT_CTF_BYTE_ORDER_NONE) {
- BT_LOGW("Invalid parameter: BT_CTF_BYTE_ORDER_NONE byte order is not allowed for a CTF writer trace: "
+ byte_order == BT_CTF_BYTE_ORDER_UNSPECIFIED) {
+ BT_LOGW("Invalid parameter: BT_CTF_BYTE_ORDER_UNSPECIFIED byte order is not allowed for a CTF writer trace: "
"addr=%p, name=\"%s\"",
trace, bt_ctf_trace_get_name(trace));
ret = -1;