Add options for configuring number of vCPUs and CPU affinity

Bug: 197358423
Test: atest MicrodroidHostTestCases

Change-Id: I61a7e746ddd83a1816d18166fb74f4aa5a2565ce
diff --git a/virtualizationservice/src/aidl.rs b/virtualizationservice/src/aidl.rs
index 1bd7ee0..c264270 100644
--- a/virtualizationservice/src/aidl.rs
+++ b/virtualizationservice/src/aidl.rs
@@ -266,6 +266,8 @@
             params: config.params.to_owned(),
             protected,
             memory_mib: config.memoryMib.try_into().ok().and_then(NonZeroU32::new),
+            cpus: config.numCpus.try_into().ok().and_then(NonZeroU32::new),
+            cpu_affinity: config.cpuAffinity.clone(),
             console_fd,
             log_fd,
             indirect_files,
@@ -563,6 +565,9 @@
         vm_config.memoryMib = config.memoryMib;
     }
 
+    vm_config.numCpus = config.numCpus;
+    vm_config.cpuAffinity = config.cpuAffinity.clone();
+
     // Microdroid requires an additional payload disk image and the bootconfig partition.
     if os_name == "microdroid" {
         add_microdroid_images(