[libvirt] [PATCH] cleanup: use c99 initializations

Lai Jiangshan laijs at cn.fujitsu.com
Mon May 16 08:17:54 UTC 2011


It help us avoid to touch many files when we define the internal APIs
of a public API like commit b19bd85e15332405623ed46a3ee8b99812aa6007.

---
 src/esx/esx_device_monitor.c   |   15 +--
 src/esx/esx_driver.c           |  175 +++++++++++-------------------
 src/esx/esx_interface_driver.c |   18 +---
 src/esx/esx_network_driver.c   |   23 +----
 src/esx/esx_nwfilter_driver.c  |   13 +--
 src/esx/esx_secret_driver.c    |   15 +--
 src/esx/esx_storage_driver.c   |   68 +++++-------
 src/interface/netcf_driver.c   |   30 +++---
 src/libxl/libxl_driver.c       |  165 +++++++++-------------------
 src/lxc/lxc_driver.c           |  161 ++++++++-------------------
 src/network/bridge_driver.c    |   40 ++++----
 src/openvz/openvz_driver.c     |  152 +++++++-------------------
 src/phyp/phyp_driver.c         |  136 +++++------------------
 src/qemu/qemu_driver.c         |  220 ++++++++++++++++++-------------------
 src/remote/remote_driver.c     |  224 +++++++++++++++++++-------------------
 src/test/test_driver.c         |  240 ++++++++++++++++------------------------
 src/uml/uml_driver.c           |  156 ++++++++-------------------
 src/vbox/vbox_tmpl.c           |  208 +++++++++++------------------------
 src/vmware/vmware_driver.c     |  140 +++++-------------------
 src/xen/xen_driver.c           |  188 +++++++++++++-------------------
 src/xen/xen_hypervisor.c       |   56 +++-------
 src/xen/xen_inotify.c          |   40 +-------
 src/xen/xend_internal.c        |   73 ++++++-------
 src/xen/xm_internal.c          |   52 +++-------
 src/xen/xs_internal.c          |   47 ++-------
 src/xenapi/xenapi_driver.c     |  157 ++++++++-------------------
 26 files changed, 958 insertions(+), 1854 deletions(-)

