Lines Matching refs:kci
1371 struct kcore_copy_info *kci = arg; in kcore_copy__process_kallsyms() local
1377 if (start > kci->last_module_symbol) in kcore_copy__process_kallsyms()
1378 kci->last_module_symbol = start; in kcore_copy__process_kallsyms()
1382 if (!kci->first_symbol || start < kci->first_symbol) in kcore_copy__process_kallsyms()
1383 kci->first_symbol = start; in kcore_copy__process_kallsyms()
1385 if (!kci->last_symbol || start > kci->last_symbol) in kcore_copy__process_kallsyms()
1386 kci->last_symbol = start; in kcore_copy__process_kallsyms()
1389 kci->stext = start; in kcore_copy__process_kallsyms()
1394 kci->etext = start; in kcore_copy__process_kallsyms()
1401 static int kcore_copy__parse_kallsyms(struct kcore_copy_info *kci, in kcore_copy__parse_kallsyms() argument
1411 if (kallsyms__parse(kallsyms_filename, kci, in kcore_copy__parse_kallsyms()
1422 struct kcore_copy_info *kci = arg; in kcore_copy__process_modules() local
1424 if (!kci->first_module || start < kci->first_module) in kcore_copy__process_modules()
1425 kci->first_module = start; in kcore_copy__process_modules()
1430 static int kcore_copy__parse_modules(struct kcore_copy_info *kci, in kcore_copy__parse_modules() argument
1440 if (modules__parse(modules_filename, kci, in kcore_copy__parse_modules()
1460 struct kcore_copy_info *kci = data; in kcore_copy__read_map() local
1463 kcore_copy__map(&kci->kernel_map, start, end, pgoff, kci->stext, in kcore_copy__read_map()
1464 kci->etext); in kcore_copy__read_map()
1466 kcore_copy__map(&kci->modules_map, start, end, pgoff, kci->first_module, in kcore_copy__read_map()
1467 kci->last_module_symbol); in kcore_copy__read_map()
1472 static int kcore_copy__read_maps(struct kcore_copy_info *kci, Elf *elf) in kcore_copy__read_maps() argument
1474 if (elf_read_maps(elf, true, kcore_copy__read_map, kci) < 0) in kcore_copy__read_maps()
1480 static int kcore_copy__calc_maps(struct kcore_copy_info *kci, const char *dir, in kcore_copy__calc_maps() argument
1483 if (kcore_copy__parse_kallsyms(kci, dir)) in kcore_copy__calc_maps()
1486 if (kcore_copy__parse_modules(kci, dir)) in kcore_copy__calc_maps()
1489 if (kci->stext) in kcore_copy__calc_maps()
1490 kci->stext = round_down(kci->stext, page_size); in kcore_copy__calc_maps()
1492 kci->stext = round_down(kci->first_symbol, page_size); in kcore_copy__calc_maps()
1494 if (kci->etext) { in kcore_copy__calc_maps()
1495 kci->etext = round_up(kci->etext, page_size); in kcore_copy__calc_maps()
1496 } else if (kci->last_symbol) { in kcore_copy__calc_maps()
1497 kci->etext = round_up(kci->last_symbol, page_size); in kcore_copy__calc_maps()
1498 kci->etext += page_size; in kcore_copy__calc_maps()
1501 kci->first_module = round_down(kci->first_module, page_size); in kcore_copy__calc_maps()
1503 if (kci->last_module_symbol) { in kcore_copy__calc_maps()
1504 kci->last_module_symbol = round_up(kci->last_module_symbol, in kcore_copy__calc_maps()
1506 kci->last_module_symbol += page_size; in kcore_copy__calc_maps()
1509 if (!kci->stext || !kci->etext) in kcore_copy__calc_maps()
1512 if (kci->first_module && !kci->last_module_symbol) in kcore_copy__calc_maps()
1515 return kcore_copy__read_maps(kci, elf); in kcore_copy__calc_maps()
1641 struct kcore_copy_info kci = { .stext = 0, }; in kcore_copy() local
1657 if (kcore_copy__calc_maps(&kci, from_dir, kcore.elf)) in kcore_copy()
1663 if (!kci.modules_map.addr) in kcore_copy()
1669 if (kcore__add_phdr(&extract, idx++, offset, kci.kernel_map.addr, in kcore_copy()
1670 kci.kernel_map.len)) in kcore_copy()
1673 if (kci.modules_map.addr) { in kcore_copy()
1674 modules_offset = offset + kci.kernel_map.len; in kcore_copy()
1676 kci.modules_map.addr, kci.modules_map.len)) in kcore_copy()
1684 if (copy_bytes(kcore.fd, kci.kernel_map.offset, extract.fd, offset, in kcore_copy()
1685 kci.kernel_map.len)) in kcore_copy()
1688 if (modules_offset && copy_bytes(kcore.fd, kci.modules_map.offset, in kcore_copy()
1690 kci.modules_map.len)) in kcore_copy()