typedef guint64 uint64_t;
/* Subbuffer header */
-struct ltt_subbuffer_header_2_3 {
+struct ltt_subbuffer_header_2_6 {
uint64_t cycle_count_begin; /* Cycle count at subbuffer start */
uint64_t cycle_count_end; /* Cycle count at subbuffer end */
uint32_t magic_number; /*
* used all along the trace.
*/
uint32_t freq_scale; /* Frequency scaling (divide freq) */
- uint32_t lost_size; /* Size unused at end of subbuffer */
- uint32_t buf_size; /* Size of this subbuffer */
+ uint32_t data_size; /* Size of data in subbuffer */
+ uint32_t sb_size; /* Subbuffer size (page aligned) */
uint32_t events_lost; /*
* Events lost in this subbuffer since
* the beginning of the trace.
char header_end[0]; /* End of header */
};
-typedef struct ltt_subbuffer_header_2_3 ltt_subbuffer_header_t;
+typedef struct ltt_subbuffer_header_2_6 ltt_subbuffer_header_t;
/*
* Return header size without padding after the structure. Don't use packed
typedef struct _LttBuffer {
void * head;
+ guint64 offset; /* Offset of the current subbuffer */
+ guint32 size; /* The size of the current subbuffer */
unsigned int index;
+ uint32_t data_size; /* Size of data in the subbuffer */
struct {
LttTime timestamp;
uint64_t cycle_count;
uint64_t freq; /* Frequency in khz */
} end;
- uint32_t lost_size; /* Size unused at the end of the buffer */
/* Timekeeping */
uint64_t tsc; /* Current timestamp counter */
uint32_t events_lost;
uint32_t subbuf_corrupt;
+ GArray *buf_index; /* index mapping buffer index to offset */
+
/* Current event */
LttEvent event; //Event currently accessible in the trace
/* Current block */
LttBuffer buffer; //current buffer
- guint32 buf_size; /* The size of blocks */
};
/* The characteristics of the system on which the trace was obtained
LttTime trace_end;
};
-/* Calculate the offset needed to align the type.
- * If alignment is 0, alignment is disactivated.
+/*
+ * Calculate the offset needed to align the type.
+ * If alignment is 0, alignment is deactivated.
* else, the function returns the offset needed to
+ * align align_drift on the alignment value.
+ *
* align align_drift on the alignment value (should be
- * the size of the architecture). */
+ * the size of the architecture).
+ */
static inline unsigned int ltt_align(size_t align_drift,
size_t size_of_type,
size_t alignment)