xref: /linux-6.15/include/linux/extable.h (revision bbb03029)
1 #ifndef _LINUX_EXTABLE_H
2 #define _LINUX_EXTABLE_H
3 
4 #include <linux/stddef.h>	/* for NULL */
5 #include <linux/types.h>
6 
7 struct module;
8 struct exception_table_entry;
9 
10 const struct exception_table_entry *
11 search_extable(const struct exception_table_entry *base,
12 	       const size_t num,
13 	       unsigned long value);
14 void sort_extable(struct exception_table_entry *start,
15 		  struct exception_table_entry *finish);
16 void sort_main_extable(void);
17 void trim_init_extable(struct module *m);
18 
19 /* Given an address, look for it in the exception tables */
20 const struct exception_table_entry *search_exception_tables(unsigned long add);
21 
22 #ifdef CONFIG_MODULES
23 /* For extable.c to search modules' exception tables. */
24 const struct exception_table_entry *search_module_extables(unsigned long addr);
25 #else
26 static inline const struct exception_table_entry *
27 search_module_extables(unsigned long addr)
28 {
29 	return NULL;
30 }
31 #endif /*CONFIG_MODULES*/
32 
33 #endif /* _LINUX_EXTABLE_H */
34