blob: 14dc41d185a7a3163bc59f45a9df37588584fb65 [file] [log] [blame]
Arnd Bergmannaafe4db2009-05-13 22:56:33 +00001#ifndef __ASM_GENERIC_MODULE_H
2#define __ASM_GENERIC_MODULE_H
3
4/*
5 * Many architectures just need a simple module
6 * loader without arch specific data.
7 */
David Howells786d35d2012-09-28 14:31:03 +09308#ifndef CONFIG_HAVE_MOD_ARCH_SPECIFIC
Arnd Bergmannaafe4db2009-05-13 22:56:33 +00009struct mod_arch_specific
10{
11};
David Howells786d35d2012-09-28 14:31:03 +093012#endif
Arnd Bergmannaafe4db2009-05-13 22:56:33 +000013
14#ifdef CONFIG_64BIT
David Howells786d35d2012-09-28 14:31:03 +093015#define Elf_Shdr Elf64_Shdr
16#define Elf_Phdr Elf64_Phdr
17#define Elf_Sym Elf64_Sym
18#define Elf_Dyn Elf64_Dyn
19#define Elf_Ehdr Elf64_Ehdr
20#define Elf_Addr Elf64_Addr
21#ifdef CONFIG_MODULES_USE_ELF_REL
22#define Elf_Rel Elf64_Rel
23#endif
24#ifdef CONFIG_MODULES_USE_ELF_RELA
25#define Elf_Rela Elf64_Rela
26#endif
27#define ELF_R_TYPE(X) ELF64_R_TYPE(X)
28#define ELF_R_SYM(X) ELF64_R_SYM(X)
29
30#else /* CONFIG_64BIT */
31
32#define Elf_Shdr Elf32_Shdr
33#define Elf_Phdr Elf32_Phdr
34#define Elf_Sym Elf32_Sym
35#define Elf_Dyn Elf32_Dyn
36#define Elf_Ehdr Elf32_Ehdr
37#define Elf_Addr Elf32_Addr
38#ifdef CONFIG_MODULES_USE_ELF_REL
39#define Elf_Rel Elf32_Rel
40#endif
41#ifdef CONFIG_MODULES_USE_ELF_RELA
42#define Elf_Rela Elf32_Rela
43#endif
44#define ELF_R_TYPE(X) ELF32_R_TYPE(X)
45#define ELF_R_SYM(X) ELF32_R_SYM(X)
Arnd Bergmannaafe4db2009-05-13 22:56:33 +000046#endif
47
48#endif /* __ASM_GENERIC_MODULE_H */