Lines Matching refs:kallsyms
2522 mod->kallsyms = mod->module_init + info->mod_kallsyms_init_off; in add_kallsyms()
2524 mod->kallsyms->symtab = (void *)symsec->sh_addr; in add_kallsyms()
2525 mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym); in add_kallsyms()
2527 mod->kallsyms->strtab = (void *)info->sechdrs[info->index.str].sh_addr; in add_kallsyms()
2530 for (i = 0; i < mod->kallsyms->num_symtab; i++) in add_kallsyms()
2531 mod->kallsyms->symtab[i].st_info in add_kallsyms()
2532 = elf_type(&mod->kallsyms->symtab[i], info); in add_kallsyms()
2537 src = mod->kallsyms->symtab; in add_kallsyms()
2538 for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) { in add_kallsyms()
2543 s += strlcpy(s, &mod->kallsyms->strtab[src[i].st_name], in add_kallsyms()
3297 rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); in do_init_module()
3667 static const char *symname(struct mod_kallsyms *kallsyms, unsigned int symnum) in symname() argument
3669 return kallsyms->strtab + kallsyms->symtab[symnum].st_name; in symname()
3679 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in get_ksymbol() local
3689 for (i = 1; i < kallsyms->num_symtab; i++) { in get_ksymbol()
3690 if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) in get_ksymbol()
3695 if (*symname(kallsyms, i) == '\0' in get_ksymbol()
3696 || is_arm_mapping_symbol(symname(kallsyms, i))) in get_ksymbol()
3699 if (kallsyms->symtab[i].st_value <= addr in get_ksymbol()
3700 && kallsyms->symtab[i].st_value > kallsyms->symtab[best].st_value) in get_ksymbol()
3702 if (kallsyms->symtab[i].st_value > addr in get_ksymbol()
3703 && kallsyms->symtab[i].st_value < nextval) in get_ksymbol()
3704 nextval = kallsyms->symtab[i].st_value; in get_ksymbol()
3711 *size = nextval - kallsyms->symtab[best].st_value; in get_ksymbol()
3713 *offset = addr - kallsyms->symtab[best].st_value; in get_ksymbol()
3714 return symname(kallsyms, best); in get_ksymbol()
3804 struct mod_kallsyms *kallsyms; in module_get_kallsym() local
3808 kallsyms = rcu_dereference_sched(mod->kallsyms); in module_get_kallsym()
3809 if (symnum < kallsyms->num_symtab) { in module_get_kallsym()
3810 *value = kallsyms->symtab[symnum].st_value; in module_get_kallsym()
3811 *type = kallsyms->symtab[symnum].st_info; in module_get_kallsym()
3812 strlcpy(name, symname(kallsyms, symnum), KSYM_NAME_LEN); in module_get_kallsym()
3818 symnum -= kallsyms->num_symtab; in module_get_kallsym()
3827 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in mod_find_symname() local
3829 for (i = 0; i < kallsyms->num_symtab; i++) in mod_find_symname()
3830 if (strcmp(name, symname(kallsyms, i)) == 0 && in mod_find_symname()
3831 kallsyms->symtab[i].st_info != 'U') in mod_find_symname()
3832 return kallsyms->symtab[i].st_value; in mod_find_symname()
3872 struct mod_kallsyms *kallsyms = mod->kallsyms; in module_kallsyms_on_each_symbol() local
3876 for (i = 0; i < kallsyms->num_symtab; i++) { in module_kallsyms_on_each_symbol()
3877 ret = fn(data, symname(kallsyms, i), in module_kallsyms_on_each_symbol()
3878 mod, kallsyms->symtab[i].st_value); in module_kallsyms_on_each_symbol()