TRACE_FACILITY_LOAD = 0,
TRACE_BLOCK_START = 17,
TRACE_BLOCK_END = 18,
- TRACE_TIME_HEARTBEAT= 22
+ TRACE_TIME_HEARTBEAT= 19
} BuildinEvent;
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
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
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{
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{
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
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
/* 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);