Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 349925
b: refs/heads/master
c: f35488f
h: refs/heads/master
i:
  349923: de5e804
v: v3
  • Loading branch information
Jiri Olsa authored and Arnaldo Carvalho de Melo committed Jan 24, 2013
1 parent e3856ba commit fe7d171
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0bd3f0840bf4bc900b4beb8e792ad499b43dad3b
refs/heads/master: f35488f97b4b49cb76d87bb7e8da9e93fc70b4e9
51 changes: 46 additions & 5 deletions trunk/tools/perf/util/parse-events.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,8 @@ static int add_tracepoint(struct list_head **listp, int *idx,
return 0;
}

static int add_tracepoint_multi(struct list_head **list, int *idx,
char *sys_name, char *evt_name)
static int add_tracepoint_multi_event(struct list_head **list, int *idx,
char *sys_name, char *evt_name)
{
char evt_path[MAXPATHLEN];
struct dirent *evt_ent;
Expand Down Expand Up @@ -412,6 +412,46 @@ static int add_tracepoint_multi(struct list_head **list, int *idx,
return ret;
}

static int add_tracepoint_event(struct list_head **list, int *idx,
char *sys_name, char *evt_name)
{
return strpbrk(evt_name, "*?") ?
add_tracepoint_multi_event(list, idx, sys_name, evt_name) :
add_tracepoint(list, idx, sys_name, evt_name);
}

static int add_tracepoint_multi_sys(struct list_head **list, int *idx,
char *sys_name, char *evt_name)
{
struct dirent *events_ent;
DIR *events_dir;
int ret = 0;

events_dir = opendir(tracing_events_path);
if (!events_dir) {
perror("Can't open event dir");
return -1;
}

while (!ret && (events_ent = readdir(events_dir))) {
if (!strcmp(events_ent->d_name, ".")
|| !strcmp(events_ent->d_name, "..")
|| !strcmp(events_ent->d_name, "enable")
|| !strcmp(events_ent->d_name, "header_event")
|| !strcmp(events_ent->d_name, "header_page"))
continue;

if (!strglobmatch(events_ent->d_name, sys_name))
continue;

ret = add_tracepoint_event(list, idx, events_ent->d_name,
evt_name);
}

closedir(events_dir);
return ret;
}

int parse_events_add_tracepoint(struct list_head **list, int *idx,
char *sys, char *event)
{
Expand All @@ -421,9 +461,10 @@ int parse_events_add_tracepoint(struct list_head **list, int *idx,
if (ret)
return ret;

return strpbrk(event, "*?") ?
add_tracepoint_multi(list, idx, sys, event) :
add_tracepoint(list, idx, sys, event);
if (strpbrk(sys, "*?"))
return add_tracepoint_multi_sys(list, idx, sys, event);
else
return add_tracepoint_event(list, idx, sys, event);
}

static int
Expand Down

0 comments on commit fe7d171

Please sign in to comment.