Lines Matching refs:kallsyms

3  * Module kallsyms support
10 #include <linux/kallsyms.h>
182 mod->kallsyms = (void __rcu *)init_data_base +
187 rcu_dereference(mod->kallsyms)->symtab = (void *)symsec->sh_addr;
188 rcu_dereference(mod->kallsyms)->num_symtab = symsec->sh_size / sizeof(Elf_Sym);
190 rcu_dereference(mod->kallsyms)->strtab =
192 rcu_dereference(mod->kallsyms)->typetab = init_data_base + info->init_typeoffs;
195 * Now populate the cut down core kallsyms for after init
202 src = rcu_dereference(mod->kallsyms)->symtab;
203 for (ndst = i = 0; i < rcu_dereference(mod->kallsyms)->num_symtab; i++) {
204 rcu_dereference(mod->kallsyms)->typetab[i] = elf_type(src + i, info);
211 rcu_dereference(mod->kallsyms)->typetab[i];
215 &rcu_dereference(mod->kallsyms)->strtab[src[i].st_name],
247 static const char *kallsyms_symbol_name(struct mod_kallsyms *kallsyms, unsigned int symnum)
249 return kallsyms->strtab + kallsyms->symtab[symnum].st_name;
263 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms);
274 bestval = kallsyms_symbol_value(&kallsyms->symtab[best]);
280 for (i = 1; i < kallsyms->num_symtab; i++) {
281 const Elf_Sym *sym = &kallsyms->symtab[i];
291 if (*kallsyms_symbol_name(kallsyms, i) == '\0' ||
292 is_mapping_symbol(kallsyms_symbol_name(kallsyms, i)))
311 return kallsyms_symbol_name(kallsyms, best);
321 * For kallsyms to ask for address resolution. NULL means not found. Careful
391 struct mod_kallsyms *kallsyms;
395 kallsyms = rcu_dereference_sched(mod->kallsyms);
396 if (symnum < kallsyms->num_symtab) {
397 const Elf_Sym *sym = &kallsyms->symtab[symnum];
400 *type = kallsyms->typetab[symnum];
401 strscpy(name, kallsyms_symbol_name(kallsyms, symnum), KSYM_NAME_LEN);
407 symnum -= kallsyms->num_symtab;
417 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms);
419 for (i = 0; i < kallsyms->num_symtab; i++) {
420 const Elf_Sym *sym = &kallsyms->symtab[i];
422 if (strcmp(name, kallsyms_symbol_name(kallsyms, i)) == 0 &&
486 struct mod_kallsyms *kallsyms;
496 kallsyms = rcu_dereference_sched(mod->kallsyms);
499 for (i = 0; i < kallsyms->num_symtab; i++) {
500 const Elf_Sym *sym = &kallsyms->symtab[i];
505 ret = fn(data, kallsyms_symbol_name(kallsyms, i),