kvm__load_kernel
code:kvm.c
bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename,
const char *initrd_filename, const char *kernel_cmdline)
{
bool ret;
int fd_kernel = -1, fd_initrd = -1;
fd_kernel = open(kernel_filename, O_RDONLY);
if (fd_kernel < 0)
die("Unable to open kernel %s", kernel_filename);
if (initrd_filename) {
fd_initrd = open(initrd_filename, O_RDONLY);
if (fd_initrd < 0)
die("Unable to open initrd %s", initrd_filename);
if (!initrd_check(fd_initrd))
die("%s is not an initrd", initrd_filename);
}
ret = kvm__arch_load_kernel_image(kvm, fd_kernel, fd_initrd,
kernel_cmdline);
if (initrd_filename)
close(fd_initrd);
close(fd_kernel);
if (!ret)
die("%s is not a valid kernel image", kernel_filename);
return ret;
}