Fix: handle packet_seek errors
[babeltrace.git] / include / babeltrace / ctf / types.h
index c336632f7e6eb34b93190ae5e4d71c5f1a12d994..59ce99811f73993457ffdd9aacff7d2d73e1b691 100644 (file)
@@ -39,6 +39,7 @@
 #include <stdio.h>
 #include <inttypes.h>
 #include <babeltrace/mmap-align.h>
+#include <babeltrace/error.h>
 
 #define LAST_OFFSET_POISON     ((int64_t) ~0ULL)
 
@@ -58,6 +59,9 @@ struct packet_index {
        uint64_t events_discarded_len;  /* length of the field, in bits */
        struct packet_index_time ts_cycles;     /* timestamp in cycles */
        struct packet_index_time ts_real;       /* realtime timestamp */
+       /* CTF_INDEX 1.0 limit */
+       uint64_t stream_instance_id;    /* ID of the channel instance */
+       uint64_t packet_seq_num;        /* packet sequence number */
 };
 
 /*
@@ -220,9 +224,10 @@ int ctf_pos_packet(struct ctf_stream_pos *dummy)
 }
 
 static inline
-void ctf_pos_pad_packet(struct ctf_stream_pos *pos)
+int ctf_pos_pad_packet(struct ctf_stream_pos *pos)
 {
        ctf_packet_seek(&pos->parent, 0, SEEK_CUR);
+       return bt_packet_seek_get_error();
 }
 
 /*
@@ -230,8 +235,10 @@ void ctf_pos_pad_packet(struct ctf_stream_pos *pos)
  * the next packet if we are located at the end of the current packet.
  */
 static inline
-void ctf_pos_get_event(struct ctf_stream_pos *pos)
+int ctf_pos_get_event(struct ctf_stream_pos *pos)
 {
+       int ret = 0;
+
        assert(pos->offset <= pos->content_size);
        if (pos->offset == pos->content_size) {
                printf_debug("ctf_packet_seek (before call): %" PRId64 "\n",
@@ -239,12 +246,15 @@ void ctf_pos_get_event(struct ctf_stream_pos *pos)
                pos->packet_seek(&pos->parent, 0, SEEK_CUR);
                printf_debug("ctf_packet_seek (after call): %" PRId64 "\n",
                             pos->offset);
+               ret = bt_packet_seek_get_error();
        }
+       return ret;
 }
 
 void ctf_print_timestamp(FILE *fp, struct ctf_stream_definition *stream,
                        uint64_t timestamp);
 int ctf_append_trace_metadata(struct bt_trace_descriptor *tdp,
                        FILE *metadata_fp);
+void ctf_print_discarded_lost(FILE *fp, struct ctf_stream_definition *stream);
 
 #endif /* _BABELTRACE_CTF_TYPES_H */
This page took 0.026181 seconds and 4 git commands to generate.