perf tools: Add strfilter for general purpose string filter
authorMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thu, 20 Jan 2011 14:15:30 +0000 (23:15 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 28 Jan 2011 11:19:38 +0000 (09:19 -0200)
commit68baa431ec2f14ba7510d4e79bceb6ceaf0d3b74
tree01c1901907ffa1a462d8a06b126736337f11758e
parentd380eaaea70d775c0520dcb5702ea5d2a56b7be9
perf tools: Add strfilter for general purpose string filter

Add strfilter for general purpose string filter.

Every filter rules are descrived by glob matching pattern and '!' prefix
which means Logical NOT.

A strfilter consists of those filter rules connected with '&' and '|'.

A set of rules can be folded by using '(' and ')'.

It also accepts spaces around rules and those operators.

Format:
<rule> ::= <glob-exp> | "!" <rule> | <rule> <op> <rule> | "(" <rule> ")"
<op> ::= "&" | "|"

e.g.:

 "(add* | del*) & *timer" filter rules pass strings which start with add
 or del and end with timer.

This will be used by perf probe --filter.

Changes in V2:
 - Fix to check result of strdup() and strfilter__alloc().
 - Encapsulate and simplify interfaces as like regex(3).

Cc: 2nddept-manager@sdl.hitachi.co.jp
Cc: Franck Bui-Huu <fbuihuu@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <20110120141530.25915.12673.stgit@ltc236.sdl.hitachi.co.jp>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Makefile
tools/perf/util/strfilter.c [new file with mode: 0644]
tools/perf/util/strfilter.h [new file with mode: 0644]