Move trace collection pointer to bt_trace_descriptor
[babeltrace.git] / formats / ctf / ctf.c
index 786ba6fb120a9758570e74b1a0aa2ee50df06a4c..6bb31e55f4efb31346fcdc8ee14457565734a619 100644 (file)
@@ -426,9 +426,9 @@ void ctf_print_discarded(FILE *fp, struct ctf_stream_definition *stream,
        }
        fprintf(fp, "] in trace UUID ");
        print_uuid(fp, stream->stream_class->trace->uuid);
-       if (stream->stream_class->trace->path[0])
+       if (stream->stream_class->trace->parent.path[0])
                fprintf(fp, ", at path: \"%s\"",
-                       stream->stream_class->trace->path);
+                       stream->stream_class->trace->parent.path);
 
        fprintf(fp, ", within stream id %" PRIu64, stream->stream_id);
        if (stream->path[0])
@@ -606,7 +606,8 @@ error:
        return ret;
 }
 
-int ctf_init_pos(struct ctf_stream_pos *pos, int fd, int open_flags)
+int ctf_init_pos(struct ctf_stream_pos *pos, struct bt_trace_descriptor *trace,
+               int fd, int open_flags)
 {
        pos->fd = fd;
        if (fd >= 0) {
@@ -624,12 +625,14 @@ int ctf_init_pos(struct ctf_stream_pos *pos, int fd, int open_flags)
                pos->flags = MAP_PRIVATE;
                pos->parent.rw_table = read_dispatch_table;
                pos->parent.event_cb = ctf_read_event;
+               pos->parent.trace = trace;
                break;
        case O_RDWR:
                pos->prot = PROT_WRITE; /* Write has priority */
                pos->flags = MAP_SHARED;
                pos->parent.rw_table = write_dispatch_table;
                pos->parent.event_cb = ctf_write_event;
+               pos->parent.trace = trace;
                if (fd >= 0)
                        ctf_packet_seek(&pos->parent, 0, SEEK_SET);     /* position for write */
                break;
@@ -778,7 +781,7 @@ void ctf_packet_seek(struct bt_stream_pos *stream_pos, size_t index, int whence)
                         * case, the collection is not there, so we
                         * cannot print the timestamps.
                         */
-                       if ((&file_stream->parent)->stream_class->trace->collection) {
+                       if ((&file_stream->parent)->stream_class->trace->parent.collection) {
                                /*
                                 * When a stream reaches the end of the
                                 * file, we need to show the number of
@@ -1037,7 +1040,7 @@ int ctf_open_trace_metadata_stream_read(struct ctf_trace *td, FILE **fp,
        buflen = strlen(*buf);
        if (!buflen) {
                *fp = NULL;
-               return -ENODATA;
+               return -ENOENT;
        }
        *fp = babeltrace_fmemopen(*buf, buflen, "rb");
        if (!*fp) {
@@ -1302,10 +1305,10 @@ int create_stream_one_packet_index(struct ctf_stream_pos *pos,
 {
        struct packet_index packet_index;
        struct ctf_stream_declaration *stream;
-       int len_index;
        uint64_t stream_id = 0;
+       uint64_t packet_map_len = DEFAULT_HEADER_LEN, tmp_map_len;
        int first_packet = 0;
-       size_t packet_map_len = DEFAULT_HEADER_LEN, tmp_map_len;
+       int len_index;
        int ret;
 
 begin:
@@ -1469,7 +1472,7 @@ begin:
 
                        field = bt_struct_definition_get_field_from_index(file_stream->parent.stream_packet_context, len_index);
                        packet_index.timestamp_begin = bt_get_unsigned_int(field);
-                       if (file_stream->parent.stream_class->trace->collection) {
+                       if (file_stream->parent.stream_class->trace->parent.collection) {
                                packet_index.timestamp_begin =
                                        ctf_get_real_timestamp(
                                                &file_stream->parent,
@@ -1484,7 +1487,7 @@ begin:
 
                        field = bt_struct_definition_get_field_from_index(file_stream->parent.stream_packet_context, len_index);
                        packet_index.timestamp_end = bt_get_unsigned_int(field);
-                       if (file_stream->parent.stream_class->trace->collection) {
+                       if (file_stream->parent.stream_class->trace->parent.collection) {
                                packet_index.timestamp_end =
                                        ctf_get_real_timestamp(
                                                &file_stream->parent,
@@ -1643,7 +1646,7 @@ int ctf_open_file_stream_read(struct ctf_trace *td, const char *path, int flags,
                goto error_def;
        }
 
-       ret = ctf_init_pos(&file_stream->pos, fd, flags);
+       ret = ctf_init_pos(&file_stream->pos, &td->parent, fd, flags);
        if (ret)
                goto error_def;
        ret = create_trace_definitions(td, &file_stream->parent);
@@ -1708,8 +1711,8 @@ int ctf_open_trace_read(struct ctf_trace *td,
                ret = -errno;
                goto error_dirfd;
        }
-       strncpy(td->path, path, sizeof(td->path));
-       td->path[sizeof(td->path) - 1] = '\0';
+       strncpy(td->parent.path, path, sizeof(td->parent.path));
+       td->parent.path[sizeof(td->parent.path) - 1] = '\0';
 
        /*
         * Keep the metadata file separate.
@@ -2090,7 +2093,7 @@ void ctf_set_context(struct bt_trace_descriptor *descriptor,
        struct ctf_trace *td = container_of(descriptor, struct ctf_trace,
                        parent);
 
-       td->ctx = ctx;
+       td->parent.ctx = ctx;
 }
 
 static
@@ -2100,7 +2103,7 @@ void ctf_set_handle(struct bt_trace_descriptor *descriptor,
        struct ctf_trace *td = container_of(descriptor, struct ctf_trace,
                        parent);
 
-       td->handle = handle;
+       td->parent.handle = handle;
 }
 
 static
This page took 0.025718 seconds and 4 git commands to generate.