Lines Matching refs:query

114 static void vpr_info_dq(const struct ddebug_query *query, const char *msg)  in vpr_info_dq()  argument
119 if (query->format) { in vpr_info_dq()
120 fmtlen = strlen(query->format); in vpr_info_dq()
121 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
127 query->function ? query->function : "", in vpr_info_dq()
128 query->filename ? query->filename : "", in vpr_info_dq()
129 query->module ? query->module : "", in vpr_info_dq()
130 fmtlen, query->format ? query->format : "", in vpr_info_dq()
131 query->first_lineno, query->last_lineno); in vpr_info_dq()
140 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
154 if (query->module && in ddebug_change()
155 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
162 if (query->filename && in ddebug_change()
163 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
164 !match_wildcard(query->filename, in ddebug_change()
166 !match_wildcard(query->filename, in ddebug_change()
171 if (query->function && in ddebug_change()
172 !match_wildcard(query->function, dp->function)) in ddebug_change()
176 if (query->format && in ddebug_change()
177 !strstr(dp->format, query->format)) in ddebug_change()
181 if (query->first_lineno && in ddebug_change()
182 dp->lineno < query->first_lineno) in ddebug_change()
184 if (query->last_lineno && in ddebug_change()
185 dp->lineno > query->last_lineno) in ddebug_change()
321 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
331 memset(query, 0, sizeof(*query)); in ddebug_parse_query()
335 query->module = modname; in ddebug_parse_query()
339 rc = check_set(&query->function, words[i+1], "func"); in ddebug_parse_query()
341 rc = check_set(&query->filename, words[i+1], "file"); in ddebug_parse_query()
343 rc = check_set(&query->module, words[i+1], "module"); in ddebug_parse_query()
348 rc = check_set(&query->format, words[i+1], "format"); in ddebug_parse_query()
352 if (query->first_lineno || query->last_lineno) { in ddebug_parse_query()
358 if (parse_lineno(first, &query->first_lineno) < 0) in ddebug_parse_query()
362 if (parse_lineno(last, &query->last_lineno) < 0) in ddebug_parse_query()
366 if (query->last_lineno == 0) in ddebug_parse_query()
367 query->last_lineno = UINT_MAX; in ddebug_parse_query()
369 if (query->last_lineno < query->first_lineno) { in ddebug_parse_query()
371 query->last_lineno, in ddebug_parse_query()
372 query->first_lineno); in ddebug_parse_query()
376 query->last_lineno = query->first_lineno; in ddebug_parse_query()
385 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
449 struct ddebug_query query; in ddebug_exec_query() local
464 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
469 nfound = ddebug_change(&query, flags, mask); in ddebug_exec_query()
470 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
479 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
484 for (i = 0; query; query = split) { in ddebug_exec_queries()
485 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
489 query = skip_spaces(query); in ddebug_exec_queries()
490 if (!query || !*query || *query == '#') in ddebug_exec_queries()
493 vpr_info("query %d: \"%s\"\n", i, query); in ddebug_exec_queries()
495 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()