1*23cf7aa5SYafang Shao // SPDX-License-Identifier: GPL-2.0
2*23cf7aa5SYafang Shao /* Copyright (C) 2023 Yafang Shao <laoar.shao@gmail.com> */
3*23cf7aa5SYafang Shao 
4*23cf7aa5SYafang Shao #include "vmlinux.h"
5*23cf7aa5SYafang Shao #include <bpf/bpf_tracing.h>
6*23cf7aa5SYafang Shao #include <stdbool.h>
7*23cf7aa5SYafang Shao 
8*23cf7aa5SYafang Shao extern bool CONFIG_X86_KERNEL_IBT __kconfig __weak;
9*23cf7aa5SYafang Shao 
10*23cf7aa5SYafang Shao /* This function is here to have CONFIG_X86_KERNEL_IBT
11*23cf7aa5SYafang Shao  * used and added to object BTF.
12*23cf7aa5SYafang Shao  */
unused(void)13*23cf7aa5SYafang Shao int unused(void)
14*23cf7aa5SYafang Shao {
15*23cf7aa5SYafang Shao 	return CONFIG_X86_KERNEL_IBT ? 0 : 1;
16*23cf7aa5SYafang Shao }
17*23cf7aa5SYafang Shao 
18*23cf7aa5SYafang Shao SEC("kprobe")
BPF_PROG(kprobe_run)19*23cf7aa5SYafang Shao int BPF_PROG(kprobe_run)
20*23cf7aa5SYafang Shao {
21*23cf7aa5SYafang Shao 	return 0;
22*23cf7aa5SYafang Shao }
23*23cf7aa5SYafang Shao 
24*23cf7aa5SYafang Shao SEC("uprobe")
BPF_PROG(uprobe_run)25*23cf7aa5SYafang Shao int BPF_PROG(uprobe_run)
26*23cf7aa5SYafang Shao {
27*23cf7aa5SYafang Shao 	return 0;
28*23cf7aa5SYafang Shao }
29*23cf7aa5SYafang Shao 
30*23cf7aa5SYafang Shao SEC("tracepoint")
BPF_PROG(tp_run)31*23cf7aa5SYafang Shao int BPF_PROG(tp_run)
32*23cf7aa5SYafang Shao {
33*23cf7aa5SYafang Shao 	return 0;
34*23cf7aa5SYafang Shao }
35*23cf7aa5SYafang Shao 
36*23cf7aa5SYafang Shao SEC("kprobe.multi")
BPF_PROG(kmulti_run)37*23cf7aa5SYafang Shao int BPF_PROG(kmulti_run)
38*23cf7aa5SYafang Shao {
39*23cf7aa5SYafang Shao 	return 0;
40*23cf7aa5SYafang Shao }
41*23cf7aa5SYafang Shao 
42*23cf7aa5SYafang Shao char _license[] SEC("license") = "GPL";
43