# Driver support matrix

This page documents which libvirt calls work on which libvirt drivers / hypervisors, and which version the API appeared in.

This information changes frequently. This page was last checked or updated on 2008-06-05.

### Domain functions

x = not supported; empty cell means no information

Function | Since | Xen | QEMU | KVM | Remote | VirtualBox | ONE
--- | --- | --- | --- | --- | --- | --- | ---
virConnectClose | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectGetCapabilities | 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectGetHostname | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.3 | ≥ 0.3.3 | ≥ 0.3.0 | ≥ 0.6.3 | x
virConnectGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0 | x | x
virConnectGetType | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectGetURI | 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectGetVersion | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectListDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectListDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectNumOfDefinedDomains | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectNumOfDomains | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectOpen | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virConnectOpenAuth |  |  |  |  |  |  |
virConnectOpenReadOnly | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | x | x
virDomainAttachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainBlockPeek | 0.4.3 | 0.4.3 | 0.4.3 | 0.4.3 | x | x | x
virDomainBlockStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2 | x | x
virDomainCoreDump | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | x | x
virDomainCreate | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainCreateLinux | All | ≥ 0.0.5 | x | x | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainDefineXML | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainDestroy | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainDetachDevice | 0.1.9 | ≥ 0.1.9 | x | x | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainFree | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | x | x
virDomainGetConnect | 0.3.0 | not a HV function
virDomainGetID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetInfo | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetMaxMemory | All | All | x | x | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainGetMaxVcpus | 0.2.1 | ≥ 0.2.1 | x | x | ≥ 0.3.0 | x | x
virDomainGetName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetOSType | All | All | x | x | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x | x
virDomainGetSchedulerType | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x | x
virDomainGetUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainGetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x | x
virDomainInterfaceStats | 0.3.2 | ≥ 0.3.2 | x | x | ≥ 0.3.2 | x | x
virDomainGetXMLDesc | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainLookupByID | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainLookupByName | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainLookupByUUID | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainLookupByUUIDString | 0.1.10 | ≥ 0.1.10 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainMigrate | 0.3.2 | ≥ 0.3.2 | x | x | 0.3.2 | x | x
virDomainPinVcpu | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x | x
virDomainReboot | 0.1.0 | ≥ 0.1.0 | x | x | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainRestore | All | All | x | ≥ 0.3.2 | ≥ 0.3.0 | x | x
virDomainResume | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainSave | All | All | x | ≥ 0.3.2 | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainSetAutostart | 0.2.1 | x | ≥ 0.2.1 | ≥ 0.2.1 | ≥ 0.3.0 | x | x
virDomainSetMaxMemory | All | All | x | x | ≥ 0.3.0 | x
virDomainSetMemory | 0.1.1 | ≥ 0.1.1 | x | x | ≥ 0.3.0 | ≥ 0.6.3 | x
virDomainSetSchedulerParameters | 0.2.3 | ≥ 0.2.3 | x | x | ≥ 0.3.0 | x | x
virDomainSetVcpus | 0.1.4 | ≥ 0.1.4 | x | x | ≥ 0.3.0 | x | x
virDomainShutdown | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainSuspend | All | All | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virDomainUndefine | 0.1.5 | ≥ 0.1.9 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | ≥ 0.6.4
virGetVersion | All | All | Returns -1 if HV unsupported.
virInitialize | 0.1.0 | not a HV function
virDomainMemoryPeek | 0.4.3 | x | 0.4.3 | 0.4.3 | x | x | x
virNodeGetInfo | 0.1.0 | ≥ 0.1.0 | ≥ 0.2.0 | ≥ 0.2.0 | ≥ 0.3.0 | ≥ 0.6.3 | x
virNodeGetFreeMemory | 0.3.3 | ≥ 0.3.3 | x | x | x | x | x
virNodeGetCellsFreeMemory | 0.3.3 | ≥ 0.3.3 | x | x | x | x | x

### Network functions

Network functions are not hypervisor-specific.They require the libvirtd daemon to be running. Most network functions first appeared in libvirt 0.2.0.

Function | Since
--- | ---
virConnectNumOfNetworks | 0.2.0
virConnectListNetworks | 0.2.0
virConnectNumOfDefinedNetworks | 0.2.0
virConnectListDefinedNetworks | 0.2.0
virNetworkCreate | 0.2.0
virNetworkCreateXML | 0.2.0
virNetworkDefineXML | 0.2.0
virNetworkDestroy | 0.2.0
virNetworkFree | 0.2.0
virNetworkGetAutostart | 0.2.1
virNetworkGetConnect | 0.3.0
virNetworkGetBridgeName | 0.2.0
virNetworkGetName | 0.2.0
virNetworkGetUUID | 0.2.0
virNetworkGetUUIDString | 0.2.0
virNetworkGetXMLDesc | 0.2.0
virNetworkLookupByName | 0.2.0
virNetworkLookupByUUID | 0.2.0
virNetworkLookupByUUIDString | 0.2.0
virNetworkSetAutostart | 0.2.1
virNetworkUndefine | 0.2.0