blob: 7effea4b257d986670e0464245b33130a13c79d4 [file] [log] [blame]
Paul Gortmaker0ef76532016-07-27 12:06:34 +09301#ifndef _LINUX_EXTABLE_H
2#define _LINUX_EXTABLE_H
3
Paul Gortmaker49aadcf2016-07-27 23:11:47 -04004#include <linux/stddef.h> /* for NULL */
5
Paul Gortmaker0ef76532016-07-27 12:06:34 +09306struct module;
7struct exception_table_entry;
8
9const struct exception_table_entry *
10search_extable(const struct exception_table_entry *first,
11 const struct exception_table_entry *last,
12 unsigned long value);
13void sort_extable(struct exception_table_entry *start,
14 struct exception_table_entry *finish);
15void sort_main_extable(void);
16void trim_init_extable(struct module *m);
17
18/* Given an address, look for it in the exception tables */
19const struct exception_table_entry *search_exception_tables(unsigned long add);
20
21#ifdef CONFIG_MODULES
22/* For extable.c to search modules' exception tables. */
23const struct exception_table_entry *search_module_extables(unsigned long addr);
24#else
25static inline const struct exception_table_entry *
26search_module_extables(unsigned long addr)
27{
28 return NULL;
29}
30#endif /*CONFIG_MODULES*/
31
32#endif /* _LINUX_EXTABLE_H */