xref: /openbmc/linux/arch/s390/include/asm/module.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
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