/* Exclude crashkernel region */
ret = crash_exclude_mem_range(cmem, crashk_res.start, crashk_res.end); if (ret) goto out;
if (crashk_low_res.end) {
ret = crash_exclude_mem_range(cmem, crashk_low_res.start, crashk_low_res.end); if (ret) goto out;
}
ret = crash_prepare_elf64_headers(cmem, true, addr, sz);
out:
kfree(cmem); return ret;
} #endif
/* * Tries to add the initrd and DTB to the image. If it is not possible to find * valid locations, this function will undo changes to the image and return non * zero.
*/ int load_other_segments(struct kimage *image, unsignedlong kernel_load_addr, unsignedlong kernel_size, char *initrd, unsignedlong initrd_len, char *cmdline)
{ struct kexec_buf kbuf = {}; void *dtb = NULL; unsignedlong initrd_load_addr = 0, dtb_len,
orig_segments = image->nr_segments; int ret = 0;
kbuf.image = image; /* not allocate anything below the kernel */
kbuf.buf_min = kernel_load_addr + kernel_size;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.