Lines Matching refs:query
130 static void vpr_info_dq(const struct ddebug_query *query, const char *msg) in vpr_info_dq() argument
135 if (query->format) { in vpr_info_dq()
136 fmtlen = strlen(query->format); in vpr_info_dq()
137 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
143 query->function ?: "", in vpr_info_dq()
144 query->filename ?: "", in vpr_info_dq()
145 query->module ?: "", in vpr_info_dq()
146 fmtlen, query->format ?: "", in vpr_info_dq()
147 query->first_lineno, query->last_lineno, query->class_string); in vpr_info_dq()
174 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
190 if (query->module && in ddebug_change()
191 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
194 if (query->class_string) { in ddebug_change()
195 map = ddebug_find_valid_class(dt, query->class_string, &valid_class); in ddebug_change()
211 if (query->filename && in ddebug_change()
212 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
213 !match_wildcard(query->filename, in ddebug_change()
215 !match_wildcard(query->filename, in ddebug_change()
220 if (query->function && in ddebug_change()
221 !match_wildcard(query->function, dp->function)) in ddebug_change()
225 if (query->format) { in ddebug_change()
226 if (*query->format == '^') { in ddebug_change()
229 p = strstr(dp->format, query->format+1); in ddebug_change()
232 } else if (!strstr(dp->format, query->format)) in ddebug_change()
237 if (query->first_lineno && in ddebug_change()
238 dp->lineno < query->first_lineno) in ddebug_change()
240 if (query->last_lineno && in ddebug_change()
241 dp->lineno > query->last_lineno) in ddebug_change()
353 static int parse_linerange(struct ddebug_query *query, const char *first) in parse_linerange() argument
357 if (query->first_lineno || query->last_lineno) { in parse_linerange()
363 if (parse_lineno(first, &query->first_lineno) < 0) in parse_linerange()
367 if (parse_lineno(last, &query->last_lineno) < 0) in parse_linerange()
371 if (query->last_lineno == 0) in parse_linerange()
372 query->last_lineno = UINT_MAX; in parse_linerange()
374 if (query->last_lineno < query->first_lineno) { in parse_linerange()
376 query->last_lineno, in parse_linerange()
377 query->first_lineno); in parse_linerange()
381 query->last_lineno = query->first_lineno; in parse_linerange()
383 v3pr_info("parsed line %d-%d\n", query->first_lineno, in parse_linerange()
384 query->last_lineno); in parse_linerange()
417 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
434 rc = check_set(&query->function, arg, "func"); in ddebug_parse_query()
436 if (check_set(&query->filename, arg, "file")) in ddebug_parse_query()
440 fline = strchr(query->filename, ':'); in ddebug_parse_query()
446 if (check_set(&query->function, fline, "func")) in ddebug_parse_query()
449 if (parse_linerange(query, fline)) in ddebug_parse_query()
453 rc = check_set(&query->module, arg, "module"); in ddebug_parse_query()
458 rc = check_set(&query->format, arg, "format"); in ddebug_parse_query()
460 if (parse_linerange(query, arg)) in ddebug_parse_query()
463 rc = check_set(&query->class_string, arg, "class"); in ddebug_parse_query()
471 if (!query->module && modname) in ddebug_parse_query()
476 query->module = modname; in ddebug_parse_query()
478 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
540 struct ddebug_query query = {}; in ddebug_exec_query() local
555 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
560 nfound = ddebug_change(&query, &modifiers); in ddebug_exec_query()
561 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
570 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
575 for (i = 0; query; query = split) { in ddebug_exec_queries()
576 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
580 query = skip_spaces(query); in ddebug_exec_queries()
581 if (!query || !*query || *query == '#') in ddebug_exec_queries()
584 vpr_info("query %d: \"%s\" mod:%s\n", i, query, modname ?: "*"); in ddebug_exec_queries()
586 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()
609 char query[QUERY_SIZE]; in ddebug_apply_class_bitmap() local
620 snprintf(query, QUERY_SIZE, "class %s %c%s", map->class_names[bi], in ddebug_apply_class_bitmap()
623 ct = ddebug_exec_queries(query, NULL); in ddebug_apply_class_bitmap()