aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-11-26 02:16:29 -0500
committerSteven Rostedt <rostedt@goodmis.org>2009-11-26 02:16:29 -0500
commit9ebd818d51547b98c108db1a8b8a70b72027613b (patch)
tree4a75a2ae4c95b2d25d90dec3547a916883743cfb
parent11838f077aebbdfe19f69d25aff9ce67fa99f3b4 (diff)
Add offset to record structure
When a record is read, we want to know its offset in the file. This allows us to retrieve this record at a later time directly. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-cmd.h1
-rw-r--r--trace-input.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/trace-cmd.h b/trace-cmd.h
index f95f11d..741e69d 100644
--- a/trace-cmd.h
+++ b/trace-cmd.h
@@ -28,6 +28,7 @@ enum {
28 28
29struct record { 29struct record {
30 unsigned long long ts; 30 unsigned long long ts;
31 unsigned long long offset;
31 int size; 32 int size;
32 void *data; 33 void *data;
33}; 34};
diff --git a/trace-input.c b/trace-input.c
index c3085b8..b1e98d5 100644
--- a/trace-input.c
+++ b/trace-input.c
@@ -521,6 +521,9 @@ read_old_format(struct tracecmd_handle *handle, void **ptr, int cpu)
521 unsigned int len; 521 unsigned int len;
522 unsigned int delta; 522 unsigned int delta;
523 unsigned int length; 523 unsigned int length;
524 int index;
525
526 index = calc_index(handle, *ptr, cpu);
524 527
525 type_len_ts = data2host4(*ptr); 528 type_len_ts = data2host4(*ptr);
526 *ptr += 4; 529 *ptr += 4;
@@ -568,6 +571,8 @@ read_old_format(struct tracecmd_handle *handle, void **ptr, int cpu)
568 data->ts = handle->cpu_data[cpu].timestamp; 571 data->ts = handle->cpu_data[cpu].timestamp;
569 data->size = length; 572 data->size = length;
570 data->data = *ptr; 573 data->data = *ptr;
574 data->offset = handle->cpu_data[cpu].offset + index;
575
571 576
572 *ptr += ((length+3)/4) * 4; 577 *ptr += ((length+3)/4) * 4;
573 578
@@ -692,6 +697,8 @@ read_again:
692 data->ts = handle->cpu_data[cpu].timestamp; 697 data->ts = handle->cpu_data[cpu].timestamp;
693 data->size = length; 698 data->size = length;
694 data->data = ptr; 699 data->data = ptr;
700 data->offset = handle->cpu_data[cpu].offset + index;
701
695 ptr += length; 702 ptr += length;
696 703
697 handle->cpu_data[cpu].index = calc_index(handle, ptr, cpu); 704 handle->cpu_data[cpu].index = calc_index(handle, ptr, cpu);