mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-02 11:35:46 +00:00
vmm: config: Port RNG options to OptionParser
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
708dbb973a
commit
e4cd3072d4
@ -33,8 +33,6 @@ pub enum Error {
|
|||||||
ParseCmdlineParams,
|
ParseCmdlineParams,
|
||||||
/// Both socket and path specified
|
/// Both socket and path specified
|
||||||
ParseDiskSocketAndPath,
|
ParseDiskSocketAndPath,
|
||||||
/// Failed parsing random number generator parameters.
|
|
||||||
ParseRngParams,
|
|
||||||
/// Failed parsing fs tag parameter.
|
/// Failed parsing fs tag parameter.
|
||||||
ParseFsTagParam,
|
ParseFsTagParam,
|
||||||
/// Failed parsing fs socket path parameter.
|
/// Failed parsing fs socket path parameter.
|
||||||
@ -71,6 +69,8 @@ pub enum Error {
|
|||||||
ParseDisk(OptionParserError),
|
ParseDisk(OptionParserError),
|
||||||
/// Error parsing network options
|
/// Error parsing network options
|
||||||
ParseNetwork(OptionParserError),
|
ParseNetwork(OptionParserError),
|
||||||
|
/// Error parsing RNG options
|
||||||
|
ParseRNG(OptionParserError),
|
||||||
}
|
}
|
||||||
pub type Result<T> = result::Result<T, Error>;
|
pub type Result<T> = result::Result<T, Error>;
|
||||||
|
|
||||||
@ -714,24 +714,22 @@ pub struct RngConfig {
|
|||||||
|
|
||||||
impl RngConfig {
|
impl RngConfig {
|
||||||
pub fn parse(rng: &str) -> Result<Self> {
|
pub fn parse(rng: &str) -> Result<Self> {
|
||||||
// Split the parameters based on the comma delimiter
|
let mut parser = OptionParser::new();
|
||||||
let params_list: Vec<&str> = rng.split(',').collect();
|
parser.add("src").add("iommu");
|
||||||
|
parser.parse(rng).map_err(Error::ParseRNG)?;
|
||||||
|
|
||||||
let mut src_str: &str = DEFAULT_RNG_SOURCE;
|
let src = PathBuf::from(
|
||||||
let mut iommu_str: &str = "";
|
parser
|
||||||
|
.get("src")
|
||||||
|
.unwrap_or_else(|| DEFAULT_RNG_SOURCE.to_owned()),
|
||||||
|
);
|
||||||
|
let iommu = parser
|
||||||
|
.convert::<Toggle>("iommu")
|
||||||
|
.map_err(Error::ParseRNG)?
|
||||||
|
.unwrap_or(Toggle(false))
|
||||||
|
.0;
|
||||||
|
|
||||||
for param in params_list.iter() {
|
Ok(RngConfig { src, iommu })
|
||||||
if param.starts_with("src=") {
|
|
||||||
src_str = ¶m[4..];
|
|
||||||
} else if param.starts_with("iommu=") {
|
|
||||||
iommu_str = ¶m[6..];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(RngConfig {
|
|
||||||
src: PathBuf::from(src_str),
|
|
||||||
iommu: parse_on_off(iommu_str)?,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user