X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fctf.c;h=d24f1cb73e69433736cf007a004550621c28d05a;hb=45807148b2641aa049f821a7c71c4c7246c7692e;hp=786ba6fb120a9758570e74b1a0aa2ee50df06a4c;hpb=ec32346491f3e11fbc802a04f7dfd3259e6a8b17;p=babeltrace.git diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index 786ba6fb..d24f1cb7 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -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; @@ -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: @@ -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