fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-s390 / module.h
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 MODULES_ARE_ELF64
33 #define ElfW(x) Elf64_ ## x
34 #define ELFW(x) ELF64_ ## x
35 #else
36 #define MODULES_ARE_ELF32
37 #define ElfW(x) Elf32_ ## x
38 #define ELFW(x) ELF32_ ## x
39 #endif
40
41 #define Elf_Addr ElfW(Addr)
42 #define Elf_Rel ElfW(Rel)
43 #define Elf_Rela ElfW(Rela)
44 #define Elf_Shdr ElfW(Shdr)
45 #define Elf_Sym ElfW(Sym)
46 #define Elf_Ehdr ElfW(Ehdr)
47 #define ELF_R_SYM ELFW(R_SYM)
48 #define ELF_R_TYPE ELFW(R_TYPE)
49 #endif /* _ASM_S390_MODULE_H */