tin = container_of(td_read, struct ctf_trace, parent);
for (stream_id = 0; stream_id < tin->streams->len; stream_id++) {
- struct ctf_stream_class *stream;
+ struct ctf_stream_declaration *stream;
struct bt_stream_callbacks *bt_stream_cb = NULL;
struct bt_callback_chain *bt_chain = NULL;
struct bt_callback new_callback;
(gconstpointer) (unsigned long) event);
/* event not found in this stream class */
if (!event_id_ptr) {
- fprintf(stderr, "event not found\n");
+ fprintf(stderr, "[error] Event ID not found in stream class\n");
continue;
}
event_id = (uint64_t)(unsigned long) *event_id_ptr;
}
static
-struct ctf_stream_event *extract_ctf_stream_event(struct ctf_stream *stream)
+int extract_ctf_stream_event(struct ctf_stream_definition *stream,
+ struct bt_ctf_event *event)
{
- struct ctf_stream_class *stream_class = stream->stream_class;
- struct ctf_event *event_class;
- struct ctf_stream_event *event;
+ struct ctf_stream_declaration *stream_class = stream->stream_class;
+ struct ctf_event_declaration *event_class;
uint64_t id = stream->event_id;
if (id >= stream_class->events_by_id->len) {
fprintf(stderr, "[error] Event id %" PRIu64 " is outside range.\n", id);
- return NULL;
+ return -1;
}
- event = g_ptr_array_index(stream->events_by_id, id);
- if (!event) {
+ event->parent = g_ptr_array_index(stream->events_by_id, id);
+ if (!event->parent) {
fprintf(stderr, "[error] Event id %" PRIu64 " is unknown.\n", id);
- return NULL;
+ return -1;
}
event_class = g_ptr_array_index(stream_class->events_by_id, id);
if (!event_class) {
fprintf(stderr, "[error] Event id %" PRIu64 " is unknown.\n", id);
- return NULL;
+ return -1;
}
- return event;
+ return 0;
}
void process_callbacks(struct bt_ctf_iter *iter,
- struct ctf_stream *stream)
+ struct ctf_stream_definition *stream)
{
struct bt_stream_callbacks *bt_stream_cb;
struct bt_callback_chain *bt_chain;
enum bt_cb_ret ret;
struct bt_ctf_event ctf_data;
- ctf_data.event = extract_ctf_stream_event(stream);
- ctf_data.stream = stream;
+ ret = extract_ctf_stream_event(stream, &ctf_data);
/* process all events callback first */
if (iter->main_callbacks.callback) {