Lines Matching refs:parg

1261 static char *parse_probe_arg_type(char *arg, struct probe_arg *parg,  in parse_probe_arg_type()  argument
1286 if (kstrtouint(t2, 0, &parg->count) || !parg->count) { in parse_probe_arg_type()
1291 if (parg->count > MAX_ARRAY_LEN) { in parse_probe_arg_type()
1308 if (parg->count || (t && strcmp(t, "string"))) { in parse_probe_arg_type()
1312 parg->type = find_fetch_type("string", ctx->flags); in parse_probe_arg_type()
1314 parg->type = find_fetch_type(t, ctx->flags); in parse_probe_arg_type()
1316 if (!parg->type) { in parse_probe_arg_type()
1326 struct probe_arg *parg, in finalize_fetch_insn() argument
1335 if (parg->type->is_string) { in finalize_fetch_insn()
1337 if (!strcmp(parg->type->name, "symstr")) { in finalize_fetch_insn()
1355 if (!strcmp(parg->type->name, "symstr") || in finalize_fetch_insn()
1358 parg->count) { in finalize_fetch_insn()
1375 if (!strcmp(parg->type->name, "ustring") || in finalize_fetch_insn()
1378 else if (!strcmp(parg->type->name, "symstr")) in finalize_fetch_insn()
1382 code->size = parg->type->size; in finalize_fetch_insn()
1383 parg->dynamic = true; in finalize_fetch_insn()
1386 code->size = parg->type->size; in finalize_fetch_insn()
1389 code->size = parg->type->size; in finalize_fetch_insn()
1397 code->size = parg->type->size; in finalize_fetch_insn()
1406 ret = __parse_bitfield_probe_arg(type, parg->type, &code); in finalize_fetch_insn()
1420 if (parg->count) { in finalize_fetch_insn()
1433 code->param = parg->count; in finalize_fetch_insn()
1445 struct probe_arg *parg, in traceprobe_parse_probe_arg_body() argument
1465 parg->comm = kstrdup(arg, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1466 if (!parg->comm) in traceprobe_parse_probe_arg_body()
1469 type = parse_probe_arg_type(arg, parg, ctx); in traceprobe_parse_probe_arg_body()
1479 ret = parse_probe_arg(arg, parg->type, &code, &code[FETCH_INSN_MAX - 1], in traceprobe_parse_probe_arg_body()
1488 parg->type = find_fetch_type_from_btf_type(ctx); in traceprobe_parse_probe_arg_body()
1495 parg->offset = *size; in traceprobe_parse_probe_arg_body()
1496 *size += parg->type->size * (parg->count ?: 1); in traceprobe_parse_probe_arg_body()
1498 if (parg->count) { in traceprobe_parse_probe_arg_body()
1499 len = strlen(parg->type->fmttype) + 6; in traceprobe_parse_probe_arg_body()
1500 parg->fmt = kmalloc(len, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1501 if (!parg->fmt) { in traceprobe_parse_probe_arg_body()
1505 snprintf(parg->fmt, len, "%s[%d]", parg->type->fmttype, in traceprobe_parse_probe_arg_body()
1506 parg->count); in traceprobe_parse_probe_arg_body()
1509 ret = finalize_fetch_insn(code, parg, type, type ? type - arg : 0, ctx); in traceprobe_parse_probe_arg_body()
1517 parg->code = kcalloc(code - tmp + 1, sizeof(*code), GFP_KERNEL); in traceprobe_parse_probe_arg_body()
1518 if (!parg->code) in traceprobe_parse_probe_arg_body()
1521 memcpy(parg->code, tmp, sizeof(*code) * (code - tmp + 1)); in traceprobe_parse_probe_arg_body()
1582 struct probe_arg *parg = &tp->args[i]; in traceprobe_parse_probe_arg() local
1595 parg->name = kmemdup_nul(arg, body - arg, GFP_KERNEL); in traceprobe_parse_probe_arg()
1598 parg->name = generate_probe_arg_name(arg, i); in traceprobe_parse_probe_arg()
1601 if (!parg->name) in traceprobe_parse_probe_arg()
1604 if (!is_good_name(parg->name)) { in traceprobe_parse_probe_arg()
1608 if (traceprobe_conflict_field_name(parg->name, tp->args, i)) { in traceprobe_parse_probe_arg()
1614 return traceprobe_parse_probe_arg_body(body, &tp->size, parg, ctx); in traceprobe_parse_probe_arg()
1871 struct probe_arg *parg; in __set_print_fmt() local
1897 parg = tp->args + i; in __set_print_fmt()
1898 pos += snprintf(buf + pos, LEN_OR_ZERO, " %s=", parg->name); in __set_print_fmt()
1899 if (parg->count) { in __set_print_fmt()
1901 parg->type->fmt); in __set_print_fmt()
1902 for (j = 1; j < parg->count; j++) in __set_print_fmt()
1904 parg->type->fmt); in __set_print_fmt()
1908 parg->type->fmt); in __set_print_fmt()
1914 parg = tp->args + i; in __set_print_fmt()
1915 if (parg->count) { in __set_print_fmt()
1916 if (parg->type->is_string) in __set_print_fmt()
1920 for (j = 0; j < parg->count; j++) in __set_print_fmt()
1922 fmt, parg->name, j); in __set_print_fmt()
1924 if (parg->type->is_string) in __set_print_fmt()
1929 fmt, parg->name); in __set_print_fmt()
1964 struct probe_arg *parg = &tp->args[i]; in traceprobe_define_arg_fields() local
1965 const char *fmt = parg->type->fmttype; in traceprobe_define_arg_fields()
1966 int size = parg->type->size; in traceprobe_define_arg_fields()
1968 if (parg->fmt) in traceprobe_define_arg_fields()
1969 fmt = parg->fmt; in traceprobe_define_arg_fields()
1970 if (parg->count) in traceprobe_define_arg_fields()
1971 size *= parg->count; in traceprobe_define_arg_fields()
1972 ret = trace_define_field(event_call, fmt, parg->name, in traceprobe_define_arg_fields()
1973 offset + parg->offset, size, in traceprobe_define_arg_fields()
1974 parg->type->is_signed, in traceprobe_define_arg_fields()