0001
0002 #ifndef _LINUX_EXTABLE_H
0003 #define _LINUX_EXTABLE_H
0004
0005 #include <linux/stddef.h> /* for NULL */
0006 #include <linux/types.h>
0007
0008 struct module;
0009 struct exception_table_entry;
0010
0011 const struct exception_table_entry *
0012 search_extable(const struct exception_table_entry *base,
0013 const size_t num,
0014 unsigned long value);
0015 void sort_extable(struct exception_table_entry *start,
0016 struct exception_table_entry *finish);
0017 void sort_main_extable(void);
0018 void trim_init_extable(struct module *m);
0019
0020
0021 const struct exception_table_entry *search_exception_tables(unsigned long add);
0022 const struct exception_table_entry *
0023 search_kernel_exception_table(unsigned long addr);
0024
0025 #ifdef CONFIG_MODULES
0026
0027 const struct exception_table_entry *search_module_extables(unsigned long addr);
0028 #else
0029 static inline const struct exception_table_entry *
0030 search_module_extables(unsigned long addr)
0031 {
0032 return NULL;
0033 }
0034 #endif
0035
0036 #ifdef CONFIG_BPF_JIT
0037 const struct exception_table_entry *search_bpf_extables(unsigned long addr);
0038 #else
0039 static inline const struct exception_table_entry *
0040 search_bpf_extables(unsigned long addr)
0041 {
0042 return NULL;
0043 }
0044 #endif
0045
0046 #endif