mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-21 00:04:19 +01:00
Refactor the bus assignment so that the call to GetAllVFIODevicesFromIOMMUGroup can be used by any module without affecting the topology. Signed-off-by: Zvonko Kaiser <zkaiser@nvidia.com>
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
// Copyright (c) 2019 Huawei Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package hypervisors
|
|
|
|
import "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config"
|
|
|
|
// Bridge is a bridge where devices can be hot plugged
|
|
type Bridge struct {
|
|
// DeviceAddr contains information about devices plugged and its address in the bridge
|
|
DeviceAddr map[uint32]string
|
|
|
|
// Type is the type of the bridge (pci, pcie, etc)
|
|
Type string
|
|
|
|
//ID is used to identify the bridge in the hypervisor
|
|
ID string
|
|
|
|
// Addr is the PCI/e slot of the bridge
|
|
Addr int
|
|
}
|
|
|
|
// CPUDevice represents a CPU device which was hot-added in a running VM
|
|
type CPUDevice struct {
|
|
// ID is used to identify this CPU in the hypervisor options.
|
|
ID string
|
|
}
|
|
|
|
type HypervisorState struct {
|
|
BlockIndexMap map[int]struct{}
|
|
// Type of hypervisor, E.g. qemu/firecracker/acrn.
|
|
Type string
|
|
UUID string
|
|
// clh sepcific: refer to 'virtcontainers/clh.go:CloudHypervisorState'
|
|
APISocket string
|
|
|
|
// Belows are qemu specific
|
|
// Refs: virtcontainers/qemu.go:QemuState
|
|
Bridges []Bridge
|
|
// HotpluggedCPUs is the list of CPUs that were hot-added
|
|
HotpluggedVCPUs []CPUDevice
|
|
|
|
HotpluggedMemory int
|
|
VirtiofsDaemonPid int
|
|
Pid int
|
|
PCIeRootPort int
|
|
PCIeSwitchPort int
|
|
HotPlugVFIO config.PCIePort
|
|
ColdPlugVFIO config.PCIePort
|
|
HotplugVFIOOnRootBus bool
|
|
}
|