Lines Matching refs:parg
1289 static char *parse_probe_arg_type(char *arg, struct probe_arg *parg, in parse_probe_arg_type() argument
1314 if (kstrtouint(t2, 0, &parg->count) || !parg->count) { in parse_probe_arg_type()
1319 if (parg->count > MAX_ARRAY_LEN) { in parse_probe_arg_type()
1336 if (parg->count || (t && strcmp(t, "string"))) { in parse_probe_arg_type()
1340 parg->type = find_fetch_type("string", ctx->flags); in parse_probe_arg_type()
1342 parg->type = find_fetch_type(t, ctx->flags); in parse_probe_arg_type()
1344 if (!parg->type) { in parse_probe_arg_type()
1354 struct probe_arg *parg, in finalize_fetch_insn() argument
1363 if (parg->type->is_string) { in finalize_fetch_insn()
1365 if (!strcmp(parg->type->name, "symstr")) { in finalize_fetch_insn()
1383 if (!strcmp(parg->type->name, "symstr") || in finalize_fetch_insn()
1386 parg->count) { in finalize_fetch_insn()
1403 if (!strcmp(parg->type->name, "ustring") || in finalize_fetch_insn()
1406 else if (!strcmp(parg->type->name, "symstr")) in finalize_fetch_insn()
1410 code->size = parg->type->size; in finalize_fetch_insn()
1411 parg->dynamic = true; in finalize_fetch_insn()
1414 code->size = parg->type->size; in finalize_fetch_insn()
1417 code->size = parg->type->size; in finalize_fetch_insn()
1425 code->size = parg->type->size; in finalize_fetch_insn()
1434 ret = __parse_bitfield_probe_arg(type, parg->type, &code); in finalize_fetch_insn()
1448 if (parg->count) { in finalize_fetch_insn()
1461 code->param = parg->count; in finalize_fetch_insn()
1473 struct probe_arg *parg, in traceprobe_parse_probe_arg_body() argument
1493 parg->comm = kstrdup(arg, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1494 if (!parg->comm) in traceprobe_parse_probe_arg_body()
1497 type = parse_probe_arg_type(arg, parg, ctx); in traceprobe_parse_probe_arg_body()
1507 ret = parse_probe_arg(arg, parg->type, &code, &code[FETCH_INSN_MAX - 1], in traceprobe_parse_probe_arg_body()
1516 parg->type = find_fetch_type_from_btf_type(ctx); in traceprobe_parse_probe_arg_body()
1523 parg->offset = *size; in traceprobe_parse_probe_arg_body()
1524 *size += parg->type->size * (parg->count ?: 1); in traceprobe_parse_probe_arg_body()
1526 if (parg->count) { in traceprobe_parse_probe_arg_body()
1527 len = strlen(parg->type->fmttype) + 6; in traceprobe_parse_probe_arg_body()
1528 parg->fmt = kmalloc(len, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1529 if (!parg->fmt) { in traceprobe_parse_probe_arg_body()
1533 snprintf(parg->fmt, len, "%s[%d]", parg->type->fmttype, in traceprobe_parse_probe_arg_body()
1534 parg->count); in traceprobe_parse_probe_arg_body()
1537 ret = finalize_fetch_insn(code, parg, type, type ? type - arg : 0, ctx); in traceprobe_parse_probe_arg_body()
1545 parg->code = kzalloc_objs(*code, code - tmp + 1); in traceprobe_parse_probe_arg_body()
1546 if (!parg->code) in traceprobe_parse_probe_arg_body()
1549 memcpy(parg->code, tmp, sizeof(*code) * (code - tmp + 1)); in traceprobe_parse_probe_arg_body()
1610 struct probe_arg *parg = &tp->args[i]; in traceprobe_parse_probe_arg() local
1623 parg->name = kmemdup_nul(arg, body - arg, GFP_KERNEL); in traceprobe_parse_probe_arg()
1626 parg->name = generate_probe_arg_name(arg, i); in traceprobe_parse_probe_arg()
1629 if (!parg->name) in traceprobe_parse_probe_arg()
1632 if (!is_good_name(parg->name)) { in traceprobe_parse_probe_arg()
1636 if (traceprobe_conflict_field_name(parg->name, tp->args, i)) { in traceprobe_parse_probe_arg()
1642 return traceprobe_parse_probe_arg_body(body, &tp->size, parg, ctx); in traceprobe_parse_probe_arg()
1899 struct probe_arg *parg; in __set_print_fmt() local
1925 parg = tp->args + i; in __set_print_fmt()
1926 pos += snprintf(buf + pos, LEN_OR_ZERO, " %s=", parg->name); in __set_print_fmt()
1927 if (parg->count) { in __set_print_fmt()
1929 parg->type->fmt); in __set_print_fmt()
1930 for (j = 1; j < parg->count; j++) in __set_print_fmt()
1932 parg->type->fmt); in __set_print_fmt()
1936 parg->type->fmt); in __set_print_fmt()
1942 parg = tp->args + i; in __set_print_fmt()
1943 if (parg->count) { in __set_print_fmt()
1944 if (parg->type->is_string) in __set_print_fmt()
1948 for (j = 0; j < parg->count; j++) in __set_print_fmt()
1950 fmt, parg->name, j); in __set_print_fmt()
1952 if (parg->type->is_string) in __set_print_fmt()
1957 fmt, parg->name); in __set_print_fmt()
1992 struct probe_arg *parg = &tp->args[i]; in traceprobe_define_arg_fields() local
1993 const char *fmt = parg->type->fmttype; in traceprobe_define_arg_fields()
1994 int size = parg->type->size; in traceprobe_define_arg_fields()
1996 if (parg->fmt) in traceprobe_define_arg_fields()
1997 fmt = parg->fmt; in traceprobe_define_arg_fields()
1998 if (parg->count) in traceprobe_define_arg_fields()
1999 size *= parg->count; in traceprobe_define_arg_fields()
2000 ret = trace_define_field(event_call, fmt, parg->name, in traceprobe_define_arg_fields()
2001 offset + parg->offset, size, in traceprobe_define_arg_fields()
2002 parg->type->is_signed, in traceprobe_define_arg_fields()