47 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef _ASM_S390_MODULE_H
 | ||
|  | #define _ASM_S390_MODULE_H
 | ||
|  | /*
 | ||
|  |  * This file contains the s390 architecture specific module code. | ||
|  |  */ | ||
|  | 
 | ||
|  | struct mod_arch_syminfo | ||
|  | { | ||
|  | 	unsigned long got_offset; | ||
|  | 	unsigned long plt_offset; | ||
|  | 	int got_initialized; | ||
|  | 	int plt_initialized; | ||
|  | }; | ||
|  | 
 | ||
|  | struct mod_arch_specific | ||
|  | { | ||
|  | 	/* Starting offset of got in the module core memory. */ | ||
|  | 	unsigned long got_offset; | ||
|  | 	/* Starting offset of plt in the module core memory. */ | ||
|  | 	unsigned long plt_offset; | ||
|  | 	/* Size of the got. */ | ||
|  | 	unsigned long got_size; | ||
|  | 	/* Size of the plt. */ | ||
|  | 	unsigned long plt_size; | ||
|  | 	/* Number of symbols in syminfo. */ | ||
|  | 	int nsyms; | ||
|  | 	/* Additional symbol information (got and plt offsets). */ | ||
|  | 	struct mod_arch_syminfo *syminfo; | ||
|  | }; | ||
|  | 
 | ||
|  | #ifdef __s390x__
 | ||
|  | #define ElfW(x) Elf64_ ## x
 | ||
|  | #define ELFW(x) ELF64_ ## x
 | ||
|  | #else
 | ||
|  | #define ElfW(x) Elf32_ ## x
 | ||
|  | #define ELFW(x) ELF32_ ## x
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define Elf_Addr ElfW(Addr)
 | ||
|  | #define Elf_Rela ElfW(Rela)
 | ||
|  | #define Elf_Shdr ElfW(Shdr)
 | ||
|  | #define Elf_Sym ElfW(Sym)
 | ||
|  | #define Elf_Ehdr ElfW(Ehdr)
 | ||
|  | #define ELF_R_SYM ELFW(R_SYM)
 | ||
|  | #define ELF_R_TYPE ELFW(R_TYPE)
 | ||
|  | #endif /* _ASM_S390_MODULE_H */
 |