18c2ecf20Sopenharmony_ci#include <linux/ptrace.h> 28c2ecf20Sopenharmony_ci#include <linux/version.h> 38c2ecf20Sopenharmony_ci#include <uapi/linux/bpf.h> 48c2ecf20Sopenharmony_ci#include <bpf/bpf_helpers.h> 58c2ecf20Sopenharmony_ci#include "trace_common.h" 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cistruct { 88c2ecf20Sopenharmony_ci __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); 98c2ecf20Sopenharmony_ci __uint(key_size, sizeof(int)); 108c2ecf20Sopenharmony_ci __uint(value_size, sizeof(u32)); 118c2ecf20Sopenharmony_ci __uint(max_entries, 2); 128c2ecf20Sopenharmony_ci} my_map SEC(".maps"); 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciSEC("kprobe/" SYSCALL(sys_write)) 158c2ecf20Sopenharmony_ciint bpf_prog1(struct pt_regs *ctx) 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci struct S { 188c2ecf20Sopenharmony_ci u64 pid; 198c2ecf20Sopenharmony_ci u64 cookie; 208c2ecf20Sopenharmony_ci } data; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci data.pid = bpf_get_current_pid_tgid(); 238c2ecf20Sopenharmony_ci data.cookie = 0x12345678; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci bpf_perf_event_output(ctx, &my_map, 0, &data, sizeof(data)); 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci return 0; 288c2ecf20Sopenharmony_ci} 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_cichar _license[] SEC("license") = "GPL"; 318c2ecf20Sopenharmony_ciu32 _version SEC("version") = LINUX_VERSION_CODE; 32