Documentation ¶
Index ¶
- Variables
- type AMDSEVCapabilities
- type AddFdInfo
- type BlockStats
- type CPU
- type CPUInstanceProperties
- type CPUModel
- type ChardevChangeInfo
- type FdsetFdInfo
- type FdsetInfo
- type HotpluggableCPU
- type Monitor
- func (m *Monitor) AddBlockDevice(blockDev map[string]any, device map[string]string) error
- func (m *Monitor) AddCharDevice(device map[string]any) error
- func (m *Monitor) AddDevice(device map[string]string) error
- func (m *Monitor) AddNIC(netDev map[string]any, device map[string]string) error
- func (m *Monitor) AddSecret(id string, secret string) error
- func (m *Monitor) AgenStarted() bool
- func (m *Monitor) BlockCommit(deviceNodeName string) error
- func (m *Monitor) BlockDevMirror(deviceNodeName string, targetNodeName string) error
- func (m *Monitor) BlockDevSnapshot(deviceNodeName string, snapshotNodeName string) error
- func (m *Monitor) BlockJobCancel(deviceNodeName string) error
- func (m *Monitor) BlockJobComplete(deviceNodeName string) error
- func (m *Monitor) ChardevChange(device string, info ChardevChangeInfo) error
- func (m *Monitor) CheckPCIDevice(deviceID string) (bool, error)
- func (m *Monitor) CloseFile(name string) error
- func (m *Monitor) Disconnect()
- func (m *Monitor) Eject(id string) error
- func (m *Monitor) GetBlockStats() (map[string]BlockStats, error)
- func (m *Monitor) GetCPUs() ([]int, error)
- func (m *Monitor) GetMemoryBalloonSizeBytes() (int64, error)
- func (m *Monitor) GetMemorySizeBytes() (int64, error)
- func (m *Monitor) Migrate(name string) error
- func (m *Monitor) MigrateContinue(fromState string) error
- func (m *Monitor) MigrateIncoming(ctx context.Context, name string) error
- func (m *Monitor) MigrateSetCapabilities(caps map[string]bool) error
- func (m *Monitor) MigrateWait(state string) error
- func (m *Monitor) NBDBlockExportAdd(deviceNodeName string) error
- func (m *Monitor) NBDServerStart() (net.Conn, error)
- func (m *Monitor) NBDServerStop() error
- func (m *Monitor) Pause() error
- func (m *Monitor) Powerdown() error
- func (m *Monitor) QueryCPUModel(model string) (*CPUModel, error)
- func (m *Monitor) QueryCPUs() ([]CPU, error)
- func (m *Monitor) QueryHotpluggableCPUs() ([]HotpluggableCPU, error)
- func (m *Monitor) QueryPCI() ([]PCIDevice, error)
- func (m *Monitor) Quit() error
- func (m *Monitor) RemoveBlockDevice(blockDevName string) error
- func (m *Monitor) RemoveCharDevice(deviceID string) error
- func (m *Monitor) RemoveDevice(deviceID string) error
- func (m *Monitor) RemoveFDFromFDSet(name string) error
- func (m *Monitor) RemoveNIC(netDevID string) error
- func (m *Monitor) Reset() error
- func (m *Monitor) RingbufRead(device string) (string, error)
- func (m *Monitor) Run(cmd string, args any, resp any) error
- func (m *Monitor) RunJSON(request []byte, resp any, logCommand bool) error
- func (m *Monitor) SEVCapabilities() (AMDSEVCapabilities, error)
- func (m *Monitor) Screendump(filename string) error
- func (m *Monitor) SendFile(name string, file *os.File) error
- func (m *Monitor) SendFileWithFDSet(name string, file *os.File, readonly bool) (*AddFdInfo, error)
- func (m *Monitor) SetAction(actions map[string]string) error
- func (m *Monitor) SetBlockThrottle(id string, bytesRead int, bytesWrite int, iopsRead int, iopsWrite int) error
- func (m *Monitor) SetMemoryBalloonSizeBytes(sizeBytes int64) error
- func (m *Monitor) SetOnDisconnectEvent(enable bool)
- func (m *Monitor) Start() error
- func (m *Monitor) Status() (string, error)
- func (m *Monitor) UpdateBlockSize(id string) error
- func (m *Monitor) Wait() (chan struct{}, error)
- type PCIBridge
- type PCIClassInfo
- type PCIDevice
Constants ¶
This section is empty.
Variables ¶
var ErrMonitorBadConsole = fmt.Errorf("Requested console couldn't be found")
ErrMonitorBadConsole is returned when the requested console doesn't exist.
var ErrMonitorDisconnect = fmt.Errorf("Monitor is disconnected")
ErrMonitorDisconnect is returned when interacting with a disconnected Monitor.
var ErrNotARingbuf = fmt.Errorf("Requested device isn't a ring buffer")
ErrNotARingbuf is returned when the requested device isn't a ring buffer.
var EventAgentStarted = "AGENT-STARTED"
EventAgentStarted is the event sent once the agent has started.
var EventDiskEjected = "DEVICE_TRAY_MOVED"
EventDiskEjected is used to indicate that a disk device was ejected by the guest.
var EventVMShutdown = "SHUTDOWN"
EventVMShutdown is the event sent when VM guest shuts down.
var EventVMShutdownReasonDisconnect = "disconnect"
EventVMShutdownReasonDisconnect is used as the reason when the shutdown event is triggered by a QMP disconnect.
var ExcludedCommands = []string{"ringbuf-read"}
ExcludedCommands is used to filter verbose commands from the QMP logs.
var RingbufSize = 16
RingbufSize is the size of the agent serial ringbuffer in bytes.
Functions ¶
This section is empty.
Types ¶
type AMDSEVCapabilities ¶
type AMDSEVCapabilities struct { PDH string `json:"pdh"` // Platform Diffie-Hellman key (base64-encoded) CertChain string `json:"cert-chain"` // PDH certificate chain (base64-encoded) CPU0Id string `json:"cpu0-id"` // Unique ID of CPU0 (base64-encoded) CBitPos int `json:"cbitpos"` // C-bit location in page table entry ReducedPhysBits int `json:"reduced-phys-bits"` // Number of physical address bit reduction when SEV is enabled }
AMDSEVCapabilities represents the SEV capabilities of QEMU.
type AddFdInfo ¶
AddFdInfo contains information about a file descriptor that was added to an fd set.
type BlockStats ¶
type BlockStats struct { BytesWritten int `json:"wr_bytes"` WritesCompleted int `json:"wr_operations"` BytesRead int `json:"rd_bytes"` ReadsCompleted int `json:"rd_operations"` }
BlockStats represents block device stats.
type CPU ¶
type CPU struct { Index int `json:"cpu-index,omitempty"` QOMPath string `json:"qom-path,omitempty"` ThreadID int `json:"thread-id,omitempty"` Target string `json:"target,omitempty"` Props CPUInstanceProperties `json:"props"` }
CPU contains information about a CPU.
type CPUInstanceProperties ¶
type CPUInstanceProperties struct { NodeID int `json:"node-id,omitempty"` SocketID int `json:"socket-id,omitempty"` DieID int `json:"die-id,omitempty"` ClusterID int `json:"cluster-id,omitempty"` CoreID int `json:"core-id,omitempty"` ThreadID int `json:"thread-id,omitempty"` }
CPUInstanceProperties contains CPU instance properties.
type ChardevChangeInfo ¶ added in v6.6.0
type ChardevChangeInfo struct { Type string `json:"type"` File *os.File `json:"file,omitempty"` FDName string `json:"fdname,omitempty"` }
ChardevChangeInfo contains information required to change the backend of a chardev.
type FdsetFdInfo ¶
FdsetFdInfo contains information about a file descriptor that belongs to an FD set.
type FdsetInfo ¶
type FdsetInfo struct { ID int `json:"fdset-id"` FDs []FdsetFdInfo `json:"fds"` }
FdsetInfo contains information about an FD set.
type HotpluggableCPU ¶
type HotpluggableCPU struct { Type string `json:"type"` VCPUsCount int `json:"vcpus-count"` QOMPath string `json:"qom-path,omitempty"` Props CPUInstanceProperties `json:"props"` }
HotpluggableCPU contains information about a hotpluggable CPU.
type Monitor ¶
type Monitor struct {
// contains filtered or unexported fields
}
Monitor represents a QMP monitor.
func Connect ¶
func Connect(path string, serialCharDev string, eventHandler func(name string, data map[string]any), logFile string) (*Monitor, error)
Connect creates or retrieves an existing QMP monitor for the path.
func (*Monitor) AddBlockDevice ¶
AddBlockDevice adds a block device.
func (*Monitor) AddCharDevice ¶
AddCharDevice adds a new character device.
func (*Monitor) AddSecret ¶
AddSecret adds a secret object with the given ID and secret. This function won't return an error if the secret object already exists.
func (*Monitor) AgenStarted ¶
AgenStarted indicates whether an agent has been detected.
func (*Monitor) BlockCommit ¶
BlockCommit merges a snapshot device back into its parent device.
func (*Monitor) BlockDevMirror ¶
BlockDevMirror mirrors the top device to the target device.
func (*Monitor) BlockDevSnapshot ¶
BlockDevSnapshot creates a snapshot of a device using the specified snapshot device.
func (*Monitor) BlockJobCancel ¶
BlockJobCancel cancels an ongoing block job.
func (*Monitor) BlockJobComplete ¶
BlockJobComplete completes a block job that is in reader state.
func (*Monitor) ChardevChange ¶ added in v6.6.0
func (m *Monitor) ChardevChange(device string, info ChardevChangeInfo) error
ChardevChange changes the backend of a specified chardev. Currently supports the socket and ringbuf backends.
func (*Monitor) CheckPCIDevice ¶ added in v6.0.2
CheckPCIDevice checks if the deviceID exists as a bridged PCI device.
func (*Monitor) CloseFile ¶
CloseFile closes an existing file descriptor in the QMP fd table associated to name.
func (*Monitor) Disconnect ¶
func (m *Monitor) Disconnect()
Disconnect forces a disconnection from QEMU.
func (*Monitor) GetBlockStats ¶
func (m *Monitor) GetBlockStats() (map[string]BlockStats, error)
GetBlockStats return block device stats.
func (*Monitor) GetMemoryBalloonSizeBytes ¶
GetMemoryBalloonSizeBytes returns effective size of the memory in bytes (considering the current balloon size).
func (*Monitor) GetMemorySizeBytes ¶
GetMemorySizeBytes returns the current size of the base memory in bytes.
func (*Monitor) MigrateContinue ¶
MigrateContinue continues a migration stream.
func (*Monitor) MigrateIncoming ¶
MigrateIncoming starts the receiver of a migration stream.
func (*Monitor) MigrateSetCapabilities ¶
MigrateSetCapabilities sets the capabilities used during migration.
func (*Monitor) MigrateWait ¶
MigrateWait waits until migration job reaches the specified status. Returns nil if the migraton job reaches the specified status or an error if the migration job is in the failed status.
func (*Monitor) NBDBlockExportAdd ¶
NBDBlockExportAdd exports a writable device via the NBD server.
func (*Monitor) NBDServerStart ¶
NBDServerStart starts internal NBD server and returns a connection to it.
func (*Monitor) NBDServerStop ¶
NBDServerStop stops the internal NBD server.
func (*Monitor) QueryCPUModel ¶ added in v6.0.2
QueryCPUModel returns a CPUModel for the specified model name.
func (*Monitor) QueryHotpluggableCPUs ¶
func (m *Monitor) QueryHotpluggableCPUs() ([]HotpluggableCPU, error)
QueryHotpluggableCPUs returns a list of hotpluggable CPUs.
func (*Monitor) RemoveBlockDevice ¶
RemoveBlockDevice removes a block device.
func (*Monitor) RemoveCharDevice ¶
RemoveCharDevice removes a character device.
func (*Monitor) RemoveDevice ¶
RemoveDevice removes a device.
func (*Monitor) RemoveFDFromFDSet ¶
RemoveFDFromFDSet removes an FD with the given name from an FD set.
func (*Monitor) RingbufRead ¶ added in v6.6.0
RingbufRead returns the complete contents of the specified ring buffer.
func (*Monitor) SEVCapabilities ¶
func (m *Monitor) SEVCapabilities() (AMDSEVCapabilities, error)
SEVCapabilities is used to get the SEV capabilities, and is supported on AMD X86 platforms only.
func (*Monitor) Screendump ¶ added in v6.8.0
Screendump takes a screenshot of the current VGA console. The screendump is stored to the filename provided as argument.
func (*Monitor) SendFile ¶
SendFile adds a new file descriptor to the QMP fd table associated to name.
func (*Monitor) SendFileWithFDSet ¶
SendFileWithFDSet adds a new file descriptor to an FD set.
func (*Monitor) SetBlockThrottle ¶
func (m *Monitor) SetBlockThrottle(id string, bytesRead int, bytesWrite int, iopsRead int, iopsWrite int) error
SetBlockThrottle applies an I/O limit on a disk.
func (*Monitor) SetMemoryBalloonSizeBytes ¶
SetMemoryBalloonSizeBytes sets the size of the memory in bytes (which will resize the balloon as needed).
func (*Monitor) SetOnDisconnectEvent ¶
SetOnDisconnectEvent enables or disables the on disconnect event.
func (*Monitor) UpdateBlockSize ¶ added in v6.0.2
UpdateBlockSize updates the size of a disk.
type PCIBridge ¶
type PCIBridge struct {
Devices []PCIDevice `json:"devices"`
}
PCIBridge represents a PCI bridge.
type PCIClassInfo ¶
PCIClassInfo info about a device's class.