• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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