kprobes.h 868 B

123456789101112131415161718192021222324252627
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _ASM_GENERIC_KPROBES_H
  3. #define _ASM_GENERIC_KPROBES_H
  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. #endif /* _ASM_GENERIC_KPROBES_H */