1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_S390_MODULE_H 3 #define _ASM_S390_MODULE_H 4 5 #include <asm-generic/module.h> 6 7 /* 8 * This file contains the s390 architecture specific module code. 9 */ 10 11 struct mod_arch_syminfo { 12 unsigned long got_offset; 13 unsigned long plt_offset; 14 int got_initialized; 15 int plt_initialized; 16 }; 17 18 struct mod_arch_specific { 19 /* Starting offset of got in the module core memory. */ 20 unsigned long got_offset; 21 /* Starting offset of plt in the module core memory. */ 22 unsigned long plt_offset; 23 /* Size of the got. */ 24 unsigned long got_size; 25 /* Size of the plt. */ 26 unsigned long plt_size; 27 /* Number of symbols in syminfo. */ 28 int nsyms; 29 /* Additional symbol information (got and plt offsets). */ 30 struct mod_arch_syminfo *syminfo; 31 #ifdef CONFIG_FUNCTION_TRACER 32 /* Start of memory reserved for ftrace hotpatch trampolines. */ 33 struct ftrace_hotpatch_trampoline *trampolines_start; 34 /* End of memory reserved for ftrace hotpatch trampolines. */ 35 struct ftrace_hotpatch_trampoline *trampolines_end; 36 /* Next unused ftrace hotpatch trampoline slot. */ 37 struct ftrace_hotpatch_trampoline *next_trampoline; 38 #endif /* CONFIG_FUNCTION_TRACER */ 39 }; 40 41 #endif /* _ASM_S390_MODULE_H */ 42