Lines Matching refs:parg

1224 static char *parse_probe_arg_type(char *arg, struct probe_arg *parg,  in parse_probe_arg_type()  argument
1249 if (kstrtouint(t2, 0, &parg->count) || !parg->count) { in parse_probe_arg_type()
1254 if (parg->count > MAX_ARRAY_LEN) { in parse_probe_arg_type()
1271 if (parg->count || (t && strcmp(t, "string"))) { in parse_probe_arg_type()
1275 parg->type = find_fetch_type("string", ctx->flags); in parse_probe_arg_type()
1277 parg->type = find_fetch_type(t, ctx->flags); in parse_probe_arg_type()
1279 if (!parg->type) { in parse_probe_arg_type()
1289 struct probe_arg *parg, in finalize_fetch_insn() argument
1298 if (parg->type->is_string) { in finalize_fetch_insn()
1300 if (!strcmp(parg->type->name, "symstr")) { in finalize_fetch_insn()
1318 if (!strcmp(parg->type->name, "symstr") || in finalize_fetch_insn()
1321 parg->count) { in finalize_fetch_insn()
1338 if (!strcmp(parg->type->name, "ustring") || in finalize_fetch_insn()
1341 else if (!strcmp(parg->type->name, "symstr")) in finalize_fetch_insn()
1345 code->size = parg->type->size; in finalize_fetch_insn()
1346 parg->dynamic = true; in finalize_fetch_insn()
1349 code->size = parg->type->size; in finalize_fetch_insn()
1352 code->size = parg->type->size; in finalize_fetch_insn()
1360 code->size = parg->type->size; in finalize_fetch_insn()
1369 ret = __parse_bitfield_probe_arg(type, parg->type, &code); in finalize_fetch_insn()
1383 if (parg->count) { in finalize_fetch_insn()
1396 code->param = parg->count; in finalize_fetch_insn()
1408 struct probe_arg *parg, in traceprobe_parse_probe_arg_body() argument
1428 parg->comm = kstrdup(arg, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1429 if (!parg->comm) { in traceprobe_parse_probe_arg_body()
1434 type = parse_probe_arg_type(arg, parg, ctx); in traceprobe_parse_probe_arg_body()
1448 ret = parse_probe_arg(arg, parg->type, &code, &code[FETCH_INSN_MAX - 1], in traceprobe_parse_probe_arg_body()
1457 parg->type = find_fetch_type_from_btf_type(ctx); in traceprobe_parse_probe_arg_body()
1464 parg->offset = *size; in traceprobe_parse_probe_arg_body()
1465 *size += parg->type->size * (parg->count ?: 1); in traceprobe_parse_probe_arg_body()
1467 if (parg->count) { in traceprobe_parse_probe_arg_body()
1468 len = strlen(parg->type->fmttype) + 6; in traceprobe_parse_probe_arg_body()
1469 parg->fmt = kmalloc(len, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1470 if (!parg->fmt) { in traceprobe_parse_probe_arg_body()
1474 snprintf(parg->fmt, len, "%s[%d]", parg->type->fmttype, in traceprobe_parse_probe_arg_body()
1475 parg->count); in traceprobe_parse_probe_arg_body()
1478 ret = finalize_fetch_insn(code, parg, type, type ? type - arg : 0, ctx); in traceprobe_parse_probe_arg_body()
1486 parg->code = kcalloc(code - tmp + 1, sizeof(*code), GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1487 if (!parg->code) in traceprobe_parse_probe_arg_body()
1490 memcpy(parg->code, tmp, sizeof(*code) * (code - tmp + 1)); in traceprobe_parse_probe_arg_body()
1553 struct probe_arg *parg = &tp->args[i]; in traceprobe_parse_probe_arg() local
1566 parg->name = kmemdup_nul(arg, body - arg, GFP_KERNEL); in traceprobe_parse_probe_arg()
1569 parg->name = generate_probe_arg_name(arg, i); in traceprobe_parse_probe_arg()
1572 if (!parg->name) in traceprobe_parse_probe_arg()
1575 if (!is_good_name(parg->name)) { in traceprobe_parse_probe_arg()
1579 if (traceprobe_conflict_field_name(parg->name, tp->args, i)) { in traceprobe_parse_probe_arg()
1585 return traceprobe_parse_probe_arg_body(body, &tp->size, parg, ctx); in traceprobe_parse_probe_arg()
1851 struct probe_arg *parg; in __set_print_fmt() local
1877 parg = tp->args + i; in __set_print_fmt()
1878 pos += snprintf(buf + pos, LEN_OR_ZERO, " %s=", parg->name); in __set_print_fmt()
1879 if (parg->count) { in __set_print_fmt()
1881 parg->type->fmt); in __set_print_fmt()
1882 for (j = 1; j < parg->count; j++) in __set_print_fmt()
1884 parg->type->fmt); in __set_print_fmt()
1888 parg->type->fmt); in __set_print_fmt()
1894 parg = tp->args + i; in __set_print_fmt()
1895 if (parg->count) { in __set_print_fmt()
1896 if (parg->type->is_string) in __set_print_fmt()
1900 for (j = 0; j < parg->count; j++) in __set_print_fmt()
1902 fmt, parg->name, j); in __set_print_fmt()
1904 if (parg->type->is_string) in __set_print_fmt()
1909 fmt, parg->name); in __set_print_fmt()
1944 struct probe_arg *parg = &tp->args[i]; in traceprobe_define_arg_fields() local
1945 const char *fmt = parg->type->fmttype; in traceprobe_define_arg_fields()
1946 int size = parg->type->size; in traceprobe_define_arg_fields()
1948 if (parg->fmt) in traceprobe_define_arg_fields()
1949 fmt = parg->fmt; in traceprobe_define_arg_fields()
1950 if (parg->count) in traceprobe_define_arg_fields()
1951 size *= parg->count; in traceprobe_define_arg_fields()
1952 ret = trace_define_field(event_call, fmt, parg->name, in traceprobe_define_arg_fields()
1953 offset + parg->offset, size, in traceprobe_define_arg_fields()
1954 parg->type->is_signed, in traceprobe_define_arg_fields()