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 7struct mod_arch_syminfo 8{ 9 unsigned long got_offset; 10 unsigned long plt_offset; 11 int got_initialized; 12 int plt_initialized; 13}; 14 15struct 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