xref: /linux/include/asm-generic/kprobes.h (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
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