summaryrefslogtreecommitdiff
path: root/tools/perf/util/parse-events.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-08-19 09:12:00 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-08-19 09:12:00 +0900
commitee8365f23355cdb66e7a6c5c9364e8d3ba4de32f (patch)
treee77b5ff0d17eb583312fe710de569081a3ec8f8d /tools/perf/util/parse-events.c
parent1b3edd9745ef3a9ee831fe5a611757686579c9e1 (diff)
parente174d13010a6bd52045466bc35ca5a86e3f3ba9b (diff)
Merge branch 'master' into sh/cachetlb
Conflicts: arch/sh/kernel/Makefile_64
Diffstat (limited to 'tools/perf/util/parse-events.c')
-rw-r--r--tools/perf/util/parse-events.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 4858d83b3b67..044178408783 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -379,6 +379,7 @@ static int parse_tracepoint_event(const char **strp,
struct perf_counter_attr *attr)
{
const char *evt_name;
+ char *flags;
char sys_name[MAX_EVENT_LENGTH];
char id_buf[4];
int fd;
@@ -400,6 +401,15 @@ static int parse_tracepoint_event(const char **strp,
strncpy(sys_name, *strp, sys_length);
sys_name[sys_length] = '\0';
evt_name = evt_name + 1;
+
+ flags = strchr(evt_name, ':');
+ if (flags) {
+ *flags = '\0';
+ flags++;
+ if (!strncmp(flags, "record", strlen(flags)))
+ attr->sample_type |= PERF_SAMPLE_RAW;
+ }
+
evt_length = strlen(evt_name);
if (evt_length >= MAX_EVENT_LENGTH)
return 0;