1*c7aec81bSMenglong Dong // SPDX-License-Identifier: GPL-2.0 2*c7aec81bSMenglong Dong // Copyright (c) 2017 Facebook 3*c7aec81bSMenglong Dong 4*c7aec81bSMenglong Dong #include "vmlinux.h" 5*c7aec81bSMenglong Dong #include <bpf/bpf_helpers.h> 6*c7aec81bSMenglong Dong #include <bpf/bpf_tracing.h> 7*c7aec81bSMenglong Dong #include <bpf/bpf_core_read.h> 8*c7aec81bSMenglong Dong #include "bpf_misc.h" 9*c7aec81bSMenglong Dong 10*c7aec81bSMenglong Dong int kprobe_res = 0; 11*c7aec81bSMenglong Dong int kretprobe_res = 0; 12*c7aec81bSMenglong Dong int uprobe_res = 0; 13*c7aec81bSMenglong Dong int uretprobe_res = 0; 14*c7aec81bSMenglong Dong int uprobe_byname_res = 0; 15*c7aec81bSMenglong Dong void *user_ptr = 0; 16*c7aec81bSMenglong Dong 17*c7aec81bSMenglong Dong SEC("kprobe") handle_kprobe(struct pt_regs * ctx)18*c7aec81bSMenglong Dongint handle_kprobe(struct pt_regs *ctx) 19*c7aec81bSMenglong Dong { 20*c7aec81bSMenglong Dong kprobe_res = 1; 21*c7aec81bSMenglong Dong return 0; 22*c7aec81bSMenglong Dong } 23*c7aec81bSMenglong Dong 24*c7aec81bSMenglong Dong SEC("kretprobe") handle_kretprobe(struct pt_regs * ctx)25*c7aec81bSMenglong Dongint handle_kretprobe(struct pt_regs *ctx) 26*c7aec81bSMenglong Dong { 27*c7aec81bSMenglong Dong kretprobe_res = 2; 28*c7aec81bSMenglong Dong return 0; 29*c7aec81bSMenglong Dong } 30*c7aec81bSMenglong Dong 31*c7aec81bSMenglong Dong SEC("uprobe") handle_uprobe(struct pt_regs * ctx)32*c7aec81bSMenglong Dongint handle_uprobe(struct pt_regs *ctx) 33*c7aec81bSMenglong Dong { 34*c7aec81bSMenglong Dong uprobe_res = 3; 35*c7aec81bSMenglong Dong return 0; 36*c7aec81bSMenglong Dong } 37*c7aec81bSMenglong Dong 38*c7aec81bSMenglong Dong SEC("uretprobe") handle_uretprobe(struct pt_regs * ctx)39*c7aec81bSMenglong Dongint handle_uretprobe(struct pt_regs *ctx) 40*c7aec81bSMenglong Dong { 41*c7aec81bSMenglong Dong uretprobe_res = 4; 42*c7aec81bSMenglong Dong return 0; 43*c7aec81bSMenglong Dong } 44*c7aec81bSMenglong Dong 45*c7aec81bSMenglong Dong SEC("uprobe") handle_uprobe_byname(struct pt_regs * ctx)46*c7aec81bSMenglong Dongint handle_uprobe_byname(struct pt_regs *ctx) 47*c7aec81bSMenglong Dong { 48*c7aec81bSMenglong Dong uprobe_byname_res = 5; 49*c7aec81bSMenglong Dong return 0; 50*c7aec81bSMenglong Dong } 51*c7aec81bSMenglong Dong 52*c7aec81bSMenglong Dong 53*c7aec81bSMenglong Dong char _license[] SEC("license") = "GPL"; 54