X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Finclude%2Fltt%2Fltt-private.h;h=c516bb49e56d4c40c4d129ec5b35000f6d988c0f;hb=f7afe191fd58f0bf4bab9c9514c261535b99d32b;hp=1e9886320ccb4ae29f0ece7c9f7f44d6efbba81d;hpb=e3247aa51e67eb8cce283d23b51cdc5b644791bd;p=lttv.git diff --git a/ltt/branches/poly/include/ltt/ltt-private.h b/ltt/branches/poly/include/ltt/ltt-private.h index 1e988632..c516bb49 100644 --- a/ltt/branches/poly/include/ltt/ltt-private.h +++ b/ltt/branches/poly/include/ltt/ltt-private.h @@ -13,7 +13,7 @@ typedef enum _BuildinEvent{ TRACE_FACILITY_LOAD = 0, TRACE_BLOCK_START = 17, TRACE_BLOCK_END = 18, - TRACE_TIME_HEARTBEAT= 22 + TRACE_TIME_HEARTBEAT= 19 } BuildinEvent; @@ -44,7 +44,8 @@ typedef struct _TimeHeartbeat { struct _LttType{ - char * element_name; //elements name of the struct or type name + char * type_name; //type name if it is a named type + char * element_name; //elements name of the struct char * fmt; int size; LttTypeEnum type_class; //which type @@ -80,6 +81,9 @@ struct _LttField{ int field_size; //>0: size of the field, //0 : uncertain //-1: uninitialize + int sequ_number_size; //the size of unsigned used to save the + //number of elements in the sequence + int element_size; //the element size of the sequence int field_fixed; //0: field has string or sequence //1: field has no string or sequenc @@ -99,6 +103,8 @@ struct _LttEvent{ LttCycleCount event_cycle_count; LttTracefile * tracefile; void * data; //event data + int which_block; //the current block of the event + int which_event; //the position of the event }; struct _LttFacility{ @@ -107,11 +113,8 @@ struct _LttFacility{ LttChecksum checksum; //checksum of the facility uint32_t base_id; //base id of the facility LttEventType ** events; //array of event types - - //FIXME Specify those types - table all_named_types; //an array of named LttType - sequence all_unnamed_types;//an array of unnamed LttType - sequence all_fields; //an array of fields + LttType ** named_types; + int named_types_number; }; struct _LttTracefile{ @@ -131,9 +134,12 @@ struct _LttTracefile{ void * buffer; //the buffer containing the block double cycle_per_nsec; //Cycles per nsec unsigned cur_heart_beat_number; //current number of heart beat in the buf + LttCycleCount cur_cycle_count; //current cycle count of the event + void * last_event_pos; LttTime prev_block_end_time; //the end time of previous block LttTime prev_event_time; //the time of the previous event + LttEvent an_event; }; struct _LttTrace{ @@ -142,6 +148,7 @@ struct _LttTrace{ guint control_tracefile_number; //the number of control files guint per_cpu_tracefile_number; //the number of per cpu files LttSystemDescription * system_description;//system description + GPtrArray *control_tracefiles; //array of control tracefiles GPtrArray *per_cpu_tracefiles; //array of per cpu tracefiles GPtrArray *facilities; //array of facilities @@ -149,6 +156,17 @@ struct _LttTrace{ LttArchEndian my_arch_endian; //endian type of the local machine }; +struct _LttEventPosition{ + unsigned block_num; //block which contains the event + unsigned event_num; //event index in the block + unsigned event_offset; //event position in the block + LttTime event_time; //the time of the event + LttCycleCount event_cycle_count; //the cycle count of the event + unsigned heart_beat_number; //current number of heart beats + LttTracefile *tf; //tracefile containing the event + gboolean old_position; //flag to show if it is the position + //being remembered +}; /***************************************************************************** macro for size of some data types @@ -166,6 +184,9 @@ LttTime getEventTime(LttTracefile * tf); /* get the data type size and endian type of the local machine */ void getDataEndianType(LttArchSize * size, LttArchEndian * endian); +/* get an integer number */ +int getIntNumber(int size1, void *evD); + /* open facility */ void ltt_facility_open(LttTrace * t, char * facility_name);