|  | /* 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 */ |