diff options
-rw-r--r-- | src/ftdump.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/ftdump.c b/src/ftdump.c index 849d6ee..2871537 100644 --- a/src/ftdump.c +++ b/src/ftdump.c | |||
@@ -12,7 +12,7 @@ static void dump(struct timestamp* ts, size_t count) | |||
12 | struct timestamp *x; | 12 | struct timestamp *x; |
13 | while (count--) { | 13 | while (count--) { |
14 | x = ts++; | 14 | x = ts++; |
15 | printf("event:%d seq:%u cpu:%d type:%d\n", | 15 | printf("event:%d seq:%u cpu:%d type:%d\n", |
16 | (int) x->event, x->seq_no, x->cpu, x->task_type); | 16 | (int) x->event, x->seq_no, x->cpu, x->task_type); |
17 | } | 17 | } |
18 | } | 18 | } |
@@ -21,15 +21,31 @@ static void die(char* msg) | |||
21 | { | 21 | { |
22 | if (errno) | 22 | if (errno) |
23 | perror("error: "); | 23 | perror("error: "); |
24 | fprintf(stderr, "%s\n", msg); | 24 | fprintf(stderr, "%s\n", msg); |
25 | exit(1); | 25 | exit(1); |
26 | } | 26 | } |
27 | 27 | ||
28 | int main(int argc, char** argv) | 28 | #define offset(type, member) ((unsigned int) &((type *) 0)->member) |
29 | |||
30 | int main(int argc, char** argv) | ||
29 | { | 31 | { |
30 | void* mapped; | 32 | void* mapped; |
31 | size_t size, count; | 33 | size_t size, count; |
32 | struct timestamp* ts; | 34 | struct timestamp* ts; |
35 | |||
36 | printf("struct timestamp:\n" | ||
37 | "\t size = %3lu\n" | ||
38 | "\t offset(timestamp) = %3u\n" | ||
39 | "\t offset(seq_no) = %3u\n" | ||
40 | "\t offset(cpu) = %3u\n" | ||
41 | "\t offset(event) = %3u\n" | ||
42 | "\t offset(task_type) = %3u\n", | ||
43 | sizeof(struct timestamp), | ||
44 | offset(struct timestamp, timestamp), | ||
45 | offset(struct timestamp, seq_no), | ||
46 | offset(struct timestamp, cpu), | ||
47 | offset(struct timestamp, event), | ||
48 | offset(struct timestamp, task_type)); | ||
33 | 49 | ||
34 | if (argc != 2) | 50 | if (argc != 2) |
35 | die("Usage: ftdump <logfile>"); | 51 | die("Usage: ftdump <logfile>"); |
@@ -37,7 +53,7 @@ int main(int argc, char** argv) | |||
37 | die("could not map file"); | 53 | die("could not map file"); |
38 | 54 | ||
39 | ts = (struct timestamp*) mapped; | 55 | ts = (struct timestamp*) mapped; |
40 | count = size / sizeof(struct timestamp); | 56 | count = size / sizeof(struct timestamp); |
41 | 57 | ||
42 | dump(ts, count); | 58 | dump(ts, count); |
43 | return 0; | 59 | return 0; |