162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ASM_GENERIC_MODULE_H
362306a36Sopenharmony_ci#define __ASM_GENERIC_MODULE_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci/*
662306a36Sopenharmony_ci * Many architectures just need a simple module
762306a36Sopenharmony_ci * loader without arch specific data.
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci#ifndef CONFIG_HAVE_MOD_ARCH_SPECIFIC
1062306a36Sopenharmony_cistruct mod_arch_specific
1162306a36Sopenharmony_ci{
1262306a36Sopenharmony_ci};
1362306a36Sopenharmony_ci#endif
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#ifdef CONFIG_64BIT
1662306a36Sopenharmony_ci#define Elf_Shdr	Elf64_Shdr
1762306a36Sopenharmony_ci#define Elf_Phdr	Elf64_Phdr
1862306a36Sopenharmony_ci#define Elf_Sym		Elf64_Sym
1962306a36Sopenharmony_ci#define Elf_Dyn		Elf64_Dyn
2062306a36Sopenharmony_ci#define Elf_Ehdr	Elf64_Ehdr
2162306a36Sopenharmony_ci#define Elf_Addr	Elf64_Addr
2262306a36Sopenharmony_ci#ifdef CONFIG_MODULES_USE_ELF_REL
2362306a36Sopenharmony_ci#define Elf_Rel		Elf64_Rel
2462306a36Sopenharmony_ci#endif
2562306a36Sopenharmony_ci#ifdef CONFIG_MODULES_USE_ELF_RELA
2662306a36Sopenharmony_ci#define Elf_Rela	Elf64_Rela
2762306a36Sopenharmony_ci#endif
2862306a36Sopenharmony_ci#define ELF_R_TYPE(X)	ELF64_R_TYPE(X)
2962306a36Sopenharmony_ci#define ELF_R_SYM(X)	ELF64_R_SYM(X)
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#else /* CONFIG_64BIT */
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#define Elf_Shdr	Elf32_Shdr
3462306a36Sopenharmony_ci#define Elf_Phdr	Elf32_Phdr
3562306a36Sopenharmony_ci#define Elf_Sym		Elf32_Sym
3662306a36Sopenharmony_ci#define Elf_Dyn		Elf32_Dyn
3762306a36Sopenharmony_ci#define Elf_Ehdr	Elf32_Ehdr
3862306a36Sopenharmony_ci#define Elf_Addr	Elf32_Addr
3962306a36Sopenharmony_ci#ifdef CONFIG_MODULES_USE_ELF_REL
4062306a36Sopenharmony_ci#define Elf_Rel		Elf32_Rel
4162306a36Sopenharmony_ci#endif
4262306a36Sopenharmony_ci#ifdef CONFIG_MODULES_USE_ELF_RELA
4362306a36Sopenharmony_ci#define Elf_Rela	Elf32_Rela
4462306a36Sopenharmony_ci#endif
4562306a36Sopenharmony_ci#define ELF_R_TYPE(X)	ELF32_R_TYPE(X)
4662306a36Sopenharmony_ci#define ELF_R_SYM(X)	ELF32_R_SYM(X)
4762306a36Sopenharmony_ci#endif
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#endif /* __ASM_GENERIC_MODULE_H */
50