1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_GENERIC_KPROBES_H 3 #define _ASM_GENERIC_KPROBES_H 4 5 #if defined(__KERNEL__) && !defined(__ASSEMBLY__) 6 #ifdef CONFIG_KPROBES 7 /* 8 * Blacklist ganerating macro. Specify functions which is not probed 9 * by using this macro. 10 */ 11 # define __NOKPROBE_SYMBOL(fname) \ 12 static unsigned long __used \ 13 __attribute__((__section__("_kprobe_blacklist"))) \ 14 _kbl_addr_##fname = (unsigned long)fname; 15 # define NOKPROBE_SYMBOL(fname) __NOKPROBE_SYMBOL(fname) 16 /* Use this to forbid a kprobes attach on very low level functions */ 17 # define __kprobes __attribute__((__section__(".kprobes.text"))) 18 # define nokprobe_inline __always_inline 19 #else 20 # define NOKPROBE_SYMBOL(fname) 21 # define __kprobes 22 # define nokprobe_inline inline 23 #endif 24 #endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */ 25 26 #endif /* _ASM_GENERIC_KPROBES_H */ 27