projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update version
[lttv.git]
/
ltt
/
branches
/
poly
/
ltt
/
tracefile.c
diff --git
a/ltt/branches/poly/ltt/tracefile.c
b/ltt/branches/poly/ltt/tracefile.c
index 19e0f1cd71dec693360b2ccf6a36f061ce643628..cfe76e10c44a6444d0a82304c1811f860ecacd2a 100644
(file)
--- a/
ltt/branches/poly/ltt/tracefile.c
+++ b/
ltt/branches/poly/ltt/tracefile.c
@@
-41,7
+41,6
@@
#include <stdlib.h>
#include <stdlib.h>
-#include "parser.h"
#include <ltt/ltt.h>
#include "ltt-private.h"
#include <ltt/trace.h>
#include <ltt/ltt.h>
#include "ltt-private.h"
#include <ltt/trace.h>
@@
-77,6
+76,8
@@
GQuark LTT_TRACEFILE_NAME_FACILITIES;
#define PAGE_MASK (~(page_size-1))
#define PAGE_ALIGN(addr) (((addr)+page_size-1)&PAGE_MASK)
#define PAGE_MASK (~(page_size-1))
#define PAGE_ALIGN(addr) (((addr)+page_size-1)&PAGE_MASK)
+LttTrace *father_trace = NULL;
+
/* set the offset of the fields belonging to the event,
need the information of the archecture */
//void set_fields_offsets(LttTracefile *tf, LttEventType *event_type);
/* set the offset of the fields belonging to the event,
need the information of the archecture */
//void set_fields_offsets(LttTracefile *tf, LttEventType *event_type);
@@
-284,6
+285,13
@@
int parse_trace_header(void *header, LttTracefile *tf, LttTrace *t)
&vheader->start_freq);
t->freq_scale = ltt_get_uint32(LTT_GET_BO(tf),
&vheader->freq_scale);
&vheader->start_freq);
t->freq_scale = ltt_get_uint32(LTT_GET_BO(tf),
&vheader->freq_scale);
+ if(father_trace) {
+ t->start_freq = father_trace->start_freq;
+ t->freq_scale = father_trace->freq_scale;
+ }
+ else {
+ father_trace = t;
+ }
t->start_tsc = ltt_get_uint64(LTT_GET_BO(tf),
&vheader->start_tsc);
t->start_monotonic = ltt_get_uint64(LTT_GET_BO(tf),
t->start_tsc = ltt_get_uint64(LTT_GET_BO(tf),
&vheader->start_tsc);
t->start_monotonic = ltt_get_uint64(LTT_GET_BO(tf),
@@
-369,7
+377,7
@@
gint ltt_tracefile_open(LttTrace *t, gchar * fileName, LttTracefile *tf)
perror("Error in allocating memory for buffer of tracefile");
goto close_file;
}
perror("Error in allocating memory for buffer of tracefile");
goto close_file;
}
- g_assert( ( (gu
int
)tf->buffer.head&(8-1) ) == 0); // make sure it's aligned.
+ g_assert( ( (gu
long
)tf->buffer.head&(8-1) ) == 0); // make sure it's aligned.
header = (struct ltt_block_start_header*)tf->buffer.head;
header = (struct ltt_block_start_header*)tf->buffer.head;
@@
-670,8
+678,8
@@
void get_absolute_pathname(const gchar *pathname, gchar * abs_pathname)
int get_tracefile_name_number(gchar *raw_name,
GQuark *name,
guint *num,
int get_tracefile_name_number(gchar *raw_name,
GQuark *name,
guint *num,
- gu
int
*tid,
- gu
int
*pgid,
+ gu
long
*tid,
+ gu
long
*pgid,
guint64 *creation)
{
guint raw_name_len = strlen(raw_name);
guint64 *creation)
{
guint raw_name_len = strlen(raw_name);
@@
-873,7
+881,7
@@
int open_tracefiles(LttTrace *trace, gchar *root_path, gchar *relative_path)
g_debug("Tracefile file or directory : %s\n", path);
g_debug("Tracefile file or directory : %s\n", path);
- if(strcmp(rel_path, "/eventdefs") == 0) continue;
+
//
if(strcmp(rel_path, "/eventdefs") == 0) continue;
if(S_ISDIR(stat_buf.st_mode)) {
if(S_ISDIR(stat_buf.st_mode)) {
@@
-882,10
+890,12
@@
int open_tracefiles(LttTrace *trace, gchar *root_path, gchar *relative_path)
if(ret < 0) continue;
} else if(S_ISREG(stat_buf.st_mode)) {
GQuark name;
if(ret < 0) continue;
} else if(S_ISREG(stat_buf.st_mode)) {
GQuark name;
- guint num, tid, pgid;
+ guint num;
+ gulong tid, pgid;
guint64 creation;
GArray *group;
guint64 creation;
GArray *group;
- num = tid = pgid = 0;
+ num = 0;
+ tid = pgid = 0;
creation = 0;
if(get_tracefile_name_number(rel_path, &name, &num, &tid, &pgid, &creation))
continue; /* invalid name */
creation = 0;
if(get_tracefile_name_number(rel_path, &name, &num, &tid, &pgid, &creation))
continue; /* invalid name */
@@
-1181,7
+1191,6
@@
LttTrace *ltt_trace_open(const gchar *pathname)
DIR *dir;
struct dirent *entry;
guint control_found = 0;
DIR *dir;
struct dirent *entry;
guint control_found = 0;
- guint eventdefs_found = 0;
struct stat stat_buf;
gchar path[PATH_MAX];
struct stat stat_buf;
gchar path[PATH_MAX];
@@
-1212,14
+1221,11
@@
LttTrace *ltt_trace_open(const gchar *pathname)
if(strcmp(entry->d_name, "control") == 0) {
control_found = 1;
}
if(strcmp(entry->d_name, "control") == 0) {
control_found = 1;
}
- if(strcmp(entry->d_name, "eventdefs") == 0) {
- eventdefs_found = 1;
- }
}
}
closedir(dir);
}
}
closedir(dir);
- if(!control_found
|| !eventdefs_found
) goto find_error;
+ if(!control_found) goto find_error;
/* Open all the tracefiles */
if(open_tracefiles(t, abs_path, "")) {
/* Open all the tracefiles */
if(open_tracefiles(t, abs_path, "")) {
@@
-1871,13
+1877,14
@@
int ltt_tracefile_read_update_event(LttTracefile *tf)
event->event_time = ltt_interpolate_time(tf, event);
if(!tf->compact) {
event->event_time = ltt_interpolate_time(tf, event);
if(!tf->compact) {
- event->event_id =
*(guint16*)pos
;
+ event->event_id =
ltt_get_uint16(LTT_GET_BO(tf), pos)
;
pos += sizeof(guint16);
event->event_size = ltt_get_uint16(LTT_GET_BO(tf), pos);
pos += sizeof(guint16);
} else {
/* Compact event */
pos += sizeof(guint16);
event->event_size = ltt_get_uint16(LTT_GET_BO(tf), pos);
pos += sizeof(guint16);
} else {
/* Compact event */
+ event->event_size = 0xFFFF;
}
if (a_event_debug)
}
if (a_event_debug)
@@
-1937,7
+1944,7
@@
gint map_block(LttTracefile * tf, guint block_num)
g_assert(0);
goto map_error;
}
g_assert(0);
goto map_error;
}
- g_assert( ( (gu
int
)tf->buffer.head&(8-1) ) == 0); // make sure it's aligned.
+ g_assert( ( (gu
long
)tf->buffer.head&(8-1) ) == 0); // make sure it's aligned.
tf->buffer.index = block_num;
tf->buffer.index = block_num;
@@
-2117,6
+2124,7
@@
void ltt_update_event_size(LttTracefile *tf)
}
info = marker_get_info_from_id(tf->trace, tf->event.event_id);
}
info = marker_get_info_from_id(tf->trace, tf->event.event_id);
+
if (tf->event.event_id >= MARKER_CORE_IDS)
g_assert(info != NULL);
if (tf->event.event_id >= MARKER_CORE_IDS)
g_assert(info != NULL);
This page took
0.024017 seconds
and
4
git commands to generate.