int printret(struct pt_regs *ctx) { struct str_t data = {}; u32 pid; if (!ctx->ax) return 0; pid = bpf_get_current_pid_tgid(); data.pid = pid; bpf_probe_read(&data.str, sizeof(data.str), (void *)ctx->ax); events.perf_submit(ctx,&data,sizeof(data)); return 0; };
int bpf_prog1(struct pt_regs *ctx) { struct S { u64 pid; u64 cookie; } data; data.pid = bpf_get_current_pid_tgid(); data.cookie = 0x12345678; bpf_perf_event_output(ctx, &my_map, 0, &data, sizeof(data)); return 0; }