1 #ifndef _ASM_S390_MODULE_H 2 #define _ASM_S390_MODULE_H 3 /* 4 * This file contains the s390 architecture specific module code. 5 */ 6 7 struct mod_arch_syminfo 8 { 9 unsigned long got_offset; 10 unsigned long plt_offset; 11 int got_initialized; 12 int plt_initialized; 13 }; 14 15 struct mod_arch_specific 16 { 17 /* Starting offset of got in the module core memory. */ 18 unsigned long got_offset; 19 /* Starting offset of plt in the module core memory. */ 20 unsigned long plt_offset; 21 /* Size of the got. */ 22 unsigned long got_size; 23 /* Size of the plt. */ 24 unsigned long plt_size; 25 /* Number of symbols in syminfo. */ 26 int nsyms; 27 /* Additional symbol information (got and plt offsets). */ 28 struct mod_arch_syminfo *syminfo; 29 }; 30 31 #ifdef __s390x__ 32 #define ElfW(x) Elf64_ ## x 33 #define ELFW(x) ELF64_ ## x 34 #else 35 #define ElfW(x) Elf32_ ## x 36 #define ELFW(x) ELF32_ ## x 37 #endif 38 39 #define Elf_Addr ElfW(Addr) 40 #define Elf_Rela ElfW(Rela) 41 #define Elf_Shdr ElfW(Shdr) 42 #define Elf_Sym ElfW(Sym) 43 #define Elf_Ehdr ElfW(Ehdr) 44 #define ELF_R_SYM ELFW(R_SYM) 45 #define ELF_R_TYPE ELFW(R_TYPE) 46 #endif /* _ASM_S390_MODULE_H */ 47