+/*
+ * Discarded events can be either:
+ * - discarded after end of previous buffer due to buffer full:
+ * happened within range: [ prev_timestamp_end, timestamp_begin ]
+ * - discarded within current buffer due to either event too large or
+ * nested wrap-around:
+ * happened within range: [ timestamp_begin, timestamp_end ]
+ *
+ * Given we have discarded counters of those two types merged into the
+ * events_discarded counter, we need to use the union of those ranges:
+ * [ prev_timestamp_end, timestamp_end ]
+ *
+ * Lost packets occur if the tracer overwrote some subbuffer(s) before the
+ * consumer had time to extract them. We keep track of those gaps with the
+ * packet sequence number in each packet.
+ */
+static
+void ctf_print_discarded_lost(FILE *fp, struct ctf_stream_definition *stream)