1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 27d134b2cSLuis R. Rodriguez #ifndef _ASM_GENERIC_KPROBES_H 37d134b2cSLuis R. Rodriguez #define _ASM_GENERIC_KPROBES_H 47d134b2cSLuis R. Rodriguez 57d134b2cSLuis R. Rodriguez #if defined(__KERNEL__) && !defined(__ASSEMBLY__) 67d134b2cSLuis R. Rodriguez #ifdef CONFIG_KPROBES 77d134b2cSLuis R. Rodriguez /* 87d134b2cSLuis R. Rodriguez * Blacklist ganerating macro. Specify functions which is not probed 97d134b2cSLuis R. Rodriguez * by using this macro. 107d134b2cSLuis R. Rodriguez */ 117d134b2cSLuis R. Rodriguez # define __NOKPROBE_SYMBOL(fname) \ 127d134b2cSLuis R. Rodriguez static unsigned long __used \ 13*33def849SJoe Perches __section("_kprobe_blacklist") \ 147d134b2cSLuis R. Rodriguez _kbl_addr_##fname = (unsigned long)fname; 157d134b2cSLuis R. Rodriguez # define NOKPROBE_SYMBOL(fname) __NOKPROBE_SYMBOL(fname) 167d134b2cSLuis R. Rodriguez /* Use this to forbid a kprobes attach on very low level functions */ 17*33def849SJoe Perches # define __kprobes __section(".kprobes.text") 187d134b2cSLuis R. Rodriguez # define nokprobe_inline __always_inline 197d134b2cSLuis R. Rodriguez #else 207d134b2cSLuis R. Rodriguez # define NOKPROBE_SYMBOL(fname) 217d134b2cSLuis R. Rodriguez # define __kprobes 227d134b2cSLuis R. Rodriguez # define nokprobe_inline inline 237d134b2cSLuis R. Rodriguez #endif 247d134b2cSLuis R. Rodriguez #endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */ 257d134b2cSLuis R. Rodriguez 267d134b2cSLuis R. Rodriguez #endif /* _ASM_GENERIC_KPROBES_H */ 27