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