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
10int kprobe_res = 0;
11int kretprobe_res = 0;
12int uprobe_res = 0;
13int uretprobe_res = 0;
14int uprobe_byname_res = 0;
15void *user_ptr = 0;
16
17SEC("kprobe")
18int handle_kprobe(struct pt_regs *ctx)
19{
20 kprobe_res = 1;
21 return 0;
22}
23
24SEC("kretprobe")
25int handle_kretprobe(struct pt_regs *ctx)
26{
27 kretprobe_res = 2;
28 return 0;
29}
30
31SEC("uprobe")
32int handle_uprobe(struct pt_regs *ctx)
33{
34 uprobe_res = 3;
35 return 0;
36}
37
38SEC("uretprobe")
39int handle_uretprobe(struct pt_regs *ctx)
40{
41 uretprobe_res = 4;
42 return 0;
43}
44
45SEC("uprobe")
46int handle_uprobe_byname(struct pt_regs *ctx)
47{
48 uprobe_byname_res = 5;
49 return 0;
50}
51
52
53char _license[] SEC("license") = "GPL";
54

source code of linux/tools/testing/selftests/bpf/progs/test_attach_probe_manual.c