12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef _LINUX_EXTABLE_H
- #define _LINUX_EXTABLE_H
- #include <linux/stddef.h> /* for NULL */
- #include <linux/types.h>
- struct module;
- struct exception_table_entry;
- const struct exception_table_entry *
- search_extable(const struct exception_table_entry *base,
- const size_t num,
- unsigned long value);
- void sort_extable(struct exception_table_entry *start,
- struct exception_table_entry *finish);
- void sort_main_extable(void);
- void trim_init_extable(struct module *m);
- /* Given an address, look for it in the exception tables */
- const struct exception_table_entry *search_exception_tables(unsigned long add);
- const struct exception_table_entry *
- search_kernel_exception_table(unsigned long addr);
- #ifdef CONFIG_MODULES
- /* For extable.c to search modules' exception tables. */
- const struct exception_table_entry *search_module_extables(unsigned long addr);
- #else
- static inline const struct exception_table_entry *
- search_module_extables(unsigned long addr)
- {
- return NULL;
- }
- #endif /*CONFIG_MODULES*/
- #ifdef CONFIG_BPF_JIT
- const struct exception_table_entry *search_bpf_extables(unsigned long addr);
- #else
- static inline const struct exception_table_entry *
- search_bpf_extables(unsigned long addr)
- {
- return NULL;
- }
- #endif
- #endif /* _LINUX_EXTABLE_H */
|