xref: /linux-6.15/include/asm-generic/module.h (revision d073a571)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2aafe4dbeSArnd Bergmann #ifndef __ASM_GENERIC_MODULE_H
3aafe4dbeSArnd Bergmann #define __ASM_GENERIC_MODULE_H
4aafe4dbeSArnd Bergmann 
5aafe4dbeSArnd Bergmann /*
6aafe4dbeSArnd Bergmann  * Many architectures just need a simple module
7aafe4dbeSArnd Bergmann  * loader without arch specific data.
8aafe4dbeSArnd Bergmann  */
9786d35d4SDavid Howells #ifndef CONFIG_HAVE_MOD_ARCH_SPECIFIC
10aafe4dbeSArnd Bergmann struct mod_arch_specific
11aafe4dbeSArnd Bergmann {
12aafe4dbeSArnd Bergmann };
13786d35d4SDavid Howells #endif
14aafe4dbeSArnd Bergmann 
15aafe4dbeSArnd Bergmann #ifdef CONFIG_64BIT
16aafe4dbeSArnd Bergmann #define Elf_Shdr	Elf64_Shdr
17786d35d4SDavid Howells #define Elf_Phdr	Elf64_Phdr
18aafe4dbeSArnd Bergmann #define Elf_Sym		Elf64_Sym
19786d35d4SDavid Howells #define Elf_Dyn		Elf64_Dyn
20aafe4dbeSArnd Bergmann #define Elf_Ehdr	Elf64_Ehdr
21786d35d4SDavid Howells #define Elf_Addr	Elf64_Addr
22786d35d4SDavid Howells #define Elf_Rel		Elf64_Rel
23786d35d4SDavid Howells #define Elf_Rela	Elf64_Rela
24786d35d4SDavid Howells #define ELF_R_TYPE(X)	ELF64_R_TYPE(X)
25786d35d4SDavid Howells #define ELF_R_SYM(X)	ELF64_R_SYM(X)
26786d35d4SDavid Howells 
27786d35d4SDavid Howells #else /* CONFIG_64BIT */
28786d35d4SDavid Howells 
29aafe4dbeSArnd Bergmann #define Elf_Shdr	Elf32_Shdr
30786d35d4SDavid Howells #define Elf_Phdr	Elf32_Phdr
31aafe4dbeSArnd Bergmann #define Elf_Sym		Elf32_Sym
32786d35d4SDavid Howells #define Elf_Dyn		Elf32_Dyn
33aafe4dbeSArnd Bergmann #define Elf_Ehdr	Elf32_Ehdr
34786d35d4SDavid Howells #define Elf_Addr	Elf32_Addr
35786d35d4SDavid Howells #define Elf_Rel		Elf32_Rel
36786d35d4SDavid Howells #define Elf_Rela	Elf32_Rela
37786d35d4SDavid Howells #define ELF_R_TYPE(X)	ELF32_R_TYPE(X)
38786d35d4SDavid Howells #define ELF_R_SYM(X)	ELF32_R_SYM(X)
39aafe4dbeSArnd Bergmann #endif
40aafe4dbeSArnd Bergmann 
41aafe4dbeSArnd Bergmann #endif /* __ASM_GENERIC_MODULE_H */
42