ctf_pos_get_event(pos);
+ /* save the current position as a restore point */
+ pos->last_offset = pos->offset;
+ /* we just read the event, it is consumed when used by the caller */
+ stream->consumed = 0;
+
/*
* This is the EOF check after we've advanced the position in
* ctf_pos_get_event.
break;
}
case SEEK_SET:
- assert(offset == 0); /* only seek supported for now */
- pos->cur_index = 0;
+ if (offset == 0)
+ pos->cur_index = 0;
file_stream->parent.prev_timestamp = 0;
file_stream->parent.prev_timestamp_end = 0;
break;
/* Validate content size and packet size values */
if (packet_index.content_size > packet_index.packet_size) {
- fprintf(stderr, "[error] Content size (%zu bits) is larger than packet size (%zu bits).\n",
+ fprintf(stderr, "[error] Content size (%" PRIu64 " bits) is larger than packet size (%" PRIu64 " bits).\n",
packet_index.content_size, packet_index.packet_size);
return -EINVAL;
}
- if (packet_index.packet_size > (filestats.st_size - packet_index.offset) * CHAR_BIT) {
- fprintf(stderr, "[error] Packet size (%zu bits) is larger than remaining file size (%zu bits).\n",
- packet_index.content_size, (size_t) (filestats.st_size - packet_index.offset) * CHAR_BIT);
+ if (packet_index.packet_size > ((uint64_t)filestats.st_size - packet_index.offset) * CHAR_BIT) {
+ fprintf(stderr, "[error] Packet size (%" PRIu64 " bits) is larger than remaining file size (%" PRIu64 " bits).\n",
+ packet_index.content_size, ((uint64_t)filestats.st_size - packet_index.offset) * CHAR_BIT);
return -EINVAL;
}
* for each stream, try to open, check magic number, and get the
* stream ID to add to the right location in the stream array.
*/
- cds_list_for_each_entry(mmap_info, &mmap_list->head, list) {
+ bt_list_for_each_entry(mmap_info, &mmap_list->head, list) {
ret = ctf_open_mmap_stream_read(td, mmap_info, move_pos_slow);
if (ret) {
fprintf(stderr, "[error] Open file mmap stream error.\n");