1 #ifndef _ASM_M68K_MODULE_H 2 #define _ASM_M68K_MODULE_H 3 4 struct mod_arch_specific { 5 struct m68k_fixup_info *fixup_start, *fixup_end; 6 }; 7 8 #define MODULE_ARCH_INIT { \ 9 .fixup_start = __start_fixup, \ 10 .fixup_end = __stop_fixup, \ 11 } 12 13 #define Elf_Shdr Elf32_Shdr 14 #define Elf_Sym Elf32_Sym 15 #define Elf_Ehdr Elf32_Ehdr 16 17 18 enum m68k_fixup_type { 19 m68k_fixup_memoffset, 20 m68k_fixup_vnode_shift, 21 }; 22 23 struct m68k_fixup_info { 24 enum m68k_fixup_type type; 25 void *addr; 26 }; 27 28 #define m68k_fixup(type, addr) \ 29 " .section \".m68k_fixup\",\"aw\"\n" \ 30 " .long " #type "," #addr "\n" \ 31 " .previous\n" 32 33 extern struct m68k_fixup_info __start_fixup[], __stop_fixup[]; 34 35 struct module; 36 extern void module_fixup(struct module *mod, struct m68k_fixup_info *start, 37 struct m68k_fixup_info *end); 38 39 #endif /* _ASM_M68K_MODULE_H */ 40