X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fcallbacks.c;h=fa212c9191e95fc5f5371201bf7883d22d9df05e;hp=fc2c4b3d38e675e8d539e5854eed91ffd40d13f8;hb=e1d01c3911e1e9a09f92afcbd9940cfc938f3d49;hpb=95d36295f18e15c7f68a97fbab3eb1961d21cd70 diff --git a/lib/callbacks.c b/lib/callbacks.c index fc2c4b3d..fa212c91 100644 --- a/lib/callbacks.c +++ b/lib/callbacks.c @@ -22,8 +22,10 @@ #include #include #include +#include #include #include +#include #include static @@ -57,11 +59,11 @@ struct bt_dependencies *babeltrace_dependencies_create(const char *first, ...) } /* - * babeltrace_iter_add_callback: Add a callback to iterator. + * bt_iter_add_callback: Add a callback to iterator. */ -int babeltrace_iter_add_callback(struct babeltrace_iter *iter, - bt_event_name event, void *private_data, int flags, - enum bt_cb_ret (*callback)(struct bt_ctf_data *ctf_data, +int bt_iter_add_callback(struct bt_iter *iter, + bt_intern_str event, void *private_data, int flags, + enum bt_cb_ret (*callback)(struct bt_ctf_event *ctf_data, void *private_data), struct bt_dependencies *depends, struct bt_dependencies *weak_depends, @@ -103,7 +105,7 @@ int babeltrace_iter_add_callback(struct babeltrace_iter *iter, (gconstpointer) (unsigned long) event); /* event not found in this stream class */ if (!event_id_ptr) { - printf("event not found\n"); + fprintf(stderr, "event not found\n"); continue; } event_id = (uint64_t)(unsigned long) *event_id_ptr; @@ -151,24 +153,24 @@ struct ctf_stream_event *extract_ctf_stream_event(struct ctf_stream *stream) uint64_t id = stream->event_id; if (id >= stream_class->events_by_id->len) { - fprintf(stdout, "[error] Event id %" PRIu64 " is outside range.\n", id); + fprintf(stderr, "[error] Event id %" PRIu64 " is outside range.\n", id); return NULL; } event = g_ptr_array_index(stream->events_by_id, id); if (!event) { - fprintf(stdout, "[error] Event id %" PRIu64 " is unknown.\n", id); + fprintf(stderr, "[error] Event id %" PRIu64 " is unknown.\n", id); return NULL; } event_class = g_ptr_array_index(stream_class->events_by_id, id); if (!event_class) { - fprintf(stdout, "[error] Event id %" PRIu64 " is unknown.\n", id); + fprintf(stderr, "[error] Event id %" PRIu64 " is unknown.\n", id); return NULL; } return event; } -void process_callbacks(struct babeltrace_iter *iter, +void process_callbacks(struct bt_iter *iter, struct ctf_stream *stream) { struct bt_stream_callbacks *bt_stream_cb; @@ -176,7 +178,7 @@ void process_callbacks(struct babeltrace_iter *iter, struct bt_callback *cb; int i; enum bt_cb_ret ret; - struct bt_ctf_data ctf_data; + struct bt_ctf_event ctf_data; ctf_data.event = extract_ctf_stream_event(stream); ctf_data.stream = stream; @@ -204,7 +206,7 @@ void process_callbacks(struct babeltrace_iter *iter, if (!bt_stream_cb || !bt_stream_cb->per_id_callbacks) goto end; - if (stream->event_id > bt_stream_cb->per_id_callbacks->len) + if (stream->event_id >= bt_stream_cb->per_id_callbacks->len) goto end; bt_chain = &g_array_index(bt_stream_cb->per_id_callbacks, struct bt_callback_chain, stream->event_id);