X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fltt-private.h;h=6a0c4578efda332180f68a944eb777881d4ddf3c;hb=fadf7e8bf9429ba26e5e0b3203933c1a64c4a14d;hp=9ef7d4818eda87253789217a876d942f30fe783a;hpb=cb03932ac8527313696af07dba4404603620c844;p=lttv.git diff --git a/ltt/branches/poly/ltt/ltt-private.h b/ltt/branches/poly/ltt/ltt-private.h index 9ef7d481..6a0c4578 100644 --- a/ltt/branches/poly/ltt/ltt-private.h +++ b/ltt/branches/poly/ltt/ltt-private.h @@ -22,6 +22,7 @@ #include #include #include +#include #ifndef max @@ -38,6 +39,14 @@ /* Hardcoded facilities */ #define LTT_FACILITY_CORE 0 + +/* Byte ordering */ +#define LTT_GET_BO(t) ((t)->reverse_bo) + +#define LTT_HAS_FLOAT(t) ((t)->float_word_order!=0) +#define LTT_GET_FLOAT_BO(t) \ + (((t)->float_word_order==__BYTE_ORDER)?0:1) + /* Hardcoded core events */ enum ltt_core_events { @@ -128,21 +137,42 @@ struct ltt_event_header_nohb { uint16_t event_size; } LTT_PACKED_STRUCT; -struct ltt_trace_header { + +/* Block and trace headers */ + +struct ltt_trace_header_any { uint32_t magic_number; uint32_t arch_type; uint32_t arch_variant; + uint32_t float_word_order; uint8_t arch_size; - //uint32_t system_type; - 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 has_tsc; + 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 has_tsc; } LTT_PACKED_STRUCT; +/* For version 0.3 */ + +struct ltt_trace_header_0_3 { + 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 has_tsc; +} LTT_PACKED_STRUCT; + + + struct ltt_block_start_header { struct { struct timeval timestamp; @@ -154,10 +184,14 @@ struct ltt_block_start_header { } end; uint32_t lost_size; /* Size unused at the end of the buffer */ uint32_t buf_size; /* The size of this sub-buffer */ - struct ltt_trace_header trace; + char trace[0]; } LTT_PACKED_STRUCT; + + + + struct _LttType{ GQuark type_name; //type name if it is a named type GQuark element_name; //elements name of the struct @@ -308,14 +342,16 @@ typedef struct _LttBuffer { struct _LttTracefile{ gboolean cpu_online; //is the cpu online ? + GQuark long_name; //tracefile complete filename GQuark name; //tracefile name guint cpu_num; //cpu number of the tracefile LttTrace * trace; //trace containing the tracefile int fd; //file descriptor off_t file_size; //file size - unsigned block_size; //block_size + //unsigned block_size; //block_size unsigned int num_blocks; //number of blocks in the file gboolean reverse_bo; //must we reverse byte order ? + gboolean float_word_order; //what is the byte order of floats ? /* Current event */ LttEvent event; //Event currently accessible in the trace @@ -344,7 +380,8 @@ struct _LttTrace{ GArray *facilities_by_num; /* fac_id as index in array */ GData *facilities_by_name; /* fac name (GQuark) as index */ /* Points to array of fac_id of all the - * facilities that has this name. */ + * facilities that has this name. */ + guint num_cpu; guint32 arch_type; guint32 arch_variant; @@ -389,7 +426,5 @@ struct _LttSystemDescription { //#define EVENT_ID_SIZE sizeof(guint16) //#define EVENT_HEADER_SIZE (TIMESTAMP_SIZE + EVENT_ID_SIZE) -#define LTT_GET_BO(t) ((t)->reverse_bo) - #endif /* LTT_PRIVATE_H */