fix(xenclient): examples should use supported platform

This commit is contained in:
Alex Zenla 2024-12-14 18:33:53 -05:00
parent 4b0f3782bd
commit e0bbeb5d64
No known key found for this signature in database
GPG Key ID: 067B238899B51269
3 changed files with 10 additions and 7 deletions

View File

@ -24,15 +24,10 @@ async fn main() -> Result<()> {
let initrd_path = args.get(2).expect("argument not specified");
let client = XenClient::new().await?;
#[cfg(target_arch = "x86_64")]
let runtime_platform = RuntimePlatformType::Pv;
#[cfg(not(target_arch = "x86_64"))]
let runtime_platform = RuntimePlatformType::Unsupported;
let mut config = DomainConfig::new();
config.platform(PlatformDomainConfig {
uuid: Uuid::new_v4(),
platform: runtime_platform,
platform: RuntimePlatformType::supported(),
kernel: PlatformKernelConfig {
data: Arc::new(fs::read(&kernel_image_path).await?),
format: KernelFormat::ElfCompressed,

View File

@ -42,7 +42,7 @@ async fn create_domain(client: &XenClient, kernel: Arc<Vec<u8>>, i: u32) -> Resu
let mut config = DomainConfig::new();
config.platform(PlatformDomainConfig {
uuid: Uuid::new_v4(),
platform: RuntimePlatformType::Pv,
platform: RuntimePlatformType::supported(),
kernel: PlatformKernelConfig {
data: kernel,
format: KernelFormat::ElfUncompressed,

View File

@ -54,6 +54,14 @@ impl RuntimePlatformType {
RuntimePlatformType::Pv => RuntimePlatform::Pv(x86pv::X86PvPlatform::new()),
}
}
pub fn supported() -> RuntimePlatformType {
if cfg!(target_arch = "x86_64") {
RuntimePlatformType::Pv
} else {
RuntimePlatformType::Unsupported
}
}
}
#[allow(clippy::large_enum_variant)]