github.com/containers/podman/v4@v4.9.4/pkg/machine/applehv/vfkit.go (about)

     1  //go:build darwin
     2  // +build darwin
     3  
     4  package applehv
     5  
     6  import (
     7  	"github.com/containers/podman/v4/pkg/machine"
     8  	vfConfig "github.com/crc-org/vfkit/pkg/config"
     9  )
    10  
    11  func getDefaultDevices(imagePath, logPath, readyPath string) ([]vfConfig.VirtioDevice, error) {
    12  	var devices []vfConfig.VirtioDevice
    13  
    14  	disk, err := vfConfig.VirtioBlkNew(imagePath)
    15  	if err != nil {
    16  		return nil, err
    17  	}
    18  	rng, err := vfConfig.VirtioRngNew()
    19  	if err != nil {
    20  		return nil, err
    21  	}
    22  
    23  	serial, err := vfConfig.VirtioSerialNew(logPath)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  
    28  	readyDevice, err := vfConfig.VirtioVsockNew(1025, readyPath, true)
    29  	if err != nil {
    30  		return nil, err
    31  	}
    32  	devices = append(devices, disk, rng, serial, readyDevice)
    33  	return devices, nil
    34  }
    35  
    36  func getDebugDevices() ([]vfConfig.VirtioDevice, error) {
    37  	var devices []vfConfig.VirtioDevice
    38  	gpu, err := vfConfig.VirtioGPUNew()
    39  	if err != nil {
    40  		return nil, err
    41  	}
    42  	mouse, err := vfConfig.VirtioInputNew(vfConfig.VirtioInputPointingDevice)
    43  	if err != nil {
    44  		return nil, err
    45  	}
    46  	kb, err := vfConfig.VirtioInputNew(vfConfig.VirtioInputKeyboardDevice)
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  	return append(devices, gpu, mouse, kb), nil
    51  }
    52  
    53  func getIgnitionVsockDevice(path string) (vfConfig.VirtioDevice, error) {
    54  	return vfConfig.VirtioVsockNew(1024, path, true)
    55  }
    56  
    57  func VirtIOFsToVFKitVirtIODevice(fs machine.VirtIoFs) vfConfig.VirtioFs {
    58  	return vfConfig.VirtioFs{
    59  		DirectorySharingConfig: vfConfig.DirectorySharingConfig{
    60  			MountTag: fs.Tag,
    61  		},
    62  		SharedDir: fs.Source,
    63  	}
    64  }