MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / load_initramfs

Method load_initramfs

vmm/src/vm.rs:1454–1473  ·  view source on GitHub ↗
(&mut self, guest_mem: &GuestMemoryMmap)

Source from the content-addressed store, hash-verified

1452 }
1453
1454 fn load_initramfs(&mut self, guest_mem: &GuestMemoryMmap) -> Result<arch::InitramfsConfig> {
1455 let initramfs = self.initramfs.as_mut().unwrap();
1456 let size: usize = initramfs
1457 .seek(SeekFrom::End(0))
1458 .map_err(Error::InitramfsLoad)?
1459 .try_into()
1460 .unwrap();
1461 initramfs.rewind().map_err(Error::InitramfsLoad)?;
1462
1463 let address =
1464 arch::initramfs_load_addr(guest_mem, size).map_err(Error::InitramfsAddress)?;
1465 let address = GuestAddress(address);
1466
1467 guest_mem
1468 .read_volatile_from(address, initramfs, size)
1469 .map_err(Error::InitramfsRead)?;
1470
1471 info!("Initramfs loaded: address = 0x{:x}", address.0);
1472 Ok(arch::InitramfsConfig { address, size })
1473 }
1474
1475 pub fn generate_cmdline(
1476 payload: &PayloadConfig,

Callers 1

configure_systemMethod · 0.80

Calls 3

try_intoMethod · 0.80
initramfs_load_addrFunction · 0.50
seekMethod · 0.45

Tested by

no test coverage detected