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 Shaoint 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 Shaoint 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 Shaoint 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 Shaoint 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 Shaoint 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