diff options
author | Greg Ungerer <gerg@uclinux.org> | 2011-03-29 01:23:51 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2011-07-24 21:20:40 -0400 |
commit | a66af29876b086d8279b48515b83ced66803fb15 (patch) | |
tree | 9d1819936fe48c20f43f355ecfec79de075d2c5d /arch/m68k/include/asm/module.h | |
parent | 6617eaf33d04836d31ea687e79ba9fef02fdbbe9 (diff) |
m68k: merge the non-mmu and mmu versions of module.c
The non-mmu and mmu versions of the module loader module.c are
nearly identical. Merge them back to a single module.c. There is
a little bit of re-ordering of the struct and enum definitions in
module.h to keep the ifdefery to a minimum.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/include/asm/module.h')
-rw-r--r-- | arch/m68k/include/asm/module.h | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/arch/m68k/include/asm/module.h b/arch/m68k/include/asm/module.h index 5f21e11071bd..edffe66b7f49 100644 --- a/arch/m68k/include/asm/module.h +++ b/arch/m68k/include/asm/module.h | |||
@@ -1,46 +1,41 @@ | |||
1 | #ifndef _ASM_M68K_MODULE_H | 1 | #ifndef _ASM_M68K_MODULE_H |
2 | #define _ASM_M68K_MODULE_H | 2 | #define _ASM_M68K_MODULE_H |
3 | 3 | ||
4 | #ifdef CONFIG_MMU | 4 | enum m68k_fixup_type { |
5 | m68k_fixup_memoffset, | ||
6 | m68k_fixup_vnode_shift, | ||
7 | }; | ||
8 | |||
9 | struct m68k_fixup_info { | ||
10 | enum m68k_fixup_type type; | ||
11 | void *addr; | ||
12 | }; | ||
5 | 13 | ||
6 | struct mod_arch_specific { | 14 | struct mod_arch_specific { |
7 | struct m68k_fixup_info *fixup_start, *fixup_end; | 15 | struct m68k_fixup_info *fixup_start, *fixup_end; |
8 | }; | 16 | }; |
9 | 17 | ||
18 | #ifdef CONFIG_MMU | ||
19 | |||
10 | #define MODULE_ARCH_INIT { \ | 20 | #define MODULE_ARCH_INIT { \ |
11 | .fixup_start = __start_fixup, \ | 21 | .fixup_start = __start_fixup, \ |
12 | .fixup_end = __stop_fixup, \ | 22 | .fixup_end = __stop_fixup, \ |
13 | } | 23 | } |
14 | 24 | ||
15 | 25 | ||
16 | enum m68k_fixup_type { | ||
17 | m68k_fixup_memoffset, | ||
18 | m68k_fixup_vnode_shift, | ||
19 | }; | ||
20 | |||
21 | struct m68k_fixup_info { | ||
22 | enum m68k_fixup_type type; | ||
23 | void *addr; | ||
24 | }; | ||
25 | |||
26 | #define m68k_fixup(type, addr) \ | 26 | #define m68k_fixup(type, addr) \ |
27 | " .section \".m68k_fixup\",\"aw\"\n" \ | 27 | " .section \".m68k_fixup\",\"aw\"\n" \ |
28 | " .long " #type "," #addr "\n" \ | 28 | " .long " #type "," #addr "\n" \ |
29 | " .previous\n" | 29 | " .previous\n" |
30 | 30 | ||
31 | #endif /* CONFIG_MMU */ | ||
32 | |||
31 | extern struct m68k_fixup_info __start_fixup[], __stop_fixup[]; | 33 | extern struct m68k_fixup_info __start_fixup[], __stop_fixup[]; |
32 | 34 | ||
33 | struct module; | 35 | struct module; |
34 | extern void module_fixup(struct module *mod, struct m68k_fixup_info *start, | 36 | extern void module_fixup(struct module *mod, struct m68k_fixup_info *start, |
35 | struct m68k_fixup_info *end); | 37 | struct m68k_fixup_info *end); |
36 | 38 | ||
37 | #else | ||
38 | |||
39 | struct mod_arch_specific { | ||
40 | }; | ||
41 | |||
42 | #endif /* CONFIG_MMU */ | ||
43 | |||
44 | #define Elf_Shdr Elf32_Shdr | 39 | #define Elf_Shdr Elf32_Shdr |
45 | #define Elf_Sym Elf32_Sym | 40 | #define Elf_Sym Elf32_Sym |
46 | #define Elf_Ehdr Elf32_Ehdr | 41 | #define Elf_Ehdr Elf32_Ehdr |