xref: /linux/tools/objtool/tests/generic/fixtures/cross_module.c (revision 2d17a35f6c9489884e6a5ff7cb0d6b150d413371)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * A function which calls out to another object.  MODNAME selects which object
4  * this one is, so a test can make the caller a module and the callee's owner
5  * something else.
6  */
7 
8 #ifndef MODNAME
9 #define MODNAME "vmlinux"
10 #endif
11 
12 /* klp diff takes the object's module name from .modinfo */
13 static const char __modinfo[]
14 	__attribute__((section(".modinfo"), used, aligned(1))) = "\0name=" MODNAME;
15 
16 extern int other_mod_func(int x);
17 
18 int target(int x)
19 {
20 #ifdef PATCHED
21 	return other_mod_func(x) + 2;
22 #else
23 	return other_mod_func(x) + 1;
24 #endif
25 }
26