Struct linux_loader::loader::elf::Elf [−][src]
Raw ELF (a.k.a. vmlinux) kernel image support.
Trait Implementations
impl KernelLoader for Elf
[src]
fn load<F, M: GuestMemory>(
guest_mem: &M,
kernel_offset: Option<GuestAddress>,
kernel_image: &mut F,
highmem_start_address: Option<GuestAddress>
) -> Result<KernelLoaderResult> where
F: Read + Seek,
[src]
guest_mem: &M,
kernel_offset: Option<GuestAddress>,
kernel_image: &mut F,
highmem_start_address: Option<GuestAddress>
) -> Result<KernelLoaderResult> where
F: Read + Seek,
Loads a kernel from a vmlinux elf image into guest memory.
By default, the kernel is loaded into guest memory at offset phdr.p_paddr
specified
by the elf image. When used, kernel_offset
specifies a fixed offset from phdr.p_paddr
at which to load the kernel. If kernel_offset
is requested, the pvh_entry_addr
field
of the result will not be populated.
Arguments
guest_mem
:GuestMemory
to load the kernel in.kernel_offset
: Offset to be added to default kernel load address in guest memory.kernel_image
- Input vmlinux image.highmem_start_address
: Address where high memory starts.
Examples
let mem_size: usize = 0x1000000; let himem_start = GuestAddress(0x0); let kernel_addr = GuestAddress(0x200000); let gm = GuestMemoryMmap::from_ranges(&[(GuestAddress(0x0), mem_size)]).unwrap(); let mut kernel_image = vec![]; kernel_image.extend_from_slice(include_bytes!("test_elf.bin")); elf::Elf::load( &gm, Some(kernel_addr), &mut Cursor::new(&kernel_image), Some(himem_start), ).unwrap();
Auto Trait Implementations
impl RefUnwindSafe for Elf
impl Send for Elf
impl Sync for Elf
impl Unpin for Elf
impl UnwindSafe for Elf
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,