diff --git a/src/esx/esx_device_monitor.c b/src/esx/esx_device_monitor.c
index 3fa63d5..957edbe 100644
--- a/src/esx/esx_device_monitor.c
+++ b/src/esx/esx_device_monitor.c
@@ -66,18 +66,9 @@ esxDeviceClose(virConnectPtr conn)
 
 
 static virDeviceMonitor esxDeviceMonitor = {
-    "ESX",                                 /* name */
-    esxDeviceOpen,                         /* open */
-    esxDeviceClose,                        /* close */
-    NULL,                                  /* numOfDevices */
-    NULL,                                  /* listDevices */
-    NULL,                                  /* deviceLookupByName */
-    NULL,                                  /* deviceGetXMLDesc */
-    NULL,                                  /* deviceGetParent */
-    NULL,                                  /* deviceNumOfCaps */
-    NULL,                                  /* deviceListCaps */
-    NULL,                                  /* deviceCreateXML */
-    NULL,                                  /* deviceDestroy */
+    .name                            = "ESX",
+    .open                            = esxDeviceOpen,
+    .close                           = esxDeviceClose,
 };
 
 
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index ef7838a..a45f9d0 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -4589,118 +4589,69 @@ esxDomainGetMemoryParameters(virDomainPtr domain, virMemoryParameterPtr params,
 
 
 static virDriver esxDriver = {
-    VIR_DRV_ESX,
-    "ESX",
-    esxOpen,                         /* open */
-    esxClose,                        /* close */
-    esxSupportsFeature,              /* supports_feature */
-    esxGetType,                      /* type */
-    esxGetVersion,                   /* version */
-    NULL,                            /* libvirtVersion (impl. in libvirt.c) */
-    esxGetHostname,                  /* hostname */
-    NULL,                            /* getSysinfo */
-    NULL,                            /* getMaxVcpus */
-    esxNodeGetInfo,                  /* nodeGetInfo */
-    esxGetCapabilities,              /* getCapabilities */
-    esxListDomains,                  /* listDomains */
-    esxNumberOfDomains,              /* numOfDomains */
-    NULL,                            /* domainCreateXML */
-    esxDomainLookupByID,             /* domainLookupByID */
-    esxDomainLookupByUUID,           /* domainLookupByUUID */
-    esxDomainLookupByName,           /* domainLookupByName */
-    esxDomainSuspend,                /* domainSuspend */
-    esxDomainResume,                 /* domainResume */
-    esxDomainShutdown,               /* domainShutdown */
-    esxDomainReboot,                 /* domainReboot */
-    esxDomainDestroy,                /* domainDestroy */
-    esxDomainGetOSType,              /* domainGetOSType */
-    esxDomainGetMaxMemory,           /* domainGetMaxMemory */
-    esxDomainSetMaxMemory,           /* domainSetMaxMemory */
-    esxDomainSetMemory,              /* domainSetMemory */
-    NULL,                            /* domainSetMemoryFlags */
-    esxDomainSetMemoryParameters,    /* domainSetMemoryParameters */
-    esxDomainGetMemoryParameters,    /* domainGetMemoryParameters */
-    NULL,                            /* domainSetBlkioParameters */
-    NULL,                            /* domainGetBlkioParameters */
-    esxDomainGetInfo,                /* domainGetInfo */
-    NULL,                            /* domainSave */
-    NULL,                            /* domainRestore */
-    NULL,                            /* domainCoreDump */
-    NULL,                            /* domainScreenshot */
-    esxDomainSetVcpus,               /* domainSetVcpus */
-    esxDomainSetVcpusFlags,          /* domainSetVcpusFlags */
-    esxDomainGetVcpusFlags,          /* domainGetVcpusFlags */
-    NULL,                            /* domainPinVcpu */
-    NULL,                            /* domainGetVcpus */
-    esxDomainGetMaxVcpus,            /* domainGetMaxVcpus */
-    NULL,                            /* domainGetSecurityLabel */
-    NULL,                            /* nodeGetSecurityModel */
-    esxDomainGetXMLDesc,             /* domainGetXMLDesc */
-    esxDomainXMLFromNative,          /* domainXMLFromNative */
-    esxDomainXMLToNative,            /* domainXMLToNative */
-    esxListDefinedDomains,           /* listDefinedDomains */
-    esxNumberOfDefinedDomains,       /* numOfDefinedDomains */
-    esxDomainCreate,                 /* domainCreate */
-    esxDomainCreateWithFlags,        /* domainCreateWithFlags */
-    esxDomainDefineXML,              /* domainDefineXML */
-    esxDomainUndefine,               /* domainUndefine */
-    NULL,                            /* domainAttachDevice */
-    NULL,                            /* domainAttachDeviceFlags */
-    NULL,                            /* domainDetachDevice */
-    NULL,                            /* domainDetachDeviceFlags */
-    NULL,                            /* domainUpdateDeviceFlags */
-    esxDomainGetAutostart,           /* domainGetAutostart */
-    esxDomainSetAutostart,           /* domainSetAutostart */
-    esxDomainGetSchedulerType,       /* domainGetSchedulerType */
-    esxDomainGetSchedulerParameters, /* domainGetSchedulerParameters */
-    esxDomainSetSchedulerParameters, /* domainSetSchedulerParameters */
-    esxDomainMigratePrepare,         /* domainMigratePrepare */
-    esxDomainMigratePerform,         /* domainMigratePerform */
-    esxDomainMigrateFinish,          /* domainMigrateFinish */
-    NULL,                            /* domainBlockStats */
-    NULL,                            /* domainInterfaceStats */
-    NULL,                            /* domainMemoryStats */
-    NULL,                            /* domainBlockPeek */
-    NULL,                            /* domainMemoryPeek */
-    NULL,                            /* domainGetBlockInfo */
-    NULL,                            /* nodeGetCellsFreeMemory */
-    esxNodeGetFreeMemory,            /* nodeGetFreeMemory */
-    NULL,                            /* domainEventRegister */
-    NULL,                            /* domainEventDeregister */
-    NULL,                            /* domainMigratePrepare2 */
-    NULL,                            /* domainMigrateFinish2 */
-    NULL,                            /* nodeDeviceDettach */
-    NULL,                            /* nodeDeviceReAttach */
-    NULL,                            /* nodeDeviceReset */
-    NULL,                            /* domainMigratePrepareTunnel */
-    esxIsEncrypted,                  /* isEncrypted */
-    esxIsSecure,                     /* isSecure */
-    esxDomainIsActive,               /* domainIsActive */
-    esxDomainIsPersistent,           /* domainIsPersistent */
-    esxDomainIsUpdated,              /* domainIsUpdated */
-    NULL,                            /* cpuCompare */
-    NULL,                            /* cpuBaseline */
-    NULL,                            /* domainGetJobInfo */
-    NULL,                            /* domainAbortJob */
-    NULL,                            /* domainMigrateSetMaxDowntime */
-    NULL,                            /* domainMigrateSetMaxSpeed */
-    NULL,                            /* domainEventRegisterAny */
-    NULL,                            /* domainEventDeregisterAny */
-    NULL,                            /* domainManagedSave */
-    NULL,                            /* domainHasManagedSaveImage */
-    NULL,                            /* domainManagedSaveRemove */
-    esxDomainSnapshotCreateXML,      /* domainSnapshotCreateXML */
-    esxDomainSnapshotGetXMLDesc,     /* domainSnapshotGetXMLDesc */
-    esxDomainSnapshotNum,            /* domainSnapshotNum */
-    esxDomainSnapshotListNames,      /* domainSnapshotListNames */
-    esxDomainSnapshotLookupByName,   /* domainSnapshotLookupByName */
-    esxDomainHasCurrentSnapshot,     /* domainHasCurrentSnapshot */
-    esxDomainSnapshotCurrent,        /* domainSnapshotCurrent */
-    esxDomainRevertToSnapshot,       /* domainRevertToSnapshot */
-    esxDomainSnapshotDelete,         /* domainSnapshotDelete */
-    NULL,                            /* qemuDomainMonitorCommand */
-    NULL,                            /* domainOpenConsole */
-    NULL,                            /* domainInjectNMI */
+    .no                              = VIR_DRV_ESX,
+    .name                            = "ESX",
+    .open                            = esxOpen,
+    .close                           = esxClose,
+    .supports_feature                = esxSupportsFeature,
+    .type                            = esxGetType,
+    .version                         = esxGetVersion,
+    .getHostname                     = esxGetHostname,
+    .nodeGetInfo                     = esxNodeGetInfo,
+    .getCapabilities                 = esxGetCapabilities,
+    .listDomains                     = esxListDomains,
+    .numOfDomains                    = esxNumberOfDomains,
+    .domainLookupByID                = esxDomainLookupByID,
+    .domainLookupByUUID              = esxDomainLookupByUUID,
+    .domainLookupByName              = esxDomainLookupByName,
+    .domainSuspend                   = esxDomainSuspend,
+    .domainResume                    = esxDomainResume,
+    .domainShutdown                  = esxDomainShutdown,
+    .domainReboot                    = esxDomainReboot,
+    .domainDestroy                   = esxDomainDestroy,
+    .domainGetOSType                 = esxDomainGetOSType,
+    .domainGetMaxMemory              = esxDomainGetMaxMemory,
+    .domainSetMaxMemory              = esxDomainSetMaxMemory,
+    .domainSetMemory                 = esxDomainSetMemory,
+    .domainSetMemoryParameters       = esxDomainSetMemoryParameters,
+    .domainGetMemoryParameters       = esxDomainGetMemoryParameters,
+    .domainGetInfo                   = esxDomainGetInfo,
+    .domainSetVcpus                  = esxDomainSetVcpus,
+    .domainSetVcpusFlags             = esxDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = esxDomainGetVcpusFlags,
+    .domainGetMaxVcpus               = esxDomainGetMaxVcpus,
+    .domainGetXMLDesc                = esxDomainGetXMLDesc,
+    .domainXMLFromNative             = esxDomainXMLFromNative,
+    .domainXMLToNative               = esxDomainXMLToNative,
+    .listDefinedDomains              = esxListDefinedDomains,
+    .numOfDefinedDomains             = esxNumberOfDefinedDomains,
+    .domainCreate                    = esxDomainCreate,
+    .domainCreateWithFlags           = esxDomainCreateWithFlags,
+    .domainDefineXML                 = esxDomainDefineXML,
+    .domainUndefine                  = esxDomainUndefine,
+    .domainGetAutostart              = esxDomainGetAutostart,
+    .domainSetAutostart              = esxDomainSetAutostart,
+    .domainGetSchedulerType          = esxDomainGetSchedulerType,
+    .domainGetSchedulerParameters    = esxDomainGetSchedulerParameters,
+    .domainSetSchedulerParameters    = esxDomainSetSchedulerParameters,
+    .domainMigratePrepare            = esxDomainMigratePrepare,
+    .domainMigratePerform            = esxDomainMigratePerform,
+    .domainMigrateFinish             = esxDomainMigrateFinish,
+    .getFreeMemory                   = esxNodeGetFreeMemory,
+    .isEncrypted                     = esxIsEncrypted,
+    .isSecure                        = esxIsSecure,
+    .domainIsActive                  = esxDomainIsActive,
+    .domainIsPersistent              = esxDomainIsPersistent,
+    .domainIsUpdated                 = esxDomainIsUpdated,
+    .domainSnapshotCreateXML         = esxDomainSnapshotCreateXML,
+    .domainSnapshotGetXMLDesc        = esxDomainSnapshotGetXMLDesc,
+    .domainSnapshotNum               = esxDomainSnapshotNum,
+    .domainSnapshotListNames         = esxDomainSnapshotListNames,
+    .domainSnapshotLookupByName      = esxDomainSnapshotLookupByName,
+    .domainHasCurrentSnapshot        = esxDomainHasCurrentSnapshot,
+    .domainSnapshotCurrent           = esxDomainSnapshotCurrent,
+    .domainRevertToSnapshot          = esxDomainRevertToSnapshot,
+    .domainSnapshotDelete            = esxDomainSnapshotDelete,
 };
 
 
diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c
index 4bac3d5..15e93bb 100644
--- a/src/esx/esx_interface_driver.c
+++ b/src/esx/esx_interface_driver.c
@@ -66,21 +66,9 @@ esxInterfaceClose(virConnectPtr conn)
 
 
 static virInterfaceDriver esxInterfaceDriver = {
-    "ESX",                                 /* name */
-    esxInterfaceOpen,                      /* open */
-    esxInterfaceClose,                     /* close */
-    NULL,                                  /* numOfInterfaces */
-    NULL,                                  /* listInterfaces */
-    NULL,                                  /* numOfDefinedInterfaces */
-    NULL,                                  /* listDefinedInterfaces */
-    NULL,                                  /* interfaceLookupByName */
-    NULL,                                  /* interfaceLookupByMACString */
-    NULL,                                  /* interfaceGetXMLDesc */
-    NULL,                                  /* interfaceDefineXML */
-    NULL,                                  /* interfaceUndefine */
-    NULL,                                  /* interfaceCreate */
-    NULL,                                  /* interfaceDestroy */
-    NULL,                                  /* interfaceIsActive */
+    .name                            = "ESX",
+    .open                            = esxInterfaceOpen,
+    .close                           = esxInterfaceClose,
 };
 
 
diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c
index bbc2541..4571fec 100644
--- a/src/esx/esx_network_driver.c
+++ b/src/esx/esx_network_driver.c
@@ -66,26 +66,9 @@ esxNetworkClose(virConnectPtr conn)
 
 
 static virNetworkDriver esxNetworkDriver = {
-    "ESX",                                 /* name */
-    esxNetworkOpen,                        /* open */
-    esxNetworkClose,                       /* close */
-    NULL,                                  /* numOfNetworks */
-    NULL,                                  /* listNetworks */
-    NULL,                                  /* numOfDefinedNetworks */
-    NULL,                                  /* listDefinedNetworks */
-    NULL,                                  /* networkLookupByUUID */
-    NULL,                                  /* networkLookupByName */
-    NULL,                                  /* networkCreateXML */
-    NULL,                                  /* networkDefineXML */
-    NULL,                                  /* networkUndefine */
-    NULL,                                  /* networkCreate */
-    NULL,                                  /* networkDestroy */
-    NULL,                                  /* networkGetXMLDesc */
-    NULL,                                  /* networkGetBridgeName */
-    NULL,                                  /* networkGetAutostart */
-    NULL,                                  /* networkSetAutostart */
-    NULL,                                  /* networkIsActive */
-    NULL,                                  /* networkIsPersistent */
+    .name                            = "ESX",
+    .open                            = esxNetworkOpen,
+    .close                           = esxNetworkClose,
 };
 
 
diff --git a/src/esx/esx_nwfilter_driver.c b/src/esx/esx_nwfilter_driver.c
index a9d046d..9dce603 100644
--- a/src/esx/esx_nwfilter_driver.c
+++ b/src/esx/esx_nwfilter_driver.c
@@ -65,16 +65,9 @@ esxNWFilterClose(virConnectPtr conn)
 
 
 static virNWFilterDriver esxNWFilterDriver = {
-    "ESX",                                 /* name */
-    esxNWFilterOpen,                       /* open */
-    esxNWFilterClose,                      /* close */
-    NULL,                                  /* numOfNWFilters */
-    NULL,                                  /* listNWFilters */
-    NULL,                                  /* nwfilterLookupByName */
-    NULL,                                  /* nwfilterLookupByUUID */
-    NULL,                                  /* defineXML */
-    NULL,                                  /* undefine */
-    NULL,                                  /* getXMLDesc */
+    .name                            = "ESX",
+    .open                            = esxNWFilterOpen,
+    .close                           = esxNWFilterClose,
 };
 
 
diff --git a/src/esx/esx_secret_driver.c b/src/esx/esx_secret_driver.c
index 1ae7ddc..e10a5ab 100644
--- a/src/esx/esx_secret_driver.c
+++ b/src/esx/esx_secret_driver.c
@@ -64,18 +64,9 @@ esxSecretClose(virConnectPtr conn)
 
 
 static virSecretDriver esxSecretDriver = {
-    "ESX",                                 /* name */
-    esxSecretOpen,                         /* open */
-    esxSecretClose,                        /* close */
-    NULL,                                  /* numOfSecrets */
-    NULL,                                  /* listSecrets */
-    NULL,                                  /* lookupByUUID */
-    NULL,                                  /* lookupByUsage */
-    NULL,                                  /* defineXML */
-    NULL,                                  /* getXMLDesc */
-    NULL,                                  /* setValue */
-    NULL,                                  /* getValue */
-    NULL,                                  /* undefine */
+    .name                            = "ESX",
+    .open                            = esxSecretOpen,
+    .close                           = esxSecretClose,
 };
 
 
diff --git a/src/esx/esx_storage_driver.c b/src/esx/esx_storage_driver.c
index f37d064..6b7c2d9 100644
--- a/src/esx/esx_storage_driver.c
+++ b/src/esx/esx_storage_driver.c
@@ -1641,45 +1641,35 @@ esxStoragePoolIsPersistent(virStoragePoolPtr pool ATTRIBUTE_UNUSED)
 
 
 static virStorageDriver esxStorageDriver = {
-    "ESX",                                 /* name */
-    esxStorageOpen,                        /* open */
-    esxStorageClose,                       /* close */
-    esxNumberOfStoragePools,               /* numOfPools */
-    esxListStoragePools,                   /* listPools */
-    esxNumberOfDefinedStoragePools,        /* numOfDefinedPools */
-    esxListDefinedStoragePools,            /* listDefinedPools */
-    NULL,                                  /* findPoolSources */
-    esxStoragePoolLookupByName,            /* poolLookupByName */
-    esxStoragePoolLookupByUUID,            /* poolLookupByUUID */
-    esxStoragePoolLookupByVolume,          /* poolLookupByVolume */
-    NULL,                                  /* poolCreateXML */
-    NULL,                                  /* poolDefineXML */
-    NULL,                                  /* poolBuild */
-    NULL,                                  /* poolUndefine */
-    NULL,                                  /* poolCreate */
-    NULL,                                  /* poolDestroy */
-    NULL,                                  /* poolDelete */
-    esxStoragePoolRefresh,                 /* poolRefresh */
-    esxStoragePoolGetInfo,                 /* poolGetInfo */
-    esxStoragePoolGetXMLDesc,              /* poolGetXMLDesc */
-    esxStoragePoolGetAutostart,            /* poolGetAutostart */
-    esxStoragePoolSetAutostart,            /* poolSetAutostart */
-    esxStoragePoolNumberOfStorageVolumes,  /* poolNumOfVolumes */
-    esxStoragePoolListStorageVolumes,      /* poolListVolumes */
-    esxStorageVolumeLookupByName,          /* volLookupByName */
-    esxStorageVolumeLookupByKey,           /* volLookupByKey */
-    esxStorageVolumeLookupByPath,          /* volLookupByPath */
-    esxStorageVolumeCreateXML,             /* volCreateXML */
-    esxStorageVolumeCreateXMLFrom,         /* volCreateXMLFrom */
-    NULL, /* volDownload */
-    NULL, /* volUpload */
-    esxStorageVolumeDelete,                /* volDelete */
-    esxStorageVolumeWipe,                  /* volWipe */
-    esxStorageVolumeGetInfo,               /* volGetInfo */
-    esxStorageVolumeGetXMLDesc,            /* volGetXMLDesc */
-    esxStorageVolumeGetPath,               /* volGetPath */
-    esxStoragePoolIsActive,                /* poolIsActive */
-    esxStoragePoolIsPersistent,            /* poolIsPersistent */
+    .name                            = "ESX",
+    .open                            = esxStorageOpen,
+    .close                           = esxStorageClose,
+    .numOfPools                      = esxNumberOfStoragePools,
+    .listPools                       = esxListStoragePools,
+    .numOfDefinedPools               = esxNumberOfDefinedStoragePools,
+    .listDefinedPools                = esxListDefinedStoragePools,
+    .poolLookupByName                = esxStoragePoolLookupByName,
+    .poolLookupByUUID                = esxStoragePoolLookupByUUID,
+    .poolLookupByVolume              = esxStoragePoolLookupByVolume,
+    .poolRefresh                     = esxStoragePoolRefresh,
+    .poolGetInfo                     = esxStoragePoolGetInfo,
+    .poolGetXMLDesc                  = esxStoragePoolGetXMLDesc,
+    .poolGetAutostart                = esxStoragePoolGetAutostart,
+    .poolSetAutostart                = esxStoragePoolSetAutostart,
+    .poolNumOfVolumes                = esxStoragePoolNumberOfStorageVolumes,
+    .poolListVolumes                 = esxStoragePoolListStorageVolumes,
+    .volLookupByName                 = esxStorageVolumeLookupByName,
+    .volLookupByKey                  = esxStorageVolumeLookupByKey,
+    .volLookupByPath                 = esxStorageVolumeLookupByPath,
+    .volCreateXML                    = esxStorageVolumeCreateXML,
+    .volCreateXMLFrom                = esxStorageVolumeCreateXMLFrom,
+    .volDelete                       = esxStorageVolumeDelete,
+    .volWipe                         = esxStorageVolumeWipe,
+    .volGetInfo                      = esxStorageVolumeGetInfo,
+    .volGetXMLDesc                   = esxStorageVolumeGetXMLDesc,
+    .volGetPath                      = esxStorageVolumeGetPath,
+    .poolIsActive                    = esxStoragePoolIsActive,
+    .poolIsPersistent                = esxStoragePoolIsPersistent,
 };
 
 
diff --git a/src/interface/netcf_driver.c b/src/interface/netcf_driver.c
index 709f09b..aa6f7bf 100644
--- a/src/interface/netcf_driver.c
+++ b/src/interface/netcf_driver.c
@@ -541,21 +541,21 @@ cleanup:
 }
 
 static virInterfaceDriver interfaceDriver = {
-    "Interface",
-    interfaceOpenInterface,          /* open */
-    interfaceCloseInterface,         /* close */
-    interfaceNumOfInterfaces,        /* numOfInterfaces */
-    interfaceListInterfaces,         /* listInterfaces */
-    interfaceNumOfDefinedInterfaces, /* numOfInterfaces */
-    interfaceListDefinedInterfaces,  /* listInterfaces */
-    interfaceLookupByName,           /* interfaceLookupByName */
-    interfaceLookupByMACString,      /* interfaceLookupByMACSTring */
-    interfaceGetXMLDesc,             /* interfaceGetXMLDesc */
-    interfaceDefineXML,              /* interfaceDefineXML */
-    interfaceUndefine,               /* interfaceUndefine */
-    interfaceCreate,                 /* interfaceCreate */
-    interfaceDestroy,                /* interfaceDestroy */
-    interfaceIsActive,               /* interfaceIsActive */
+    .name                            = "Interface",
+    .open                            = interfaceOpenInterface,
+    .close                           = interfaceCloseInterface,
+    .numOfInterfaces                 = interfaceNumOfInterfaces,
+    .listInterfaces                  = interfaceListInterfaces,
+    .numOfInterfaces                 = interfaceNumOfDefinedInterfaces,
+    .listInterfaces                  = interfaceListDefinedInterfaces,
+    .interfaceLookupByName           = interfaceLookupByName,
+    .interfaceLookupByMACSTring      = interfaceLookupByMACString,
+    .interfaceGetXMLDesc             = interfaceGetXMLDesc,
+    .interfaceDefineXML              = interfaceDefineXML,
+    .interfaceUndefine               = interfaceUndefine,
+    .interfaceCreate                 = interfaceCreate,
+    .interfaceDestroy                = interfaceDestroy,
+    .interfaceIsActive               = interfaceIsActive,
 };
 
 int interfaceRegister(void) {
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 60557fc..5ec7157 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -2645,118 +2645,59 @@ libxlDomainEventDeregisterAny(virConnectPtr conn, int callbackID)
 
 
 static virDriver libxlDriver = {
-    VIR_DRV_LIBXL,
-    "xenlight",
-    libxlOpen,                  /* open */
-    libxlClose,                 /* close */
-    NULL,                       /* supports_feature */
-    libxlGetType,               /* type */
-    libxlGetVersion,            /* version */
-    NULL,                       /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname,             /* getHostname */
-    NULL,                       /* getSysinfo */
-    libxlGetMaxVcpus,           /* getMaxVcpus */
-    libxlNodeGetInfo,           /* nodeGetInfo */
-    libxlGetCapabilities,       /* getCapabilities */
-    libxlListDomains,           /* listDomains */
-    libxlNumDomains,            /* numOfDomains */
-    libxlDomainCreateXML,       /* domainCreateXML */
-    libxlDomainLookupByID,      /* domainLookupByID */
-    libxlDomainLookupByUUID,    /* domainLookupByUUID */
-    libxlDomainLookupByName,    /* domainLookupByName */
-    libxlDomainSuspend,         /* domainSuspend */
-    libxlDomainResume,          /* domainResume */
-    libxlDomainShutdown,        /* domainShutdown */
-    libxlDomainReboot,          /* domainReboot */
-    libxlDomainDestroy,         /* domainDestroy */
-    libxlDomainGetOSType,       /* domainGetOSType */
-    libxlDomainGetMaxMemory,    /* domainGetMaxMemory */
-    NULL,                       /* domainSetMaxMemory */
-    libxlDomainSetMemory,       /* domainSetMemory */
-    libxlDomainSetMemoryFlags,  /* domainSetMemoryFlags */
-    NULL,                       /* domainSetMemoryParameters */
-    NULL,                       /* domainGetMemoryParameters */
-    NULL,                       /* domainSetBlkioParameters */
-    NULL,                       /* domainGetBlkioParameters */
-    libxlDomainGetInfo,         /* domainGetInfo */
-    NULL,                       /* domainSave */
-    NULL,                       /* domainRestore */
-    NULL,                       /* domainCoreDump */
-    NULL,                       /* domainScreenshot */
-    libxlDomainSetVcpus,        /* domainSetVcpus */
-    libxlDomainSetVcpusFlags,   /* domainSetVcpusFlags */
-    libxlDomainGetVcpusFlags,   /* domainGetVcpusFlags */
-    libxlDomainPinVcpu,         /* domainPinVcpu */
-    libxlDomainGetVcpus,        /* domainGetVcpus */
-    NULL,                       /* domainGetMaxVcpus */
-    NULL,                       /* domainGetSecurityLabel */
-    NULL,                       /* nodeGetSecurityModel */
-    libxlDomainGetXMLDesc,      /* domainGetXMLDesc */
-    libxlDomainXMLFromNative,   /* domainXmlFromNative */
-    libxlDomainXMLToNative,     /* domainXmlToNative */
-    libxlListDefinedDomains,    /* listDefinedDomains */
-    libxlNumDefinedDomains,     /* numOfDefinedDomains */
-    libxlDomainCreate,          /* domainCreate */
-    libxlDomainCreateWithFlags, /* domainCreateWithFlags */
-    libxlDomainDefineXML,       /* domainDefineXML */
-    libxlDomainUndefine,        /* domainUndefine */
-    NULL,                       /* domainAttachDevice */
-    NULL,                       /* domainAttachDeviceFlags */
-    NULL,                       /* domainDetachDevice */
-    NULL,                       /* domainDetachDeviceFlags */
-    NULL,                       /* domainUpdateDeviceFlags */
-    libxlDomainGetAutostart,    /* domainGetAutostart */
-    libxlDomainSetAutostart,    /* domainSetAutostart */
-    libxlDomainGetSchedulerType,/* domainGetSchedulerType */
-    libxlDomainGetSchedulerParameters,/* domainGetSchedulerParameters */
-    libxlDomainSetSchedulerParameters,/* domainSetSchedulerParameters */
-    NULL,                       /* domainMigratePrepare */
-    NULL,                       /* domainMigratePerform */
-    NULL,                       /* domainMigrateFinish */
-    NULL,                       /* domainBlockStats */
-    NULL,                       /* domainInterfaceStats */
-    NULL,                       /* domainMemoryStats */
-    NULL,                       /* domainBlockPeek */
-    NULL,                       /* domainMemoryPeek */
-    NULL,                       /* domainGetBlockInfo */
-    NULL,                       /* nodeGetCellsFreeMemory */
-    libxlNodeGetFreeMemory,     /* getFreeMemory */
-    libxlDomainEventRegister,   /* domainEventRegister */
-    libxlDomainEventDeregister, /* domainEventDeregister */
-    NULL,                       /* domainMigratePrepare2 */
-    NULL,                       /* domainMigrateFinish2 */
-    NULL,                       /* nodeDeviceDettach */
-    NULL,                       /* nodeDeviceReAttach */
-    NULL,                       /* nodeDeviceReset */
-    NULL,                       /* domainMigratePrepareTunnel */
-    NULL,                       /* IsEncrypted */
-    NULL,                       /* IsSecure */
-    libxlDomainIsActive,        /* DomainIsActive */
-    libxlDomainIsPersistent,    /* DomainIsPersistent */
-    libxlDomainIsUpdated,       /* domainIsUpdated */
-    NULL,                       /* cpuCompare */
-    NULL,                       /* cpuBaseline */
-    NULL,                       /* domainGetJobInfo */
-    NULL,                       /* domainAbortJob */
-    NULL,                       /* domainMigrateSetMaxDowntime */
-    NULL,                       /* domainMigrateSetMaxSpeed */
-    libxlDomainEventRegisterAny,/* domainEventRegisterAny */
-    libxlDomainEventDeregisterAny,/* domainEventDeregisterAny */
-    NULL,                       /* domainManagedSave */
-    NULL,                       /* domainHasManagedSaveImage */
-    NULL,                       /* domainManagedSaveRemove */
-    NULL,                       /* domainSnapshotCreateXML */
-    NULL,                       /* domainSnapshotGetXMLDesc */
-    NULL,                       /* domainSnapshotNum */
-    NULL,                       /* domainSnapshotListNames */
-    NULL,                       /* domainSnapshotLookupByName */
-    NULL,                       /* domainHasCurrentSnapshot */
-    NULL,                       /* domainSnapshotCurrent */
-    NULL,                       /* domainRevertToSnapshot */
-    NULL,                       /* domainSnapshotDelete */
-    NULL,                       /* qemuDomainMonitorCommand */
-    NULL,                       /* domainOpenConsole */
-    NULL,                       /* domainInjectNMI */
+    .no                              = VIR_DRV_LIBXL,
+    .name                            = "xenlight",
+    .open                            = libxlOpen,
+    .close                           = libxlClose,
+    .type                            = libxlGetType,
+    .version                         = libxlGetVersion,
+    .getHostname                     = virGetHostname,
+    .getMaxVcpus                     = libxlGetMaxVcpus,
+    .nodeGetInfo                     = libxlNodeGetInfo,
+    .getCapabilities                 = libxlGetCapabilities,
+    .listDomains                     = libxlListDomains,
+    .numOfDomains                    = libxlNumDomains,
+    .domainCreateXML                 = libxlDomainCreateXML,
+    .domainLookupByID                = libxlDomainLookupByID,
+    .domainLookupByUUID              = libxlDomainLookupByUUID,
+    .domainLookupByName              = libxlDomainLookupByName,
+    .domainSuspend                   = libxlDomainSuspend,
+    .domainResume                    = libxlDomainResume,
+    .domainShutdown                  = libxlDomainShutdown,
+    .domainReboot                    = libxlDomainReboot,
+    .domainDestroy                   = libxlDomainDestroy,
+    .domainGetOSType                 = libxlDomainGetOSType,
+    .domainGetMaxMemory              = libxlDomainGetMaxMemory,
+    .domainSetMemory                 = libxlDomainSetMemory,
+    .domainSetMemoryFlags            = libxlDomainSetMemoryFlags,
+    .domainGetInfo                   = libxlDomainGetInfo,
+    .domainSetVcpus                  = libxlDomainSetVcpus,
+    .domainSetVcpusFlags             = libxlDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = libxlDomainGetVcpusFlags,
+    .domainPinVcpu                   = libxlDomainPinVcpu,
+    .domainGetVcpus                  = libxlDomainGetVcpus,
+    .domainGetXMLDesc                = libxlDomainGetXMLDesc,
+    .domainXmlFromNative             = libxlDomainXMLFromNative,
+    .domainXmlToNative               = libxlDomainXMLToNative,
+    .listDefinedDomains              = libxlListDefinedDomains,
+    .numOfDefinedDomains             = libxlNumDefinedDomains,
+    .domainCreate                    = libxlDomainCreate,
+    .domainCreateWithFlags           = libxlDomainCreateWithFlags,
+    .domainDefineXML                 = libxlDomainDefineXML,
+    .domainUndefine                  = libxlDomainUndefine,
+    .domainGetAutostart              = libxlDomainGetAutostart,
+    .domainSetAutostart              = libxlDomainSetAutostart,
+    .domainGetSchedulerType          = libxlDomainGetSchedulerType,
+    .domainGetSchedulerParameters    = libxlDomainGetSchedulerParameters,
+    .domainSetSchedulerParameters    = libxlDomainSetSchedulerParameters,
+    .getFreeMemory                   = libxlNodeGetFreeMemory,
+    .domainEventRegister             = libxlDomainEventRegister,
+    .domainEventDeregister           = libxlDomainEventDeregister,
+    .domainIsActive                  = libxlDomainIsActive,
+    .domainIsPersistent              = libxlDomainIsPersistent,
+    .domainIsUpdated                 = libxlDomainIsUpdated,
+    .domainEventRegisterAny          = libxlDomainEventRegisterAny,
+    .domainEventDeregisterAny        = libxlDomainEventDeregisterAny,
 };
 
 static virStateDriver libxlStateDriver = {
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 68824e4..d2eb3fe 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -2674,118 +2674,55 @@ cleanup:
 
 /* Function Tables */
 static virDriver lxcDriver = {
-    VIR_DRV_LXC, /* the number virDrvNo */
-    "LXC", /* the name of the driver */
-    lxcOpen, /* open */
-    lxcClose, /* close */
-    NULL, /* supports_feature */
-    NULL, /* type */
-    lxcVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    NULL, /* getMaxVcpus */
-    nodeGetInfo, /* nodeGetInfo */
-    lxcGetCapabilities, /* getCapabilities */
-    lxcListDomains, /* listDomains */
-    lxcNumDomains, /* numOfDomains */
-    lxcDomainCreateAndStart, /* domainCreateXML */
-    lxcDomainLookupByID, /* domainLookupByID */
-    lxcDomainLookupByUUID, /* domainLookupByUUID */
-    lxcDomainLookupByName, /* domainLookupByName */
-    lxcDomainSuspend, /* domainSuspend */
-    lxcDomainResume, /* domainResume */
-    NULL, /* domainShutdown */
-    NULL, /* domainReboot */
-    lxcDomainDestroy, /* domainDestroy */
-    lxcGetOSType, /* domainGetOSType */
-    lxcDomainGetMaxMemory, /* domainGetMaxMemory */
-    lxcDomainSetMaxMemory, /* domainSetMaxMemory */
-    lxcDomainSetMemory, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    lxcDomainSetMemoryParameters, /* domainSetMemoryParameters */
-    lxcDomainGetMemoryParameters, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    lxcDomainGetInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    NULL, /* domainSetVcpus */
-    NULL, /* domainSetVcpusFlags */
-    NULL, /* domainGetVcpusFlags */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    NULL, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    lxcDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXMLFromNative */
-    NULL, /* domainXMLToNative */
-    lxcListDefinedDomains, /* listDefinedDomains */
-    lxcNumDefinedDomains, /* numOfDefinedDomains */
-    lxcDomainStart, /* domainCreate */
-    lxcDomainStartWithFlags, /* domainCreateWithFlags */
-    lxcDomainDefine, /* domainDefineXML */
-    lxcDomainUndefine, /* domainUndefine */
-    NULL, /* domainAttachDevice */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDevice */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    lxcDomainGetAutostart, /* domainGetAutostart */
-    lxcDomainSetAutostart, /* domainSetAutostart */
-    lxcGetSchedulerType, /* domainGetSchedulerType */
-    lxcGetSchedulerParameters, /* domainGetSchedulerParameters */
-    lxcSetSchedulerParameters, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    NULL, /* domainBlockStats */
-    lxcDomainInterfaceStats, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    NULL, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    nodeGetFreeMemory,  /* getFreeMemory */
-    lxcDomainEventRegister, /* domainEventRegister */
-    lxcDomainEventDeregister, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    lxcIsEncrypted, /* isEncrypted */
-    lxcIsSecure, /* isSecure */
-    lxcDomainIsActive, /* domainIsActive */
-    lxcDomainIsPersistent, /* domainIsPersistent */
-    lxcDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    lxcDomainEventRegisterAny, /* domainEventRegisterAny */
-    lxcDomainEventDeregisterAny, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    lxcDomainOpenConsole, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_LXC,
+    .name                            = "LXC",
+    .open                            = lxcOpen,
+    .close                           = lxcClose,
+    .version                         = lxcVersion,
+    .getHostname                     = virGetHostname,
+    .nodeGetInfo                     = nodeGetInfo,
+    .getCapabilities                 = lxcGetCapabilities,
+    .listDomains                     = lxcListDomains,
+    .numOfDomains                    = lxcNumDomains,
+    .domainCreateXML                 = lxcDomainCreateAndStart,
+    .domainLookupByID                = lxcDomainLookupByID,
+    .domainLookupByUUID              = lxcDomainLookupByUUID,
+    .domainLookupByName              = lxcDomainLookupByName,
+    .domainSuspend                   = lxcDomainSuspend,
+    .domainResume                    = lxcDomainResume,
+    .domainDestroy                   = lxcDomainDestroy,
+    .domainGetOSType                 = lxcGetOSType,
+    .domainGetMaxMemory              = lxcDomainGetMaxMemory,
+    .domainSetMaxMemory              = lxcDomainSetMaxMemory,
+    .domainSetMemory                 = lxcDomainSetMemory,
+    .domainSetMemoryParameters       = lxcDomainSetMemoryParameters,
+    .domainGetMemoryParameters       = lxcDomainGetMemoryParameters,
+    .domainGetInfo                   = lxcDomainGetInfo,
+    .domainGetXMLDesc                = lxcDomainGetXMLDesc,
+    .listDefinedDomains              = lxcListDefinedDomains,
+    .numOfDefinedDomains             = lxcNumDefinedDomains,
+    .domainCreate                    = lxcDomainStart,
+    .domainCreateWithFlags           = lxcDomainStartWithFlags,
+    .domainDefineXML                 = lxcDomainDefine,
+    .domainUndefine                  = lxcDomainUndefine,
+    .domainGetAutostart              = lxcDomainGetAutostart,
+    .domainSetAutostart              = lxcDomainSetAutostart,
+    .domainGetSchedulerType          = lxcGetSchedulerType,
+    .domainGetSchedulerParameters    = lxcGetSchedulerParameters,
+    .domainSetSchedulerParameters    = lxcSetSchedulerParameters,
+    .domainInterfaceStats            = lxcDomainInterfaceStats,
+    .nodeGetCellsFreeMemory          = nodeGetCellsFreeMemory,
+    .getFreeMemory                   = nodeGetFreeMemory,
+    .domainEventRegister             = lxcDomainEventRegister,
+    .domainEventDeregister           = lxcDomainEventDeregister,
+    .isEncrypted                     = lxcIsEncrypted,
+    .isSecure                        = lxcIsSecure,
+    .domainIsActive                  = lxcDomainIsActive,
+    .domainIsPersistent              = lxcDomainIsPersistent,
+    .domainIsUpdated                 = lxcDomainIsUpdated,
+    .domainEventRegisterAny          = lxcDomainEventRegisterAny,
+    .domainEventDeregisterAny        = lxcDomainEventDeregisterAny,
+    .domainOpenConsole               = lxcDomainOpenConsole,
 };
 
 static virStateDriver lxcStateDriver = {
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index d6030a4..0373fca 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -2503,26 +2503,26 @@ cleanup:
 
 
 static virNetworkDriver networkDriver = {
-    "Network",
-    networkOpenNetwork, /* open */
-    networkCloseNetwork, /* close */
-    networkNumNetworks, /* numOfNetworks */
-    networkListNetworks, /* listNetworks */
-    networkNumDefinedNetworks, /* numOfDefinedNetworks */
-    networkListDefinedNetworks, /* listDefinedNetworks */
-    networkLookupByUUID, /* networkLookupByUUID */
-    networkLookupByName, /* networkLookupByName */
-    networkCreate, /* networkCreateXML */
-    networkDefine, /* networkDefineXML */
-    networkUndefine, /* networkUndefine */
-    networkStart, /* networkCreate */
-    networkDestroy, /* networkDestroy */
-    networkGetXMLDesc, /* networkGetXMLDesc */
-    networkGetBridgeName, /* networkGetBridgeName */
-    networkGetAutostart, /* networkGetAutostart */
-    networkSetAutostart, /* networkSetAutostart */
-    networkIsActive,
-    networkIsPersistent,
+    .name                            = "Network",
+    .open                            = networkOpenNetwork,
+    .close                           = networkCloseNetwork,
+    .numOfNetworks                   = networkNumNetworks,
+    .listNetworks                    = networkListNetworks,
+    .numOfDefinedNetworks            = networkNumDefinedNetworks,
+    .listDefinedNetworks             = networkListDefinedNetworks,
+    .networkLookupByUUID             = networkLookupByUUID,
+    .networkLookupByName             = networkLookupByName,
+    .networkCreateXML                = networkCreate,
+    .networkDefineXML                = networkDefine,
+    .networkUndefine                 = networkUndefine,
+    .networkCreate                   = networkStart,
+    .networkDestroy                  = networkDestroy,
+    .networkGetXMLDesc               = networkGetXMLDesc,
+    .networkGetBridgeName            = networkGetBridgeName,
+    .networkGetAutostart             = networkGetAutostart,
+    .networkSetAutostart             = networkSetAutostart,
+    .networkIsActive                 = networkIsActive,
+    .networkIsPersistent             = networkIsPersistent,
 };
 
 static virStateDriver networkStateDriver = {
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 3e1952f..157f73f 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -1543,118 +1543,46 @@ cleanup:
 }
 
 static virDriver openvzDriver = {
-    VIR_DRV_OPENVZ,
-    "OPENVZ",
-    openvzOpen, /* open */
-    openvzClose, /* close */
-    NULL, /* supports_feature */
-    openvzGetType, /* type */
-    openvzGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    NULL, /* getHostname */
-    NULL, /* getSysinfo */
-    openvzGetMaxVCPUs, /* getMaxVcpus */
-    nodeGetInfo, /* nodeGetInfo */
-    openvzGetCapabilities, /* getCapabilities */
-    openvzListDomains, /* listDomains */
-    openvzNumDomains, /* numOfDomains */
-    openvzDomainCreateXML, /* domainCreateXML */
-    openvzDomainLookupByID, /* domainLookupByID */
-    openvzDomainLookupByUUID, /* domainLookupByUUID */
-    openvzDomainLookupByName, /* domainLookupByName */
-    openvzDomainSuspend, /* domainSuspend */
-    openvzDomainResume, /* domainResume */
-    openvzDomainShutdown, /* domainShutdown */
-    openvzDomainReboot, /* domainReboot */
-    openvzDomainShutdown, /* domainDestroy */
-    openvzGetOSType, /* domainGetOSType */
-    NULL, /* domainGetMaxMemory */
-    NULL, /* domainSetMaxMemory */
-    NULL, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    openvzDomainGetInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    openvzDomainSetVcpus, /* domainSetVcpus */
-    openvzDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    openvzDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    openvzDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    openvzDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXmlFromNative */
-    NULL, /* domainXmlToNative */
-    openvzListDefinedDomains, /* listDefinedDomains */
-    openvzNumDefinedDomains, /* numOfDefinedDomains */
-    openvzDomainCreate, /* domainCreate */
-    openvzDomainCreateWithFlags, /* domainCreateWithFlags */
-    openvzDomainDefineXML, /* domainDefineXML */
-    openvzDomainUndefine, /* domainUndefine */
-    NULL, /* domainAttachDevice */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDevice */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    openvzDomainGetAutostart, /* domainGetAutostart */
-    openvzDomainSetAutostart, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    NULL, /* domainBlockStats */
-    NULL, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    NULL, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    NULL, /* nodeGetCellsFreeMemory */
-    NULL, /* getFreeMemory */
-    NULL, /* domainEventRegister */
-    NULL, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    openvzIsEncrypted,
-    openvzIsSecure,
-    openvzDomainIsActive,
-    openvzDomainIsPersistent,
-    openvzDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    NULL, /* domainEventRegisterAny */
-    NULL, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    NULL, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_OPENVZ,
+    .name                            = "OPENVZ",
+    .open                            = openvzOpen,
+    .close                           = openvzClose,
+    .type                            = openvzGetType,
+    .version                         = openvzGetVersion,
+    .getMaxVcpus                     = openvzGetMaxVCPUs,
+    .nodeGetInfo                     = nodeGetInfo,
+    .getCapabilities                 = openvzGetCapabilities,
+    .listDomains                     = openvzListDomains,
+    .numOfDomains                    = openvzNumDomains,
+    .domainCreateXML                 = openvzDomainCreateXML,
+    .domainLookupByID                = openvzDomainLookupByID,
+    .domainLookupByUUID              = openvzDomainLookupByUUID,
+    .domainLookupByName              = openvzDomainLookupByName,
+    .domainSuspend                   = openvzDomainSuspend,
+    .domainResume                    = openvzDomainResume,
+    .domainShutdown                  = openvzDomainShutdown,
+    .domainReboot                    = openvzDomainReboot,
+    .domainDestroy                   = openvzDomainShutdown,
+    .domainGetOSType                 = openvzGetOSType,
+    .domainGetInfo                   = openvzDomainGetInfo,
+    .domainSetVcpus                  = openvzDomainSetVcpus,
+    .domainSetVcpusFlags             = openvzDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = openvzDomainGetVcpusFlags,
+    .domainGetMaxVcpus               = openvzDomainGetMaxVcpus,
+    .domainGetXMLDesc                = openvzDomainGetXMLDesc,
+    .listDefinedDomains              = openvzListDefinedDomains,
+    .numOfDefinedDomains             = openvzNumDefinedDomains,
+    .domainCreate                    = openvzDomainCreate,
+    .domainCreateWithFlags           = openvzDomainCreateWithFlags,
+    .domainDefineXML                 = openvzDomainDefineXML,
+    .domainUndefine                  = openvzDomainUndefine,
+    .domainGetAutostart              = openvzDomainGetAutostart,
+    .domainSetAutostart              = openvzDomainSetAutostart,
+    .isEncrypted                     = openvzIsEncrypted,
+    .isSecure                        = openvzIsSecure,
+    .domainIsActive                  = openvzDomainIsActive,
+    .domainIsPersistent              = openvzDomainIsPersistent,
+    .domainIsUpdated                 = openvzDomainIsUpdated,
 };
 
 int openvzRegister(void) {
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 8b6fa69..1f05f60 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -3725,116 +3725,32 @@ phypVIOSDriverClose(virConnectPtr conn ATTRIBUTE_UNUSED)
 }
 
 static virDriver phypDriver = {
-    VIR_DRV_PHYP, "PHYP", phypOpen,     /* open */
-    phypClose,                  /* close */
-    NULL,                       /* supports_feature */
-    NULL,                       /* type */
-    NULL,                       /* version */
-    NULL,                       /* libvirtVersion (impl. in libvirt.c) */
-    NULL,                       /* getHostname */
-    NULL,                       /* getSysinfo */
-    NULL,                       /* getMaxVcpus */
-    NULL,                       /* nodeGetInfo */
-    phypConnectGetCapabilities, /* getCapabilities */
-    phypListDomains,            /* listDomains */
-    phypNumDomains,             /* numOfDomains */
-    phypDomainCreateAndStart,   /* domainCreateXML */
-    phypDomainLookupByID,       /* domainLookupByID */
-    NULL,                       /* domainLookupByUUID */
-    phypDomainLookupByName,     /* domainLookupByName */
-    NULL,                       /* domainSuspend */
-    phypDomainResume,           /* domainResume */
-    phypDomainShutdown,         /* domainShutdown */
-    phypDomainReboot,           /* domainReboot */
-    phypDomainDestroy,          /* domainDestroy */
-    NULL,                       /* domainGetOSType */
-    NULL,                       /* domainGetMaxMemory */
-    NULL,                       /* domainSetMaxMemory */
-    NULL,                       /* domainSetMemory */
-    NULL,                       /* domainSetMemoryFlags */
-    NULL,                       /* domainSetMemoryParameters */
-    NULL,                       /* domainGetMemoryParameters */
-    NULL,                       /* domainSetBlkioParameters */
-    NULL,                       /* domainGetBlkioParameters */
-    phypDomainGetInfo,          /* domainGetInfo */
-    NULL,                       /* domainSave */
-    NULL,                       /* domainRestore */
-    NULL,                       /* domainCoreDump */
-    NULL,                       /* domainScreenshot */
-    phypDomainSetCPU,           /* domainSetVcpus */
-    phypDomainSetVcpusFlags,    /* domainSetVcpusFlags */
-    phypDomainGetVcpusFlags,    /* domainGetVcpusFlags */
-    NULL,                       /* domainPinVcpu */
-    NULL,                       /* domainGetVcpus */
-    phypGetLparCPUMAX,          /* domainGetMaxVcpus */
-    NULL,                       /* domainGetSecurityLabel */
-    NULL,                       /* nodeGetSecurityModel */
-    phypDomainGetXMLDesc,       /* domainGetXMLDesc */
-    NULL,                       /* domainXMLFromNative */
-    NULL,                       /* domainXMLToNative */
-    phypListDefinedDomains,     /* listDefinedDomains */
-    phypNumDefinedDomains,      /* numOfDefinedDomains */
-    NULL,                       /* domainCreate */
-    NULL,                       /* domainCreateWithFlags */
-    NULL,                       /* domainDefineXML */
-    NULL,                       /* domainUndefine */
-    phypAttachDevice,           /* domainAttachDevice */
-    NULL,                       /* domainAttachDeviceFlags */
-    NULL,                       /* domainDetachDevice */
-    NULL,                       /* domainDetachDeviceFlags */
-    NULL,                       /* domainUpdateDeviceFlags */
-    NULL,                       /* domainGetAutostart */
-    NULL,                       /* domainSetAutostart */
-    NULL,                       /* domainGetSchedulerType */
-    NULL,                       /* domainGetSchedulerParameters */
-    NULL,                       /* domainSetSchedulerParameters */
-    NULL,                       /* domainMigratePrepare */
-    NULL,                       /* domainMigratePerform */
-    NULL,                       /* domainMigrateFinish */
-    NULL,                       /* domainBlockStats */
-    NULL,                       /* domainInterfaceStats */
-    NULL,                       /* domainMemoryStats */
-    NULL,                       /* domainBlockPeek */
-    NULL,                       /* domainMemoryPeek */
-    NULL,                       /* domainGetBlockInfo */
-    NULL,                       /* nodeGetCellsFreeMemory */
-    NULL,                       /* getFreeMemory */
-    NULL,                       /* domainEventRegister */
-    NULL,                       /* domainEventDeregister */
-    NULL,                       /* domainMigratePrepare2 */
-    NULL,                       /* domainMigrateFinish2 */
-    NULL,                       /* nodeDeviceDettach */
-    NULL,                       /* nodeDeviceReAttach */
-    NULL,                       /* nodeDeviceReset */
-    NULL,                       /* domainMigratePrepareTunnel */
-    phypIsEncrypted,            /* isEncrypted */
-    phypIsSecure,               /* isSecure */
-    NULL,                       /* domainIsActive */
-    NULL,                       /* domainIsPersistent */
-    phypIsUpdated,              /* domainIsUpdated */
-    NULL,                       /* cpuCompare */
-    NULL,                       /* cpuBaseline */
-    NULL,                       /* domainGetJobInfo */
-    NULL,                       /* domainAbortJob */
-    NULL,                       /* domainMigrateSetMaxDowntime */
-    NULL,                       /* domainMigrateSetMaxSpeed */
-    NULL,                       /* domainEventRegisterAny */
-    NULL,                       /* domainEventDeregisterAny */
-    NULL,                       /* domainManagedSave */
-    NULL,                       /* domainHasManagedSaveImage */
-    NULL,                       /* domainManagedSaveRemove */
-    NULL,                       /* domainSnapshotCreateXML */
-    NULL,                       /* domainSnapshotGetXMLDesc */
-    NULL,                       /* domainSnapshotNum */
-    NULL,                       /* domainSnapshotListNames */
-    NULL,                       /* domainSnapshotLookupByName */
-    NULL,                       /* domainHasCurrentSnapshot */
-    NULL,                       /* domainSnapshotCurrent */
-    NULL,                       /* domainRevertToSnapshot */
-    NULL,                       /* domainSnapshotDelete */
-    NULL,                       /* qemuMonitorCommand */
-    NULL,                       /* domainOpenConsole */
-    NULL,                       /* domainInjectNMI */
+    .no                              = VIR_DRV_PHYP,
+    .name                            = "PHYP",
+    .open                            = phypOpen,
+    .close                           = phypClose,
+    .getCapabilities                 = phypConnectGetCapabilities,
+    .listDomains                     = phypListDomains,
+    .numOfDomains                    = phypNumDomains,
+    .domainCreateXML                 = phypDomainCreateAndStart,
+    .domainLookupByID                = phypDomainLookupByID,
+    .domainLookupByName              = phypDomainLookupByName,
+    .domainResume                    = phypDomainResume,
+    .domainShutdown                  = phypDomainShutdown,
+    .domainReboot                    = phypDomainReboot,
+    .domainDestroy                   = phypDomainDestroy,
+    .domainGetInfo                   = phypDomainGetInfo,
+    .domainSetVcpus                  = phypDomainSetCPU,
+    .domainSetVcpusFlags             = phypDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = phypDomainGetVcpusFlags,
+    .domainGetMaxVcpus               = phypGetLparCPUMAX,
+    .domainGetXMLDesc                = phypDomainGetXMLDesc,
+    .listDefinedDomains              = phypListDefinedDomains,
+    .numOfDefinedDomains             = phypNumDefinedDomains,
+    .domainAttachDevice              = phypAttachDevice,
+    .isEncrypted                     = phypIsEncrypted,
+    .isSecure                        = phypIsSecure,
+    .domainIsUpdated                 = phypIsUpdated,
 };
 
 static virStorageDriver phypStorageDriver = {
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fff41e0..c9eb279 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7212,118 +7212,114 @@ cleanup:
 
 
 static virDriver qemuDriver = {
-    VIR_DRV_QEMU,
-    "QEMU",
-    qemudOpen, /* open */
-    qemudClose, /* close */
-    qemudSupportsFeature, /* supports_feature */
-    qemudGetType, /* type */
-    qemudGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    qemuGetSysinfo, /* getSysinfo */
-    qemudGetMaxVCPUs, /* getMaxVcpus */
-    nodeGetInfo, /* nodeGetInfo */
-    qemudGetCapabilities, /* getCapabilities */
-    qemudListDomains, /* listDomains */
-    qemudNumDomains, /* numOfDomains */
-    qemudDomainCreate, /* domainCreateXML */
-    qemudDomainLookupByID, /* domainLookupByID */
-    qemudDomainLookupByUUID, /* domainLookupByUUID */
-    qemudDomainLookupByName, /* domainLookupByName */
-    qemudDomainSuspend, /* domainSuspend */
-    qemudDomainResume, /* domainResume */
-    qemudDomainShutdown, /* domainShutdown */
-    NULL, /* domainReboot */
-    qemudDomainDestroy, /* domainDestroy */
-    qemudDomainGetOSType, /* domainGetOSType */
-    qemudDomainGetMaxMemory, /* domainGetMaxMemory */
-    qemudDomainSetMaxMemory, /* domainSetMaxMemory */
-    qemudDomainSetMemory, /* domainSetMemory */
-    qemudDomainSetMemoryFlags, /* domainSetMemoryFlags */
-    qemuDomainSetMemoryParameters, /* domainSetMemoryParameters */
-    qemuDomainGetMemoryParameters, /* domainGetMemoryParameters */
-    qemuDomainSetBlkioParameters, /* domainSetBlkioParameters */
-    qemuDomainGetBlkioParameters, /* domainGetBlkioParameters */
-    qemudDomainGetInfo, /* domainGetInfo */
-    qemudDomainSave, /* domainSave */
-    qemuDomainRestore, /* domainRestore */
-    qemudDomainCoreDump, /* domainCoreDump */
-    qemuDomainScreenshot, /* domainScreenshot */
-    qemudDomainSetVcpus, /* domainSetVcpus */
-    qemudDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    qemudDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    qemudDomainPinVcpu, /* domainPinVcpu */
-    qemudDomainGetVcpus, /* domainGetVcpus */
-    qemudDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    qemudDomainGetSecurityLabel, /* domainGetSecurityLabel */
-    qemudNodeGetSecurityModel, /* nodeGetSecurityModel */
-    qemuDomainGetXMLDesc, /* domainGetXMLDesc */
-    qemuDomainXMLFromNative, /* domainXmlFromNative */
-    qemuDomainXMLToNative, /* domainXMLToNative */
-    qemudListDefinedDomains, /* listDefinedDomains */
-    qemudNumDefinedDomains, /* numOfDefinedDomains */
-    qemudDomainStart, /* domainCreate */
-    qemudDomainStartWithFlags, /* domainCreateWithFlags */
-    qemudDomainDefine, /* domainDefineXML */
-    qemudDomainUndefine, /* domainUndefine */
-    qemuDomainAttachDevice, /* domainAttachDevice */
-    qemuDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    qemuDomainDetachDevice, /* domainDetachDevice */
-    qemuDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    qemuDomainUpdateDeviceFlags, /* domainUpdateDeviceFlags */
-    qemudDomainGetAutostart, /* domainGetAutostart */
-    qemudDomainSetAutostart, /* domainSetAutostart */
-    qemuGetSchedulerType, /* domainGetSchedulerType */
-    qemuGetSchedulerParameters, /* domainGetSchedulerParameters */
-    qemuSetSchedulerParameters, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare (v1) */
-    qemudDomainMigratePerform, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    qemudDomainBlockStats, /* domainBlockStats */
-    qemudDomainInterfaceStats, /* domainInterfaceStats */
-    qemudDomainMemoryStats, /* domainMemoryStats */
-    qemudDomainBlockPeek, /* domainBlockPeek */
-    qemudDomainMemoryPeek, /* domainMemoryPeek */
-    qemuDomainGetBlockInfo, /* domainGetBlockInfo */
-    nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    nodeGetFreeMemory,  /* getFreeMemory */
-    qemuDomainEventRegister, /* domainEventRegister */
-    qemuDomainEventDeregister, /* domainEventDeregister */
-    qemudDomainMigratePrepare2, /* domainMigratePrepare2 */
-    qemudDomainMigrateFinish2, /* domainMigrateFinish2 */
-    qemudNodeDeviceDettach, /* nodeDeviceDettach */
-    qemudNodeDeviceReAttach, /* nodeDeviceReAttach */
-    qemudNodeDeviceReset, /* nodeDeviceReset */
-    qemudDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */
-    qemuIsEncrypted, /* isEncrypted */
-    qemuIsSecure, /* isSecure */
-    qemuDomainIsActive, /* domainIsActive */
-    qemuDomainIsPersistent, /* domainIsPersistent */
-    qemuDomainIsUpdated, /* domainIsUpdated */
-    qemuCPUCompare, /* cpuCompare */
-    qemuCPUBaseline, /* cpuBaseline */
-    qemuDomainGetJobInfo, /* domainGetJobInfo */
-    qemuDomainAbortJob, /* domainAbortJob */
-    qemuDomainMigrateSetMaxDowntime, /* domainMigrateSetMaxDowntime */
-    qemuDomainMigrateSetMaxSpeed, /* domainMigrateSetMaxSpeed */
-    qemuDomainEventRegisterAny, /* domainEventRegisterAny */
-    qemuDomainEventDeregisterAny, /* domainEventDeregisterAny */
-    qemuDomainManagedSave, /* domainManagedSave */
-    qemuDomainHasManagedSaveImage, /* domainHasManagedSaveImage */
-    qemuDomainManagedSaveRemove, /* domainManagedSaveRemove */
-    qemuDomainSnapshotCreateXML, /* domainSnapshotCreateXML */
-    qemuDomainSnapshotGetXMLDesc, /* domainSnapshotGetXMLDesc */
-    qemuDomainSnapshotNum, /* domainSnapshotNum */
-    qemuDomainSnapshotListNames, /* domainSnapshotListNames */
-    qemuDomainSnapshotLookupByName, /* domainSnapshotLookupByName */
-    qemuDomainHasCurrentSnapshot, /* domainHasCurrentSnapshot */
-    qemuDomainSnapshotCurrent, /* domainSnapshotCurrent */
-    qemuDomainRevertToSnapshot, /* domainRevertToSnapshot */
-    qemuDomainSnapshotDelete, /* domainSnapshotDelete */
-    qemuDomainMonitorCommand, /* qemuDomainMonitorCommand */
-    qemuDomainOpenConsole, /* domainOpenConsole */
-    qemuDomainInjectNMI, /* domainInjectNMI */
+    .no                              = VIR_DRV_QEMU,
+    .name                            = "QEMU",
+    .open                            = qemudOpen,
+    .close                           = qemudClose,
+    .supports_feature                = qemudSupportsFeature,
+    .type                            = qemudGetType,
+    .version                         = qemudGetVersion,
+    .getHostname                     = virGetHostname,
+    .getSysinfo                      = qemuGetSysinfo,
+    .getMaxVcpus                     = qemudGetMaxVCPUs,
+    .nodeGetInfo                     = nodeGetInfo,
+    .getCapabilities                 = qemudGetCapabilities,
+    .listDomains                     = qemudListDomains,
+    .numOfDomains                    = qemudNumDomains,
+    .domainCreateXML                 = qemudDomainCreate,
+    .domainLookupByID                = qemudDomainLookupByID,
+    .domainLookupByUUID              = qemudDomainLookupByUUID,
+    .domainLookupByName              = qemudDomainLookupByName,
+    .domainSuspend                   = qemudDomainSuspend,
+    .domainResume                    = qemudDomainResume,
+    .domainShutdown                  = qemudDomainShutdown,
+    .domainDestroy                   = qemudDomainDestroy,
+    .domainGetOSType                 = qemudDomainGetOSType,
+    .domainGetMaxMemory              = qemudDomainGetMaxMemory,
+    .domainSetMaxMemory              = qemudDomainSetMaxMemory,
+    .domainSetMemory                 = qemudDomainSetMemory,
+    .domainSetMemoryFlags            = qemudDomainSetMemoryFlags,
+    .domainSetMemoryParameters       = qemuDomainSetMemoryParameters,
+    .domainGetMemoryParameters       = qemuDomainGetMemoryParameters,
+    .domainSetBlkioParameters        = qemuDomainSetBlkioParameters,
+    .domainGetBlkioParameters        = qemuDomainGetBlkioParameters,
+    .domainGetInfo                   = qemudDomainGetInfo,
+    .domainSave                      = qemudDomainSave,
+    .domainRestore                   = qemuDomainRestore,
+    .domainCoreDump                  = qemudDomainCoreDump,
+    .domainScreenshot                = qemuDomainScreenshot,
+    .domainSetVcpus                  = qemudDomainSetVcpus,
+    .domainSetVcpusFlags             = qemudDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = qemudDomainGetVcpusFlags,
+    .domainPinVcpu                   = qemudDomainPinVcpu,
+    .domainGetVcpus                  = qemudDomainGetVcpus,
+    .domainGetMaxVcpus               = qemudDomainGetMaxVcpus,
+    .domainGetSecurityLabel          = qemudDomainGetSecurityLabel,
+    .nodeGetSecurityModel            = qemudNodeGetSecurityModel,
+    .domainGetXMLDesc                = qemuDomainGetXMLDesc,
+    .domainXMLFromNative             = qemuDomainXMLFromNative,
+    .domainXMLToNative               = qemuDomainXMLToNative,
+    .listDefinedDomains              = qemudListDefinedDomains,
+    .numOfDefinedDomains             = qemudNumDefinedDomains,
+    .domainCreate                    = qemudDomainStart,
+    .domainCreateWithFlags           = qemudDomainStartWithFlags,
+    .domainDefineXML                 = qemudDomainDefine,
+    .domainUndefine                  = qemudDomainUndefine,
+    .domainAttachDevice              = qemuDomainAttachDevice,
+    .domainAttachDeviceFlags         = qemuDomainAttachDeviceFlags,
+    .domainDetachDevice              = qemuDomainDetachDevice,
+    .domainDetachDeviceFlags         = qemuDomainDetachDeviceFlags,
+    .domainUpdateDeviceFlags         = qemuDomainUpdateDeviceFlags,
+    .domainGetAutostart              = qemudDomainGetAutostart,
+    .domainSetAutostart              = qemudDomainSetAutostart,
+    .domainGetSchedulerType          = qemuGetSchedulerType,
+    .domainGetSchedulerParameters    = qemuGetSchedulerParameters,
+    .domainSetSchedulerParameters    = qemuSetSchedulerParameters,
+    .domainMigratePerform            = qemudDomainMigratePerform,
+    .domainBlockStats                = qemudDomainBlockStats,
+    .domainInterfaceStats            = qemudDomainInterfaceStats,
+    .domainMemoryStats               = qemudDomainMemoryStats,
+    .domainBlockPeek                 = qemudDomainBlockPeek,
+    .domainMemoryPeek                = qemudDomainMemoryPeek,
+    .domainGetBlockInfo              = qemuDomainGetBlockInfo,
+    .nodeGetCellsFreeMemory          = nodeGetCellsFreeMemory,
+    .getFreeMemory                   = nodeGetFreeMemory,
+    .domainEventRegister             = qemuDomainEventRegister,
+    .domainEventDeregister           = qemuDomainEventDeregister,
+    .domainMigratePrepare2           = qemudDomainMigratePrepare2,
+    .domainMigrateFinish2            = qemudDomainMigrateFinish2,
+    .nodeDeviceDettach               = qemudNodeDeviceDettach,
+    .nodeDeviceReAttach              = qemudNodeDeviceReAttach,
+    .nodeDeviceReset                 = qemudNodeDeviceReset,
+    .domainMigratePrepareTunnel      = qemudDomainMigratePrepareTunnel,
+    .isEncrypted                     = qemuIsEncrypted,
+    .isSecure                        = qemuIsSecure,
+    .domainIsActive                  = qemuDomainIsActive,
+    .domainIsPersistent              = qemuDomainIsPersistent,
+    .domainIsUpdated                 = qemuDomainIsUpdated,
+    .cpuCompare                      = qemuCPUCompare,
+    .cpuBaseline                     = qemuCPUBaseline,
+    .domainGetJobInfo                = qemuDomainGetJobInfo,
+    .domainAbortJob                  = qemuDomainAbortJob,
+    .domainMigrateSetMaxDowntime     = qemuDomainMigrateSetMaxDowntime,
+    .domainMigrateSetMaxSpeed        = qemuDomainMigrateSetMaxSpeed,
+    .domainEventRegisterAny          = qemuDomainEventRegisterAny,
+    .domainEventDeregisterAny        = qemuDomainEventDeregisterAny,
+    .domainManagedSave               = qemuDomainManagedSave,
+    .domainHasManagedSaveImage       = qemuDomainHasManagedSaveImage,
+    .domainManagedSaveRemove         = qemuDomainManagedSaveRemove,
+    .domainSnapshotCreateXML         = qemuDomainSnapshotCreateXML,
+    .domainSnapshotGetXMLDesc        = qemuDomainSnapshotGetXMLDesc,
+    .domainSnapshotNum               = qemuDomainSnapshotNum,
+    .domainSnapshotListNames         = qemuDomainSnapshotListNames,
+    .domainSnapshotLookupByName      = qemuDomainSnapshotLookupByName,
+    .domainHasCurrentSnapshot        = qemuDomainHasCurrentSnapshot,
+    .domainSnapshotCurrent           = qemuDomainSnapshotCurrent,
+    .domainRevertToSnapshot          = qemuDomainRevertToSnapshot,
+    .domainSnapshotDelete            = qemuDomainSnapshotDelete,
+    .qemuDomainMonitorCommand        = qemuDomainMonitorCommand,
+    .domainOpenConsole               = qemuDomainOpenConsole,
+    .domainInjectNMI                 = qemuDomainInjectNMI,
 };
 
 
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 1847577..bd5db15 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -6364,118 +6364,118 @@ unsigned long remoteVersion(void)
 }
 
 static virDriver remote_driver = {
-    VIR_DRV_REMOTE,
-    "remote",
-    remoteOpen, /* open */
-    remoteClose, /* close */
-    remoteSupportsFeature, /* supports_feature */
-    remoteType, /* type */
-    remoteGetVersion, /* version */
-    remoteGetLibVersion, /* libvirtVersion */
-    remoteGetHostname, /* getHostname */
-    remoteGetSysinfo, /* getSysinfo */
-    remoteGetMaxVcpus, /* getMaxVcpus */
-    remoteNodeGetInfo, /* nodeGetInfo */
-    remoteGetCapabilities, /* getCapabilities */
-    remoteListDomains, /* listDomains */
-    remoteNumOfDomains, /* numOfDomains */
-    remoteDomainCreateXML, /* domainCreateXML */
-    remoteDomainLookupByID, /* domainLookupByID */
-    remoteDomainLookupByUUID, /* domainLookupByUUID */
-    remoteDomainLookupByName, /* domainLookupByName */
-    remoteDomainSuspend, /* domainSuspend */
-    remoteDomainResume, /* domainResume */
-    remoteDomainShutdown, /* domainShutdown */
-    remoteDomainReboot, /* domainReboot */
-    remoteDomainDestroy, /* domainDestroy */
-    remoteDomainGetOSType, /* domainGetOSType */
-    remoteDomainGetMaxMemory, /* domainGetMaxMemory */
-    remoteDomainSetMaxMemory, /* domainSetMaxMemory */
-    remoteDomainSetMemory, /* domainSetMemory */
-    remoteDomainSetMemoryFlags, /* domainSetMemoryFlags */
-    remoteDomainSetMemoryParameters, /* domainSetMemoryParameters */
-    remoteDomainGetMemoryParameters, /* domainGetMemoryParameters */
-    remoteDomainSetBlkioParameters, /* domainSetBlkioParameters */
-    remoteDomainGetBlkioParameters, /* domainGetBlkioParameters */
-    remoteDomainGetInfo, /* domainGetInfo */
-    remoteDomainSave, /* domainSave */
-    remoteDomainRestore, /* domainRestore */
-    remoteDomainCoreDump, /* domainCoreDump */
-    remoteDomainScreenshot, /* domainScreenshot */
-    remoteDomainSetVcpus, /* domainSetVcpus */
-    remoteDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    remoteDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    remoteDomainPinVcpu, /* domainPinVcpu */
-    remoteDomainGetVcpus, /* domainGetVcpus */
-    remoteDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    remoteDomainGetSecurityLabel, /* domainGetSecurityLabel */
-    remoteNodeGetSecurityModel, /* nodeGetSecurityModel */
-    remoteDomainGetXMLDesc, /* domainGetXMLDesc */
-    remoteDomainXMLFromNative, /* domainXMLFromNative */
-    remoteDomainXMLToNative, /* domainXMLToNative */
-    remoteListDefinedDomains, /* listDefinedDomains */
-    remoteNumOfDefinedDomains, /* numOfDefinedDomains */
-    remoteDomainCreate, /* domainCreate */
-    remoteDomainCreateWithFlags, /* domainCreateWithFlags */
-    remoteDomainDefineXML, /* domainDefineXML */
-    remoteDomainUndefine, /* domainUndefine */
-    remoteDomainAttachDevice, /* domainAttachDevice */
-    remoteDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    remoteDomainDetachDevice, /* domainDetachDevice */
-    remoteDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    remoteDomainUpdateDeviceFlags, /* domainUpdateDeviceFlags */
-    remoteDomainGetAutostart, /* domainGetAutostart */
-    remoteDomainSetAutostart, /* domainSetAutostart */
-    remoteDomainGetSchedulerType, /* domainGetSchedulerType */
-    remoteDomainGetSchedulerParameters, /* domainGetSchedulerParameters */
-    remoteDomainSetSchedulerParameters, /* domainSetSchedulerParameters */
-    remoteDomainMigratePrepare, /* domainMigratePrepare */
-    remoteDomainMigratePerform, /* domainMigratePerform */
-    remoteDomainMigrateFinish, /* domainMigrateFinish */
-    remoteDomainBlockStats, /* domainBlockStats */
-    remoteDomainInterfaceStats, /* domainInterfaceStats */
-    remoteDomainMemoryStats, /* domainMemoryStats */
-    remoteDomainBlockPeek, /* domainBlockPeek */
-    remoteDomainMemoryPeek, /* domainMemoryPeek */
-    remoteDomainGetBlockInfo, /* domainGetBlockInfo */
-    remoteNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    remoteNodeGetFreeMemory, /* getFreeMemory */
-    remoteDomainEventRegister, /* domainEventRegister */
-    remoteDomainEventDeregister, /* domainEventDeregister */
-    remoteDomainMigratePrepare2, /* domainMigratePrepare2 */
-    remoteDomainMigrateFinish2, /* domainMigrateFinish2 */
-    remoteNodeDeviceDettach, /* nodeDeviceDettach */
-    remoteNodeDeviceReAttach, /* nodeDeviceReAttach */
-    remoteNodeDeviceReset, /* nodeDeviceReset */
-    remoteDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */
-    remoteIsEncrypted, /* isEncrypted */
-    remoteIsSecure, /* isSecure */
-    remoteDomainIsActive, /* domainIsActive */
-    remoteDomainIsPersistent, /* domainIsPersistent */
-    remoteDomainIsUpdated, /* domainIsUpdated */
-    remoteCPUCompare, /* cpuCompare */
-    remoteCPUBaseline, /* cpuBaseline */
-    remoteDomainGetJobInfo, /* domainGetJobInfo */
-    remoteDomainAbortJob, /* domainFinishJob */
-    remoteDomainMigrateSetMaxDowntime, /* domainMigrateSetMaxDowntime */
-    remoteDomainMigrateSetMaxSpeed, /* domainMigrateSetMaxSpeed */
-    remoteDomainEventRegisterAny, /* domainEventRegisterAny */
-    remoteDomainEventDeregisterAny, /* domainEventDeregisterAny */
-    remoteDomainManagedSave, /* domainManagedSave */
-    remoteDomainHasManagedSaveImage, /* domainHasManagedSaveImage */
-    remoteDomainManagedSaveRemove, /* domainManagedSaveRemove */
-    remoteDomainSnapshotCreateXML, /* domainSnapshotCreateXML */
-    remoteDomainSnapshotGetXMLDesc, /* domainSnapshotGetXMLDesc */
-    remoteDomainSnapshotNum, /* domainSnapshotNum */
-    remoteDomainSnapshotListNames, /* domainSnapshotListNames */
-    remoteDomainSnapshotLookupByName, /* domainSnapshotLookupByName */
-    remoteDomainHasCurrentSnapshot, /* domainHasCurrentSnapshot */
-    remoteDomainSnapshotCurrent, /* domainSnapshotCurrent */
-    remoteDomainRevertToSnapshot, /* domainRevertToSnapshot */
-    remoteDomainSnapshotDelete, /* domainSnapshotDelete */
-    remoteQemuDomainMonitorCommand, /* qemuDomainMonitorCommand */
-    remoteDomainOpenConsole, /* domainOpenConsole */
-    remoteDomainInjectNMI, /* domainInjectNMI */
+    .no                              = VIR_DRV_REMOTE,
+    .name                            = "remote",
+    .open                            = remoteOpen,
+    .close                           = remoteClose,
+    .supports_feature                = remoteSupportsFeature,
+    .type                            = remoteType,
+    .version                         = remoteGetVersion,
+    .libvirtVersion                  = remoteGetLibVersion,
+    .getHostname                     = remoteGetHostname,
+    .getSysinfo                      = remoteGetSysinfo,
+    .getMaxVcpus                     = remoteGetMaxVcpus,
+    .nodeGetInfo                     = remoteNodeGetInfo,
+    .getCapabilities                 = remoteGetCapabilities,
+    .listDomains                     = remoteListDomains,
+    .numOfDomains                    = remoteNumOfDomains,
+    .domainCreateXML                 = remoteDomainCreateXML,
+    .domainLookupByID                = remoteDomainLookupByID,
+    .domainLookupByUUID              = remoteDomainLookupByUUID,
+    .domainLookupByName              = remoteDomainLookupByName,
+    .domainSuspend                   = remoteDomainSuspend,
+    .domainResume                    = remoteDomainResume,
+    .domainShutdown                  = remoteDomainShutdown,
+    .domainReboot                    = remoteDomainReboot,
+    .domainDestroy                   = remoteDomainDestroy,
+    .domainGetOSType                 = remoteDomainGetOSType,
+    .domainGetMaxMemory              = remoteDomainGetMaxMemory,
+    .domainSetMaxMemory              = remoteDomainSetMaxMemory,
+    .domainSetMemory                 = remoteDomainSetMemory,
+    .domainSetMemoryFlags            = remoteDomainSetMemoryFlags,
+    .domainSetMemoryParameters       = remoteDomainSetMemoryParameters,
+    .domainGetMemoryParameters       = remoteDomainGetMemoryParameters,
+    .domainSetBlkioParameters        = remoteDomainSetBlkioParameters,
+    .domainGetBlkioParameters        = remoteDomainGetBlkioParameters,
+    .domainGetInfo                   = remoteDomainGetInfo,
+    .domainSave                      = remoteDomainSave,
+    .domainRestore                   = remoteDomainRestore,
+    .domainCoreDump                  = remoteDomainCoreDump,
+    .domainScreenshot                = remoteDomainScreenshot,
+    .domainSetVcpus                  = remoteDomainSetVcpus,
+    .domainSetVcpusFlags             = remoteDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = remoteDomainGetVcpusFlags,
+    .domainPinVcpu                   = remoteDomainPinVcpu,
+    .domainGetVcpus                  = remoteDomainGetVcpus,
+    .domainGetMaxVcpus               = remoteDomainGetMaxVcpus,
+    .domainGetSecurityLabel          = remoteDomainGetSecurityLabel,
+    .nodeGetSecurityModel            = remoteNodeGetSecurityModel,
+    .domainGetXMLDesc                = remoteDomainGetXMLDesc,
+    .domainXMLFromNative             = remoteDomainXMLFromNative,
+    .domainXMLToNative               = remoteDomainXMLToNative,
+    .listDefinedDomains              = remoteListDefinedDomains,
+    .numOfDefinedDomains             = remoteNumOfDefinedDomains,
+    .domainCreate                    = remoteDomainCreate,
+    .domainCreateWithFlags           = remoteDomainCreateWithFlags,
+    .domainDefineXML                 = remoteDomainDefineXML,
+    .domainUndefine                  = remoteDomainUndefine,
+    .domainAttachDevice              = remoteDomainAttachDevice,
+    .domainAttachDeviceFlags         = remoteDomainAttachDeviceFlags,
+    .domainDetachDevice              = remoteDomainDetachDevice,
+    .domainDetachDeviceFlags         = remoteDomainDetachDeviceFlags,
+    .domainUpdateDeviceFlags         = remoteDomainUpdateDeviceFlags,
+    .domainGetAutostart              = remoteDomainGetAutostart,
+    .domainSetAutostart              = remoteDomainSetAutostart,
+    .domainGetSchedulerType          = remoteDomainGetSchedulerType,
+    .domainGetSchedulerParameters    = remoteDomainGetSchedulerParameters,
+    .domainSetSchedulerParameters    = remoteDomainSetSchedulerParameters,
+    .domainMigratePrepare            = remoteDomainMigratePrepare,
+    .domainMigratePerform            = remoteDomainMigratePerform,
+    .domainMigrateFinish             = remoteDomainMigrateFinish,
+    .domainBlockStats                = remoteDomainBlockStats,
+    .domainInterfaceStats            = remoteDomainInterfaceStats,
+    .domainMemoryStats               = remoteDomainMemoryStats,
+    .domainBlockPeek                 = remoteDomainBlockPeek,
+    .domainMemoryPeek                = remoteDomainMemoryPeek,
+    .domainGetBlockInfo              = remoteDomainGetBlockInfo,
+    .nodeGetCellsFreeMemory          = remoteNodeGetCellsFreeMemory,
+    .getFreeMemory                   = remoteNodeGetFreeMemory,
+    .domainEventRegister             = remoteDomainEventRegister,
+    .domainEventDeregister           = remoteDomainEventDeregister,
+    .domainMigratePrepare2           = remoteDomainMigratePrepare2,
+    .domainMigrateFinish2            = remoteDomainMigrateFinish2,
+    .nodeDeviceDettach               = remoteNodeDeviceDettach,
+    .nodeDeviceReAttach              = remoteNodeDeviceReAttach,
+    .nodeDeviceReset                 = remoteNodeDeviceReset,
+    .domainMigratePrepareTunnel      = remoteDomainMigratePrepareTunnel,
+    .isEncrypted                     = remoteIsEncrypted,
+    .isSecure                        = remoteIsSecure,
+    .domainIsActive                  = remoteDomainIsActive,
+    .domainIsPersistent              = remoteDomainIsPersistent,
+    .domainIsUpdated                 = remoteDomainIsUpdated,
+    .cpuCompare                      = remoteCPUCompare,
+    .cpuBaseline                     = remoteCPUBaseline,
+    .domainGetJobInfo                = remoteDomainGetJobInfo,
+    .domainAbortJob                  = remoteDomainAbortJob,
+    .domainMigrateSetMaxDowntime     = remoteDomainMigrateSetMaxDowntime,
+    .domainMigrateSetMaxSpeed        = remoteDomainMigrateSetMaxSpeed,
+    .domainEventRegisterAny          = remoteDomainEventRegisterAny,
+    .domainEventDeregisterAny        = remoteDomainEventDeregisterAny,
+    .domainManagedSave               = remoteDomainManagedSave,
+    .domainHasManagedSaveImage       = remoteDomainHasManagedSaveImage,
+    .domainManagedSaveRemove         = remoteDomainManagedSaveRemove,
+    .domainSnapshotCreateXML         = remoteDomainSnapshotCreateXML,
+    .domainSnapshotGetXMLDesc        = remoteDomainSnapshotGetXMLDesc,
+    .domainSnapshotNum               = remoteDomainSnapshotNum,
+    .domainSnapshotListNames         = remoteDomainSnapshotListNames,
+    .domainSnapshotLookupByName      = remoteDomainSnapshotLookupByName,
+    .domainHasCurrentSnapshot        = remoteDomainHasCurrentSnapshot,
+    .domainSnapshotCurrent           = remoteDomainSnapshotCurrent,
+    .domainRevertToSnapshot          = remoteDomainRevertToSnapshot,
+    .domainSnapshotDelete            = remoteDomainSnapshotDelete,
+    .qemuDomainMonitorCommand        = remoteQemuDomainMonitorCommand,
+    .domainOpenConsole               = remoteDomainOpenConsole,
+    .domainInjectNMI                 = remoteDomainInjectNMI,
 };
 
 static virNetworkDriver network_driver = {
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 36d8c12..34278fe 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -5276,159 +5276,105 @@ static int testNWFilterClose(virConnectPtr conn) {
 }
 
 static virDriver testDriver = {
-    VIR_DRV_TEST,
-    "Test",
-    testOpen, /* open */
-    testClose, /* close */
-    NULL, /* supports_feature */
-    NULL, /* type */
-    testGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    testGetMaxVCPUs, /* getMaxVcpus */
-    testNodeGetInfo, /* nodeGetInfo */
-    testGetCapabilities, /* getCapabilities */
-    testListDomains, /* listDomains */
-    testNumOfDomains, /* numOfDomains */
-    testDomainCreateXML, /* domainCreateXML */
-    testLookupDomainByID, /* domainLookupByID */
-    testLookupDomainByUUID, /* domainLookupByUUID */
-    testLookupDomainByName, /* domainLookupByName */
-    testPauseDomain, /* domainSuspend */
-    testResumeDomain, /* domainResume */
-    testShutdownDomain, /* domainShutdown */
-    testRebootDomain, /* domainReboot */
-    testDestroyDomain, /* domainDestroy */
-    testGetOSType, /* domainGetOSType */
-    testGetMaxMemory, /* domainGetMaxMemory */
-    testSetMaxMemory, /* domainSetMaxMemory */
-    testSetMemory, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    testGetDomainInfo, /* domainGetInfo */
-    testDomainSave, /* domainSave */
-    testDomainRestore, /* domainRestore */
-    testDomainCoreDump, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    testSetVcpus, /* domainSetVcpus */
-    testDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    testDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    testDomainPinVcpu, /* domainPinVcpu */
-    testDomainGetVcpus, /* domainGetVcpus */
-    testDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    testDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXMLFromNative */
-    NULL, /* domainXMLToNative */
-    testListDefinedDomains, /* listDefinedDomains */
-    testNumOfDefinedDomains, /* numOfDefinedDomains */
-    testDomainCreate, /* domainCreate */
-    testDomainCreateWithFlags, /* domainCreateWithFlags */
-    testDomainDefineXML, /* domainDefineXML */
-    testDomainUndefine, /* domainUndefine */
-    NULL, /* domainAttachDevice */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDevice */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    testDomainGetAutostart, /* domainGetAutostart */
-    testDomainSetAutostart, /* domainSetAutostart */
-    testDomainGetSchedulerType, /* domainGetSchedulerType */
-    testDomainGetSchedulerParams, /* domainGetSchedulerParameters */
-    testDomainSetSchedulerParams, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    testDomainBlockStats, /* domainBlockStats */
-    testDomainInterfaceStats, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    NULL, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    testNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    NULL, /* getFreeMemory */
-    testDomainEventRegister, /* domainEventRegister */
-    testDomainEventDeregister, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    testIsEncrypted, /* isEncrypted */
-    testIsSecure, /* isEncrypted */
-    testDomainIsActive, /* domainIsActive */
-    testDomainIsPersistent, /* domainIsPersistent */
-    testDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    testDomainEventRegisterAny, /* domainEventRegisterAny */
-    testDomainEventDeregisterAny, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    NULL, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_TEST,
+    .name                            = "Test",
+    .open                            = testOpen,
+    .close                           = testClose,
+    .version                         = testGetVersion,
+    .getHostname                     = virGetHostname,
+    .getMaxVcpus                     = testGetMaxVCPUs,
+    .nodeGetInfo                     = testNodeGetInfo,
+    .getCapabilities                 = testGetCapabilities,
+    .listDomains                     = testListDomains,
+    .numOfDomains                    = testNumOfDomains,
+    .domainCreateXML                 = testDomainCreateXML,
+    .domainLookupByID                = testLookupDomainByID,
+    .domainLookupByUUID              = testLookupDomainByUUID,
+    .domainLookupByName              = testLookupDomainByName,
+    .domainSuspend                   = testPauseDomain,
+    .domainResume                    = testResumeDomain,
+    .domainShutdown                  = testShutdownDomain,
+    .domainReboot                    = testRebootDomain,
+    .domainDestroy                   = testDestroyDomain,
+    .domainGetOSType                 = testGetOSType,
+    .domainGetMaxMemory              = testGetMaxMemory,
+    .domainSetMaxMemory              = testSetMaxMemory,
+    .domainSetMemory                 = testSetMemory,
+    .domainGetInfo                   = testGetDomainInfo,
+    .domainSave                      = testDomainSave,
+    .domainRestore                   = testDomainRestore,
+    .domainCoreDump                  = testDomainCoreDump,
+    .domainSetVcpus                  = testSetVcpus,
+    .domainSetVcpusFlags             = testDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = testDomainGetVcpusFlags,
+    .domainPinVcpu                   = testDomainPinVcpu,
+    .domainGetVcpus                  = testDomainGetVcpus,
+    .domainGetMaxVcpus               = testDomainGetMaxVcpus,
+    .domainGetXMLDesc                = testDomainGetXMLDesc,
+    .listDefinedDomains              = testListDefinedDomains,
+    .numOfDefinedDomains             = testNumOfDefinedDomains,
+    .domainCreate                    = testDomainCreate,
+    .domainCreateWithFlags           = testDomainCreateWithFlags,
+    .domainDefineXML                 = testDomainDefineXML,
+    .domainUndefine                  = testDomainUndefine,
+    .domainGetAutostart              = testDomainGetAutostart,
+    .domainSetAutostart              = testDomainSetAutostart,
+    .domainGetSchedulerType          = testDomainGetSchedulerType,
+    .domainGetSchedulerParameters    = testDomainGetSchedulerParams,
+    .domainSetSchedulerParameters    = testDomainSetSchedulerParams,
+    .domainBlockStats                = testDomainBlockStats,
+    .domainInterfaceStats            = testDomainInterfaceStats,
+    .nodeGetCellsFreeMemory          = testNodeGetCellsFreeMemory,
+    .domainEventRegister             = testDomainEventRegister,
+    .domainEventDeregister           = testDomainEventDeregister,
+    .isEncrypted                     = testIsEncrypted,
+    .isSecure                        = testIsSecure,
+    .domainIsActive                  = testDomainIsActive,
+    .domainIsPersistent              = testDomainIsPersistent,
+    .domainIsUpdated                 = testDomainIsUpdated,
+    .domainEventRegisterAny          = testDomainEventRegisterAny,
+    .domainEventDeregisterAny        = testDomainEventDeregisterAny,
 };
 
 static virNetworkDriver testNetworkDriver = {
-    "Test",
-    testOpenNetwork, /* open */
-    testCloseNetwork, /* close */
-    testNumNetworks, /* numOfNetworks */
-    testListNetworks, /* listNetworks */
-    testNumDefinedNetworks, /* numOfDefinedNetworks */
-    testListDefinedNetworks, /* listDefinedNetworks */
-    testLookupNetworkByUUID, /* networkLookupByUUID */
-    testLookupNetworkByName, /* networkLookupByName */
-    testNetworkCreate, /* networkCreateXML */
-    testNetworkDefine, /* networkDefineXML */
-    testNetworkUndefine, /* networkUndefine */
-    testNetworkStart, /* networkCreate */
-    testNetworkDestroy, /* networkDestroy */
-    testNetworkGetXMLDesc, /* networkGetXMLDesc */
-    testNetworkGetBridgeName, /* networkGetBridgeName */
-    testNetworkGetAutostart, /* networkGetAutostart */
-    testNetworkSetAutostart, /* networkSetAutostart */
-    testNetworkIsActive, /* networkIsActive */
-    testNetworkIsPersistent, /* networkIsPersistent */
+    .name                            = "Test",
+    .open                            = testOpenNetwork,
+    .close                           = testCloseNetwork,
+    .numOfNetworks                   = testNumNetworks,
+    .listNetworks                    = testListNetworks,
+    .numOfDefinedNetworks            = testNumDefinedNetworks,
+    .listDefinedNetworks             = testListDefinedNetworks,
+    .networkLookupByUUID             = testLookupNetworkByUUID,
+    .networkLookupByName             = testLookupNetworkByName,
+    .networkCreateXML                = testNetworkCreate,
+    .networkDefineXML                = testNetworkDefine,
+    .networkUndefine                 = testNetworkUndefine,
+    .networkCreate                   = testNetworkStart,
+    .networkDestroy                  = testNetworkDestroy,
+    .networkGetXMLDesc               = testNetworkGetXMLDesc,
+    .networkGetBridgeName            = testNetworkGetBridgeName,
+    .networkGetAutostart             = testNetworkGetAutostart,
+    .networkSetAutostart             = testNetworkSetAutostart,
+    .networkIsActive                 = testNetworkIsActive,
+    .networkIsPersistent             = testNetworkIsPersistent,
 };
 
 static virInterfaceDriver testInterfaceDriver = {
-    "Test",                     /* name */
-    testOpenInterface,          /* open */
-    testCloseInterface,         /* close */
-    testNumOfInterfaces,        /* numOfInterfaces */
-    testListInterfaces,         /* listInterfaces */
-    testNumOfDefinedInterfaces, /* numOfDefinedInterfaces */
-    testListDefinedInterfaces,  /* listDefinedInterfaces */
-    testLookupInterfaceByName,  /* interfaceLookupByName */
-    testLookupInterfaceByMACString, /* interfaceLookupByMACString */
-    testInterfaceGetXMLDesc,    /* interfaceGetXMLDesc */
-    testInterfaceDefineXML,     /* interfaceDefineXML */
-    testInterfaceUndefine,      /* interfaceUndefine */
-    testInterfaceCreate,        /* interfaceCreate */
-    testInterfaceDestroy,       /* interfaceDestroy */
-    testInterfaceIsActive,      /* interfaceIsActive */
+    .name                            = "Test",
+    .open                            = testOpenInterface,
+    .close                           = testCloseInterface,
+    .numOfInterfaces                 = testNumOfInterfaces,
+    .listInterfaces                  = testListInterfaces,
+    .numOfDefinedInterfaces          = testNumOfDefinedInterfaces,
+    .listDefinedInterfaces           = testListDefinedInterfaces,
+    .interfaceLookupByName           = testLookupInterfaceByName,
+    .interfaceLookupByMACString      = testLookupInterfaceByMACString,
+    .interfaceGetXMLDesc             = testInterfaceGetXMLDesc,
+    .interfaceDefineXML              = testInterfaceDefineXML,
+    .interfaceUndefine               = testInterfaceUndefine,
+    .interfaceCreate                 = testInterfaceCreate,
+    .interfaceDestroy                = testInterfaceDestroy,
+    .interfaceIsActive               = testInterfaceIsActive,
 };
 
 
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index e7cd77a..2f6c553 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -2144,118 +2144,50 @@ cleanup:
 
 
 static virDriver umlDriver = {
-    VIR_DRV_UML,
-    "UML",
-    umlOpen, /* open */
-    umlClose, /* close */
-    NULL, /* supports_feature */
-    umlGetType, /* type */
-    umlGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    NULL, /* getMaxVcpus */
-    nodeGetInfo, /* nodeGetInfo */
-    umlGetCapabilities, /* getCapabilities */
-    umlListDomains, /* listDomains */
-    umlNumDomains, /* numOfDomains */
-    umlDomainCreate, /* domainCreateXML */
-    umlDomainLookupByID, /* domainLookupByID */
-    umlDomainLookupByUUID, /* domainLookupByUUID */
-    umlDomainLookupByName, /* domainLookupByName */
-    NULL, /* domainSuspend */
-    NULL, /* domainResume */
-    umlDomainShutdown, /* domainShutdown */
-    NULL, /* domainReboot */
-    umlDomainDestroy, /* domainDestroy */
-    umlDomainGetOSType, /* domainGetOSType */
-    umlDomainGetMaxMemory, /* domainGetMaxMemory */
-    umlDomainSetMaxMemory, /* domainSetMaxMemory */
-    umlDomainSetMemory, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    umlDomainGetInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    NULL, /* domainSetVcpus */
-    NULL, /* domainSetVcpusFlags */
-    NULL, /* domainGetVcpusFlags */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    NULL, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    umlDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXMLFromNative */
-    NULL, /* domainXMLToNative */
-    umlListDefinedDomains, /* listDefinedDomains */
-    umlNumDefinedDomains, /* numOfDefinedDomains */
-    umlDomainStart, /* domainCreate */
-    umlDomainStartWithFlags, /* domainCreateWithFlags */
-    umlDomainDefine, /* domainDefineXML */
-    umlDomainUndefine, /* domainUndefine */
-    umlDomainAttachDevice, /* domainAttachDevice */
-    umlDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    umlDomainDetachDevice, /* domainDetachDevice */
-    umlDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    umlDomainGetAutostart, /* domainGetAutostart */
-    umlDomainSetAutostart, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    NULL, /* domainBlockStats */
-    NULL, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    umlDomainBlockPeek, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    nodeGetFreeMemory,  /* getFreeMemory */
-    NULL, /* domainEventRegister */
-    NULL, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    umlIsEncrypted, /* isEncrypted */
-    umlIsSecure, /* isSecure */
-    umlDomainIsActive, /* domainIsActive */
-    umlDomainIsPersistent, /* domainIsPersistent */
-    umlDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    NULL, /* domainEventRegisterAny */
-    NULL, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    umlDomainOpenConsole, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_UML,
+    .name                            = "UML",
+    .open                            = umlOpen,
+    .close                           = umlClose,
+    .type                            = umlGetType,
+    .version                         = umlGetVersion,
+    .getHostname                     = virGetHostname,
+    .nodeGetInfo                     = nodeGetInfo,
+    .getCapabilities                 = umlGetCapabilities,
+    .listDomains                     = umlListDomains,
+    .numOfDomains                    = umlNumDomains,
+    .domainCreateXML                 = umlDomainCreate,
+    .domainLookupByID                = umlDomainLookupByID,
+    .domainLookupByUUID              = umlDomainLookupByUUID,
+    .domainLookupByName              = umlDomainLookupByName,
+    .domainShutdown                  = umlDomainShutdown,
+    .domainDestroy                   = umlDomainDestroy,
+    .domainGetOSType                 = umlDomainGetOSType,
+    .domainGetMaxMemory              = umlDomainGetMaxMemory,
+    .domainSetMaxMemory              = umlDomainSetMaxMemory,
+    .domainSetMemory                 = umlDomainSetMemory,
+    .domainGetInfo                   = umlDomainGetInfo,
+    .domainGetXMLDesc                = umlDomainGetXMLDesc,
+    .listDefinedDomains              = umlListDefinedDomains,
+    .numOfDefinedDomains             = umlNumDefinedDomains,
+    .domainCreate                    = umlDomainStart,
+    .domainCreateWithFlags           = umlDomainStartWithFlags,
+    .domainDefineXML                 = umlDomainDefine,
+    .domainUndefine                  = umlDomainUndefine,
+    .domainAttachDevice              = umlDomainAttachDevice,
+    .domainAttachDeviceFlags         = umlDomainAttachDeviceFlags,
+    .domainDetachDevice              = umlDomainDetachDevice,
+    .domainDetachDeviceFlags         = umlDomainDetachDeviceFlags,
+    .domainGetAutostart              = umlDomainGetAutostart,
+    .domainSetAutostart              = umlDomainSetAutostart,
+    .domainBlockPeek                 = umlDomainBlockPeek,
+    .nodeGetCellsFreeMemory          = nodeGetCellsFreeMemory,
+    .getFreeMemory                   = nodeGetFreeMemory,
+    .isEncrypted                     = umlIsEncrypted,
+    .isSecure                        = umlIsSecure,
+    .domainIsActive                  = umlDomainIsActive,
+    .domainIsPersistent              = umlDomainIsPersistent,
+    .domainIsUpdated                 = umlDomainIsUpdated,
+    .domainOpenConsole               = umlDomainOpenConsole,
 };
 
 static int
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 41b6795..7198995 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -8661,136 +8661,77 @@ endjob:
  */
 
 virDriver NAME(Driver) = {
-    VIR_DRV_VBOX,
-    "VBOX",
-    vboxOpen, /* open */
-    vboxClose, /* close */
-    NULL, /* supports_feature */
-    NULL, /* type */
-    vboxGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    vboxGetMaxVcpus, /* getMaxVcpus */
-    nodeGetInfo, /* nodeGetInfo */
-    vboxGetCapabilities, /* getCapabilities */
-    vboxListDomains, /* listDomains */
-    vboxNumOfDomains, /* numOfDomains */
-    vboxDomainCreateXML, /* domainCreateXML */
-    vboxDomainLookupByID, /* domainLookupByID */
-    vboxDomainLookupByUUID, /* domainLookupByUUID */
-    vboxDomainLookupByName, /* domainLookupByName */
-    vboxDomainSuspend, /* domainSuspend */
-    vboxDomainResume, /* domainResume */
-    vboxDomainShutdown, /* domainShutdown */
-    vboxDomainReboot, /* domainReboot */
-    vboxDomainDestroy, /* domainDestroy */
-    vboxDomainGetOSType, /* domainGetOSType */
-    NULL, /* domainGetMaxMemory */
-    NULL, /* domainSetMaxMemory */
-    vboxDomainSetMemory, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    vboxDomainGetInfo, /* domainGetInfo */
-    vboxDomainSave, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
+    .no                              = VIR_DRV_VBOX,
+    .name                            = "VBOX",
+    .open                            = vboxOpen,
+    .close                           = vboxClose,
+    .version                         = vboxGetVersion,
+    .getHostname                     = virGetHostname,
+    .getMaxVcpus                     = vboxGetMaxVcpus,
+    .nodeGetInfo                     = nodeGetInfo,
+    .getCapabilities                 = vboxGetCapabilities,
+    .listDomains                     = vboxListDomains,
+    .numOfDomains                    = vboxNumOfDomains,
+    .domainCreateXML                 = vboxDomainCreateXML,
+    .domainLookupByID                = vboxDomainLookupByID,
+    .domainLookupByUUID              = vboxDomainLookupByUUID,
+    .domainLookupByName              = vboxDomainLookupByName,
+    .domainSuspend                   = vboxDomainSuspend,
+    .domainResume                    = vboxDomainResume,
+    .domainShutdown                  = vboxDomainShutdown,
+    .domainReboot                    = vboxDomainReboot,
+    .domainDestroy                   = vboxDomainDestroy,
+    .domainGetOSType                 = vboxDomainGetOSType,
+    .domainSetMemory                 = vboxDomainSetMemory,
+    .domainGetInfo                   = vboxDomainGetInfo,
+    .domainSave                      = vboxDomainSave,
 #if VBOX_API_VERSION == 4000
-    vboxDomainScreenshot, /* domainScreenshot */
-#else
-    NULL, /* domainScreenshot */
+    .domainScreenshot                = vboxDomainScreenshot,
 #endif
-    vboxDomainSetVcpus, /* domainSetVcpus */
-    vboxDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    vboxDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    vboxDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    vboxDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXMLFromNative */
-    NULL, /* domainXMLToNative */
-    vboxListDefinedDomains, /* listDefinedDomains */
-    vboxNumOfDefinedDomains, /* numOfDefinedDomains */
-    vboxDomainCreate, /* domainCreate */
-    vboxDomainCreateWithFlags, /* domainCreateWithFlags */
-    vboxDomainDefineXML, /* domainDefineXML */
-    vboxDomainUndefine, /* domainUndefine */
-    vboxDomainAttachDevice, /* domainAttachDevice */
-    vboxDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    vboxDomainDetachDevice, /* domainDetachDevice */
-    vboxDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    vboxDomainUpdateDeviceFlags, /* domainUpdateDeviceFlags */
-    NULL, /* domainGetAutostart */
-    NULL, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    NULL, /* domainBlockStats */
-    NULL, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    NULL, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    nodeGetFreeMemory,  /* getFreeMemory */
-#if VBOX_API_VERSION == 2002 || VBOX_API_VERSION == 4000
-    NULL, /* domainEventRegister */
-    NULL, /* domainEventDeregister */
-#else
-    vboxDomainEventRegister, /* domainEventRegister */
-    vboxDomainEventDeregister, /* domainEventDeregister */
+    .domainSetVcpus                  = vboxDomainSetVcpus,
+    .domainSetVcpusFlags             = vboxDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = vboxDomainGetVcpusFlags,
+    .domainGetMaxVcpus               = vboxDomainGetMaxVcpus,
+    .domainGetXMLDesc                = vboxDomainGetXMLDesc,
+    .listDefinedDomains              = vboxListDefinedDomains,
+    .numOfDefinedDomains             = vboxNumOfDefinedDomains,
+    .domainCreate                    = vboxDomainCreate,
+    .domainCreateWithFlags           = vboxDomainCreateWithFlags,
+    .domainDefineXML                 = vboxDomainDefineXML,
+    .domainUndefine                  = vboxDomainUndefine,
+    .domainAttachDevice              = vboxDomainAttachDevice,
+    .domainAttachDeviceFlags         = vboxDomainAttachDeviceFlags,
+    .domainDetachDevice              = vboxDomainDetachDevice,
+    .domainDetachDeviceFlags         = vboxDomainDetachDeviceFlags,
+    .domainUpdateDeviceFlags         = vboxDomainUpdateDeviceFlags,
+    .nodeGetCellsFreeMemory          = nodeGetCellsFreeMemory,
+    .getFreeMemory                   = nodeGetFreeMemory,
+#if !(VBOX_API_VERSION == 2002 || VBOX_API_VERSION == 4000)
+    .domainEventRegister             = vboxDomainEventRegister,
+    .domainEventDeregister           = vboxDomainEventDeregister,
 #endif
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    vboxIsEncrypted, /* isEncrypted */
-    vboxIsSecure, /* isSecure */
-    vboxDomainIsActive, /* domainIsActive */
-    vboxDomainIsPersistent, /* domainIsPersistent */
-    vboxDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-#if VBOX_API_VERSION == 2002 || VBOX_API_VERSION == 4000
-    NULL, /* domainEventRegisterAny */
-    NULL, /* domainEventDeregisterAny */
-#else
-    vboxDomainEventRegisterAny, /* domainEventRegisterAny */
-    vboxDomainEventDeregisterAny, /* domainEventDeregisterAny */
+    .isEncrypted                     = vboxIsEncrypted,
+    .isSecure                        = vboxIsSecure,
+    .domainIsActive                  = vboxDomainIsActive,
+    .domainIsPersistent              = vboxDomainIsPersistent,
+    .domainIsUpdated                 = vboxDomainIsUpdated,
+#if !(VBOX_API_VERSION == 2002 || VBOX_API_VERSION == 4000)
+    .domainEventRegisterAny          = vboxDomainEventRegisterAny,
+    .domainEventDeregisterAny        = vboxDomainEventDeregisterAny,
 #endif
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    vboxDomainSnapshotCreateXML, /* domainSnapshotCreateXML */
-    vboxDomainSnapshotGetXMLDesc, /* domainSnapshotGetXMLDesc */
-    vboxDomainSnapshotNum, /* domainSnapshotNum */
-    vboxDomainSnapshotListNames, /* domainSnapshotListNames */
-    vboxDomainSnapshotLookupByName, /* domainSnapshotLookupByName */
-    vboxDomainHasCurrentSnapshot, /* domainHasCurrentSnapshot */
-    vboxDomainSnapshotCurrent, /* domainSnapshotCurrent */
-    vboxDomainRevertToSnapshot, /* domainRevertToSnapshot */
-    vboxDomainSnapshotDelete, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    NULL, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .domainSnapshotCreateXML         = vboxDomainSnapshotCreateXML,
+    .domainSnapshotGetXMLDesc        = vboxDomainSnapshotGetXMLDesc,
+    .domainSnapshotNum               = vboxDomainSnapshotNum,
+    .domainSnapshotListNames         = vboxDomainSnapshotListNames,
+    .domainSnapshotLookupByName      = vboxDomainSnapshotLookupByName,
+    .domainHasCurrentSnapshot        = vboxDomainHasCurrentSnapshot,
+    .domainSnapshotCurrent           = vboxDomainSnapshotCurrent,
+    .domainRevertToSnapshot          = vboxDomainRevertToSnapshot,
+    .domainSnapshotDelete            = vboxDomainSnapshotDelete,
 };
 
 virNetworkDriver NAME(NetworkDriver) = {
-    "VBOX",
+    .name                   = "VBOX",
     .open                   = vboxNetworkOpen,
     .close                  = vboxNetworkClose,
     .numOfNetworks          = vboxNumOfNetworks,
@@ -8805,9 +8746,6 @@ virNetworkDriver NAME(NetworkDriver) = {
     .networkCreate          = vboxNetworkCreate,
     .networkDestroy         = vboxNetworkDestroy,
     .networkGetXMLDesc      = vboxNetworkGetXMLDesc,
-    .networkGetBridgeName   = NULL,
-    .networkGetAutostart    = NULL,
-    .networkSetAutostart    = NULL
 };
 
 virStorageDriver NAME(StorageDriver) = {
@@ -8816,24 +8754,7 @@ virStorageDriver NAME(StorageDriver) = {
     .close              = vboxStorageClose,
     .numOfPools         = vboxStorageNumOfPools,
     .listPools          = vboxStorageListPools,
-    .numOfDefinedPools  = NULL,
-    .listDefinedPools   = NULL,
-    .findPoolSources    = NULL,
     .poolLookupByName   = vboxStoragePoolLookupByName,
-    .poolLookupByUUID   = NULL,
-    .poolLookupByVolume = NULL,
-    .poolCreateXML      = NULL,
-    .poolDefineXML      = NULL,
-    .poolBuild          = NULL,
-    .poolUndefine       = NULL,
-    .poolCreate         = NULL,
-    .poolDestroy        = NULL,
-    .poolDelete         = NULL,
-    .poolRefresh        = NULL,
-    .poolGetInfo        = NULL,
-    .poolGetXMLDesc     = NULL,
-    .poolGetAutostart   = NULL,
-    .poolSetAutostart   = NULL,
     .poolNumOfVolumes   = vboxStoragePoolNumOfVolumes,
     .poolListVolumes    = vboxStoragePoolListVolumes,
 
@@ -8841,7 +8762,6 @@ virStorageDriver NAME(StorageDriver) = {
     .volLookupByKey     = vboxStorageVolLookupByKey,
     .volLookupByPath    = vboxStorageVolLookupByPath,
     .volCreateXML       = vboxStorageVolCreateXML,
-    .volCreateXMLFrom   = NULL,
     .volDelete          = vboxStorageVolDelete,
     .volGetInfo         = vboxStorageVolGetInfo,
     .volGetXMLDesc      = vboxStorageVolGetXMLDesc,
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index b920f79..529efa6 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -897,118 +897,34 @@ vmwareDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
 }
 
 static virDriver vmwareDriver = {
-    VIR_DRV_VMWARE,
-    "VMWARE",
-    vmwareOpen,                 /* open */
-    vmwareClose,                /* close */
-    NULL,                       /* supports_feature */
-    vmwareGetType,              /* type */
-    vmwareGetVersion,           /* version */
-    NULL,                       /* libvirtVersion (impl. in libvirt.c) */
-    NULL,                       /* getHostname */
-    NULL,                       /* getSysinfo */
-    NULL,                       /* getMaxVcpus */
-    NULL,                       /* nodeGetInfo */
-    NULL,                       /* getCapabilities */
-    vmwareListDomains,          /* listDomains */
-    vmwareNumDomains,           /* numOfDomains */
-    vmwareDomainCreateXML,      /* domainCreateXML */
-    vmwareDomainLookupByID,     /* domainLookupByID */
-    vmwareDomainLookupByUUID,   /* domainLookupByUUID */
-    vmwareDomainLookupByName,   /* domainLookupByName */
-    vmwareDomainSuspend,        /* domainSuspend */
-    vmwareDomainResume,         /* domainResume */
-    vmwareDomainShutdown,       /* domainShutdown */
-    vmwareDomainReboot,         /* domainReboot */
-    vmwareDomainShutdown,        /* domainDestroy */
-    vmwareGetOSType,            /* domainGetOSType */
-    NULL,                       /* domainGetMaxMemory */
-    NULL,                       /* domainSetMaxMemory */
-    NULL,                       /* domainSetMemory */
-    NULL,                       /* domainSetMemoryFlags */
-    NULL,                       /* domainSetMemoryParameters */
-    NULL,                       /* domainGetMemoryParameters */
-    NULL,                       /* domainSetBlkioParameters */
-    NULL,                       /* domainGetBlkioParameters */
-    vmwareDomainGetInfo,        /* domainGetInfo */
-    NULL,                       /* domainSave */
-    NULL,                       /* domainRestore */
-    NULL,                       /* domainCoreDump */
-    NULL,                       /* domainScreenshot */
-    NULL,                       /* domainSetVcpus */
-    NULL,                       /* domainSetVcpusFlags */
-    NULL,                       /* domainGetVcpusFlags */
-    NULL,                       /* domainPinVcpu */
-    NULL,                       /* domainGetVcpus */
-    NULL,                       /* domainGetMaxVcpus */
-    NULL,                       /* domainGetSecurityLabel */
-    NULL,                       /* nodeGetSecurityModel */
-    vmwareDomainGetXMLDesc,     /* domainGetXMLDesc */
-    NULL,                       /* domainXmlFromNative */
-    NULL,                       /* domainXmlToNative */
-    vmwareListDefinedDomains,   /* listDefinedDomains */
-    vmwareNumDefinedDomains,    /* numOfDefinedDomains */
-    vmwareDomainCreate,         /* domainCreate */
-    vmwareDomainCreateWithFlags,/* domainCreateWithFlags */
-    vmwareDomainDefineXML,      /* domainDefineXML */
-    vmwareDomainUndefine,       /* domainUndefine */
-    NULL,                       /* domainAttachDevice */
-    NULL,                       /* domainAttachDeviceFlags */
-    NULL,                       /* domainDetachDevice */
-    NULL,                       /* domainDetachDeviceFlags */
-    NULL,                       /* domainUpdateDeviceFlags */
-    NULL,                       /* domainGetAutostart */
-    NULL,                       /* domainSetAutostart */
-    NULL,                       /* domainGetSchedulerType */
-    NULL,                       /* domainGetSchedulerParameters */
-    NULL,                       /* domainSetSchedulerParameters */
-    NULL,                       /* domainMigratePrepare */
-    NULL,                       /* domainMigratePerform */
-    NULL,                       /* domainMigrateFinish */
-    NULL,                       /* domainBlockStats */
-    NULL,                       /* domainInterfaceStats */
-    NULL,                       /* domainMemoryStats */
-    NULL,                       /* domainBlockPeek */
-    NULL,                       /* domainMemoryPeek */
-    NULL,                       /* domainGetBlockInfo */
-    NULL,                       /* nodeGetCellsFreeMemory */
-    NULL,                       /* getFreeMemory */
-    NULL,                       /* domainEventRegister */
-    NULL,                       /* domainEventDeregister */
-    NULL,                       /* domainMigratePrepare2 */
-    NULL,                       /* domainMigrateFinish2 */
-    NULL,                       /* nodeDeviceDettach */
-    NULL,                       /* nodeDeviceReAttach */
-    NULL,                       /* nodeDeviceReset */
-    NULL,                       /* domainMigratePrepareTunnel */
-    NULL,                       /* IsEncrypted */
-    NULL,                       /* IsSecure */
-    vmwareDomainIsActive,       /* DomainIsActive */
-    vmwareDomainIsPersistent,   /* DomainIsPersistent */
-    NULL,                       /* domainIsUpdated */
-    NULL,                       /* cpuCompare */
-    NULL,                       /* cpuBaseline */
-    NULL,                       /* domainGetJobInfo */
-    NULL,                       /* domainAbortJob */
-    NULL,                       /* domainMigrateSetMaxDowntime */
-    NULL,                       /* domainMigrateSetMaxSpeed */
-    NULL,                       /* domainEventRegisterAny */
-    NULL,                       /* domainEventDeregisterAny */
-    NULL,                       /* domainManagedSave */
-    NULL,                       /* domainHasManagedSaveImage */
-    NULL,                       /* domainManagedSaveRemove */
-    NULL,                       /* domainSnapshotCreateXML */
-    NULL,                       /* domainSnapshotGetXMLDesc */
-    NULL,                       /* domainSnapshotNum */
-    NULL,                       /* domainSnapshotListNames */
-    NULL,                       /* domainSnapshotLookupByName */
-    NULL,                       /* domainHasCurrentSnapshot */
-    NULL,                       /* domainSnapshotCurrent */
-    NULL,                       /* domainRevertToSnapshot */
-    NULL,                       /* domainSnapshotDelete */
-    NULL,                       /* qemuDomainMonitorCommand */
-    NULL,                       /* domainOpenConsole */
-    NULL,                       /* domainInjectNMI */
+    .no                              = VIR_DRV_VMWARE,
+    .name                            = "VMWARE",
+    .open                            = vmwareOpen,
+    .close                           = vmwareClose,
+    .type                            = vmwareGetType,
+    .version                         = vmwareGetVersion,
+    .listDomains                     = vmwareListDomains,
+    .numOfDomains                    = vmwareNumDomains,
+    .domainCreateXML                 = vmwareDomainCreateXML,
+    .domainLookupByID                = vmwareDomainLookupByID,
+    .domainLookupByUUID              = vmwareDomainLookupByUUID,
+    .domainLookupByName              = vmwareDomainLookupByName,
+    .domainSuspend                   = vmwareDomainSuspend,
+    .domainResume                    = vmwareDomainResume,
+    .domainShutdown                  = vmwareDomainShutdown,
+    .domainReboot                    = vmwareDomainReboot,
+    .domainDestroy                   = vmwareDomainShutdown,
+    .domainGetOSType                 = vmwareGetOSType,
+    .domainGetInfo                   = vmwareDomainGetInfo,
+    .domainGetXMLDesc                = vmwareDomainGetXMLDesc,
+    .listDefinedDomains              = vmwareListDefinedDomains,
+    .numOfDefinedDomains             = vmwareNumDefinedDomains,
+    .domainCreate                    = vmwareDomainCreate,
+    .domainCreateWithFlags           = vmwareDomainCreateWithFlags,
+    .domainDefineXML                 = vmwareDomainDefineXML,
+    .domainUndefine                  = vmwareDomainUndefine,
+    .domainIsActive                  = vmwareDomainIsActive,
+    .domainIsPersistent              = vmwareDomainIsPersistent,
 };
 
 int
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index 5bafb73..aaebfda 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -2099,118 +2099,82 @@ cleanup:
 
 /* The interface which we export upwards to libvirt.c. */
 static virDriver xenUnifiedDriver = {
-    VIR_DRV_XEN_UNIFIED,
-    "Xen",
-    xenUnifiedOpen, /* open */
-    xenUnifiedClose, /* close */
-    xenUnifiedSupportsFeature, /* supports_feature */
-    xenUnifiedType, /* type */
-    xenUnifiedGetVersion, /* version */
-    NULL, /* libvirtVersion (impl. in libvirt.c) */
-    virGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    xenUnifiedGetMaxVcpus, /* getMaxVcpus */
-    xenUnifiedNodeGetInfo, /* nodeGetInfo */
-    xenUnifiedGetCapabilities, /* getCapabilities */
-    xenUnifiedListDomains, /* listDomains */
-    xenUnifiedNumOfDomains, /* numOfDomains */
-    xenUnifiedDomainCreateXML, /* domainCreateXML */
-    xenUnifiedDomainLookupByID, /* domainLookupByID */
-    xenUnifiedDomainLookupByUUID, /* domainLookupByUUID */
-    xenUnifiedDomainLookupByName, /* domainLookupByName */
-    xenUnifiedDomainSuspend, /* domainSuspend */
-    xenUnifiedDomainResume, /* domainResume */
-    xenUnifiedDomainShutdown, /* domainShutdown */
-    xenUnifiedDomainReboot, /* domainReboot */
-    xenUnifiedDomainDestroy, /* domainDestroy */
-    xenUnifiedDomainGetOSType, /* domainGetOSType */
-    xenUnifiedDomainGetMaxMemory, /* domainGetMaxMemory */
-    xenUnifiedDomainSetMaxMemory, /* domainSetMaxMemory */
-    xenUnifiedDomainSetMemory, /* domainSetMemory */
-    NULL, /*domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    xenUnifiedDomainGetInfo, /* domainGetInfo */
-    xenUnifiedDomainSave, /* domainSave */
-    xenUnifiedDomainRestore, /* domainRestore */
-    xenUnifiedDomainCoreDump, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    xenUnifiedDomainSetVcpus, /* domainSetVcpus */
-    xenUnifiedDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    xenUnifiedDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    xenUnifiedDomainPinVcpu, /* domainPinVcpu */
-    xenUnifiedDomainGetVcpus, /* domainGetVcpus */
-    xenUnifiedDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    xenUnifiedDomainGetXMLDesc, /* domainGetXMLDesc */
-    xenUnifiedDomainXMLFromNative, /* domainXMLFromNative */
-    xenUnifiedDomainXMLToNative, /* domainXMLToNative */
-    xenUnifiedListDefinedDomains, /* listDefinedDomains */
-    xenUnifiedNumOfDefinedDomains, /* numOfDefinedDomains */
-    xenUnifiedDomainCreate, /* domainCreate */
-    xenUnifiedDomainCreateWithFlags, /* domainCreateWithFlags */
-    xenUnifiedDomainDefineXML, /* domainDefineXML */
-    xenUnifiedDomainUndefine, /* domainUndefine */
-    xenUnifiedDomainAttachDevice, /* domainAttachDevice */
-    xenUnifiedDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    xenUnifiedDomainDetachDevice, /* domainDetachDevice */
-    xenUnifiedDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    xenUnifiedDomainUpdateDeviceFlags, /* domainUpdateDeviceFlags */
-    xenUnifiedDomainGetAutostart, /* domainGetAutostart */
-    xenUnifiedDomainSetAutostart, /* domainSetAutostart */
-    xenUnifiedDomainGetSchedulerType, /* domainGetSchedulerType */
-    xenUnifiedDomainGetSchedulerParameters, /* domainGetSchedulerParameters */
-    xenUnifiedDomainSetSchedulerParameters, /* domainSetSchedulerParameters */
-    xenUnifiedDomainMigratePrepare, /* domainMigratePrepare */
-    xenUnifiedDomainMigratePerform, /* domainMigratePerform */
-    xenUnifiedDomainMigrateFinish, /* domainMigrateFinish */
-    xenUnifiedDomainBlockStats, /* domainBlockStats */
-    xenUnifiedDomainInterfaceStats, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    xenUnifiedDomainBlockPeek, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    xenUnifiedNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    xenUnifiedNodeGetFreeMemory, /* getFreeMemory */
-    xenUnifiedDomainEventRegister, /* domainEventRegister */
-    xenUnifiedDomainEventDeregister, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */
-    xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */
-    xenUnifiedNodeDeviceReset, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    xenUnifiedIsEncrypted, /* isEncrypted */
-    xenUnifiedIsSecure, /* isSecure */
-    xenUnifiedDomainIsActive, /* domainIsActive */
-    xenUnifiedDomainIsPersistent, /* domainIsPersistent */
-    xenUnifiedDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    xenUnifiedDomainEventRegisterAny, /* domainEventRegisterAny */
-    xenUnifiedDomainEventDeregisterAny, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    xenUnifiedDomainOpenConsole, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_XEN_UNIFIED,
+    .name                            = "Xen",
+    .open                            = xenUnifiedOpen,
+    .close                           = xenUnifiedClose,
+    .supports_feature                = xenUnifiedSupportsFeature,
+    .type                            = xenUnifiedType,
+    .version                         = xenUnifiedGetVersion,
+    .getHostname                     = virGetHostname,
+    .getMaxVcpus                     = xenUnifiedGetMaxVcpus,
+    .nodeGetInfo                     = xenUnifiedNodeGetInfo,
+    .getCapabilities                 = xenUnifiedGetCapabilities,
+    .listDomains                     = xenUnifiedListDomains,
+    .numOfDomains                    = xenUnifiedNumOfDomains,
+    .domainCreateXML                 = xenUnifiedDomainCreateXML,
+    .domainLookupByID                = xenUnifiedDomainLookupByID,
+    .domainLookupByUUID              = xenUnifiedDomainLookupByUUID,
+    .domainLookupByName              = xenUnifiedDomainLookupByName,
+    .domainSuspend                   = xenUnifiedDomainSuspend,
+    .domainResume                    = xenUnifiedDomainResume,
+    .domainShutdown                  = xenUnifiedDomainShutdown,
+    .domainReboot                    = xenUnifiedDomainReboot,
+    .domainDestroy                   = xenUnifiedDomainDestroy,
+    .domainGetOSType                 = xenUnifiedDomainGetOSType,
+    .domainGetMaxMemory              = xenUnifiedDomainGetMaxMemory,
+    .domainSetMaxMemory              = xenUnifiedDomainSetMaxMemory,
+    .domainSetMemory                 = xenUnifiedDomainSetMemory,
+    .domainGetInfo                   = xenUnifiedDomainGetInfo,
+    .domainSave                      = xenUnifiedDomainSave,
+    .domainRestore                   = xenUnifiedDomainRestore,
+    .domainCoreDump                  = xenUnifiedDomainCoreDump,
+    .domainSetVcpus                  = xenUnifiedDomainSetVcpus,
+    .domainSetVcpusFlags             = xenUnifiedDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = xenUnifiedDomainGetVcpusFlags,
+    .domainPinVcpu                   = xenUnifiedDomainPinVcpu,
+    .domainGetVcpus                  = xenUnifiedDomainGetVcpus,
+    .domainGetMaxVcpus               = xenUnifiedDomainGetMaxVcpus,
+    .domainGetXMLDesc                = xenUnifiedDomainGetXMLDesc,
+    .domainXMLFromNative             = xenUnifiedDomainXMLFromNative,
+    .domainXMLToNative               = xenUnifiedDomainXMLToNative,
+    .listDefinedDomains              = xenUnifiedListDefinedDomains,
+    .numOfDefinedDomains             = xenUnifiedNumOfDefinedDomains,
+    .domainCreate                    = xenUnifiedDomainCreate,
+    .domainCreateWithFlags           = xenUnifiedDomainCreateWithFlags,
+    .domainDefineXML                 = xenUnifiedDomainDefineXML,
+    .domainUndefine                  = xenUnifiedDomainUndefine,
+    .domainAttachDevice              = xenUnifiedDomainAttachDevice,
+    .domainAttachDeviceFlags         = xenUnifiedDomainAttachDeviceFlags,
+    .domainDetachDevice              = xenUnifiedDomainDetachDevice,
+    .domainDetachDeviceFlags         = xenUnifiedDomainDetachDeviceFlags,
+    .domainUpdateDeviceFlags         = xenUnifiedDomainUpdateDeviceFlags,
+    .domainGetAutostart              = xenUnifiedDomainGetAutostart,
+    .domainSetAutostart              = xenUnifiedDomainSetAutostart,
+    .domainGetSchedulerType          = xenUnifiedDomainGetSchedulerType,
+    .domainGetSchedulerParameters    = xenUnifiedDomainGetSchedulerParameters,
+    .domainSetSchedulerParameters    = xenUnifiedDomainSetSchedulerParameters,
+    .domainMigratePrepare            = xenUnifiedDomainMigratePrepare,
+    .domainMigratePerform            = xenUnifiedDomainMigratePerform,
+    .domainMigrateFinish             = xenUnifiedDomainMigrateFinish,
+    .domainBlockStats                = xenUnifiedDomainBlockStats,
+    .domainInterfaceStats            = xenUnifiedDomainInterfaceStats,
+    .domainBlockPeek                 = xenUnifiedDomainBlockPeek,
+    .nodeGetCellsFreeMemory          = xenUnifiedNodeGetCellsFreeMemory,
+    .getFreeMemory                   = xenUnifiedNodeGetFreeMemory,
+    .domainEventRegister             = xenUnifiedDomainEventRegister,
+    .domainEventDeregister           = xenUnifiedDomainEventDeregister,
+    .nodeDeviceDettach               = xenUnifiedNodeDeviceDettach,
+    .nodeDeviceReAttach              = xenUnifiedNodeDeviceReAttach,
+    .nodeDeviceReset                 = xenUnifiedNodeDeviceReset,
+    .isEncrypted                     = xenUnifiedIsEncrypted,
+    .isSecure                        = xenUnifiedIsSecure,
+    .domainIsActive                  = xenUnifiedDomainIsActive,
+    .domainIsPersistent              = xenUnifiedDomainIsPersistent,
+    .domainIsUpdated                 = xenUnifiedDomainIsUpdated,
+    .domainEventRegisterAny          = xenUnifiedDomainEventRegisterAny,
+    .domainEventDeregisterAny        = xenUnifiedDomainEventDeregisterAny,
+    .domainOpenConsole               = xenUnifiedDomainOpenConsole,
 };
 
 /**
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index f442cfd..52bd26d 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -802,44 +802,24 @@ typedef struct xen_op_v2_dom xen_op_v2_dom;
 static unsigned long xenHypervisorGetMaxMemory(virDomainPtr domain);
 
 struct xenUnifiedDriver xenHypervisorDriver = {
-    xenHypervisorOpen, /* open */
-    xenHypervisorClose, /* close */
-    xenHypervisorGetVersion, /* version */
-    NULL, /* hostname */
-    NULL, /* nodeGetInfo */
-    xenHypervisorGetCapabilities, /* getCapabilities */
-    xenHypervisorListDomains, /* listDomains */
-    xenHypervisorNumOfDomains, /* numOfDomains */
-    NULL, /* domainCreateXML */
-    xenHypervisorPauseDomain, /* domainSuspend */
-    xenHypervisorResumeDomain, /* domainResume */
-    NULL, /* domainShutdown */
-    NULL, /* domainReboot */
-    xenHypervisorDestroyDomain, /* domainDestroy */
-    xenHypervisorDomainGetOSType, /* domainGetOSType */
-    xenHypervisorGetMaxMemory, /* domainGetMaxMemory */
-    xenHypervisorSetMaxMemory, /* domainSetMaxMemory */
-    NULL, /* domainSetMemory */
-    xenHypervisorGetDomainInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    xenHypervisorPinVcpu, /* domainPinVcpu */
-    xenHypervisorGetVcpus, /* domainGetVcpus */
-    NULL, /* listDefinedDomains */
-    NULL, /* numOfDefinedDomains */
-    NULL, /* domainCreate */
-    NULL, /* domainDefineXML */
-    NULL, /* domainUndefine */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    NULL, /* domainGetAutostart */
-    NULL, /* domainSetAutostart */
-    xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
-    xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
-    xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */
+    .open                            = xenHypervisorOpen,
+    .close                           = xenHypervisorClose,
+    .version                         = xenHypervisorGetVersion,
+    .getCapabilities                 = xenHypervisorGetCapabilities,
+    .listDomains                     = xenHypervisorListDomains,
+    .numOfDomains                    = xenHypervisorNumOfDomains,
+    .domainSuspend                   = xenHypervisorPauseDomain,
+    .domainResume                    = xenHypervisorResumeDomain,
+    .domainDestroy                   = xenHypervisorDestroyDomain,
+    .domainGetOSType                 = xenHypervisorDomainGetOSType,
+    .domainGetMaxMemory              = xenHypervisorGetMaxMemory,
+    .domainSetMaxMemory              = xenHypervisorSetMaxMemory,
+    .domainGetInfo                   = xenHypervisorGetDomainInfo,
+    .domainPinVcpu                   = xenHypervisorPinVcpu,
+    .domainGetVcpus                  = xenHypervisorGetVcpus,
+    .domainGetSchedulerType          = xenHypervisorGetSchedulerType,
+    .domainGetSchedulerParameters    = xenHypervisorGetSchedulerParameters,
+    .domainSetSchedulerParameters    = xenHypervisorSetSchedulerParameters,
 };
 
 #define virXenError(code, ...)                                             \
diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c
index 71bb6be..69ff48c 100644
--- a/src/xen/xen_inotify.c
+++ b/src/xen/xen_inotify.c
@@ -50,44 +50,8 @@
                              __FUNCTION__, __LINE__, __VA_ARGS__)
 
 struct xenUnifiedDriver xenInotifyDriver = {
-    xenInotifyOpen, /* open */
-    xenInotifyClose, /* close */
-    NULL, /* version */
-    NULL, /* hostname */
-    NULL, /* nodeGetInfo */
-    NULL, /* getCapabilities */
-    NULL, /* listDomains */
-    NULL, /* numOfDomains */
-    NULL, /* domainCreateLinux */
-    NULL, /* domainSuspend */
-    NULL, /* domainResume */
-    NULL, /* domainShutdown */
-    NULL, /* domainReboot */
-    NULL, /* domainDestroy */
-    NULL, /* domainGetOSType */
-    NULL, /* domainGetMaxMemory */
-    NULL, /* domainSetMaxMemory */
-    NULL, /* domainSetMemory */
-    NULL, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    NULL, /* listDefinedDomains */
-    NULL, /* numOfDefinedDomains */
-    NULL, /* domainCreate */
-    NULL, /* domainDefineXML */
-    NULL, /* domainUndefine */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    NULL, /* domainGetAutostart */
-    NULL, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
+    .open                            = xenInotifyOpen,
+    .close                           = xenInotifyClose,
 };
 
 static int
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 8bd5ddf..5d7799a 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -3842,44 +3842,41 @@ xenDaemonDomainBlockPeek (virDomainPtr domain, const char *path,
 }
 
 struct xenUnifiedDriver xenDaemonDriver = {
-    xenDaemonOpen,               /* open */
-    xenDaemonClose,              /* close */
-    xenDaemonGetVersion,         /* version */
-    NULL,                        /* hostname */
-    xenDaemonNodeGetInfo,        /* nodeGetInfo */
-    NULL,                        /* getCapabilities */
-    xenDaemonListDomains,        /* listDomains */
-    xenDaemonNumOfDomains,       /* numOfDomains */
-    xenDaemonCreateXML,          /* domainCreateXML */
-    xenDaemonDomainSuspend,      /* domainSuspend */
-    xenDaemonDomainResume,       /* domainResume */
-    xenDaemonDomainShutdown,     /* domainShutdown */
-    xenDaemonDomainReboot,       /* domainReboot */
-    xenDaemonDomainDestroy,      /* domainDestroy */
-    xenDaemonDomainGetOSType,    /* domainGetOSType */
-    xenDaemonDomainGetMaxMemory, /* domainGetMaxMemory */
-    xenDaemonDomainSetMaxMemory, /* domainSetMaxMemory */
-    xenDaemonDomainSetMemory,    /* domainMaxMemory */
-    xenDaemonDomainGetInfo,      /* domainGetInfo */
-    xenDaemonDomainSave,         /* domainSave */
-    xenDaemonDomainRestore,      /* domainRestore */
-    xenDaemonDomainCoreDump,     /* domainCoreDump */
-    NULL,                        /* domainScreenshot */
-    xenDaemonDomainPinVcpu,      /* domainPinVcpu */
-    xenDaemonDomainGetVcpus,     /* domainGetVcpus */
-    xenDaemonListDefinedDomains, /* listDefinedDomains */
-    xenDaemonNumOfDefinedDomains,/* numOfDefinedDomains */
-    xenDaemonDomainCreate,       /* domainCreate */
-    xenDaemonDomainDefineXML,    /* domainDefineXML */
-    xenDaemonDomainUndefine,     /* domainUndefine */
-    xenDaemonAttachDeviceFlags,       /* domainAttachDeviceFlags */
-    xenDaemonDetachDeviceFlags,       /* domainDetachDeviceFlags */
-    xenDaemonUpdateDeviceFlags,       /* domainUpdateDeviceFlags */
-    xenDaemonDomainGetAutostart, /* domainGetAutostart */
-    xenDaemonDomainSetAutostart, /* domainSetAutostart */
-    xenDaemonGetSchedulerType,   /* domainGetSchedulerType */
-    xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
-    xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
+    .open                            = xenDaemonOpen,
+    .close                           = xenDaemonClose,
+    .version                         = xenDaemonGetVersion,
+    .nodeGetInfo                     = xenDaemonNodeGetInfo,
+    .listDomains                     = xenDaemonListDomains,
+    .numOfDomains                    = xenDaemonNumOfDomains,
+    .domainCreateXML                 = xenDaemonCreateXML,
+    .domainSuspend                   = xenDaemonDomainSuspend,
+    .domainResume                    = xenDaemonDomainResume,
+    .domainShutdown                  = xenDaemonDomainShutdown,
+    .domainReboot                    = xenDaemonDomainReboot,
+    .domainDestroy                   = xenDaemonDomainDestroy,
+    .domainGetOSType                 = xenDaemonDomainGetOSType,
+    .domainGetMaxMemory              = xenDaemonDomainGetMaxMemory,
+    .domainSetMaxMemory              = xenDaemonDomainSetMaxMemory,
+    .domainMaxMemory                 = xenDaemonDomainSetMemory,
+    .domainGetInfo                   = xenDaemonDomainGetInfo,
+    .domainSave                      = xenDaemonDomainSave,
+    .domainRestore                   = xenDaemonDomainRestore,
+    .domainCoreDump                  = xenDaemonDomainCoreDump,
+    .domainPinVcpu                   = xenDaemonDomainPinVcpu,
+    .domainGetVcpus                  = xenDaemonDomainGetVcpus,
+    .listDefinedDomains              = xenDaemonListDefinedDomains,
+    .numOfDefinedDomains             = xenDaemonNumOfDefinedDomains,
+    .domainCreate                    = xenDaemonDomainCreate,
+    .domainDefineXML                 = xenDaemonDomainDefineXML,
+    .domainUndefine                  = xenDaemonDomainUndefine,
+    .domainAttachDeviceFlags         = xenDaemonAttachDeviceFlags,
+    .domainDetachDeviceFlags         = xenDaemonDetachDeviceFlags,
+    .domainUpdateDeviceFlags         = xenDaemonUpdateDeviceFlags,
+    .domainGetAutostart              = xenDaemonDomainGetAutostart,
+    .domainSetAutostart              = xenDaemonDomainSetAutostart,
+    .domainGetSchedulerType          = xenDaemonGetSchedulerType,
+    .domainGetSchedulerParameters    = xenDaemonGetSchedulerParameters,
+    .domainSetSchedulerParameters    = xenDaemonSetSchedulerParameters,
 };
 
 
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index 642a5ee..f207314 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -81,44 +81,20 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
 #define XM_XML_ERROR "Invalid xml"
 
 struct xenUnifiedDriver xenXMDriver = {
-    xenXMOpen, /* open */
-    xenXMClose, /* close */
-    NULL, /* version */
-    NULL, /* hostname */
-    NULL, /* nodeGetInfo */
-    NULL, /* getCapabilities */
-    NULL, /* listDomains */
-    NULL, /* numOfDomains */
-    NULL, /* domainCreateXML */
-    NULL, /* domainSuspend */
-    NULL, /* domainResume */
-    NULL, /* domainShutdown */
-    NULL, /* domainReboot */
-    NULL, /* domainDestroy */
-    NULL, /* domainGetOSType */
-    xenXMDomainGetMaxMemory, /* domainGetMaxMemory */
-    xenXMDomainSetMaxMemory, /* domainSetMaxMemory */
-    xenXMDomainSetMemory, /* domainMaxMemory */
-    xenXMDomainGetInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    xenXMDomainPinVcpu, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    xenXMListDefinedDomains, /* listDefinedDomains */
-    xenXMNumOfDefinedDomains, /* numOfDefinedDomains */
-    xenXMDomainCreate, /* domainCreate */
-    xenXMDomainDefineXML, /* domainDefineXML */
-    xenXMDomainUndefine, /* domainUndefine */
-    xenXMDomainAttachDeviceFlags, /* domainAttachDeviceFlags */
-    xenXMDomainDetachDeviceFlags, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    NULL, /* domainGetAutostart */
-    NULL, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
+    .open                            = xenXMOpen,
+    .close                           = xenXMClose,
+    .domainGetMaxMemory              = xenXMDomainGetMaxMemory,
+    .domainSetMaxMemory              = xenXMDomainSetMaxMemory,
+    .domainMaxMemory                 = xenXMDomainSetMemory,
+    .domainGetInfo                   = xenXMDomainGetInfo,
+    .domainPinVcpu                   = xenXMDomainPinVcpu,
+    .listDefinedDomains              = xenXMListDefinedDomains,
+    .numOfDefinedDomains             = xenXMNumOfDefinedDomains,
+    .domainCreate                    = xenXMDomainCreate,
+    .domainDefineXML                 = xenXMDomainDefineXML,
+    .domainUndefine                  = xenXMDomainUndefine,
+    .domainAttachDeviceFlags         = xenXMDomainAttachDeviceFlags,
+    .domainDetachDeviceFlags         = xenXMDomainDetachDeviceFlags,
 };
 
 #define xenXMError(code, ...)                                              \
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c
index 4529ef4..10dbe36 100644
--- a/src/xen/xs_internal.c
+++ b/src/xen/xs_internal.c
@@ -43,44 +43,15 @@ static void xenStoreWatchEvent(int watch, int fd, int events, void *data);
 static void xenStoreWatchListFree(xenStoreWatchListPtr list);
 
 struct xenUnifiedDriver xenStoreDriver = {
-    xenStoreOpen, /* open */
-    xenStoreClose, /* close */
-    NULL, /* version */
-    NULL, /* hostname */
-    NULL, /* nodeGetInfo */
-    NULL, /* getCapabilities */
-    xenStoreListDomains, /* listDomains */
-    NULL, /* numOfDomains */
-    NULL, /* domainCreateXML */
-    NULL, /* domainSuspend */
-    NULL, /* domainResume */
-    xenStoreDomainShutdown, /* domainShutdown */
-    xenStoreDomainReboot, /* domainReboot */
-    NULL, /* domainDestroy */
-    xenStoreDomainGetOSType, /* domainGetOSType */
-    xenStoreDomainGetMaxMemory, /* domainGetMaxMemory */
-    NULL, /* domainSetMaxMemory */
-    xenStoreDomainSetMemory, /* domainSetMemory */
-    xenStoreGetDomainInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    NULL, /* domainPinVcpu */
-    NULL, /* domainGetVcpus */
-    NULL, /* listDefinedDomains */
-    NULL, /* numOfDefinedDomains */
-    NULL, /* domainCreate */
-    NULL, /* domainDefineXML */
-    NULL, /* domainUndefine */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    NULL, /* domainGetAutostart */
-    NULL, /* domainSetAutostart */
-    NULL, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
+    .open                            = xenStoreOpen,
+    .close                           = xenStoreClose,
+    .listDomains                     = xenStoreListDomains,
+    .domainShutdown                  = xenStoreDomainShutdown,
+    .domainReboot                    = xenStoreDomainReboot,
+    .domainGetOSType                 = xenStoreDomainGetOSType,
+    .domainGetMaxMemory              = xenStoreDomainGetMaxMemory,
+    .domainSetMemory                 = xenStoreDomainSetMemory,
+    .domainGetInfo                   = xenStoreGetDomainInfo,
 };
 
 #define virXenStoreError(code, ...)                                  \
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 136356d..239a6d2 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -1779,118 +1779,51 @@ xenapiNodeGetCellsFreeMemory (virConnectPtr conn, unsigned long long *freeMems,
 
 /* The interface which we export upwards to libvirt.c. */
 static virDriver xenapiDriver = {
-    VIR_DRV_XENAPI,
-    "XenAPI",
-    xenapiOpen, /* open */
-    xenapiClose, /* close */
-    xenapiSupportsFeature, /* supports_feature */
-    xenapiType, /* type */
-    xenapiGetVersion, /* version */
-    NULL, /*getlibvirtVersion */
-    xenapiGetHostname, /* getHostname */
-    NULL, /* getSysinfo */
-    xenapiGetMaxVcpus, /* getMaxVcpus */
-    xenapiNodeGetInfo, /* nodeGetInfo */
-    xenapiGetCapabilities, /* getCapabilities */
-    xenapiListDomains, /* listDomains */
-    xenapiNumOfDomains, /* numOfDomains */
-    xenapiDomainCreateXML, /* domainCreateXML */
-    xenapiDomainLookupByID, /* domainLookupByID */
-    xenapiDomainLookupByUUID, /* domainLookupByUUID */
-    xenapiDomainLookupByName, /* domainLookupByName */
-    xenapiDomainSuspend, /* domainSuspend */
-    xenapiDomainResume, /* domainResume */
-    xenapiDomainShutdown, /* domainShutdown */
-    xenapiDomainReboot, /* domainReboot */
-    xenapiDomainDestroy, /* domainDestroy */
-    xenapiDomainGetOSType, /* domainGetOSType */
-    xenapiDomainGetMaxMemory, /* domainGetMaxMemory */
-    xenapiDomainSetMaxMemory, /* domainSetMaxMemory */
-    NULL, /* domainSetMemory */
-    NULL, /* domainSetMemoryFlags */
-    NULL, /* domainSetMemoryParameters */
-    NULL, /* domainGetMemoryParameters */
-    NULL, /* domainSetBlkioParameters */
-    NULL, /* domainGetBlkioParameters */
-    xenapiDomainGetInfo, /* domainGetInfo */
-    NULL, /* domainSave */
-    NULL, /* domainRestore */
-    NULL, /* domainCoreDump */
-    NULL, /* domainScreenshot */
-    xenapiDomainSetVcpus, /* domainSetVcpus */
-    xenapiDomainSetVcpusFlags, /* domainSetVcpusFlags */
-    xenapiDomainGetVcpusFlags, /* domainGetVcpusFlags */
-    xenapiDomainPinVcpu, /* domainPinVcpu */
-    xenapiDomainGetVcpus, /* domainGetVcpus */
-    xenapiDomainGetMaxVcpus, /* domainGetMaxVcpus */
-    NULL, /* domainGetSecurityLabel */
-    NULL, /* nodeGetSecurityModel */
-    xenapiDomainGetXMLDesc, /* domainGetXMLDesc */
-    NULL, /* domainXmlFromNative */
-    NULL, /* domainXmlToNative */
-    xenapiListDefinedDomains, /* listDefinedDomains */
-    xenapiNumOfDefinedDomains, /* numOfDefinedDomains */
-    xenapiDomainCreate, /* domainCreate */
-    xenapiDomainCreateWithFlags, /* domainCreateWithFlags */
-    xenapiDomainDefineXML, /* domainDefineXML */
-    xenapiDomainUndefine, /* domainUndefine */
-    NULL, /* domainAttachDevice */
-    NULL, /* domainAttachDeviceFlags */
-    NULL, /* domainDetachDevice */
-    NULL, /* domainDetachDeviceFlags */
-    NULL, /* domainUpdateDeviceFlags */
-    xenapiDomainGetAutostart, /* domainGetAutostart */
-    xenapiDomainSetAutostart, /* domainSetAutostart */
-    xenapiDomainGetSchedulerType, /* domainGetSchedulerType */
-    NULL, /* domainGetSchedulerParameters */
-    NULL, /* domainSetSchedulerParameters */
-    NULL, /* domainMigratePrepare */
-    NULL, /* domainMigratePerform */
-    NULL, /* domainMigrateFinish */
-    NULL, /* domainBlockStats */
-    NULL, /* domainInterfaceStats */
-    NULL, /* domainMemoryStats */
-    NULL, /* domainBlockPeek */
-    NULL, /* domainMemoryPeek */
-    NULL, /* domainGetBlockInfo */
-    xenapiNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
-    xenapiNodeGetFreeMemory, /* getFreeMemory */
-    NULL, /* domainEventRegister */
-    NULL, /* domainEventDeregister */
-    NULL, /* domainMigratePrepare2 */
-    NULL, /* domainMigrateFinish2 */
-    NULL, /* nodeDeviceDettach */
-    NULL, /* nodeDeviceReAttach */
-    NULL, /* nodeDeviceReset */
-    NULL, /* domainMigratePrepareTunnel */
-    NULL, /* isEncrypted */
-    NULL, /* isSecure */
-    NULL, /* domainIsActive */
-    NULL, /* domainIsPersistent */
-    xenapiDomainIsUpdated, /* domainIsUpdated */
-    NULL, /* cpuCompare */
-    NULL, /* cpuBaseline */
-    NULL, /* domainGetJobInfo */
-    NULL, /* domainAbortJob */
-    NULL, /* domainMigrateSetMaxDowntime */
-    NULL, /* domainMigrateSetMaxSpeed */
-    NULL, /* domainEventRegisterAny */
-    NULL, /* domainEventDeregisterAny */
-    NULL, /* domainManagedSave */
-    NULL, /* domainHasManagedSaveImage */
-    NULL, /* domainManagedSaveRemove */
-    NULL, /* domainSnapshotCreateXML */
-    NULL, /* domainSnapshotGetXMLDesc */
-    NULL, /* domainSnapshotNum */
-    NULL, /* domainSnapshotListNames */
-    NULL, /* domainSnapshotLookupByName */
-    NULL, /* domainHasCurrentSnapshot */
-    NULL, /* domainSnapshotCurrent */
-    NULL, /* domainRevertToSnapshot */
-    NULL, /* domainSnapshotDelete */
-    NULL, /* qemuDomainMonitorCommand */
-    NULL, /* domainOpenConsole */
-    NULL, /* domainInjectNMI */
+    .no                              = VIR_DRV_XENAPI,
+    .name                            = "XenAPI",
+    .open                            = xenapiOpen,
+    .close                           = xenapiClose,
+    .supports_feature                = xenapiSupportsFeature,
+    .type                            = xenapiType,
+    .version                         = xenapiGetVersion,
+    .getHostname                     = xenapiGetHostname,
+    .getMaxVcpus                     = xenapiGetMaxVcpus,
+    .nodeGetInfo                     = xenapiNodeGetInfo,
+    .getCapabilities                 = xenapiGetCapabilities,
+    .listDomains                     = xenapiListDomains,
+    .numOfDomains                    = xenapiNumOfDomains,
+    .domainCreateXML                 = xenapiDomainCreateXML,
+    .domainLookupByID                = xenapiDomainLookupByID,
+    .domainLookupByUUID              = xenapiDomainLookupByUUID,
+    .domainLookupByName              = xenapiDomainLookupByName,
+    .domainSuspend                   = xenapiDomainSuspend,
+    .domainResume                    = xenapiDomainResume,
+    .domainShutdown                  = xenapiDomainShutdown,
+    .domainReboot                    = xenapiDomainReboot,
+    .domainDestroy                   = xenapiDomainDestroy,
+    .domainGetOSType                 = xenapiDomainGetOSType,
+    .domainGetMaxMemory              = xenapiDomainGetMaxMemory,
+    .domainSetMaxMemory              = xenapiDomainSetMaxMemory,
+    .domainGetInfo                   = xenapiDomainGetInfo,
+    .domainSetVcpus                  = xenapiDomainSetVcpus,
+    .domainSetVcpusFlags             = xenapiDomainSetVcpusFlags,
+    .domainGetVcpusFlags             = xenapiDomainGetVcpusFlags,
+    .domainPinVcpu                   = xenapiDomainPinVcpu,
+    .domainGetVcpus                  = xenapiDomainGetVcpus,
+    .domainGetMaxVcpus               = xenapiDomainGetMaxVcpus,
+    .domainGetXMLDesc                = xenapiDomainGetXMLDesc,
+    .listDefinedDomains              = xenapiListDefinedDomains,
+    .numOfDefinedDomains             = xenapiNumOfDefinedDomains,
+    .domainCreate                    = xenapiDomainCreate,
+    .domainCreateWithFlags           = xenapiDomainCreateWithFlags,
+    .domainDefineXML                 = xenapiDomainDefineXML,
+    .domainUndefine                  = xenapiDomainUndefine,
+    .domainGetAutostart              = xenapiDomainGetAutostart,
+    .domainSetAutostart              = xenapiDomainSetAutostart,
+    .domainGetSchedulerType          = xenapiDomainGetSchedulerType,
+    .nodeGetCellsFreeMemory          = xenapiNodeGetCellsFreeMemory,
+    .getFreeMemory                   = xenapiNodeGetFreeMemory,
+    .domainIsUpdated                 = xenapiDomainIsUpdated,
 };
 
 /**




More information about the libvir-list mailing list