Add guest device info to virDomainGetGuestInfo

QEMU guest agent has 'guest-get-devices` command, which returns
information on guest devices (driver name, version, release date,
and so on). In this commit the public API part is introduced.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Michal Privoznik committed 2026-08-17 12:47:06 +02:00
1 parent 7daf354747
commit 3033dae698
2 files changed
+83

No files matched your search

+78
View File
@@ -8867,6 +8867,83 @@ int virDomainSetLaunchSecurityState(virDomainPtr domain,
*/
# define VIR_DOMAIN_GUEST_INFO_LOAD_15M "load.15m"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_COUNT:
*
* The number of guest devices that detailed information is fetched for as
* unsigned int.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_COUNT "device.count"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX:
*
* The parameter name prefix to access each device entry. Concatenate the
* prefix, the entry number formatted as an unsigned integer and one of the
* device suffix parameters to form a complete parameter name.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_PREFIX "device."
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_NAME:
*
* Name of the device driver (e.g. ``VirtIO Balloon Driver``) as a string.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_NAME ".driverName"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_DATE:
*
* Driver release date in seconds since the epoch (e.g. 1736726400) as long long.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_DATE ".driverDate"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_VERSION:
*
* Driver version (e.g. ``100.100.104.27100``) as a string.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_DRIVER_VERSION ".driverVersion"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE:
*
* Device identification (e.g. ``pci``) as a string.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE ".idType"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_VENDOR:
*
* PCI device (a device with VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE equal
* to ``pci``) vendor id (e.g. 6900) as a unsigned int.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_VENDOR ".pciVendor"
/**
* VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_DEVICE:
*
* PCI device (a device with VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_ID_TYPE equal
* to ``pci``) device id (e.g. 4165) as a unsigned int.
*
* Since: 12.7.0
*/
# define VIR_DOMAIN_GUEST_INFO_DEVICE_SUFFIX_PCI_DEVICE ".pciDevice"
/**
* virDomainGuestInfoTypes:
*
@@ -8881,6 +8958,7 @@ typedef enum {
VIR_DOMAIN_GUEST_INFO_DISKS = (1 << 5), /* return disks information (Since: 7.0.0) */
VIR_DOMAIN_GUEST_INFO_INTERFACES = (1 << 6), /* return interfaces information (Since: 7.10.0) */
VIR_DOMAIN_GUEST_INFO_LOAD = (1 << 7), /* return load averages (Since: 11.2.0) */
VIR_DOMAIN_GUEST_INFO_DEVICES = (1 << 8), /* return devices information (Since: 12.7.0) */
} virDomainGuestInfoTypes;
int virDomainGetGuestInfo(virDomainPtr domain,
+5
View File
@@ -13260,6 +13260,11 @@ virDomainSetVcpu(virDomainPtr domain,
* The VIR_DOMAIN_GUEST_INFO_LOAD_* constants define the known typed parameter
* keys.
*
* VIR_DOMAIN_GUEST_INFO_DEVICES:
* Returns information on guest devices.
* The VIR_DOMAIN_GUEST_INFO_DEVICE_* constants define the known typed
* parameter keys.
*
* Using 0 for @types returns all information groups supported by the given
* hypervisor.
*