Lines Matching defs:tev

1858 int parse_probe_trace_command(const char *cmd, struct probe_trace_event *tev)
1860 struct probe_trace_point *tp = &tev->point;
1894 tev->group = strdup(fmt2_str);
1895 tev->event = strdup(fmt3_str);
1896 if (tev->group == NULL || tev->event == NULL) {
1900 pr_debug("Group:%s Event:%s probe:%c\n", tev->group, tev->event, pr);
1912 tev->uprobes = (tp->module[0] == '/');
1955 if (tev->uprobes) {
1961 tev->nargs = argc - 2;
1962 tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
1963 if (tev->args == NULL) {
1967 for (i = 0; i < tev->nargs; i++) {
1973 tev->args[i].name = strdup(argv[i + 2]);
1975 tev->args[i].value = strdup(p);
1976 if (tev->args[i].name == NULL || tev->args[i].value == NULL) {
2162 synthesize_probe_trace_args(struct probe_trace_event *tev, struct strbuf *buf)
2166 for (i = 0; i < tev->nargs && ret >= 0; i++)
2167 ret = synthesize_probe_trace_arg(&tev->args[i], buf);
2213 char *synthesize_probe_trace_command(struct probe_trace_event *tev)
2215 struct probe_trace_point *tp = &tev->point;
2224 tev->group, tev->event) < 0)
2227 if (tev->uprobes)
2233 err = synthesize_probe_trace_args(tev, &buf);
2316 static int convert_to_perf_probe_event(struct probe_trace_event *tev,
2323 pev->event = strdup(tev->event);
2324 pev->group = strdup(tev->group);
2329 ret = convert_to_perf_probe_point(&tev->point, &pev->point, is_kprobe);
2334 pev->nargs = tev->nargs;
2338 for (i = 0; i < tev->nargs && ret >= 0; i++) {
2339 if (tev->args[i].name)
2340 pev->args[i].name = strdup(tev->args[i].name);
2344 ret = synthesize_probe_trace_arg(&tev->args[i], &buf);
2456 void clear_probe_trace_event(struct probe_trace_event *tev)
2461 zfree(&tev->event);
2462 zfree(&tev->group);
2463 zfree(&tev->point.symbol);
2464 zfree(&tev->point.realname);
2465 zfree(&tev->point.module);
2466 for (i = 0; i < tev->nargs; i++) {
2467 zfree(&tev->args[i].name);
2468 zfree(&tev->args[i].value);
2469 zfree(&tev->args[i].type);
2470 ref = tev->args[i].ref;
2477 zfree(&tev->args);
2478 tev->nargs = 0;
2651 static bool filter_probe_trace_event(struct probe_trace_event *tev,
2657 if (strfilter__compare(filter, tev->event))
2661 if (e_snprintf(tmp, 128, "%s:%s", tev->group, tev->event) < 0)
2670 struct probe_trace_event tev;
2675 memset(&tev, 0, sizeof(tev));
2683 ret = parse_probe_trace_command(ent->s, &tev);
2685 if (!filter_probe_trace_event(&tev, filter))
2687 ret = convert_to_perf_probe_event(&tev, &pev,
2692 &pev, tev.point.module,
2697 clear_probe_trace_event(&tev);
2805 static void warn_uprobe_event_compat(struct probe_trace_event *tev)
2808 char *buf = synthesize_probe_trace_command(tev);
2809 struct probe_trace_point *tp = &tev->point;
2814 tev->group, tev->event);
2818 if (!tev->uprobes || tev->nargs == 0 || !buf)
2821 for (i = 0; i < tev->nargs; i++) {
2822 if (strchr(tev->args[i].value, '@')) {
2824 tev->args[i].value);
2827 if (strglobmatch(tev->args[i].value, "[$+-]*")) {
2829 tev->args[i].value);
2838 static int probe_trace_event__set_name(struct probe_trace_event *tev,
2850 else if (tev->event)
2851 event = tev->event;
2859 event = tev->point.realname;
2863 else if (tev->group)
2864 group = tev->group;
2870 tev->point.retprobe, allow_suffix);
2876 tev->event = strdup(event);
2877 tev->group = strdup(group);
2878 if (tev->event == NULL || tev->group == NULL)
2915 struct probe_trace_event *tev = NULL;
2927 tev = &tevs[i];
2928 up = tev->uprobes ? 1 : 0;
2936 if (!tev->point.symbol && !pev->uprobes)
2939 /* Set new name for tev (and update namelist) */
2940 ret = probe_trace_event__set_name(tev, pev, namelist[up],
2946 ret = probe_file__add_event(fd[up], tev);
2960 warn_uprobe_event_compat(tev);
3025 struct probe_trace_event *tev __maybe_unused,
3051 struct probe_trace_event *tev;
3110 *tevs = zalloc(sizeof(*tev) * num_matched_functions);
3134 tev = (*tevs) + ret;
3135 tp = &tev->point;
3168 tev->point.module = strdup_or_goto(pev->target,
3172 tev->point.module =
3175 if (!tev->point.module)
3179 tev->uprobes = pev->uprobes;
3180 tev->nargs = pev->nargs;
3181 if (tev->nargs) {
3182 tev->args = zalloc(sizeof(struct probe_trace_arg) *
3183 tev->nargs);
3184 if (tev->args == NULL)
3187 for (i = 0; i < tev->nargs; i++) {
3189 tev->args[i].name =
3193 tev->args[i].value = strdup_or_goto(pev->args[i].var,
3196 tev->args[i].type =
3200 arch__fix_tev_from_maps(pev, tev, map, sym);
3224 struct probe_trace_event *tev;
3237 * Only one tev can be generated by this.
3239 *tevs = zalloc(sizeof(*tev));
3243 tev = *tevs;
3244 tp = &tev->point;
3253 tev->uprobes = pev->uprobes;
3265 if ((!tev->uprobes) &&
3266 (kprobe_warn_out_range(tev->point.symbol,
3267 tev->point.address))) {
3281 if (tev->group) {
3282 tev->group = strdup(pev->group);
3283 if (!tev->group)
3288 tev->event = strdup(pev->event);
3289 if (!tev->event)
3293 tev->nargs = pev->nargs;
3294 tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
3295 if (!tev->args)
3298 for (i = 0; i < tev->nargs; i++)
3299 copy_to_probe_trace_arg(&tev->args[i], &pev->args[i]);
3450 struct probe_trace_event *tev;
3480 *tevs = zalloc(ret * sizeof(*tev));
3488 tev = &(*tevs)[i++];
3489 ret = parse_probe_trace_command(node->s, tev);
3493 tev->uprobes = pev->uprobes;
3558 static int show_probe_trace_event(struct probe_trace_event *tev)
3560 char *buf = synthesize_probe_trace_command(tev);
3577 struct probe_trace_event *tev;
3587 tev = &pev->tevs[i];
3589 if (!tev->point.symbol && !pev->uprobes)
3592 /* Set new name for tev (and update namelist) */
3593 ret = probe_trace_event__set_name(tev, pev,
3596 ret = show_probe_trace_event(tev);
3604 static int show_bootconfig_event(struct probe_trace_event *tev)
3606 struct probe_trace_point *tp = &tev->point;
3616 err = synthesize_probe_trace_args(tev, &buf);
3632 struct probe_trace_event *tev;
3650 tev = &pev->tevs[i];
3652 if (!tev->point.symbol && !pev->uprobes)
3655 /* Set new name for tev (and update namelist) */
3656 ret = probe_trace_event__set_name(tev, pev,
3661 if (!cur_name || strcmp(cur_name, tev->event)) {
3663 cur_name ? "\n" : "", tev->event);
3664 cur_name = tev->event;
3667 ret = show_bootconfig_event(tev);