Lines Matching refs:tev
1845 int parse_probe_trace_command(const char *cmd, struct probe_trace_event *tev)
1847 struct probe_trace_point *tp = &tev->point;
1881 tev->group = strdup(fmt2_str);
1882 tev->event = strdup(fmt3_str);
1883 if (tev->group == NULL || tev->event == NULL) {
1887 pr_debug("Group:%s Event:%s probe:%c\n", tev->group, tev->event, pr);
1899 tev->uprobes = (tp->module[0] == '/');
1942 if (tev->uprobes) {
1948 tev->nargs = argc - 2;
1949 tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
1950 if (tev->args == NULL) {
1954 for (i = 0; i < tev->nargs; i++) {
1960 tev->args[i].name = strdup(argv[i + 2]);
1962 tev->args[i].value = strdup(p);
1963 if (tev->args[i].name == NULL || tev->args[i].value == NULL) {
2149 synthesize_probe_trace_args(struct probe_trace_event *tev, struct strbuf *buf)
2153 for (i = 0; i < tev->nargs && ret >= 0; i++)
2154 ret = synthesize_probe_trace_arg(&tev->args[i], buf);
2200 char *synthesize_probe_trace_command(struct probe_trace_event *tev)
2202 struct probe_trace_point *tp = &tev->point;
2211 tev->group, tev->event) < 0)
2214 if (tev->uprobes)
2220 err = synthesize_probe_trace_args(tev, &buf);
2305 static int convert_to_perf_probe_event(struct probe_trace_event *tev,
2312 pev->event = strdup(tev->event);
2313 pev->group = strdup(tev->group);
2318 ret = convert_to_perf_probe_point(&tev->point, &pev->point, is_kprobe);
2323 pev->nargs = tev->nargs;
2327 for (i = 0; i < tev->nargs && ret >= 0; i++) {
2328 if (tev->args[i].name)
2329 pev->args[i].name = strdup(tev->args[i].name);
2333 ret = synthesize_probe_trace_arg(&tev->args[i], &buf);
2445 void clear_probe_trace_event(struct probe_trace_event *tev)
2450 zfree(&tev->event);
2451 zfree(&tev->group);
2452 zfree(&tev->point.symbol);
2453 zfree(&tev->point.realname);
2454 zfree(&tev->point.module);
2455 for (i = 0; i < tev->nargs; i++) {
2456 zfree(&tev->args[i].name);
2457 zfree(&tev->args[i].value);
2458 zfree(&tev->args[i].type);
2459 ref = tev->args[i].ref;
2466 zfree(&tev->args);
2467 tev->nargs = 0;
2640 static bool filter_probe_trace_event(struct probe_trace_event *tev,
2646 if (strfilter__compare(filter, tev->event))
2650 if (e_snprintf(tmp, 128, "%s:%s", tev->group, tev->event) < 0)
2659 struct probe_trace_event tev;
2664 memset(&tev, 0, sizeof(tev));
2672 ret = parse_probe_trace_command(ent->s, &tev);
2674 if (!filter_probe_trace_event(&tev, filter))
2676 ret = convert_to_perf_probe_event(&tev, &pev,
2681 &pev, tev.point.module,
2686 clear_probe_trace_event(&tev);
2794 static void warn_uprobe_event_compat(struct probe_trace_event *tev)
2797 char *buf = synthesize_probe_trace_command(tev);
2798 struct probe_trace_point *tp = &tev->point;
2803 tev->group, tev->event);
2807 if (!tev->uprobes || tev->nargs == 0 || !buf)
2810 for (i = 0; i < tev->nargs; i++) {
2811 if (strchr(tev->args[i].value, '@')) {
2813 tev->args[i].value);
2816 if (strglobmatch(tev->args[i].value, "[$+-]*")) {
2818 tev->args[i].value);
2827 static int probe_trace_event__set_name(struct probe_trace_event *tev,
2839 else if (tev->event)
2840 event = tev->event;
2848 event = tev->point.realname;
2852 else if (tev->group)
2853 group = tev->group;
2859 tev->point.retprobe, allow_suffix);
2865 tev->event = strdup(event);
2866 tev->group = strdup(group);
2867 if (tev->event == NULL || tev->group == NULL)
2904 struct probe_trace_event *tev = NULL;
2916 tev = &tevs[i];
2917 up = tev->uprobes ? 1 : 0;
2925 if (!tev->point.symbol && !pev->uprobes)
2928 /* Set new name for tev (and update namelist) */
2929 ret = probe_trace_event__set_name(tev, pev, namelist[up],
2935 ret = probe_file__add_event(fd[up], tev);
2949 warn_uprobe_event_compat(tev);
3014 struct probe_trace_event *tev __maybe_unused,
3040 struct probe_trace_event *tev;
3099 *tevs = zalloc(sizeof(*tev) * num_matched_functions);
3123 tev = (*tevs) + ret;
3124 tp = &tev->point;
3157 tev->point.module = strdup_or_goto(pev->target,
3161 tev->point.module =
3164 if (!tev->point.module)
3168 tev->uprobes = pev->uprobes;
3169 tev->nargs = pev->nargs;
3170 if (tev->nargs) {
3171 tev->args = zalloc(sizeof(struct probe_trace_arg) *
3172 tev->nargs);
3173 if (tev->args == NULL)
3176 for (i = 0; i < tev->nargs; i++) {
3178 tev->args[i].name =
3182 tev->args[i].value = strdup_or_goto(pev->args[i].var,
3185 tev->args[i].type =
3189 arch__fix_tev_from_maps(pev, tev, map, sym);
3213 struct probe_trace_event *tev;
3226 * Only one tev can be generated by this.
3228 *tevs = zalloc(sizeof(*tev));
3232 tev = *tevs;
3233 tp = &tev->point;
3242 tev->uprobes = pev->uprobes;
3254 if ((!tev->uprobes) &&
3255 (kprobe_warn_out_range(tev->point.symbol,
3256 tev->point.address))) {
3270 if (tev->group) {
3271 tev->group = strdup(pev->group);
3272 if (!tev->group)
3277 tev->event = strdup(pev->event);
3278 if (!tev->event)
3282 tev->nargs = pev->nargs;
3283 tev->args = zalloc(sizeof(struct probe_trace_arg) * tev->nargs);
3284 if (!tev->args)
3287 for (i = 0; i < tev->nargs; i++)
3288 copy_to_probe_trace_arg(&tev->args[i], &pev->args[i]);
3439 struct probe_trace_event *tev;
3469 *tevs = zalloc(ret * sizeof(*tev));
3477 tev = &(*tevs)[i++];
3478 ret = parse_probe_trace_command(node->s, tev);
3482 tev->uprobes = pev->uprobes;
3547 static int show_probe_trace_event(struct probe_trace_event *tev)
3549 char *buf = synthesize_probe_trace_command(tev);
3566 struct probe_trace_event *tev;
3576 tev = &pev->tevs[i];
3578 if (!tev->point.symbol && !pev->uprobes)
3581 /* Set new name for tev (and update namelist) */
3582 ret = probe_trace_event__set_name(tev, pev,
3585 ret = show_probe_trace_event(tev);
3593 static int show_bootconfig_event(struct probe_trace_event *tev)
3595 struct probe_trace_point *tp = &tev->point;
3605 err = synthesize_probe_trace_args(tev, &buf);
3621 struct probe_trace_event *tev;
3639 tev = &pev->tevs[i];
3641 if (!tev->point.symbol && !pev->uprobes)
3644 /* Set new name for tev (and update namelist) */
3645 ret = probe_trace_event__set_name(tev, pev,
3650 if (!cur_name || strcmp(cur_name, tev->event)) {
3652 cur_name ? "\n" : "", tev->event);
3653 cur_name = tev->event;
3656 ret = show_bootconfig_event(tev);