Struct linux_loader::loader::elf::Elf[][src]

pub struct Elf;

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]

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.