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