extable.h (1309B)
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 8struct module; 9struct exception_table_entry; 10 11const struct exception_table_entry * 12search_extable(const struct exception_table_entry *base, 13 const size_t num, 14 unsigned long value); 15void sort_extable(struct exception_table_entry *start, 16 struct exception_table_entry *finish); 17void sort_main_extable(void); 18void trim_init_extable(struct module *m); 19 20/* Given an address, look for it in the exception tables */ 21const struct exception_table_entry *search_exception_tables(unsigned long add); 22const struct exception_table_entry * 23search_kernel_exception_table(unsigned long addr); 24 25#ifdef CONFIG_MODULES 26/* For extable.c to search modules' exception tables. */ 27const struct exception_table_entry *search_module_extables(unsigned long addr); 28#else 29static inline const struct exception_table_entry * 30search_module_extables(unsigned long addr) 31{ 32 return NULL; 33} 34#endif /*CONFIG_MODULES*/ 35 36#ifdef CONFIG_BPF_JIT 37const struct exception_table_entry *search_bpf_extables(unsigned long addr); 38#else 39static inline const struct exception_table_entry * 40search_bpf_extables(unsigned long addr) 41{ 42 return NULL; 43} 44#endif 45 46#endif /* _LINUX_EXTABLE_H */