1228879Sed/* SPDX-License-Identifier: GPL-2.0 */ 2228879Sed#ifndef __ASM_GENERIC_MODULE_H 3228879Sed#define __ASM_GENERIC_MODULE_H 4228879Sed 5228879Sed/* 6228879Sed * Many architectures just need a simple module 7228879Sed * loader without arch specific data. 8228879Sed */ 9228879Sed#ifndef CONFIG_HAVE_MOD_ARCH_SPECIFIC 10228879Sedstruct mod_arch_specific 11228879Sed{ 12228879Sed}; 13228879Sed#endif 14228879Sed 15228879Sed#ifdef CONFIG_64BIT 16228879Sed#define Elf_Shdr Elf64_Shdr 17228879Sed#define Elf_Phdr Elf64_Phdr 18228879Sed#define Elf_Sym Elf64_Sym 19228879Sed#define Elf_Dyn Elf64_Dyn 20228879Sed#define Elf_Ehdr Elf64_Ehdr 21228879Sed#define Elf_Addr Elf64_Addr 22228879Sed#ifdef CONFIG_MODULES_USE_ELF_REL 23228879Sed#define Elf_Rel Elf64_Rel 24228879Sed#endif 25228879Sed#ifdef CONFIG_MODULES_USE_ELF_RELA 26228879Sed#define Elf_Rela Elf64_Rela 27228879Sed#endif 28228879Sed#define ELF_R_TYPE(X) ELF64_R_TYPE(X) 29229437Sed#define ELF_R_SYM(X) ELF64_R_SYM(X) 30229437Sed 31229437Sed#else /* CONFIG_64BIT */ 32229437Sed 33228879Sed#define Elf_Shdr Elf32_Shdr 34228879Sed#define Elf_Phdr Elf32_Phdr 35228879Sed#define Elf_Sym Elf32_Sym 36228879Sed#define Elf_Dyn Elf32_Dyn 37228879Sed#define Elf_Ehdr Elf32_Ehdr 38228879Sed#define Elf_Addr Elf32_Addr 39#ifdef CONFIG_MODULES_USE_ELF_REL 40#define Elf_Rel Elf32_Rel 41#endif 42#ifdef CONFIG_MODULES_USE_ELF_RELA 43#define Elf_Rela Elf32_Rela 44#endif 45#define ELF_R_TYPE(X) ELF32_R_TYPE(X) 46#define ELF_R_SYM(X) ELF32_R_SYM(X) 47#endif 48 49#endif /* __ASM_GENERIC_MODULE_H */ 50