libavf: add AVirtualMachineRawConfig_setVCpuCount
Bug: 381281047
Test: m
Change-Id: I59356bf13507808e783362d79e7b07559f195ba2
diff --git a/libs/libavf/src/lib.rs b/libs/libavf/src/lib.rs
index 8d60f3c..af891e8 100644
--- a/libs/libavf/src/lib.rs
+++ b/libs/libavf/src/lib.rs
@@ -23,8 +23,8 @@
use android_system_virtualizationservice::{
aidl::android::system::virtualizationservice::{
- DiskImage::DiskImage, IVirtualizationService::IVirtualizationService,
- VirtualMachineConfig::VirtualMachineConfig,
+ CpuTopology::CpuTopology, DiskImage::DiskImage,
+ IVirtualizationService::IVirtualizationService, VirtualMachineConfig::VirtualMachineConfig,
VirtualMachineRawConfig::VirtualMachineRawConfig,
},
binder::{ParcelFileDescriptor, Strong},
@@ -205,6 +205,22 @@
config.swiotlbMib = swiotlb_mib;
}
+/// Set vCPU count.
+///
+/// # Safety
+/// `config` must be a pointer returned by `AVirtualMachineRawConfig_create`.
+#[no_mangle]
+pub unsafe extern "C" fn AVirtualMachineRawConfig_setVCpuCount(
+ config: *mut VirtualMachineRawConfig,
+ n: i32,
+) {
+ // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
+ // AVirtualMachineRawConfig_create. It's the only reference to the object.
+ let config = unsafe { &mut *config };
+ config.cpuTopology = CpuTopology::CUSTOM;
+ config.customVcpuCount = n;
+}
+
/// Set whether a virtual machine is protected or not.
///
/// # Safety