Merge pull request #5996 from dcantah/vfw-initial

virtcontainers: Introduce hypervisor_darwin
This commit is contained in:
Bin Liu
2023-01-09 11:37:02 +08:00
committed by GitHub
3 changed files with 34 additions and 1 deletions

View File

@@ -49,6 +49,9 @@ const (
// DragonballHypervisor is the Dragonball hypervisor.
DragonballHypervisor HypervisorType = "dragonball"
// VirtFrameworkHypervisor is the Darwin Virtualization.framework hypervisor
VirtframeworkHypervisor HypervisorType = "virtframework"
// MockHypervisor is a mock hypervisor for testing purposes
MockHypervisor HypervisorType = "mock"
@@ -84,6 +87,8 @@ var (
)
// In some architectures the maximum number of vCPUs depends on the number of physical cores.
// TODO (dcantah): Find a suitable value for darwin/vfw. Seems perf degrades if > number of host
// cores.
var defaultMaxVCPUs = govmm.MaxVCPUs()
// agnostic list of kernel root parameters for NVDIMM
@@ -177,6 +182,9 @@ func (hType *HypervisorType) Set(value string) error {
case "dragonball":
*hType = DragonballHypervisor
return nil
case "virtframework":
*hType = VirtframeworkHypervisor
return nil
case "mock":
*hType = MockHypervisor
return nil

View File

@@ -0,0 +1,26 @@
// Copyright (c) 2023 Apple Inc.
//
// SPDX-License-Identifier: Apache-2.0
//
package virtcontainers
import (
"fmt"
)
// NewHypervisor returns a hypervisor from a hypervisor type.
func NewHypervisor(hType HypervisorType) (Hypervisor, error) {
switch hType {
case VirtframeworkHypervisor:
return &virtFramework{}, nil
case MockHypervisor:
return &mockHypervisor{}, nil
default:
return nil, fmt.Errorf("Unknown hypervisor type %s", hType)
}
}
func availableGuestProtection() (guestProtection, error) {
return noneProtection, nil
}

View File

@@ -27,7 +27,6 @@ func generateVMSocket(id string, vmStogarePath string) (interface{}, error) {
// NewHypervisor returns an hypervisor from a hypervisor type.
func NewHypervisor(hType HypervisorType) (Hypervisor, error) {
switch hType {
case QemuHypervisor:
return &qemu{}, nil