struct ip_event assumes fixed positions for ip, pid
and tid.  That is no longer true with the addition of
PERF_SAMPLE_IDENTIFIER.

struct ip_event is no longer used except by hists_link.c.
Move it there.

Signed-off-by: Adrian Hunter <adrian.hun...@intel.com>
---
 tools/perf/tests/hists_link.c | 27 +++++++++++++++++++++++----
 tools/perf/util/event.h       | 11 -----------
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/tools/perf/tests/hists_link.c b/tools/perf/tests/hists_link.c
index 5a178d5..cfdbfd9 100644
--- a/tools/perf/tests/hists_link.c
+++ b/tools/perf/tests/hists_link.c
@@ -195,6 +195,19 @@ static struct sample fake_samples[][5] = {
        },
 };
 
+/* PERF_SAMPLE_IP | PERF_SAMPLE_TID | * but not PERF_SAMPLE_IDENTIFIER */
+struct ip_event {
+       struct perf_event_header header;
+       u64 ip;
+       u32 pid, tid;
+       unsigned char __more_data[];
+};
+
+union perf_ip_event {
+       struct ip_event ip;
+       union perf_event event;
+};
+
 static int add_hist_entries(struct perf_evlist *evlist, struct machine 
*machine)
 {
        struct perf_evsel *evsel;
@@ -210,7 +223,7 @@ static int add_hist_entries(struct perf_evlist *evlist, 
struct machine *machine)
         */
        list_for_each_entry(evsel, &evlist->entries, node) {
                for (k = 0; k < ARRAY_SIZE(fake_common_samples); k++) {
-                       const union perf_event event = {
+                       const union perf_ip_event ip_event = {
                                .ip = {
                                        .header = {
                                                .misc = PERF_RECORD_MISC_USER,
@@ -219,8 +232,11 @@ static int add_hist_entries(struct perf_evlist *evlist, 
struct machine *machine)
                                        .ip  = fake_common_samples[k].ip,
                                },
                        };
+                       const union perf_event *event = &ip_event.event;
 
-                       if (perf_event__preprocess_sample(&event, machine, &al,
+                       sample.pid = ip_event.ip.pid;
+                       sample.ip = ip_event.ip.ip;
+                       if (perf_event__preprocess_sample(event, machine, &al,
                                                          &sample, 0) < 0)
                                goto out;
 
@@ -234,7 +250,7 @@ static int add_hist_entries(struct perf_evlist *evlist, 
struct machine *machine)
                }
 
                for (k = 0; k < ARRAY_SIZE(fake_samples[i]); k++) {
-                       const union perf_event event = {
+                       const union perf_ip_event ip_event = {
                                .ip = {
                                        .header = {
                                                .misc = PERF_RECORD_MISC_USER,
@@ -243,8 +259,11 @@ static int add_hist_entries(struct perf_evlist *evlist, 
struct machine *machine)
                                        .ip  = fake_samples[i][k].ip,
                                },
                        };
+                       const union perf_event *event = &ip_event.event;
 
-                       if (perf_event__preprocess_sample(&event, machine, &al,
+                       sample.pid = ip_event.ip.pid;
+                       sample.ip = ip_event.ip.ip;
+                       if (perf_event__preprocess_sample(event, machine, &al,
                                                          &sample, 0) < 0)
                                goto out;
 
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
index ec07eb5..78fa6c3 100644
--- a/tools/perf/util/event.h
+++ b/tools/perf/util/event.h
@@ -8,16 +8,6 @@
 #include "map.h"
 #include "build-id.h"
 
-/*
- * PERF_SAMPLE_IP | PERF_SAMPLE_TID | *
- */
-struct ip_event {
-       struct perf_event_header header;
-       u64 ip;
-       u32 pid, tid;
-       unsigned char __more_data[];
-};
-
 struct mmap_event {
        struct perf_event_header header;
        u32 pid, tid;
@@ -180,7 +170,6 @@ struct tracing_data_event {
 
 union perf_event {
        struct perf_event_header        header;
-       struct ip_event                 ip;
        struct mmap_event               mmap;
        struct comm_event               comm;
        struct fork_event               fork;
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to