Lines Matching refs:iter
453 static int get_ksymbol_arch(struct kallsym_iter *iter) in get_ksymbol_arch() argument
455 int ret = arch_get_kallsym(iter->pos - kallsyms_num_syms, in get_ksymbol_arch()
456 &iter->value, &iter->type, in get_ksymbol_arch()
457 iter->name); in get_ksymbol_arch()
460 iter->pos_arch_end = iter->pos; in get_ksymbol_arch()
467 static int get_ksymbol_mod(struct kallsym_iter *iter) in get_ksymbol_mod() argument
469 int ret = module_get_kallsym(iter->pos - iter->pos_arch_end, in get_ksymbol_mod()
470 &iter->value, &iter->type, in get_ksymbol_mod()
471 iter->name, iter->module_name, in get_ksymbol_mod()
472 &iter->exported); in get_ksymbol_mod()
474 iter->pos_mod_end = iter->pos; in get_ksymbol_mod()
481 static int get_ksymbol_ftrace_mod(struct kallsym_iter *iter) in get_ksymbol_ftrace_mod() argument
483 int ret = ftrace_mod_get_kallsym(iter->pos - iter->pos_mod_end, in get_ksymbol_ftrace_mod()
484 &iter->value, &iter->type, in get_ksymbol_ftrace_mod()
485 iter->name, iter->module_name, in get_ksymbol_ftrace_mod()
486 &iter->exported); in get_ksymbol_ftrace_mod()
488 iter->pos_ftrace_mod_end = iter->pos; in get_ksymbol_ftrace_mod()
495 static int get_ksymbol_bpf(struct kallsym_iter *iter) in get_ksymbol_bpf() argument
497 iter->module_name[0] = '\0'; in get_ksymbol_bpf()
498 iter->exported = 0; in get_ksymbol_bpf()
499 return bpf_get_kallsym(iter->pos - iter->pos_ftrace_mod_end, in get_ksymbol_bpf()
500 &iter->value, &iter->type, in get_ksymbol_bpf()
501 iter->name) < 0 ? 0 : 1; in get_ksymbol_bpf()
505 static unsigned long get_ksymbol_core(struct kallsym_iter *iter) in get_ksymbol_core() argument
507 unsigned off = iter->nameoff; in get_ksymbol_core()
509 iter->module_name[0] = '\0'; in get_ksymbol_core()
510 iter->value = kallsyms_sym_address(iter->pos); in get_ksymbol_core()
512 iter->type = kallsyms_get_symbol_type(off); in get_ksymbol_core()
514 off = kallsyms_expand_symbol(off, iter->name, ARRAY_SIZE(iter->name)); in get_ksymbol_core()
516 return off - iter->nameoff; in get_ksymbol_core()
519 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos) in reset_iter() argument
521 iter->name[0] = '\0'; in reset_iter()
522 iter->nameoff = get_symbol_offset(new_pos); in reset_iter()
523 iter->pos = new_pos; in reset_iter()
525 iter->pos_arch_end = 0; in reset_iter()
526 iter->pos_mod_end = 0; in reset_iter()
527 iter->pos_ftrace_mod_end = 0; in reset_iter()
536 static int update_iter_mod(struct kallsym_iter *iter, loff_t pos) in update_iter_mod() argument
538 iter->pos = pos; in update_iter_mod()
540 if ((!iter->pos_arch_end || iter->pos_arch_end > pos) && in update_iter_mod()
541 get_ksymbol_arch(iter)) in update_iter_mod()
544 if ((!iter->pos_mod_end || iter->pos_mod_end > pos) && in update_iter_mod()
545 get_ksymbol_mod(iter)) in update_iter_mod()
548 if ((!iter->pos_ftrace_mod_end || iter->pos_ftrace_mod_end > pos) && in update_iter_mod()
549 get_ksymbol_ftrace_mod(iter)) in update_iter_mod()
552 return get_ksymbol_bpf(iter); in update_iter_mod()
556 static int update_iter(struct kallsym_iter *iter, loff_t pos) in update_iter() argument
560 return update_iter_mod(iter, pos); in update_iter()
563 if (pos != iter->pos) in update_iter()
564 reset_iter(iter, pos); in update_iter()
566 iter->nameoff += get_ksymbol_core(iter); in update_iter()
567 iter->pos++; in update_iter()
595 struct kallsym_iter *iter = m->private; in s_show() local
598 if (!iter->name[0]) in s_show()
601 value = iter->show_value ? (void *)iter->value : NULL; in s_show()
603 if (iter->module_name[0]) { in s_show()
610 type = iter->exported ? toupper(iter->type) : in s_show()
611 tolower(iter->type); in s_show()
613 type, iter->name, iter->module_name); in s_show()
616 iter->type, iter->name); in s_show()
668 struct kallsym_iter *iter; in kallsyms_open() local
669 iter = __seq_open_private(file, &kallsyms_op, sizeof(*iter)); in kallsyms_open()
670 if (!iter) in kallsyms_open()
672 reset_iter(iter, 0); in kallsyms_open()
674 iter->show_value = kallsyms_show_value(); in kallsyms_open()