• Home
  • Raw
  • Download

Lines Matching full:query

112 static void vpr_info_dq(const struct ddebug_query *query, const char *msg)  in vpr_info_dq()  argument
117 if (query->format) { in vpr_info_dq()
118 fmtlen = strlen(query->format); in vpr_info_dq()
119 while (fmtlen && query->format[fmtlen - 1] == '\n') in vpr_info_dq()
125 query->function ? query->function : "", in vpr_info_dq()
126 query->filename ? query->filename : "", in vpr_info_dq()
127 query->module ? query->module : "", in vpr_info_dq()
128 fmtlen, query->format ? query->format : "", in vpr_info_dq()
129 query->first_lineno, query->last_lineno); in vpr_info_dq()
133 * Search the tables for _ddebug's which match the given `query' and
138 static int ddebug_change(const struct ddebug_query *query, in ddebug_change() argument
152 if (query->module && in ddebug_change()
153 !match_wildcard(query->module, dt->mod_name)) in ddebug_change()
160 if (query->filename && in ddebug_change()
161 !match_wildcard(query->filename, dp->filename) && in ddebug_change()
162 !match_wildcard(query->filename, in ddebug_change()
164 !match_wildcard(query->filename, in ddebug_change()
169 if (query->function && in ddebug_change()
170 !match_wildcard(query->function, dp->function)) in ddebug_change()
174 if (query->format && in ddebug_change()
175 !strstr(dp->format, query->format)) in ddebug_change()
179 if (query->first_lineno && in ddebug_change()
180 dp->lineno < query->first_lineno) in ddebug_change()
182 if (query->last_lineno && in ddebug_change()
183 dp->lineno > query->last_lineno) in ddebug_change()
208 pr_info("no matches for query\n"); in ddebug_change()
303 * Parse words[] as a ddebug query specification, which is a series
318 struct ddebug_query *query, const char *modname) in ddebug_parse_query() argument
328 memset(query, 0, sizeof(*query)); in ddebug_parse_query()
332 query->module = modname; in ddebug_parse_query()
336 rc = check_set(&query->function, words[i+1], "func"); in ddebug_parse_query()
338 rc = check_set(&query->filename, words[i+1], "file"); in ddebug_parse_query()
340 rc = check_set(&query->module, words[i+1], "module"); in ddebug_parse_query()
345 rc = check_set(&query->format, words[i+1], "format"); in ddebug_parse_query()
349 if (query->first_lineno || query->last_lineno) { in ddebug_parse_query()
355 if (parse_lineno(first, &query->first_lineno) < 0) in ddebug_parse_query()
359 if (parse_lineno(last, &query->last_lineno) < 0) in ddebug_parse_query()
363 if (query->last_lineno == 0) in ddebug_parse_query()
364 query->last_lineno = UINT_MAX; in ddebug_parse_query()
366 if (query->last_lineno < query->first_lineno) { in ddebug_parse_query()
368 query->last_lineno, in ddebug_parse_query()
369 query->first_lineno); in ddebug_parse_query()
373 query->last_lineno = query->first_lineno; in ddebug_parse_query()
382 vpr_info_dq(query, "parsed"); in ddebug_parse_query()
446 struct ddebug_query query; in ddebug_exec_query() local
456 /* check flags 1st (last arg) so query is pairs of spec,val */ in ddebug_exec_query()
461 if (ddebug_parse_query(words, nwords-1, &query, modname)) { in ddebug_exec_query()
462 pr_err("query parse failed\n"); in ddebug_exec_query()
466 nfound = ddebug_change(&query, flags, mask); in ddebug_exec_query()
467 vpr_info_dq(&query, nfound ? "applied" : "no-match"); in ddebug_exec_query()
472 /* handle multiple queries in query string, continue on error, return
474 in param (for boot arg) or perhaps in query string.
476 static int ddebug_exec_queries(char *query, const char *modname) in ddebug_exec_queries() argument
481 for (i = 0; query; query = split) { in ddebug_exec_queries()
482 split = strpbrk(query, ";\n"); in ddebug_exec_queries()
486 query = skip_spaces(query); in ddebug_exec_queries()
487 if (!query || !*query || *query == '#') in ddebug_exec_queries()
490 vpr_info("query %d: \"%s\"\n", i, query); in ddebug_exec_queries()
492 rc = ddebug_exec_query(query, modname); in ddebug_exec_queries()
890 return 0; /* query failure shouldnt stop module load */ in ddebug_dyndbg_param_cb()