47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
|
/* 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 */
|