X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fltt-private.h;h=c565aa22e49f96eb8140d194291b442a1807aa25;hb=e2a68f397ba966225dd6255e4dd8f8dc4bbbee2f;hp=5ffca29b3f66b3bf12daa8968b2687f5dc2196bd;hpb=c88ddec5a160400eaa2f7ee1c255d1bd1c62ffa5;p=lttv.git diff --git a/ltt/branches/poly/ltt/ltt-private.h b/ltt/branches/poly/ltt/ltt-private.h index 5ffca29b..c565aa22 100644 --- a/ltt/branches/poly/ltt/ltt-private.h +++ b/ltt/branches/poly/ltt/ltt-private.h @@ -60,6 +60,7 @@ enum ltt_core_events { LTT_EVENT_FACILITY_LOAD, LTT_EVENT_FACILITY_UNLOAD, LTT_EVENT_HEARTBEAT, + LTT_EVENT_HEARTBEAT_FULL, LTT_EVENT_STATE_DUMP_FACILITY_LOAD }; @@ -131,6 +132,10 @@ struct LttStateDumpFacilityLoad { typedef struct _TimeHeartbeat { } LTT_PACKED_STRUCT TimeHeartbeat; +typedef struct _TimeHeartbeatFull { + guint64 tsc; +} LTT_PACKED_STRUCT TimeHeartbeatFull; + struct ltt_event_header_hb { uint32_t timestamp; unsigned char facility_id; @@ -200,6 +205,29 @@ struct ltt_trace_header_0_7 { uint64_t start_time_usec; } LTT_PACKED_STRUCT; +/* For version 0.8 */ + +struct ltt_trace_header_0_8 { + uint32_t magic_number; + uint32_t arch_type; + uint32_t arch_variant; + uint32_t float_word_order; + uint8_t arch_size; + uint8_t major_version; + uint8_t minor_version; + uint8_t flight_recorder; + uint8_t has_heartbeat; + uint8_t has_alignment; /* Event header alignment */ + uint8_t tsc_lsb_truncate; + uint8_t tscbits; + uint32_t freq_scale; + uint64_t start_freq; + uint64_t start_tsc; + uint64_t start_monotonic; + uint64_t start_time_sec; + uint64_t start_time_usec; +} LTT_PACKED_STRUCT; + struct ltt_block_start_header { struct { @@ -223,9 +251,15 @@ struct _LttType{ guint size; LttTypeEnum type_class; //which type GHashTable *enum_map; //maps enum labels to numbers. + gint32 highest_value; //For enum + gint32 lowest_value; //For enum GArray *fields; // Array of LttFields, for array, sequence, union, struct. GData *fields_by_name; guint network; // Is the type in network byte order ? + //part added by gaby for fmt: + char *header; + char *separator; + char *footer; }; struct _LttEventType{ @@ -235,6 +269,7 @@ struct _LttEventType{ LttFacility * facility; //the facility that contains the event type GArray * fields; //event's fields (LttField) GData *fields_by_name; + int has_compact_data; //event header contains compact data (first field) }; /* Structure LttEvent and LttEventPosition must begin with the _exact_ same @@ -262,6 +297,7 @@ struct _LttEvent{ guint data_size; guint event_size; //event_size field of the header : //used to verify data_size from facility. + uint32_t compact_data; int count; //the number of overflow of cycle count gint64 overflow_nsec; //precalculated nsec for overflows @@ -292,7 +328,7 @@ struct _LttField{ // (it's variable), then the field_size should be // dynamically calculated while reading the trace // and put here. Otherwise, the field_size always - // equels the type size. + // equals the type size. off_t array_offset; // offset of the beginning of the array (for array // and sequences) GArray * dynamic_offsets; // array of offsets calculated dynamically at @@ -360,7 +396,14 @@ struct _LttTracefile{ size_t has_alignment; //alignment of events in the tracefile. // 0 or the architecture size in bytes. + guint8 has_heartbeat; size_t buffer_header_size; + int compact; //compact tracefile ? + uint8_t tsc_lsb_truncate; + uint8_t tscbits; + uint8_t tsc_msb_cutoff; + uint64_t tsc_mask; + uint64_t tsc_mask_next_bit; //next MSB after the mask /* Current event */ LttEvent event; //Event currently accessible in the trace @@ -398,13 +441,14 @@ struct _LttTrace{ guint8 ltt_major_version; guint8 ltt_minor_version; guint8 flight_recorder; - guint8 has_heartbeat; guint32 freq_scale; uint64_t start_freq; uint64_t start_tsc; uint64_t start_monotonic; LttTime start_time; LttTime start_time_from_tsc; + GArray *compact_facilities; + uint8_t compact_event_bits; GData *tracefiles; //tracefiles groups };