1 #ifndef __PERF_STRFILTER_H
2 #define __PERF_STRFILTER_H
3 /* General purpose glob matching filter */
5 #include <linux/list.h>
8 /* A node of string filter */
9 struct strfilter_node
{
10 struct strfilter_node
*l
; /* Tree left branche (for &,|) */
11 struct strfilter_node
*r
; /* Tree right branche (for !,&,|) */
12 const char *p
; /* Operator or rule */
17 struct strfilter_node
*root
;
21 * strfilter__new - Create a new string filter
22 * @rules: Filter rule, which is a combination of glob expressions.
23 * @err: Pointer which points an error detected on @rules
25 * Parse @rules and return new strfilter. Return NULL if an error detected.
26 * In that case, *@err will indicate where it is detected, and *@err is NULL
27 * if a memory allocation is failed.
29 struct strfilter
*strfilter__new(const char *rules
, const char **err
);
32 * strfilter__compare - compare given string and a string filter
33 * @filter: String filter
36 * Compare @str and @filter. Return true if the str match the rule
38 bool strfilter__compare(struct strfilter
*filter
, const char *str
);
41 * strfilter__delete - delete a string filter
42 * @filter: String filter to delete
46 void strfilter__delete(struct strfilter
*filter
);