tf->tsc_lsb_truncate = vheader->tsc_lsb_truncate;
tf->tscbits = vheader->tscbits;
tf->tsc_msb_cutoff = 32 - tf->tsc_lsb_truncate - tf->tscbits;
+ tf->compact_event_bits = 32 - vheader->compact_data_shift;
tf->tsc_mask = ((1ULL << (tf->tscbits))-1);
tf->tsc_mask = tf->tsc_mask << tf->tsc_lsb_truncate;
tf->tsc_mask_next_bit = (1ULL<<(tf->tscbits));
(double)t->start_tsc
* (1000000000.0 / tf->trace->freq_scale)
/ (double)t->start_freq);
- t->compact_event_bits = 0;
}
}
break;
if(num+1 > old_len)
group = g_array_set_size(group, num+1);
g_array_index (group, LttTracefile, num) = tmp_tf;
-
+ g_array_index (group, LttTracefile, num).event.tracefile =
+ &g_array_index (group, LttTracefile, num);
}
}
int i, j;
g_printf("Event header (tracefile %s offset %llx):\n",
- g_quark_to_string(ev->tracefile->name),
+ g_quark_to_string(ev->tracefile->long_name),
((uint64_t)ev->tracefile->buffer.index * ev->tracefile->buf_size)
+ (long)start_pos - (long)ev->tracefile->buffer.head);
return;
g_printf("Event data (tracefile %s offset %llx):\n",
- g_quark_to_string(ev->tracefile->name),
+ g_quark_to_string(ev->tracefile->long_name),
((uint64_t)ev->tracefile->buffer.index * ev->tracefile->buf_size)
+ (long)ev->data - (long)ev->tracefile->buffer.head);
if (a_event_debug)
print_debug_event_data(&tf->event);
+ /* Having a marker load or marker format event out of the facilities
+ * tracefiles is a serious bug. */
+ switch((enum marker_id)tf->event.event_id) {
+ case MARKER_ID_SET_MARKER_ID:
+ case MARKER_ID_SET_MARKER_FORMAT:
+ if (tf->name != g_quark_from_string("/control/facilities"))
+ g_error("Trace inconsistency : metadata event found in data "
+ "tracefile %s", g_quark_to_string(tf->long_name));
+ }
+
if (tf->event.data_size != tf->event.event_size) {
struct marker_info *info = marker_get_info_from_id(tf->trace,
tf->event.event_id);
LttTracefile *ltt_tracefile_new()
{
- return g_new(LttTracefile, 1);
+ LttTracefile *tf;
+ tf = g_new(LttTracefile, 1);
+ tf->event.tracefile = tf;
+ return tf;
}
void ltt_tracefile_destroy(LttTracefile *tf)