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