switch (v3_cpu_types[cpu_id]) {
- #ifdef CONFIG_SVM
- case V3_VMX_CPU:
- case V3_VMX_EPT_CPU:
- PrintDebug("Machine is SVM Capable\n");
+#ifdef CONFIG_SVM
+ case V3_SVM_CPU:
+ case V3_SVM_REV3_CPU:
+ PrintDebug("Deinitializing SVM CPU %d\n", cpu_id);
v3_deinit_svm_cpu(cpu_id);
break;
#endif
#ifdef CONFIG_VMX
- case V3_SVM_CPU:
- case V3_SVM_REV3_CPU:
- PrintDebug("Machine is VMX Capable\n");
+ case V3_VMX_CPU:
+ case V3_VMX_EPT_CPU:
+ PrintDebug("Deinitializing VMX CPU %d\n", cpu_id);
v3_deinit_vmx_cpu(cpu_id);
break;
#endif
i--; // We reset the logical core idx. Not strictly necessary I guess...
} else {
+
+ /* This assumes that the core 0 thread has been mapped to physical core 0 */
+ if (i == V3_Get_CPU()) {
+ // We skip the local CPU because it is reserved for vcore 0
+ continue;
+ }
+
core_idx = i;
}
major = core_idx / 8;
minor = core_idx % 8;
- /* This assumes that the core 0 thread has been mapped to physical core 0 */
- if (core_idx == V3_Get_CPU()) {
- // We skip the local CPU because it is reserved for vcore 0
- continue;
- }
-
if ((core_mask[major] & (0x1 << minor)) == 0) {
PrintError("Logical CPU %d not available for virtual core %d; not started\n",
break;
}
- V3_Print("Yielding\n");
-
v3_yield(NULL);
}