Lines Matching refs:query
129 static void vpr_info_dq(const struct ddebug_query *query, const char *msg) in vpr_info_dq() argument
134 if (query->format) { in vpr_info_dq()
135 fmtlen = strlen(query->format); in vpr_info_dq()
136 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
142 query->function ?: "", in vpr_info_dq()
143 query->filename ?: "", in vpr_info_dq()
144 query->module ?: "", in vpr_info_dq()
145 fmtlen, query->format ?: "", in vpr_info_dq()
146 query->first_lineno, query->last_lineno, query->class_string); in vpr_info_dq()
173 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
189 if (query->module && in ddebug_change()
190 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
193 if (query->class_string) { in ddebug_change()
194 map = ddebug_find_valid_class(dt, query->class_string, &valid_class); in ddebug_change()
210 if (query->filename && in ddebug_change()
211 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
212 !match_wildcard(query->filename, in ddebug_change()
214 !match_wildcard(query->filename, in ddebug_change()
219 if (query->function && in ddebug_change()
220 !match_wildcard(query->function, dp->function)) in ddebug_change()
224 if (query->format) { in ddebug_change()
225 if (*query->format == '^') { in ddebug_change()
228 p = strstr(dp->format, query->format+1); in ddebug_change()
231 } else if (!strstr(dp->format, query->format)) in ddebug_change()
236 if (query->first_lineno && in ddebug_change()
237 dp->lineno < query->first_lineno) in ddebug_change()
239 if (query->last_lineno && in ddebug_change()
240 dp->lineno > query->last_lineno) in ddebug_change()
348 static int parse_linerange(struct ddebug_query *query, const char *first) in parse_linerange() argument
352 if (query->first_lineno || query->last_lineno) { in parse_linerange()
358 if (parse_lineno(first, &query->first_lineno) < 0) in parse_linerange()
362 if (parse_lineno(last, &query->last_lineno) < 0) in parse_linerange()
366 if (query->last_lineno == 0) in parse_linerange()
367 query->last_lineno = UINT_MAX; in parse_linerange()
369 if (query->last_lineno < query->first_lineno) { in parse_linerange()
371 query->last_lineno, in parse_linerange()
372 query->first_lineno); in parse_linerange()
376 query->last_lineno = query->first_lineno; in parse_linerange()
378 v3pr_info("parsed line %d-%d\n", query->first_lineno, in parse_linerange()
379 query->last_lineno); in parse_linerange()
412 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
429 rc = check_set(&query->function, arg, "func"); in ddebug_parse_query()
431 if (check_set(&query->filename, arg, "file")) in ddebug_parse_query()
435 fline = strchr(query->filename, ':'); in ddebug_parse_query()
441 if (check_set(&query->function, fline, "func")) in ddebug_parse_query()
444 if (parse_linerange(query, fline)) in ddebug_parse_query()
448 rc = check_set(&query->module, arg, "module"); in ddebug_parse_query()
453 rc = check_set(&query->format, arg, "format"); in ddebug_parse_query()
455 if (parse_linerange(query, arg)) in ddebug_parse_query()
458 rc = check_set(&query->class_string, arg, "class"); in ddebug_parse_query()
466 if (!query->module && modname) in ddebug_parse_query()
471 query->module = modname; in ddebug_parse_query()
473 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
535 struct ddebug_query query = {}; in ddebug_exec_query() local
550 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
555 nfound = ddebug_change(&query, &modifiers); in ddebug_exec_query()
556 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
565 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
570 for (i = 0; query; query = split) { in ddebug_exec_queries()
571 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
575 query = skip_spaces(query); in ddebug_exec_queries()
576 if (!query || !*query || *query == '#') in ddebug_exec_queries()
579 vpr_info("query %d: \"%s\" mod:%s\n", i, query, modname ?: "*"); in ddebug_exec_queries()
581 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()
604 char query[QUERY_SIZE]; in ddebug_apply_class_bitmap() local
615 snprintf(query, QUERY_SIZE, "class %s %c%s", map->class_names[bi], in ddebug_apply_class_bitmap()
618 ct = ddebug_exec_queries(query, NULL); in ddebug_apply_class_bitmap()