Struct linux_loader::cmdline::Cmdline [−][src]
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 tokey
.
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]
&mut self,
key: T,
vals: &[T]
) -> Result<()>
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 tokey
.
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]
&mut self,
size: GuestUsize,
baseaddr: GuestAddress,
irq: u32,
id: Option<u32>
) -> Result<()>
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
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]
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>,