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