Struct linux_loader::cmdline::Cmdline[][src]

pub struct Cmdline { /* fields omitted */ }

A builder for a kernel command line string that validates the string as it’s being built. A CString can be constructed from this directly using CString::new.

Examples

let cl = Cmdline::new(100);
let cl_cstring = CString::new(cl).unwrap();
assert_eq!(cl_cstring.to_str().unwrap(), "");

Implementations

impl Cmdline[src]

pub fn new(capacity: usize) -> Cmdline[src]

Constructs an empty Cmdline with the given capacity, including the nul terminator.

Arguments

  • capacity - Command line capacity. Must be greater than 0.

Examples

let cl = Cmdline::new(100);

pub fn insert<T: AsRef<str>>(&mut self, key: T, val: T) -> Result<()>[src]

Validates and inserts a key-value pair into this command line.

Arguments

  • key - Key to be inserted in the command line string.
  • val - Value corresponding to key.

Examples

let mut cl = Cmdline::new(100);
cl.insert("foo", "bar");
let cl_cstring = CString::new(cl).unwrap();
assert_eq!(cl_cstring.to_str().unwrap(), "foo=bar");

pub fn insert_multiple<T: AsRef<str>>(
    &mut self,
    key: T,
    vals: &[T]
) -> Result<()>
[src]

Validates and inserts a key-value1,…,valueN pair into this command line.

Arguments

  • key - Key to be inserted in the command line string.
  • vals - Values corresponding to key.

Examples

let mut cl = Cmdline::new(100);
cl.insert_multiple("foo", &["bar", "baz"]);
let cl_cstring = CString::new(cl).unwrap();
assert_eq!(cl_cstring.to_str().unwrap(), "foo=bar,baz");

pub fn insert_str<T: AsRef<str>>(&mut self, slug: T) -> Result<()>[src]

Validates and inserts a string to the end of the current command line.

Arguments

  • slug - String to be appended to the command line.

Examples

let mut cl = Cmdline::new(100);
cl.insert_str("foobar");
let cl_cstring = CString::new(cl).unwrap();
assert_eq!(cl_cstring.to_str().unwrap(), "foobar");

pub fn as_str(&self) -> &str[src]

Returns the string representation of the command line without the nul terminator.

Examples

let mut cl = Cmdline::new(10);
cl.insert_str("foobar");
assert_eq!(cl.as_str(), "foobar");

pub fn add_virtio_mmio_device(
    &mut self,
    size: GuestUsize,
    baseaddr: GuestAddress,
    irq: u32,
    id: Option<u32>
) -> Result<()>
[src]

Adds a virtio MMIO device to the kernel command line.

Multiple devices can be specified, with multiple virtio_mmio.device= options. This function must be called once per device. The function appends a string of the following format to the kernel command line: <size>@<baseaddr>:<irq>[:<id>]. For more details see the documentation (section virtio_mmio.device=).

Arguments

  • size - size of the slot the device occupies on the MMIO bus.
  • baseaddr - physical base address of the device.
  • irq - interrupt number to be used by the device.
  • id - optional platform device ID.

Examples

let mut cl = Cmdline::new(100);
cl.add_virtio_mmio_device(1 << 12, GuestAddress(0x1000), 5, Some(42)).unwrap();
let cl_cstring = CString::new(cl).unwrap();
assert_eq!(cl_cstring.to_str().unwrap(), "virtio_mmio.device=4K@0x1000:5:42");

Trait Implementations

impl Into<Vec<u8, Global>> for Cmdline[src]

Auto Trait Implementations

impl RefUnwindSafe for Cmdline

impl Send for Cmdline

impl Sync for Cmdline

impl Unpin for Cmdline

impl UnwindSafe for Cmdline

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.