+guint lttv_trace_get_num_cpu(LttvTrace *t)
+{
+#warning "TODO - Set the right number of CPU"
+ return 24;
+}
+
+LttvTracesetPosition *lttv_traceset_create_position(LttvTraceset *traceset)
+{
+ LttvTracesetPosition *traceset_pos;
+
+ traceset_pos = g_new(LttvTracesetPosition, 1);
+
+ /* Check in the new passed */
+ if(traceset_pos == NULL) {
+ return NULL;
+ }
+
+ traceset_pos->iter = traceset->iter;
+ traceset_pos->bt_pos = bt_iter_get_pos(bt_ctf_get_iter(traceset->iter));
+
+ return traceset_pos;
+}
+
+void lttv_traceset_destroy_position(LttvTracesetPosition *traceset_pos)
+{
+ bt_iter_free_pos(traceset_pos->bt_pos);
+ g_free(traceset_pos);
+}
+
+void lttv_traceset_seek_to_position(LttvTracesetPosition *traceset_pos)
+{
+ bt_iter_set_pos(traceset_pos->iter, traceset_pos->bt_pos);
+}
+
+guint lttv_traceset_get_cpuid_from_event(LttvEvent *event)
+{
+ struct definition *scope;
+ unsigned long timestamp;
+ unsigned int cpu_id;
+
+ struct bt_ctf_event *ctf_event = event->bt_event;
+ timestamp = bt_ctf_get_timestamp(ctf_event);
+ if (timestamp == -1ULL) {
+ return 0;
+ }
+ scope = bt_ctf_get_top_level_scope(ctf_event, BT_STREAM_PACKET_CONTEXT);
+ if (bt_ctf_field_get_error()) {
+ return 0;
+ }
+ cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(ctf_event, scope, "cpu_id"));
+ if (bt_ctf_field_get_error()) {
+ return 0;
+ } else {
+ return cpu_id;
+ }
+}
+
+const char *lttv_traceset_get_name_from_event(LttvEvent *event)
+{
+ return bt_ctf_event_name(event->bt_event);
+}