/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_EXTABLE_H #define _LINUX_EXTABLE_H #include <linux/stddef.h> /* for NULL */ #include <linux/types.h> struct module; struct exception_table_entry; const struct exception_table_entry * search_extable(const struct exception_table_entry *base, const size_t num, unsigned long value); void sort_extable(struct exception_table_entry *start, struct exception_table_entry *finish); void sort_main_extable(void); void trim_init_extable(struct module *m); /* Given an address, look for it in the exception tables */ const struct exception_table_entry *search_exception_tables(unsigned long add); const struct exception_table_entry * search_kernel_exception_table(unsigned long addr); #ifdef CONFIG_MODULES /* For extable.c to search modules' exception tables. */ const struct exception_table_entry *search_module_extables(unsigned long addr); #else static inline const struct exception_table_entry * search_module_extables(unsigned long addr) { return NULL; } #endif /*CONFIG_MODULES*/ #ifdef CONFIG_BPF_JIT const struct exception_table_entry *search_bpf_extables(unsigned long addr); #else static inline const struct exception_table_entry * search_bpf_extables(unsigned long addr) { return NULL; } #endif #endif /* _LINUX_EXTABLE_H */