aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrikar Dronamraju <srikar@linux.vnet.ibm.com>2010-08-02 08:38:51 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-08-04 11:41:23 -0400
commitb83f920e179101a54721e5ab1d6c3edfb9d4bcbb (patch)
tree73f43481e5ea2f507afc2876b1cf4b5c0e395f5d
parentb5a6325464b700c4bdac8799c495970516eed41c (diff)
perf: expose event__process function
The event__process function is useful in processing /proc/<pid>/maps. All of the functions that are called from event__process are defined in util/event.c. Though its defined in builtin-top.c, it could be reused for perf probe for uprobes. Hence moving it to util/event.c and exporting the function. LKML-Reference: <20100802123851.GD22812@linux.vnet.ibm.com> Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/builtin-top.c20
-rw-r--r--tools/perf/util/event.c20
-rw-r--r--tools/perf/util/event.h1
3 files changed, 21 insertions, 20 deletions
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 1e8e92e317b9..b513e40974f4 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -1082,26 +1082,6 @@ static void event__process_sample(const event_t *self,
1082 } 1082 }
1083} 1083}
1084 1084
1085static int event__process(event_t *event, struct perf_session *session)
1086{
1087 switch (event->header.type) {
1088 case PERF_RECORD_COMM:
1089 event__process_comm(event, session);
1090 break;
1091 case PERF_RECORD_MMAP:
1092 event__process_mmap(event, session);
1093 break;
1094 case PERF_RECORD_FORK:
1095 case PERF_RECORD_EXIT:
1096 event__process_task(event, session);
1097 break;
1098 default:
1099 break;
1100 }
1101
1102 return 0;
1103}
1104
1105struct mmap_data { 1085struct mmap_data {
1106 int counter; 1086 int counter;
1107 void *base; 1087 void *base;
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index db8a1d4b4d8c..dab9e754a281 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -548,6 +548,26 @@ int event__process_task(event_t *self, struct perf_session *session)
548 return 0; 548 return 0;
549} 549}
550 550
551int event__process(event_t *event, struct perf_session *session)
552{
553 switch (event->header.type) {
554 case PERF_RECORD_COMM:
555 event__process_comm(event, session);
556 break;
557 case PERF_RECORD_MMAP:
558 event__process_mmap(event, session);
559 break;
560 case PERF_RECORD_FORK:
561 case PERF_RECORD_EXIT:
562 event__process_task(event, session);
563 break;
564 default:
565 break;
566 }
567
568 return 0;
569}
570
551void thread__find_addr_map(struct thread *self, 571void thread__find_addr_map(struct thread *self,
552 struct perf_session *session, u8 cpumode, 572 struct perf_session *session, u8 cpumode,
553 enum map_type type, pid_t pid, u64 addr, 573 enum map_type type, pid_t pid, u64 addr,
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
index 887ee63bbb62..8e790dae7026 100644
--- a/tools/perf/util/event.h
+++ b/tools/perf/util/event.h
@@ -154,6 +154,7 @@ int event__process_comm(event_t *self, struct perf_session *session);
154int event__process_lost(event_t *self, struct perf_session *session); 154int event__process_lost(event_t *self, struct perf_session *session);
155int event__process_mmap(event_t *self, struct perf_session *session); 155int event__process_mmap(event_t *self, struct perf_session *session);
156int event__process_task(event_t *self, struct perf_session *session); 156int event__process_task(event_t *self, struct perf_session *session);
157int event__process(event_t *event, struct perf_session *session);
157 158
158struct addr_location; 159struct addr_location;
159int event__preprocess_sample(const event_t *self, struct perf_session *session, 160int event__preprocess_sample(const event_t *self, struct perf_session *session,