Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 */ |