unsignedint num_sections; /* max_secindex + 1 */ unsignedint secindex_strings; /* if Nth symbol table entry has .st_shndx = SHN_XINDEX,
* take shndx from symtab_shndx_start[N] instead */
Elf32_Word *symtab_shndx_start;
Elf32_Word *symtab_shndx_stop;
struct symsearch *symsearch;
};
/* Accessor for sym->st_shndx, hides ugliness of "64k sections" */ staticinlineunsignedint get_secindex(conststruct elf_info *info, const Elf_Sym *sym)
{ unsignedint index = sym->st_shndx;
/* * Elf{32,64}_Sym::st_shndx is 2 byte. Big section numbers are available * in the .symtab_shndx section.
*/ if (index == SHN_XINDEX) return info->symtab_shndx_start[sym - info->symtab_start];
/* * Move reserved section indices SHN_LORESERVE..SHN_HIRESERVE out of * the way to UINT_MAX-255..UINT_MAX, to avoid conflicting with real * section indices.
*/ if (index >= SHN_LORESERVE && index <= SHN_HIRESERVE) return index - SHN_HIRESERVE - 1;
return index;
}
/* * If there's no name there, ignore it; likewise, ignore it if it's * one of the magic symbols emitted used by current tools. * * Internal symbols created by tools should be ignored by modpost.
*/ staticinlinebool is_valid_name(struct elf_info *elf, Elf_Sym *sym)
{ constchar *name = elf->strtab + sym->st_name;
if (!name || !strlen(name)) returnfalse; return !is_mapping_symbol(name);
}
/* * warn - show the given message, then let modpost continue running, still * allowing modpost to exit successfully. This should be used when * we still allow to generate vmlinux and modules. * * error - show the given message, then let modpost continue running, but fail * in the end. This should be used when we should stop building vmlinux * or modules, but we can continue running modpost to catch as many * issues as possible. * * fatal - show the given message, and bail out immediately. This should be * used when there is no point to continue running modpost.
*/ #define warn(fmt, args...) modpost_log(false, fmt, ##args) #define error(fmt, args...) modpost_log(true, fmt, ##args) #define fatal(fmt, args...) do { error(fmt, ##args); exit(1); } while (1)
Messung V0.5
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.