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