On Mon, 28 May 2007 21:16:31 +0200 Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
--- a/include/asm-m68k/module.h +++ b/include/asm-m68k/module.h @@ -1,7 +1,38 @@ #ifndef _ASM_M68K_MODULE_H #define _ASM_M68K_MODULE_H -struct mod_arch_specific { }; + +struct mod_arch_specific { + struct m68k_fixup_info *fixup_start, *fixup_end; +};
Here we use struct m68k_fixup_info.
+#define MODULE_ARCH_INIT { \ + .fixup_start = __start_fixup, \ + .fixup_end = __stop_fixup, \ +} + #define Elf_Shdr Elf32_Shdr #define Elf_Sym Elf32_Sym #define Elf_Ehdr Elf32_Ehdr + + +enum m68k_fixup_type { + m68k_fixup_memoffset, +}; + +struct m68k_fixup_info { + enum m68k_fixup_type type; + void *addr; +};
and later we define it. How come it doesn't spit warnings? I think it could be tightened up even if it happens not to warn?
+#define m68k_fixup(type, addr) \ + " .section \".m68k_fixup\",\"aw\"\n" \ + " .long " #type "," #addr "\n" \ + " .previous\n" + +extern struct m68k_fixup_info __start_fixup[], __stop_fixup[]; + +struct module; +extern void module_fixup(struct module *mod, struct m68k_fixup_info *start, + struct m68k_fixup_info *end);
- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html