Lines Matching refs:query

126 static void vpr_info_dq(const struct ddebug_query *query, const char *msg)  in vpr_info_dq()  argument
131 if (query->format) { in vpr_info_dq()
132 fmtlen = strlen(query->format); in vpr_info_dq()
133 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
139 query->function ?: "", in vpr_info_dq()
140 query->filename ?: "", in vpr_info_dq()
141 query->module ?: "", in vpr_info_dq()
142 fmtlen, query->format ?: "", in vpr_info_dq()
143 query->first_lineno, query->last_lineno); in vpr_info_dq()
152 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
166 if (query->module && in ddebug_change()
167 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
174 if (query->filename && in ddebug_change()
175 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
176 !match_wildcard(query->filename, in ddebug_change()
178 !match_wildcard(query->filename, in ddebug_change()
183 if (query->function && in ddebug_change()
184 !match_wildcard(query->function, dp->function)) in ddebug_change()
188 if (query->format) { in ddebug_change()
189 if (*query->format == '^') { in ddebug_change()
192 p = strstr(dp->format, query->format+1); in ddebug_change()
195 } else if (!strstr(dp->format, query->format)) in ddebug_change()
200 if (query->first_lineno && in ddebug_change()
201 dp->lineno < query->first_lineno) in ddebug_change()
203 if (query->last_lineno && in ddebug_change()
204 dp->lineno > query->last_lineno) in ddebug_change()
310 static int parse_linerange(struct ddebug_query *query, const char *first) in parse_linerange() argument
314 if (query->first_lineno || query->last_lineno) { in parse_linerange()
320 if (parse_lineno(first, &query->first_lineno) < 0) in parse_linerange()
324 if (parse_lineno(last, &query->last_lineno) < 0) in parse_linerange()
328 if (query->last_lineno == 0) in parse_linerange()
329 query->last_lineno = UINT_MAX; in parse_linerange()
331 if (query->last_lineno < query->first_lineno) { in parse_linerange()
333 query->last_lineno, in parse_linerange()
334 query->first_lineno); in parse_linerange()
338 query->last_lineno = query->first_lineno; in parse_linerange()
340 v3pr_info("parsed line %d-%d\n", query->first_lineno, in parse_linerange()
341 query->last_lineno); in parse_linerange()
374 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
388 query->module = modname; in ddebug_parse_query()
395 rc = check_set(&query->function, arg, "func"); in ddebug_parse_query()
397 if (check_set(&query->filename, arg, "file")) in ddebug_parse_query()
401 fline = strchr(query->filename, ':'); in ddebug_parse_query()
407 if (check_set(&query->function, fline, "func")) in ddebug_parse_query()
410 if (parse_linerange(query, fline)) in ddebug_parse_query()
414 rc = check_set(&query->module, arg, "module"); in ddebug_parse_query()
419 rc = check_set(&query->format, arg, "format"); in ddebug_parse_query()
421 if (parse_linerange(query, arg)) in ddebug_parse_query()
430 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
492 struct ddebug_query query = {}; in ddebug_exec_query() local
507 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
512 nfound = ddebug_change(&query, &modifiers); in ddebug_exec_query()
513 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
522 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
527 for (i = 0; query; query = split) { in ddebug_exec_queries()
528 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
532 query = skip_spaces(query); in ddebug_exec_queries()
533 if (!query || !*query || *query == '#') in ddebug_exec_queries()
536 vpr_info("query %d: \"%s\" mod:%s\n", i, query, modname ?: "*"); in ddebug_exec_queries()
538 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()
566 int dynamic_debug_exec_queries(const char *query, const char *modname) in dynamic_debug_exec_queries() argument
571 if (!query) { in dynamic_debug_exec_queries()
575 qry = kstrndup(query, PAGE_SIZE, GFP_KERNEL); in dynamic_debug_exec_queries()