4 #include <linux/config.h>
5 #include <linux/list.h>
6 #include <asm/uaccess.h>
8 struct mod_arch_specific {
9 /* Data Bus Error exception tables */
10 struct list_head dbe_list;
11 const struct exception_table_entry *dbe_start;
12 const struct exception_table_entry *dbe_end;
15 typedef uint8_t Elf64_Byte; /* Type for a 8-bit quantity. */
18 Elf64_Addr r_offset; /* Address of relocation. */
19 Elf64_Word r_sym; /* Symbol index. */
20 Elf64_Byte r_ssym; /* Special symbol. */
21 Elf64_Byte r_type3; /* Third relocation. */
22 Elf64_Byte r_type2; /* Second relocation. */
23 Elf64_Byte r_type; /* First relocation. */
27 Elf64_Addr r_offset; /* Address of relocation. */
28 Elf64_Word r_sym; /* Symbol index. */
29 Elf64_Byte r_ssym; /* Special symbol. */
30 Elf64_Byte r_type3; /* Third relocation. */
31 Elf64_Byte r_type2; /* Second relocation. */
32 Elf64_Byte r_type; /* First relocation. */
33 Elf64_Sxword r_addend; /* Addend. */
38 #define Elf_Shdr Elf32_Shdr
39 #define Elf_Sym Elf32_Sym
40 #define Elf_Ehdr Elf32_Ehdr
41 #define Elf_Addr Elf32_Addr
43 #define Elf_Mips_Rel Elf32_Rel
44 #define Elf_Mips_Rela Elf32_Rela
46 #define ELF_MIPS_R_SYM(rel) ELF32_R_SYM(rel.r_info)
47 #define ELF_MIPS_R_TYPE(rel) ELF32_R_TYPE(rel.r_info)
53 #define Elf_Shdr Elf64_Shdr
54 #define Elf_Sym Elf64_Sym
55 #define Elf_Ehdr Elf64_Ehdr
56 #define Elf_Addr Elf64_Addr
58 #define Elf_Mips_Rel Elf64_Mips_Rel
59 #define Elf_Mips_Rela Elf64_Mips_Rela
61 #define ELF_MIPS_R_SYM(rel) (rel.r_sym)
62 #define ELF_MIPS_R_TYPE(rel) (rel.r_type)
67 /* Given an address, look for it in the exception tables. */
68 const struct exception_table_entry*search_module_dbetables(unsigned long addr);
70 /* Given an address, look for it in the exception tables. */
71 static inline const struct exception_table_entry *
72 search_module_dbetables(unsigned long addr)
78 #endif /* _ASM_MODULE_H */