/* This file is part of the Linux Trace Toolkit trace reading library
* Copyright (C) 2003-2004 Michel Dagenais
+ * 2005 Mathieu Desnoyers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
#include <ltt/ltt.h>
-
extern GQuark LTT_FACILITY_NAME_HEARTBEAT,
LTT_EVENT_NAME_HEARTBEAT;
*/
LttTrace *ltt_trace_copy(LttTrace *self);
-GQuark ltt_trace_name(LttTrace *t);
+GQuark ltt_trace_name(const LttTrace *t);
void ltt_trace_close(LttTrace *t);
+guint ltt_trace_get_num_cpu(LttTrace *t);
LttSystemDescription *ltt_trace_system_description(LttTrace *t);
/* Get the name of a tracefile */
-GQuark ltt_tracefile_name(LttTracefile *tf);
+GQuark ltt_tracefile_name(const LttTracefile *tf);
+GQuark ltt_tracefile_long_name(const LttTracefile *tf);
+
+/* get the cpu number of the tracefile */
+
+guint ltt_tracefile_cpu(LttTracefile *tf);
+/* For usertrace */
+guint ltt_tracefile_tid(LttTracefile *tf);
+guint ltt_tracefile_pgid(LttTracefile *tf);
+guint64 ltt_tracefile_creation(LttTracefile *tf);
+
+
+LttTrace *ltt_tracefile_get_trace(LttTracefile *tf);
/* Get the number of blocks in the tracefile */
int ltt_tracefile_read_update_event(LttTracefile *t);
int ltt_tracefile_read_op(LttTracefile *t);
+/* Get the current event of the tracefile : valid until the next read */
+LttEvent *ltt_tracefile_get_event(LttTracefile *tf);
+
/* open tracefile */
gint ltt_tracefile_open(LttTrace *t, gchar * fileName, LttTracefile *tf);
gchar * ltt_trace_system_description_description (LttSystemDescription * s);
-/* get the start time of the trace */
+/* get the NTP start time of the trace */
-LttTime ltt_trace_system_description_trace_start_time(LttSystemDescription *s);
+LttTime ltt_trace_start_time(LttTrace *t);
+
+/* get the monotonic start time of the trace */
+
+LttTime ltt_trace_start_time_monotonic(LttTrace *t);
/* copy tracefile info over another. Used for sync. */
LttTracefile *ltt_tracefile_new();
void get_absolute_pathname(const gchar *pathname, gchar * abs_pathname);
-GData *ltt_trace_get_tracefiles_groups(LttTrace *trace);
+/* May return a NULL tracefile group */
+GData **ltt_trace_get_tracefiles_groups(LttTrace *trace);
typedef void (*ForEachTraceFileFunc)(LttTracefile *tf, gpointer func_args);
gpointer func_args;
};
-void compute_tracefile_group(GArray *group,
- struct compute_tracefile_group_args args);
+
+void compute_tracefile_group(GQuark key_id,
+ GArray *group,
+ struct compute_tracefile_group_args *args);
LttFacility *ltt_trace_get_facility_by_num(LttTrace *t, guint num);
LttEventType *event_type2,
LttField *field1, LttField *field2);
+gint64 ltt_get_int(gboolean reverse_byte_order, gint size, void *data);
+
+guint64 ltt_get_uint(gboolean reverse_byte_order, gint size, void *data);
+
+LttTime ltt_interpolate_time_from_tsc(LttTracefile *tf, guint64 tsc);
+
#endif // TRACE_H