/* structure definition */
typedef struct _FacilityLoad{
- char * name;
+ gchar * name;
LttChecksum checksum;
guint32 base_code;
} LTT_PACKED_STRUCT FacilityLoad;
struct _LttType{
- char * type_name; //type name if it is a named type
- char * element_name; //elements name of the struct
- char * fmt;
- int size;
+ gchar * type_name; //type name if it is a named type
+ gchar * element_name; //elements name of the struct
+ gchar * fmt;
+ unsigned int size;
LttTypeEnum type_class; //which type
- char ** enum_strings; //for enum labels
+ gchar ** enum_strings; //for enum labels
struct _LttType ** element_type; //for array, sequence and struct
unsigned element_number; //the number of elements
//for enum, array, sequence and structure
};
struct _LttEventType{
- char * name;
- char * description;
+ gchar * name;
+ gchar * description;
int index; //id of the event type within the facility
LttFacility * facility; //the facility that contains the event type
LttField * root_field; //root field
- int latest_block; //the latest block using the event type
- int latest_event; //the latest event using the event type
+ unsigned int latest_block; //the latest block using the event type
+ unsigned int latest_event; //the latest event using the event type
};
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
+ unsigned int which_block; //the current block of the event
+ unsigned int which_event; //the position of the event
/* This is a workaround for fast position seek */
void * last_event_pos;
LttTime prev_event_time; //the time of the previous event
LttCycleCount pre_cycle_count; //previous cycle count of the event
int count; //the number of overflow of cycle count
+ gint64 overflow_nsec; //precalculated nsec for overflows
+ TimeHeartbeat * last_heartbeat; //last heartbeat
+
/* end of workaround */
};
struct _LttFacility{
- char * name; //facility name
- int event_number; //number of events in the facility
+ gchar * name; //facility name
+ unsigned int event_number; //number of events in the facility
LttChecksum checksum; //checksum of the facility
guint32 base_id; //base id of the facility
LttEventType ** events; //array of event types
LttType ** named_types;
- int named_types_number;
+ unsigned int named_types_number;
};
struct _LttTracefile{
- char * name; //tracefile name
+ gchar * name; //tracefile name
LttTrace * trace; //trace containing the tracefile
int fd; //file descriptor
off_t file_size; //file size
unsigned block_size; //block_size
- int block_number; //number of blocks in the file
- int which_block; //which block the current block is
- int which_event; //which event of the current block
+ unsigned int block_number; //number of blocks in the file
+ unsigned int which_block; //which block the current block is
+ unsigned int which_event; //which event of the current block
//is currently processed
LttTime current_event_time; //time of the current event
- BlockStart * a_block_start; //block start of the block
- BlockEnd * a_block_end; //block end of the block
+ BlockStart * a_block_start; //block start of the block- trace endian
+ BlockEnd * a_block_end; //block end of the block - trace endian
+ TimeHeartbeat * last_heartbeat; //last heartbeat
void * cur_event_pos; //the position of the current event
void * buffer; //the buffer containing the block
- double cycle_per_nsec; //Cycles per nsec
+ double nsec_per_cycle; //Nsec per cycle
+ guint64 one_overflow_nsec; //nsec for one overflow
+ gint64 overflow_nsec; //precalculated nsec for overflows
+ //can be negative to include value
+ //of block start cycle count.
+ //incremented at each overflow while
+ //reading.
+ //LttCycleCount cycles_per_nsec_reciprocal; // Optimisation for speed
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
LttCycleCount pre_cycle_count; //previous cycle count of the event
- int count; //the number of overflow of cycle count
+ unsigned int count; //the number of overflow of cycle count
};
struct _LttTrace{
- char * pathname; //the pathname of the trace
+ gchar * pathname; //the pathname of the trace
guint facility_number; //the number of facilities
guint control_tracefile_number; //the number of control files
guint per_cpu_tracefile_number; //the number of per cpu files
GPtrArray *control_tracefiles; //array of control tracefiles
GPtrArray *per_cpu_tracefiles; //array of per cpu tracefiles
GPtrArray *facilities; //array of facilities
- LttArchSize my_arch_size; //data size of the local machine
- LttArchEndian my_arch_endian; //endian type of the local machine
+ gboolean reverse_byte_order; //must we reverse BO ?
};
struct _LttEventPosition{
LttTime prev_event_time; //the time of the previous event
LttCycleCount pre_cycle_count; //previous cycle count of the event
int count; //the number of overflow of cycle count
+ gint64 overflow_nsec; //precalculated nsec for overflows
+ TimeHeartbeat * last_heartbeat; //last heartbeat
/* end of workaround */
};
is described in a LttSystemDescription structure. */
struct _LttSystemDescription {
- char *description;
- char *node_name;
- char *domain_name;
+ gchar *description;
+ gchar *node_name;
+ gchar *domain_name;
unsigned nb_cpu;
LttArchSize size;
LttArchEndian endian;
- char *kernel_name;
- char *kernel_release;
- char *kernel_version;
- char *machine;
- char *processor;
- char *hardware_platform;
- char *operating_system;
+ gchar *kernel_name;
+ gchar *kernel_release;
+ gchar *kernel_version;
+ gchar *machine;
+ gchar *processor;
+ gchar *hardware_platform;
+ gchar *operating_system;
unsigned ltt_major_version;
unsigned ltt_minor_version;
unsigned ltt_block_size;