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