Lines Matching refs:kallsyms
2351 mod->kallsyms = mod->module_init + info->mod_kallsyms_init_off; in add_kallsyms()
2353 mod->kallsyms->symtab = (void *)symsec->sh_addr; in add_kallsyms()
2354 mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym); in add_kallsyms()
2356 mod->kallsyms->strtab = (void *)info->sechdrs[info->index.str].sh_addr; in add_kallsyms()
2359 for (i = 0; i < mod->kallsyms->num_symtab; i++) in add_kallsyms()
2360 mod->kallsyms->symtab[i].st_info in add_kallsyms()
2361 = elf_type(&mod->kallsyms->symtab[i], info); in add_kallsyms()
2366 src = mod->kallsyms->symtab; in add_kallsyms()
2367 for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) { in add_kallsyms()
2372 s += strlcpy(s, &mod->kallsyms->strtab[src[i].st_name], in add_kallsyms()
3142 rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); in do_init_module()
3490 static const char *symname(struct mod_kallsyms *kallsyms, unsigned int symnum) in symname() argument
3492 return kallsyms->strtab + kallsyms->symtab[symnum].st_name; in symname()
3502 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in get_ksymbol() local
3512 for (i = 1; i < kallsyms->num_symtab; i++) { in get_ksymbol()
3513 if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) in get_ksymbol()
3518 if (*symname(kallsyms, i) == '\0' in get_ksymbol()
3519 || is_arm_mapping_symbol(symname(kallsyms, i))) in get_ksymbol()
3522 if (kallsyms->symtab[i].st_value <= addr in get_ksymbol()
3523 && kallsyms->symtab[i].st_value > kallsyms->symtab[best].st_value) in get_ksymbol()
3525 if (kallsyms->symtab[i].st_value > addr in get_ksymbol()
3526 && kallsyms->symtab[i].st_value < nextval) in get_ksymbol()
3527 nextval = kallsyms->symtab[i].st_value; in get_ksymbol()
3534 *size = nextval - kallsyms->symtab[best].st_value; in get_ksymbol()
3536 *offset = addr - kallsyms->symtab[best].st_value; in get_ksymbol()
3537 return symname(kallsyms, best); in get_ksymbol()
3630 struct mod_kallsyms *kallsyms; in module_get_kallsym() local
3634 kallsyms = rcu_dereference_sched(mod->kallsyms); in module_get_kallsym()
3635 if (symnum < kallsyms->num_symtab) { in module_get_kallsym()
3636 *value = kallsyms->symtab[symnum].st_value; in module_get_kallsym()
3637 *type = kallsyms->symtab[symnum].st_info; in module_get_kallsym()
3638 strlcpy(name, symname(kallsyms, symnum), KSYM_NAME_LEN); in module_get_kallsym()
3644 symnum -= kallsyms->num_symtab; in module_get_kallsym()
3653 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in mod_find_symname() local
3655 for (i = 0; i < kallsyms->num_symtab; i++) in mod_find_symname()
3656 if (strcmp(name, symname(kallsyms, i)) == 0 && in mod_find_symname()
3657 kallsyms->symtab[i].st_info != 'U') in mod_find_symname()
3658 return kallsyms->symtab[i].st_value; in mod_find_symname()
3696 struct mod_kallsyms *kallsyms = mod->kallsyms; in module_kallsyms_on_each_symbol() local
3700 for (i = 0; i < kallsyms->num_symtab; i++) { in module_kallsyms_on_each_symbol()
3701 ret = fn(data, symname(kallsyms, i), in module_kallsyms_on_each_symbol()
3702 mod, kallsyms->symtab[i].st_value); in module_kallsyms_on_each_symbol()