Lines Matching refs:query

131 static void vpr_info_dq(const struct ddebug_query *query, const char *msg)  in vpr_info_dq()  argument
136 if (query->format) { in vpr_info_dq()
137 fmtlen = strlen(query->format); in vpr_info_dq()
138 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
144 query->function ?: "", in vpr_info_dq()
145 query->filename ?: "", in vpr_info_dq()
146 query->module ?: "", in vpr_info_dq()
147 fmtlen, query->format ?: "", in vpr_info_dq()
148 query->first_lineno, query->last_lineno, query->class_string); in vpr_info_dq()
175 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
191 if (query->module && in ddebug_change()
192 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
195 if (query->class_string) { in ddebug_change()
196 map = ddebug_find_valid_class(dt, query->class_string, &valid_class); in ddebug_change()
212 if (query->filename && in ddebug_change()
213 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
214 !match_wildcard(query->filename, in ddebug_change()
216 !match_wildcard(query->filename, in ddebug_change()
221 if (query->function && in ddebug_change()
222 !match_wildcard(query->function, dp->function)) in ddebug_change()
226 if (query->format) { in ddebug_change()
227 if (*query->format == '^') { in ddebug_change()
230 p = strstr(dp->format, query->format+1); in ddebug_change()
233 } else if (!strstr(dp->format, query->format)) in ddebug_change()
238 if (query->first_lineno && in ddebug_change()
239 dp->lineno < query->first_lineno) in ddebug_change()
241 if (query->last_lineno && in ddebug_change()
242 dp->lineno > query->last_lineno) in ddebug_change()
354 static int parse_linerange(struct ddebug_query *query, const char *first) in parse_linerange() argument
358 if (query->first_lineno || query->last_lineno) { in parse_linerange()
364 if (parse_lineno(first, &query->first_lineno) < 0) in parse_linerange()
368 if (parse_lineno(last, &query->last_lineno) < 0) in parse_linerange()
372 if (query->last_lineno == 0) in parse_linerange()
373 query->last_lineno = UINT_MAX; in parse_linerange()
375 if (query->last_lineno < query->first_lineno) { in parse_linerange()
377 query->last_lineno, in parse_linerange()
378 query->first_lineno); in parse_linerange()
382 query->last_lineno = query->first_lineno; in parse_linerange()
384 v3pr_info("parsed line %d-%d\n", query->first_lineno, in parse_linerange()
385 query->last_lineno); in parse_linerange()
418 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
435 rc = check_set(&query->function, arg, "func"); in ddebug_parse_query()
437 if (check_set(&query->filename, arg, "file")) in ddebug_parse_query()
441 fline = strchr(query->filename, ':'); in ddebug_parse_query()
447 if (check_set(&query->function, fline, "func")) in ddebug_parse_query()
450 if (parse_linerange(query, fline)) in ddebug_parse_query()
454 rc = check_set(&query->module, arg, "module"); in ddebug_parse_query()
459 rc = check_set(&query->format, arg, "format"); in ddebug_parse_query()
461 if (parse_linerange(query, arg)) in ddebug_parse_query()
464 rc = check_set(&query->class_string, arg, "class"); in ddebug_parse_query()
472 if (!query->module && modname) in ddebug_parse_query()
477 query->module = modname; in ddebug_parse_query()
479 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
541 struct ddebug_query query = {}; in ddebug_exec_query() local
556 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
561 nfound = ddebug_change(&query, &modifiers); in ddebug_exec_query()
562 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
571 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
576 for (i = 0; query; query = split) { in ddebug_exec_queries()
577 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
581 query = skip_spaces(query); in ddebug_exec_queries()
582 if (!query || !*query || *query == '#') in ddebug_exec_queries()
585 vpr_info("query %d: \"%s\" mod:%s\n", i, query, modname ?: "*"); in ddebug_exec_queries()
587 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()
610 char query[QUERY_SIZE]; in ddebug_apply_class_bitmap() local
621 snprintf(query, QUERY_SIZE, "class %s %c%s", map->class_names[bi], in ddebug_apply_class_bitmap()
624 ct = ddebug_exec_queries(query, NULL); in ddebug_apply_class_bitmap()