Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _LINUX_EXTABLE_H 3 : : #define _LINUX_EXTABLE_H 4 : : 5 : : #include <linux/stddef.h> /* for NULL */ 6 : : #include <linux/types.h> 7 : : 8 : : struct module; 9 : : struct exception_table_entry; 10 : : 11 : : const struct exception_table_entry * 12 : : search_extable(const struct exception_table_entry *base, 13 : : const size_t num, 14 : : unsigned long value); 15 : : void sort_extable(struct exception_table_entry *start, 16 : : struct exception_table_entry *finish); 17 : : void sort_main_extable(void); 18 : : void trim_init_extable(struct module *m); 19 : : 20 : : /* Given an address, look for it in the exception tables */ 21 : : const struct exception_table_entry *search_exception_tables(unsigned long add); 22 : : const struct exception_table_entry * 23 : : search_kernel_exception_table(unsigned long addr); 24 : : 25 : : #ifdef CONFIG_MODULES 26 : : /* For extable.c to search modules' exception tables. */ 27 : : const struct exception_table_entry *search_module_extables(unsigned long addr); 28 : : #else 29 : : static inline const struct exception_table_entry * 30 : : search_module_extables(unsigned long addr) 31 : : { 32 : : return NULL; 33 : : } 34 : : #endif /*CONFIG_MODULES*/ 35 : : 36 : : #ifdef CONFIG_BPF_JIT 37 : : const struct exception_table_entry *search_bpf_extables(unsigned long addr); 38 : : #else 39 : : static inline const struct exception_table_entry * 40 : 0 : search_bpf_extables(unsigned long addr) 41 : : { 42 : 0 : return NULL; 43 : : } 44 : : #endif 45 : : 46 : : #endif /* _LINUX_EXTABLE_H */