Lines Matching +defs:vmlinux +defs:a

59 	const char *a;
62 for (a = orig; *a; a++) {
63 switch (*a) {
75 for (a = orig, b = new; *a; a++) {
76 switch (*a) {
80 default: *b++ = *a;
89 * Convert a build-tree object path to a runtime module name: strip
97 * __find_modname() as a fallback when .modinfo lacks a "name=" tag.
194 if (strcmp(export->mod, "vmlinux"))
516 * Is it a local symbol, or at least was it local in the translation unit
527 * Multiple symbols can share a demangled name (e.g., static functions in
528 * different TUs). This function counts same-named candidates through a
529 * funnel of progressively tighter filters. Each level is a strict subset
532 * The widest level that yields a 1:1 match wins. Narrower levels are only
537 * type_show() functions across vmlinux.o each see only one candidate after
545 * parse_header() exists as both a static and a global function. Level 1
552 * a file association and the other doesn't.
556 * functions from different TUs with the same demangled name. After a TU
627 /* Return the widest level that yields a unique (1:1) match */
657 * Build a mapping of known orig-to-patched LLVM suffixes based on
761 * Finds a symbol with the same position in the symbol table among
816 * Correlate symbols between the orig and patched objects. This is a
1003 * Copy a symbol to the output object, optionally including its data and
1168 * Copying a function from its native compiled environment to a kernel module
1183 /* For included functions, a regular reloc will do. */
1188 * If exported by a module, it has to be a klp reloc. Thanks to the
1192 * If exported by vmlinux to all modules, a normal reloc will do.
1196 if (strcmp(export->mod, "vmlinux"))
1199 /* EXPORT_SYMBOL_FOR_MODULES() gets a klp reloc */
1210 * possibility of the patch adding a new UNDEF reference to an
1216 /* Unexported symbol which lives in the original vmlinux or module. */
1247 /* If the symbol has a dedicated section, it's easy to find */
1263 * .rodata is a mixed bag of named objects and anonymous data.
1267 * structs like file_operations. Otherwise a section symbol is
1300 * Convert a relocation symbol reference to the needed format: either a section
1318 * Check if the original module already has a dependency on dep_mod, i.e. it
1340 * Convert a regular relocation to a klp relocation (sort of).
1364 if (strcmp(export->mod, "vmlinux") &&
1375 * reloc now targets a functionally dead tombstone symbol and will be
1445 * The objname decides when the reloc gets applied. A reference to a
1446 * vmlinux symbol goes in the vmlinux section so it gets applied when
1451 if (!strcmp(sym_modname, "vmlinux")) {
1452 sec_objname = "vmlinux";
1508 /* Copy a reloc and its symbol to the output object */
1567 /* Copy all relocs needed for a symbol's contents */
1680 * For all the special sections, create a symbol for each struct entry. This
1681 * is a bit cumbersome, but it makes the extracting of the individual entries
1684 * There are three ways to identify the entry sizes for a special section:
1693 * don't have a fixed size.
1695 * 2) ANNOTATE_DATA_SPECIAL: This is a lightweight objtool annotation which
1700 * 3) Simple array of pointers: If the special section is just a basic array of
1797 /* Keep a special section entry if it references an included function */
1828 * the referenced symbol lives in a kernel module, because such klp relocs may
1831 * Validate a special section entry to avoid that. Note that an inert
1833 * entry and print a warning. Otherwise, return an error.
1835 * TODO: This is only a temporary limitation which will be fixed when livepatch
1889 /* vmlinux keys are ok */
1890 if (!strcmp(sym_modname, "vmlinux"))
2040 if (strcmp(modname, "vmlinux")) {