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