struct bt_ctf_trace *bt_ctf_trace_create(void)
{
struct bt_ctf_trace *trace = NULL;
- struct bt_ctf_field_type *packet_header_type = NULL;
trace = g_new0(struct bt_ctf_trace, 1);
if (!trace) {
}
BT_LOGD_STR("Creating trace object.");
- trace->native_byte_order = BT_CTF_BYTE_ORDER_NATIVE;
+ trace->native_byte_order = BT_CTF_BYTE_ORDER_NONE;
bt_object_init(trace, bt_ctf_trace_destroy);
trace->clocks = g_ptr_array_new_with_free_func(
(GDestroyNotify) bt_put);
goto error;
}
- packet_header_type = bt_ctf_field_type_structure_create();
- if (!packet_header_type) {
- goto error;
- }
-
- BT_MOVE(trace->packet_header_type, packet_header_type);
-
/* Create the environment array object */
trace->environment = bt_ctf_attributes_create();
if (!trace->environment) {
error:
BT_PUT(trace);
- bt_put(packet_header_type);
return trace;
}
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\"",
stream_class, bt_ctf_stream_class_get_name(stream_class),
bt_ctf_stream_class_get_id(stream_class));
- /*
- * At the end of this function we freeze the trace, so its
- * native byte order must NOT be BT_CTF_BYTE_ORDER_NATIVE.
- */
- if (trace->native_byte_order == BT_CTF_BYTE_ORDER_NATIVE) {
- BT_LOGW_STR("Invalid parameter: trace's byte order cannot be BT_CTF_BYTE_ORDER_NATIVE at this point; "
- "set it with bt_ctf_trace_set_native_byte_order().");
- ret = -1;
- goto end;
- }
-
current_parent_trace = bt_ctf_stream_class_get_trace(stream_class);
if (current_parent_trace) {
/* Stream class is already associated to a trace, abort. */
unsigned char *uuid = trace->uuid;
int ret = 0;
- if (trace->native_byte_order == BT_CTF_BYTE_ORDER_NATIVE) {
- BT_LOGW("Invalid parameter: trace's byte order cannot be BT_CTF_BYTE_ORDER_NATIVE at this point; "
+ 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; "
"set it with bt_ctf_trace_set_native_byte_order(): "
"addr=%p, name=\"%s\"",
trace, bt_ctf_trace_get_name(trace));
goto end;
}
+ 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: "
+ "addr=%p, name=\"%s\"",
+ trace, bt_ctf_trace_get_name(trace));
+ ret = -1;
+ goto end;
+ }
+
if (byte_order != BT_CTF_BYTE_ORDER_LITTLE_ENDIAN &&
byte_order != BT_CTF_BYTE_ORDER_BIG_ENDIAN &&
byte_order != BT_CTF_BYTE_ORDER_NETWORK) {