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 */
 |