xref: /openbmc/linux/arch/s390/include/asm/module.h (revision 8fa5723aa7e053d498336b48448b292fc2e0458b)
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