Move CpuTopology to CpuOptions
Add CpuOptions for easier expansion of options relating to CPUs.
Bug: N/A
Test: TH, /apex/com.android.virt/bin/vm run-microdroid --cpu-topology cpu_count=#|one_cpu|match_host
Change-Id: I24bc31211448ad9fa5fb80382fcc4626216fe08f
diff --git a/android/virtmgr/src/atom.rs b/android/virtmgr/src/atom.rs
index e0fed85..33299aa 100644
--- a/android/virtmgr/src/atom.rs
+++ b/android/virtmgr/src/atom.rs
@@ -19,7 +19,8 @@
use crate::get_calling_uid;
use android_system_virtualizationcommon::aidl::android::system::virtualizationcommon::DeathReason::DeathReason;
use android_system_virtualizationservice::aidl::android::system::virtualizationservice::{
- CpuTopology::CpuTopology,
+ CpuOptions::CpuOptions,
+ CpuOptions::CpuTopology::CpuTopology,
IVirtualMachine::IVirtualMachine,
VirtualMachineAppConfig::{Payload::Payload, VirtualMachineAppConfig},
VirtualMachineConfig::VirtualMachineConfig,
@@ -92,23 +93,15 @@
}
}
-fn get_num_vcpus(cpu_topology: CpuTopology, custom_vcpu_count: Option<i32>) -> i32 {
- match cpu_topology {
- CpuTopology::ONE_CPU => 1,
- CpuTopology::MATCH_HOST => {
+fn get_num_vcpus(cpu_options: &CpuOptions) -> i32 {
+ match cpu_options.cpuTopology {
+ CpuTopology::MatchHost(_) => {
get_num_cpus().and_then(|v| v.try_into().ok()).unwrap_or_else(|| {
warn!("Failed to determine the number of CPUs in the host");
INVALID_NUM_CPUS
})
}
- CpuTopology::CUSTOM => custom_vcpu_count.unwrap_or_else(|| {
- warn!("AppConfig doesn't support CpuTopology::CUSTOM");
- INVALID_NUM_CPUS
- }),
- _ => {
- warn!("invalid CpuTopology: {cpu_topology:?}");
- INVALID_NUM_CPUS
- }
+ CpuTopology::CpuCount(count) => count,
}
}
@@ -140,14 +133,14 @@
VirtualMachineConfig::AppConfig(config) => (
config.name.clone(),
vm_creation_requested::ConfigType::VirtualMachineAppConfig,
- get_num_vcpus(config.cpuTopology, None),
+ get_num_vcpus(&config.cpuOptions),
config.memoryMib,
get_apex_list(config),
),
VirtualMachineConfig::RawConfig(config) => (
config.name.clone(),
vm_creation_requested::ConfigType::VirtualMachineRawConfig,
- get_num_vcpus(config.cpuTopology, Some(config.customVcpuCount)),
+ get_num_vcpus(&config.cpuOptions),
config.memoryMib,
String::new(),
),