#include <linux/bsearch.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sort.h>
#include <linux/uaccess.h>
#include <linux/extable.h>
#ifndef ARCH_HAS_RELATIVE_EXTABLE
#define ex_to_insn …
#else
static inline unsigned long ex_to_insn(const struct exception_table_entry *x)
{ … }
#endif
#ifndef ARCH_HAS_RELATIVE_EXTABLE
#define swap_ex …
#else
static void swap_ex(void *a, void *b, int size)
{ … }
#endif
static int cmp_ex_sort(const void *a, const void *b)
{ … }
void sort_extable(struct exception_table_entry *start,
struct exception_table_entry *finish)
{ … }
#ifdef CONFIG_MODULES
void trim_init_extable(struct module *m)
{ … }
#endif
static int cmp_ex_search(const void *key, const void *elt)
{ … }
const struct exception_table_entry *
search_extable(const struct exception_table_entry *base,
const size_t num,
unsigned long value)
{ … }