Lines Matching refs:parg
554 struct probe_arg *parg, unsigned int flags, int offset) in traceprobe_parse_probe_arg_body() argument
576 parg->comm = kstrdup(arg, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
577 if (!parg->comm) in traceprobe_parse_probe_arg_body()
599 if (kstrtouint(t2, 0, &parg->count) || !parg->count) { in traceprobe_parse_probe_arg_body()
604 if (parg->count > MAX_ARRAY_LEN) { in traceprobe_parse_probe_arg_body()
618 if (parg->count || (t && strcmp(t, "string"))) in traceprobe_parse_probe_arg_body()
620 parg->type = find_fetch_type("string"); in traceprobe_parse_probe_arg_body()
622 parg->type = find_fetch_type(t); in traceprobe_parse_probe_arg_body()
623 if (!parg->type) { in traceprobe_parse_probe_arg_body()
627 parg->offset = *size; in traceprobe_parse_probe_arg_body()
628 *size += parg->type->size * (parg->count ?: 1); in traceprobe_parse_probe_arg_body()
631 if (parg->count) { in traceprobe_parse_probe_arg_body()
632 len = strlen(parg->type->fmttype) + 6; in traceprobe_parse_probe_arg_body()
633 parg->fmt = kmalloc(len, GFP_KERNEL); in traceprobe_parse_probe_arg_body()
634 if (!parg->fmt) in traceprobe_parse_probe_arg_body()
636 snprintf(parg->fmt, len, "%s[%d]", parg->type->fmttype, in traceprobe_parse_probe_arg_body()
637 parg->count); in traceprobe_parse_probe_arg_body()
645 ret = parse_probe_arg(arg, parg->type, &code, &code[FETCH_INSN_MAX - 1], in traceprobe_parse_probe_arg_body()
652 if (!strcmp(parg->type->name, "string") || in traceprobe_parse_probe_arg_body()
653 !strcmp(parg->type->name, "ustring")) { in traceprobe_parse_probe_arg_body()
663 parg->count) { in traceprobe_parse_probe_arg_body()
677 if (!strcmp(parg->type->name, "ustring") || in traceprobe_parse_probe_arg_body()
682 code->size = parg->type->size; in traceprobe_parse_probe_arg_body()
683 parg->dynamic = true; in traceprobe_parse_probe_arg_body()
686 code->size = parg->type->size; in traceprobe_parse_probe_arg_body()
689 code->size = parg->type->size; in traceprobe_parse_probe_arg_body()
697 code->size = parg->type->size; in traceprobe_parse_probe_arg_body()
702 ret = __parse_bitfield_probe_arg(t, parg->type, &code); in traceprobe_parse_probe_arg_body()
710 if (parg->count) { in traceprobe_parse_probe_arg_body()
724 code->param = parg->count; in traceprobe_parse_probe_arg_body()
731 parg->code = kcalloc(code - tmp + 1, sizeof(*code), GFP_KERNEL); in traceprobe_parse_probe_arg_body()
732 if (!parg->code) in traceprobe_parse_probe_arg_body()
735 memcpy(parg->code, tmp, sizeof(*code) * (code - tmp + 1)); in traceprobe_parse_probe_arg_body()
771 struct probe_arg *parg = &tp->args[i]; in traceprobe_parse_probe_arg() local
786 parg->name = kmemdup_nul(arg, body - arg, GFP_KERNEL); in traceprobe_parse_probe_arg()
790 parg->name = kasprintf(GFP_KERNEL, "arg%d", i + 1); in traceprobe_parse_probe_arg()
793 if (!parg->name) in traceprobe_parse_probe_arg()
796 if (!is_good_name(parg->name)) { in traceprobe_parse_probe_arg()
800 if (traceprobe_conflict_field_name(parg->name, tp->args, i)) { in traceprobe_parse_probe_arg()
805 return traceprobe_parse_probe_arg_body(body, &tp->size, parg, flags, in traceprobe_parse_probe_arg()
864 struct probe_arg *parg; in __set_print_fmt() local
890 parg = tp->args + i; in __set_print_fmt()
891 pos += snprintf(buf + pos, LEN_OR_ZERO, " %s=", parg->name); in __set_print_fmt()
892 if (parg->count) { in __set_print_fmt()
894 parg->type->fmt); in __set_print_fmt()
895 for (j = 1; j < parg->count; j++) in __set_print_fmt()
897 parg->type->fmt); in __set_print_fmt()
901 parg->type->fmt); in __set_print_fmt()
907 parg = tp->args + i; in __set_print_fmt()
908 if (parg->count) { in __set_print_fmt()
909 if ((strcmp(parg->type->name, "string") == 0) || in __set_print_fmt()
910 (strcmp(parg->type->name, "ustring") == 0)) in __set_print_fmt()
914 for (j = 0; j < parg->count; j++) in __set_print_fmt()
916 fmt, parg->name, j); in __set_print_fmt()
918 if ((strcmp(parg->type->name, "string") == 0) || in __set_print_fmt()
919 (strcmp(parg->type->name, "ustring") == 0)) in __set_print_fmt()
924 fmt, parg->name); in __set_print_fmt()
959 struct probe_arg *parg = &tp->args[i]; in traceprobe_define_arg_fields() local
960 const char *fmt = parg->type->fmttype; in traceprobe_define_arg_fields()
961 int size = parg->type->size; in traceprobe_define_arg_fields()
963 if (parg->fmt) in traceprobe_define_arg_fields()
964 fmt = parg->fmt; in traceprobe_define_arg_fields()
965 if (parg->count) in traceprobe_define_arg_fields()
966 size *= parg->count; in traceprobe_define_arg_fields()
967 ret = trace_define_field(event_call, fmt, parg->name, in traceprobe_define_arg_fields()
968 offset + parg->offset, size, in traceprobe_define_arg_fields()
969 parg->type->is_signed, in traceprobe_define_arg_fields()