| #ifndef _ASM_S390_MODULE_H | |
| #define _ASM_S390_MODULE_H | |
| /* | |
| * This file contains the s390 architecture specific module code. | |
| */ | |
| struct mod_arch_syminfo | |
| { | |
| unsigned long got_offset; | |
| unsigned long plt_offset; | |
| int got_initialized; | |
| int plt_initialized; | |
| }; | |
| struct mod_arch_specific | |
| { | |
| /* Starting offset of got in the module core memory. */ | |
| unsigned long got_offset; | |
| /* Starting offset of plt in the module core memory. */ | |
| unsigned long plt_offset; | |
| /* Size of the got. */ | |
| unsigned long got_size; | |
| /* Size of the plt. */ | |
| unsigned long plt_size; | |
| /* Number of symbols in syminfo. */ | |
| int nsyms; | |
| /* Additional symbol information (got and plt offsets). */ | |
| struct mod_arch_syminfo *syminfo; | |
| }; | |
| #ifdef __s390x__ | |
| #define ElfW(x) Elf64_ ## x | |
| #define ELFW(x) ELF64_ ## x | |
| #else | |
| #define ElfW(x) Elf32_ ## x | |
| #define ELFW(x) ELF32_ ## x | |
| #endif | |
| #define Elf_Addr ElfW(Addr) | |
| #define Elf_Rela ElfW(Rela) | |
| #define Elf_Shdr ElfW(Shdr) | |
| #define Elf_Sym ElfW(Sym) | |
| #define Elf_Ehdr ElfW(Ehdr) | |
| #define ELF_R_SYM ELFW(R_SYM) | |
| #define ELF_R_TYPE ELFW(R_TYPE) | |
| #endif /* _ASM_S390_MODULE_H */ |