Lines Matching refs:kallsyms
2676 mod->kallsyms = mod->init_layout.base + info->mod_kallsyms_init_off; in add_kallsyms()
2678 mod->kallsyms->symtab = (void *)symsec->sh_addr; in add_kallsyms()
2679 mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym); in add_kallsyms()
2681 mod->kallsyms->strtab = (void *)info->sechdrs[info->index.str].sh_addr; in add_kallsyms()
2684 for (i = 0; i < mod->kallsyms->num_symtab; i++) in add_kallsyms()
2685 mod->kallsyms->symtab[i].st_info in add_kallsyms()
2686 = elf_type(&mod->kallsyms->symtab[i], info); in add_kallsyms()
2691 src = mod->kallsyms->symtab; in add_kallsyms()
2692 for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) { in add_kallsyms()
2698 s += strlcpy(s, &mod->kallsyms->strtab[src[i].st_name], in add_kallsyms()
3487 rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); in do_init_module()
3905 static const char *symname(struct mod_kallsyms *kallsyms, unsigned int symnum) in symname() argument
3907 return kallsyms->strtab + kallsyms->symtab[symnum].st_name; in symname()
3917 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in get_ksymbol() local
3927 for (i = 1; i < kallsyms->num_symtab; i++) { in get_ksymbol()
3928 if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) in get_ksymbol()
3933 if (*symname(kallsyms, i) == '\0' in get_ksymbol()
3934 || is_arm_mapping_symbol(symname(kallsyms, i))) in get_ksymbol()
3937 if (kallsyms->symtab[i].st_value <= addr in get_ksymbol()
3938 && kallsyms->symtab[i].st_value > kallsyms->symtab[best].st_value) in get_ksymbol()
3940 if (kallsyms->symtab[i].st_value > addr in get_ksymbol()
3941 && kallsyms->symtab[i].st_value < nextval) in get_ksymbol()
3942 nextval = kallsyms->symtab[i].st_value; in get_ksymbol()
3949 *size = nextval - kallsyms->symtab[best].st_value; in get_ksymbol()
3951 *offset = addr - kallsyms->symtab[best].st_value; in get_ksymbol()
3952 return symname(kallsyms, best); in get_ksymbol()
4048 struct mod_kallsyms *kallsyms; in module_get_kallsym() local
4052 kallsyms = rcu_dereference_sched(mod->kallsyms); in module_get_kallsym()
4053 if (symnum < kallsyms->num_symtab) { in module_get_kallsym()
4054 *value = kallsyms->symtab[symnum].st_value; in module_get_kallsym()
4055 *type = kallsyms->symtab[symnum].st_info; in module_get_kallsym()
4056 strlcpy(name, symname(kallsyms, symnum), KSYM_NAME_LEN); in module_get_kallsym()
4062 symnum -= kallsyms->num_symtab; in module_get_kallsym()
4071 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms); in mod_find_symname() local
4073 for (i = 0; i < kallsyms->num_symtab; i++) in mod_find_symname()
4074 if (strcmp(name, symname(kallsyms, i)) == 0 && in mod_find_symname()
4075 kallsyms->symtab[i].st_shndx != SHN_UNDEF) in mod_find_symname()
4076 return kallsyms->symtab[i].st_value; in mod_find_symname()
4116 struct mod_kallsyms *kallsyms = mod->kallsyms; in module_kallsyms_on_each_symbol() local
4120 for (i = 0; i < kallsyms->num_symtab; i++) { in module_kallsyms_on_each_symbol()
4122 if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) in module_kallsyms_on_each_symbol()
4125 ret = fn(data, symname(kallsyms, i), in module_kallsyms_on_each_symbol()
4126 mod, kallsyms->symtab[i].st_value); in module_kallsyms_on_each_symbol()