|
@@ -1655,60 +1655,6 @@ ftrace_regex_lseek(struct file *file, loff_t offset, int origin)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-enum {
|
|
|
- MATCH_FULL,
|
|
|
- MATCH_FRONT_ONLY,
|
|
|
- MATCH_MIDDLE_ONLY,
|
|
|
- MATCH_END_ONLY,
|
|
|
-};
|
|
|
-
|
|
|
-/*
|
|
|
- * (static function - no need for kernel doc)
|
|
|
- *
|
|
|
- * Pass in a buffer containing a glob and this function will
|
|
|
- * set search to point to the search part of the buffer and
|
|
|
- * return the type of search it is (see enum above).
|
|
|
- * This does modify buff.
|
|
|
- *
|
|
|
- * Returns enum type.
|
|
|
- * search returns the pointer to use for comparison.
|
|
|
- * not returns 1 if buff started with a '!'
|
|
|
- * 0 otherwise.
|
|
|
- */
|
|
|
-static int
|
|
|
-ftrace_setup_glob(char *buff, int len, char **search, int *not)
|
|
|
-{
|
|
|
- int type = MATCH_FULL;
|
|
|
- int i;
|
|
|
-
|
|
|
- if (buff[0] == '!') {
|
|
|
- *not = 1;
|
|
|
- buff++;
|
|
|
- len--;
|
|
|
- } else
|
|
|
- *not = 0;
|
|
|
-
|
|
|
- *search = buff;
|
|
|
-
|
|
|
- for (i = 0; i < len; i++) {
|
|
|
- if (buff[i] == '*') {
|
|
|
- if (!i) {
|
|
|
- *search = buff + 1;
|
|
|
- type = MATCH_END_ONLY;
|
|
|
- } else {
|
|
|
- if (type == MATCH_END_ONLY)
|
|
|
- type = MATCH_MIDDLE_ONLY;
|
|
|
- else
|
|
|
- type = MATCH_FRONT_ONLY;
|
|
|
- buff[i] = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return type;
|
|
|
-}
|
|
|
-
|
|
|
static int ftrace_match(char *str, char *regex, int len, int type)
|
|
|
{
|
|
|
int matched = 0;
|
|
@@ -1757,7 +1703,7 @@ static void ftrace_match_records(char *buff, int len, int enable)
|
|
|
int not;
|
|
|
|
|
|
flag = enable ? FTRACE_FL_FILTER : FTRACE_FL_NOTRACE;
|
|
|
- type = ftrace_setup_glob(buff, len, &search, ¬);
|
|
|
+ type = filter_parse_regex(buff, len, &search, ¬);
|
|
|
|
|
|
search_len = strlen(search);
|
|
|
|
|
@@ -1825,7 +1771,7 @@ static void ftrace_match_module_records(char *buff, char *mod, int enable)
|
|
|
}
|
|
|
|
|
|
if (strlen(buff)) {
|
|
|
- type = ftrace_setup_glob(buff, strlen(buff), &search, ¬);
|
|
|
+ type = filter_parse_regex(buff, strlen(buff), &search, ¬);
|
|
|
search_len = strlen(search);
|
|
|
}
|
|
|
|
|
@@ -1990,7 +1936,7 @@ register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
|
|
|
int count = 0;
|
|
|
char *search;
|
|
|
|
|
|
- type = ftrace_setup_glob(glob, strlen(glob), &search, ¬);
|
|
|
+ type = filter_parse_regex(glob, strlen(glob), &search, ¬);
|
|
|
len = strlen(search);
|
|
|
|
|
|
/* we do not support '!' for function probes */
|
|
@@ -2067,7 +2013,7 @@ __unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
|
|
|
else if (glob) {
|
|
|
int not;
|
|
|
|
|
|
- type = ftrace_setup_glob(glob, strlen(glob), &search, ¬);
|
|
|
+ type = filter_parse_regex(glob, strlen(glob), &search, ¬);
|
|
|
len = strlen(search);
|
|
|
|
|
|
/* we do not support '!' for function probes */
|
|
@@ -2520,7 +2466,7 @@ ftrace_set_func(unsigned long *array, int *idx, char *buffer)
|
|
|
return -ENODEV;
|
|
|
|
|
|
/* decode regex */
|
|
|
- type = ftrace_setup_glob(buffer, strlen(buffer), &search, ¬);
|
|
|
+ type = filter_parse_regex(buffer, strlen(buffer), &search, ¬);
|
|
|
if (not)
|
|
|
return -EINVAL;
|
|
|
|