static void _kexec_image_info(const char *func, int line, const struct kimage *image) { unsigned long i; #if !defined(DEBUG) return; #endif pr_devel("%s:%d:\n", func, line); pr_devel(" kexec image info:\n"); pr_devel(" type: %d\n", image->type); pr_devel(" start: %lx\n", image->start); pr_devel(" head: %lx\n", image->head); pr_devel(" nr_segments: %lu\n", image->nr_segments); for (i = 0; i < image->nr_segments; i++) { pr_devel(" segment[%lu]: %016lx - %016lx, %lx bytes, %lu pages%s\n", i, image->segment[i].mem, image->segment[i].mem + image->segment[i].memsz, image->segment[i].memsz, image->segment[i].memsz / PAGE_SIZE, (kexec_is_dtb(image->segment[i].buf) ? ", dtb segment" : "")); } }
/** * kexec_find_dtb_seg - Helper routine to find the dtb segment. */ static const struct kexec_segment *kexec_find_dtb_seg( const struct kimage *kimage) { int i; for (i = 0; i < kimage->nr_segments; i++) { if (kexec_is_dtb(kimage->segment[i].buf)) return &kimage->segment[i]; } BUG(); return NULL; }