[libvirt] [PATCH 02/12] Split driver.h into multiple parts

Daniel P. Berrange berrange at redhat.com
Wed Oct 22 17:14:52 UTC 2014


With the large number of APIs in libvirt the driver.h file,
it is easy to get lost looking for things. Split each driver
into a separate header file based on the functional driver
groups.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 src/driver-hypervisor.h | 1396 ++++++++++++++++++++++++++++++
 src/driver-interface.h  |  131 +++
 src/driver-network.h    |  166 ++++
 src/driver-nodedev.h    |  112 +++
 src/driver-nwfilter.h   |   94 ++
 src/driver-secret.h     |  114 +++
 src/driver-state.h      |   58 ++
 src/driver-storage.h    |  265 ++++++
 src/driver-stream.h     |   72 ++
 src/driver.h            | 2170 +----------------------------------------------
 10 files changed, 2423 insertions(+), 2155 deletions(-)
 create mode 100644 src/driver-hypervisor.h
 create mode 100644 src/driver-interface.h
 create mode 100644 src/driver-network.h
 create mode 100644 src/driver-nodedev.h
 create mode 100644 src/driver-nwfilter.h
 create mode 100644 src/driver-secret.h
 create mode 100644 src/driver-state.h
 create mode 100644 src/driver-storage.h
 create mode 100644 src/driver-stream.h

diff --git a/src/driver-hypervisor.h b/src/driver-hypervisor.h
new file mode 100644
index 0000000..ad66629
--- /dev/null
+++ b/src/driver-hypervisor.h
@@ -0,0 +1,1396 @@
+/*
+ * driver-hypervisor.h: entry points for hypervisor drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_HYPERVISOR_H__
+# define __VIR_DRIVER_HYPERVISOR_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef virDrvOpenStatus
+(*virDrvConnectOpen)(virConnectPtr conn,
+                     virConnectAuthPtr auth,
+                     unsigned int flags);
+
+typedef int
+(*virDrvConnectClose)(virConnectPtr conn);
+
+
+typedef int
+(*virDrvConnectSupportsFeature)(virConnectPtr conn,
+                                int feature);
+
+typedef const char *
+(*virDrvConnectGetType)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectGetVersion)(virConnectPtr conn,
+                           unsigned long *hvVer);
+
+typedef int
+(*virDrvConnectGetLibVersion)(virConnectPtr conn,
+                              unsigned long *libVer);
+
+typedef char *
+(*virDrvConnectGetHostname)(virConnectPtr conn);
+
+typedef char *
+(*virDrvConnectGetURI)(virConnectPtr conn);
+
+typedef char *
+(*virDrvConnectGetSysinfo)(virConnectPtr conn,
+                           unsigned int flags);
+
+typedef int
+(*virDrvConnectGetMaxVcpus)(virConnectPtr conn,
+                            const char *type);
+
+typedef int
+(*virDrvNodeGetInfo)(virConnectPtr conn,
+                     virNodeInfoPtr info);
+
+typedef char *
+(*virDrvConnectGetCapabilities)(virConnectPtr conn);
+
+typedef char *
+(*virDrvConnectGetDomainCapabilities)(virConnectPtr conn,
+                                      const char *emulatorbin,
+                                      const char *arch,
+                                      const char *machine,
+                                      const char *virttype,
+                                      unsigned int flags);
+
+typedef int
+(*virDrvConnectListDomains)(virConnectPtr conn,
+                            int *ids,
+                            int maxids);
+
+typedef int
+(*virDrvConnectNumOfDomains)(virConnectPtr conn);
+
+typedef virDomainPtr
+(*virDrvDomainCreateXML)(virConnectPtr conn,
+                         const char *xmlDesc,
+                         unsigned int flags);
+typedef virDomainPtr
+(*virDrvDomainCreateXMLWithFiles)(virConnectPtr conn,
+                                  const char *xmlDesc,
+                                  unsigned int nfiles,
+                                  int *files,
+                                  unsigned int flags);
+
+typedef virDomainPtr
+(*virDrvDomainLookupByID)(virConnectPtr conn,
+                          int id);
+
+typedef virDomainPtr
+(*virDrvDomainLookupByUUID)(virConnectPtr conn,
+                            const unsigned char *uuid);
+
+typedef virDomainPtr
+(*virDrvDomainLookupByName)(virConnectPtr conn,
+                            const char *name);
+
+typedef int
+(*virDrvDomainSuspend)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainResume)(virDomainPtr domain);
+
+typedef int
+ (*virDrvDomainPMSuspendForDuration)(virDomainPtr,
+                                     unsigned int target,
+                                     unsigned long long duration,
+                                     unsigned int flags);
+
+typedef int
+(*virDrvDomainPMWakeup)(virDomainPtr domain,
+                        unsigned int flags);
+
+typedef int
+(*virDrvDomainShutdown)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainReboot)(virDomainPtr domain,
+                      unsigned int flags);
+
+typedef int
+(*virDrvDomainReset)(virDomainPtr domain,
+                     unsigned int flags);
+
+typedef int
+(*virDrvDomainDestroy)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainDestroyFlags)(virDomainPtr domain,
+                            unsigned int flags);
+
+typedef char *
+(*virDrvDomainGetOSType)(virDomainPtr domain);
+
+typedef char *
+(*virDrvDomainGetHostname)(virDomainPtr domain,
+                           unsigned int flags);
+
+typedef unsigned long long
+(*virDrvDomainGetMaxMemory)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainSetMaxMemory)(virDomainPtr domain,
+                            unsigned long memory);
+
+typedef int
+(*virDrvDomainSetMemory)(virDomainPtr domain,
+                         unsigned long memory);
+
+typedef int
+(*virDrvDomainSetMemoryFlags)(virDomainPtr domain,
+                              unsigned long memory,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainSetMemoryStatsPeriod)(virDomainPtr domain,
+                                    int period,
+                                    unsigned int flags);
+
+typedef int
+(*virDrvDomainSetMemoryParameters)(virDomainPtr domain,
+                                   virTypedParameterPtr params,
+                                   int nparams,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainGetMemoryParameters)(virDomainPtr domain,
+                                   virTypedParameterPtr params,
+                                   int *nparams,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainSetNumaParameters)(virDomainPtr domain,
+                                 virTypedParameterPtr params,
+                                 int nparams,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainGetNumaParameters)(virDomainPtr domain,
+                                 virTypedParameterPtr params,
+                                 int *nparams,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainSetBlkioParameters)(virDomainPtr domain,
+                                  virTypedParameterPtr params,
+                                  int nparams,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainGetBlkioParameters)(virDomainPtr domain,
+                                  virTypedParameterPtr params,
+                                  int *nparams,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainGetInfo)(virDomainPtr domain,
+                       virDomainInfoPtr info);
+
+typedef int
+(*virDrvDomainGetState)(virDomainPtr domain,
+                        int *state,
+                        int *reason,
+                        unsigned int flags);
+
+typedef int
+(*virDrvDomainGetControlInfo)(virDomainPtr domain,
+                              virDomainControlInfoPtr info,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainSave)(virDomainPtr domain,
+                    const char *to);
+
+typedef int
+(*virDrvDomainSaveFlags)(virDomainPtr domain,
+                         const char *to,
+                         const char *dxml,
+                         unsigned int flags);
+
+typedef int
+(*virDrvDomainRestore)(virConnectPtr conn,
+                       const char *from);
+
+typedef int
+(*virDrvDomainRestoreFlags)(virConnectPtr conn,
+                            const char *from,
+                            const char *dxml,
+                            unsigned int flags);
+
+typedef char *
+(*virDrvDomainSaveImageGetXMLDesc)(virConnectPtr conn,
+                                   const char *file,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainSaveImageDefineXML)(virConnectPtr conn,
+                                  const char *file,
+                                  const char *dxml,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainCoreDump)(virDomainPtr domain,
+                        const char *to,
+                        unsigned int flags);
+
+typedef int
+(*virDrvDomainCoreDumpWithFormat)(virDomainPtr domain,
+                                  const char *to,
+                                  unsigned int dumpformat,
+                                  unsigned int flags);
+
+typedef char *
+(*virDrvDomainScreenshot)(virDomainPtr domain,
+                          virStreamPtr stream,
+                          unsigned int screen,
+                          unsigned int flags);
+
+typedef char *
+(*virDrvDomainGetXMLDesc)(virDomainPtr dom,
+                          unsigned int flags);
+
+typedef char *
+(*virDrvConnectDomainXMLFromNative)(virConnectPtr conn,
+                                    const char *nativeFormat,
+                                    const char *nativeConfig,
+                                    unsigned int flags);
+
+typedef char *
+(*virDrvConnectDomainXMLToNative)(virConnectPtr conn,
+                                  const char *nativeFormat,
+                                  const char *domainXml,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvConnectListDefinedDomains)(virConnectPtr conn,
+                                   char **const names,
+                                   int maxnames);
+
+typedef int
+(*virDrvConnectListAllDomains)(virConnectPtr conn,
+                               virDomainPtr **domains,
+                               unsigned int flags);
+
+typedef int
+(*virDrvConnectNumOfDefinedDomains)(virConnectPtr conn);
+
+typedef int
+(*virDrvDomainCreate)(virDomainPtr dom);
+
+typedef int
+(*virDrvDomainCreateWithFlags)(virDomainPtr dom,
+                               unsigned int flags);
+typedef int
+(*virDrvDomainCreateWithFiles)(virDomainPtr dom,
+                               unsigned int nfiles,
+                               int *files,
+                               unsigned int flags);
+
+typedef virDomainPtr
+(*virDrvDomainDefineXML)(virConnectPtr conn,
+                         const char *xml);
+
+typedef int
+(*virDrvDomainUndefine)(virDomainPtr dom);
+
+typedef int
+(*virDrvDomainUndefineFlags)(virDomainPtr dom,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainSetVcpus)(virDomainPtr domain,
+                        unsigned int nvcpus);
+
+typedef int
+(*virDrvDomainSetVcpusFlags)(virDomainPtr domain,
+                             unsigned int nvcpus,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainGetVcpusFlags)(virDomainPtr domain,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainPinVcpu)(virDomainPtr domain,
+                       unsigned int vcpu,
+                       unsigned char *cpumap,
+                       int maplen);
+
+typedef int
+(*virDrvDomainPinVcpuFlags)(virDomainPtr domain,
+                            unsigned int vcpu,
+                            unsigned char *cpumap,
+                            int maplen,
+                            unsigned int flags);
+
+typedef int
+(*virDrvDomainGetVcpuPinInfo)(virDomainPtr domain,
+                              int ncpumaps,
+                              unsigned char *cpumaps,
+                              int maplen,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainPinEmulator)(virDomainPtr domain,
+                           unsigned char *cpumap,
+                           int maplen,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainGetEmulatorPinInfo)(virDomainPtr domain,
+                                  unsigned char *cpumaps,
+                                  int maplen,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainGetVcpus)(virDomainPtr domain,
+                        virVcpuInfoPtr info,
+                        int maxinfo,
+                        unsigned char *cpumaps,
+                        int maplen);
+
+typedef int
+(*virDrvDomainGetMaxVcpus)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainGetSecurityLabel)(virDomainPtr domain,
+                                virSecurityLabelPtr seclabel);
+
+typedef int
+(*virDrvDomainGetSecurityLabelList)(virDomainPtr domain,
+                                    virSecurityLabelPtr* seclabels);
+
+typedef int
+(*virDrvNodeGetSecurityModel)(virConnectPtr conn,
+                              virSecurityModelPtr secmodel);
+
+typedef int
+(*virDrvDomainAttachDevice)(virDomainPtr domain,
+                            const char *xml);
+
+typedef int
+(*virDrvDomainAttachDeviceFlags)(virDomainPtr domain,
+                                 const char *xml,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainDetachDevice)(virDomainPtr domain,
+                            const char *xml);
+
+typedef int
+(*virDrvDomainDetachDeviceFlags)(virDomainPtr domain,
+                                 const char *xml,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainUpdateDeviceFlags)(virDomainPtr domain,
+                                 const char *xml,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainGetAutostart)(virDomainPtr domain,
+                            int *autostart);
+
+typedef int
+(*virDrvDomainSetAutostart)(virDomainPtr domain,
+                            int autostart);
+
+typedef char *
+(*virDrvDomainGetSchedulerType)(virDomainPtr domain,
+                                int *nparams);
+
+typedef int
+(*virDrvDomainGetSchedulerParameters)(virDomainPtr domain,
+                                      virTypedParameterPtr params,
+                                      int *nparams);
+
+typedef int
+(*virDrvDomainGetSchedulerParametersFlags)(virDomainPtr domain,
+                                           virTypedParameterPtr params,
+                                           int *nparams,
+                                           unsigned int flags);
+
+typedef int
+(*virDrvDomainSetSchedulerParameters)(virDomainPtr domain,
+                                      virTypedParameterPtr params,
+                                      int nparams);
+
+typedef int
+(*virDrvDomainSetSchedulerParametersFlags)(virDomainPtr domain,
+                                           virTypedParameterPtr params,
+                                           int nparams,
+                                           unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockStats)(virDomainPtr domain,
+                          const char *path,
+                          virDomainBlockStatsPtr stats);
+
+typedef int
+(*virDrvDomainBlockStatsFlags)(virDomainPtr domain,
+                               const char *path,
+                               virTypedParameterPtr params,
+                               int *nparams,
+                               unsigned int flags);
+
+typedef int
+(*virDrvDomainInterfaceStats)(virDomainPtr domain,
+                              const char *path,
+                              virDomainInterfaceStatsPtr stats);
+
+typedef int
+(*virDrvDomainSetInterfaceParameters)(virDomainPtr dom,
+                                      const char *device,
+                                      virTypedParameterPtr params,
+                                      int nparams,
+                                      unsigned int flags);
+
+typedef int
+(*virDrvDomainGetInterfaceParameters)(virDomainPtr dom,
+                                      const char *device,
+                                      virTypedParameterPtr params,
+                                      int *nparams,
+                                      unsigned int flags);
+
+typedef int
+(*virDrvDomainMemoryStats)(virDomainPtr domain,
+                           virDomainMemoryStatPtr stats,
+                           unsigned int nr_stats,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockPeek)(virDomainPtr domain,
+                         const char *path,
+                         unsigned long long offset,
+                         size_t size,
+                         void *buffer,
+                         unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockResize)(virDomainPtr domain,
+                           const char *path,
+                           unsigned long long size,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainMemoryPeek)(virDomainPtr domain,
+                          unsigned long long start,
+                          size_t size,
+                          void *buffer,
+                          unsigned int flags);
+
+typedef int
+(*virDrvDomainGetBlockInfo)(virDomainPtr domain,
+                            const char *path,
+                            virDomainBlockInfoPtr info,
+                            unsigned int flags);
+
+typedef int
+(*virDrvDomainMigratePrepare)(virConnectPtr dconn,
+                              char **cookie,
+                              int *cookielen,
+                              const char *uri_in,
+                              char **uri_out,
+                              unsigned long flags,
+                              const char *dname,
+                              unsigned long resource);
+
+typedef int
+(*virDrvDomainMigratePerform)(virDomainPtr domain,
+                              const char *cookie,
+                              int cookielen,
+                              const char *uri,
+                              unsigned long flags,
+                              const char *dname,
+                              unsigned long resource);
+
+typedef virDomainPtr
+(*virDrvDomainMigrateFinish)(virConnectPtr dconn,
+                             const char *dname,
+                             const char *cookie,
+                             int cookielen,
+                             const char *uri,
+                             unsigned long flags);
+
+typedef int
+(*virDrvNodeGetCPUStats)(virConnectPtr conn,
+                         int cpuNum,
+                         virNodeCPUStatsPtr params,
+                         int *nparams,
+                         unsigned int flags);
+
+typedef int
+(*virDrvNodeGetMemoryStats)(virConnectPtr conn,
+                            int cellNum,
+                            virNodeMemoryStatsPtr params,
+                            int *nparams,
+                            unsigned int flags);
+
+typedef int
+(*virDrvNodeGetCellsFreeMemory)(virConnectPtr conn,
+                                unsigned long long *freeMems,
+                                int startCell,
+                                int maxCells);
+
+typedef unsigned long long
+(*virDrvNodeGetFreeMemory)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectDomainEventRegister)(virConnectPtr conn,
+                                    virConnectDomainEventCallback cb,
+                                    void *opaque,
+                                    virFreeCallback freecb);
+
+typedef int
+(*virDrvConnectDomainEventDeregister)(virConnectPtr conn,
+                                      virConnectDomainEventCallback cb);
+
+typedef int
+(*virDrvDomainMigratePrepare2)(virConnectPtr dconn,
+                               char **cookie,
+                               int *cookielen,
+                               const char *uri_in,
+                               char **uri_out,
+                               unsigned long flags,
+                               const char *dname,
+                               unsigned long resource,
+                               const char *dom_xml);
+
+typedef virDomainPtr
+(*virDrvDomainMigrateFinish2)(virConnectPtr dconn,
+                              const char *dname,
+                              const char *cookie,
+                              int cookielen,
+                              const char *uri,
+                              unsigned long flags,
+                              int retcode);
+
+typedef int
+(*virDrvNodeDeviceDettach)(virNodeDevicePtr dev);
+
+typedef int
+(*virDrvNodeDeviceDetachFlags)(virNodeDevicePtr dev,
+                               const char *driverName,
+                               unsigned int flags);
+
+typedef int
+(*virDrvNodeDeviceReAttach)(virNodeDevicePtr dev);
+
+typedef int
+(*virDrvNodeDeviceReset)(virNodeDevicePtr dev);
+
+typedef int
+(*virDrvDomainMigratePrepareTunnel)(virConnectPtr dconn,
+                                    virStreamPtr st,
+                                    unsigned long flags,
+                                    const char *dname,
+                                    unsigned long resource,
+                                    const char *dom_xml);
+
+typedef int
+(*virDrvConnectIsEncrypted)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectIsSecure)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectIsAlive)(virConnectPtr conn);
+
+typedef int
+(*virDrvDomainIsActive)(virDomainPtr dom);
+
+typedef int
+(*virDrvDomainIsPersistent)(virDomainPtr dom);
+
+typedef int
+(*virDrvDomainIsUpdated)(virDomainPtr dom);
+
+typedef int
+(*virDrvConnectCompareCPU)(virConnectPtr conn,
+                           const char *cpu,
+                           unsigned int flags);
+
+typedef char *
+(*virDrvConnectBaselineCPU)(virConnectPtr conn,
+                            const char **xmlCPUs,
+                            unsigned int ncpus,
+                            unsigned int flags);
+
+typedef int
+(*virDrvConnectGetCPUModelNames)(virConnectPtr conn,
+                                 const char *args,
+                                 char ***models,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainGetJobInfo)(virDomainPtr domain,
+                          virDomainJobInfoPtr info);
+
+typedef int
+(*virDrvDomainGetJobStats)(virDomainPtr domain,
+                           int *type,
+                           virTypedParameterPtr *params,
+                           int *nparams,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainAbortJob)(virDomainPtr domain);
+
+typedef int
+(*virDrvDomainMigrateSetMaxDowntime)(virDomainPtr domain,
+                                     unsigned long long downtime,
+                                     unsigned int flags);
+
+typedef int
+(*virDrvDomainMigrateGetCompressionCache)(virDomainPtr domain,
+                                          unsigned long long *cacheSize,
+                                          unsigned int flags);
+
+typedef int
+(*virDrvDomainMigrateSetCompressionCache)(virDomainPtr domain,
+                                          unsigned long long cacheSize,
+                                          unsigned int flags);
+
+typedef int
+(*virDrvDomainMigrateSetMaxSpeed)(virDomainPtr domain,
+                                  unsigned long bandwidth,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainMigrateGetMaxSpeed)(virDomainPtr domain,
+                                  unsigned long *bandwidth,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvConnectDomainEventRegisterAny)(virConnectPtr conn,
+                                       virDomainPtr dom,
+                                       int eventID,
+                                       virConnectDomainEventGenericCallback cb,
+                                       void *opaque,
+                                       virFreeCallback freecb);
+
+typedef int
+(*virDrvConnectDomainEventDeregisterAny)(virConnectPtr conn,
+                                         int callbackID);
+
+typedef int
+(*virDrvDomainManagedSave)(virDomainPtr domain,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainHasManagedSaveImage)(virDomainPtr domain,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainManagedSaveRemove)(virDomainPtr domain,
+                                 unsigned int flags);
+
+typedef virDomainSnapshotPtr
+(*virDrvDomainSnapshotCreateXML)(virDomainPtr domain,
+                                 const char *xmlDesc,
+                                 unsigned int flags);
+
+typedef char *
+(*virDrvDomainSnapshotGetXMLDesc)(virDomainSnapshotPtr snapshot,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotNum)(virDomainPtr domain,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotListNames)(virDomainPtr domain,
+                                 char **names,
+                                 int nameslen,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainListAllSnapshots)(virDomainPtr domain,
+                                virDomainSnapshotPtr **snaps,
+                                unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotNumChildren)(virDomainSnapshotPtr snapshot,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotListChildrenNames)(virDomainSnapshotPtr snapshot,
+                                         char **names,
+                                         int nameslen,
+                                         unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotListAllChildren)(virDomainSnapshotPtr snapshot,
+                                       virDomainSnapshotPtr **snaps,
+                                       unsigned int flags);
+
+typedef virDomainSnapshotPtr
+(*virDrvDomainSnapshotLookupByName)(virDomainPtr domain,
+                                    const char *name,
+                                    unsigned int flags);
+
+typedef int
+(*virDrvDomainHasCurrentSnapshot)(virDomainPtr domain,
+                                  unsigned int flags);
+
+typedef virDomainSnapshotPtr
+(*virDrvDomainSnapshotGetParent)(virDomainSnapshotPtr snapshot,
+                                 unsigned int flags);
+
+typedef virDomainSnapshotPtr
+(*virDrvDomainSnapshotCurrent)(virDomainPtr domain,
+                               unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotIsCurrent)(virDomainSnapshotPtr snapshot,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotHasMetadata)(virDomainSnapshotPtr snapshot,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainRevertToSnapshot)(virDomainSnapshotPtr snapshot,
+                                unsigned int flags);
+
+typedef int
+(*virDrvDomainSnapshotDelete)(virDomainSnapshotPtr snapshot,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainQemuMonitorCommand)(virDomainPtr domain,
+                                  const char *cmd,
+                                  char **result,
+                                  unsigned int flags);
+
+typedef char *
+(*virDrvDomainQemuAgentCommand)(virDomainPtr domain,
+                                const char *cmd,
+                                int timeout,
+                                unsigned int flags);
+
+/* Choice of unsigned int rather than pid_t is intentional.  */
+typedef virDomainPtr
+(*virDrvDomainQemuAttach)(virConnectPtr conn,
+                          unsigned int pid_value,
+                          unsigned int flags);
+
+typedef int
+(*virDrvConnectDomainQemuMonitorEventRegister)(virConnectPtr conn,
+                                               virDomainPtr dom,
+                                               const char *event,
+                                               virConnectDomainQemuMonitorEventCallback cb,
+                                               void *opaque,
+                                               virFreeCallback freecb,
+                                               unsigned int flags);
+
+typedef int
+(*virDrvConnectDomainQemuMonitorEventDeregister)(virConnectPtr conn,
+                                                 int callbackID);
+
+typedef int
+(*virDrvDomainOpenConsole)(virDomainPtr dom,
+                           const char *dev_name,
+                           virStreamPtr st,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainOpenChannel)(virDomainPtr dom,
+                           const char *name,
+                           virStreamPtr st,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainOpenGraphics)(virDomainPtr dom,
+                            unsigned int idx,
+                            int fd,
+                            unsigned int flags);
+
+typedef int
+(*virDrvDomainOpenGraphicsFD)(virDomainPtr dom,
+                              unsigned int idx,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainInjectNMI)(virDomainPtr dom,
+                         unsigned int flags);
+
+typedef int
+(*virDrvDomainSendKey)(virDomainPtr dom,
+                       unsigned int codeset,
+                       unsigned int holdtime,
+                       unsigned int *keycodes,
+                       int nkeycodes,
+                       unsigned int flags);
+
+typedef int
+(*virDrvDomainSendProcessSignal)(virDomainPtr dom,
+                                 long long pid_value,
+                                 unsigned int signum,
+                                 unsigned int flags);
+
+typedef char *
+(*virDrvDomainMigrateBegin3)(virDomainPtr domain,
+                             const char *xmlin,
+                             char **cookieout,
+                             int *cookieoutlen,
+                             unsigned long flags,
+                             const char *dname,
+                             unsigned long resource);
+
+typedef int
+(*virDrvDomainMigratePrepare3)(virConnectPtr dconn,
+                               const char *cookiein,
+                               int cookieinlen,
+                               char **cookieout,
+                               int *cookieoutlen,
+                               const char *uri_in,
+                               char **uri_out,
+                               unsigned long flags,
+                               const char *dname,
+                               unsigned long resource,
+                               const char *dom_xml);
+
+typedef int
+(*virDrvDomainMigratePrepareTunnel3)(virConnectPtr dconn,
+                                     virStreamPtr st,
+                                     const char *cookiein,
+                                     int cookieinlen,
+                                     char **cookieout,
+                                     int *cookieoutlen,
+                                     unsigned long flags,
+                                     const char *dname,
+                                     unsigned long resource,
+                                     const char *dom_xml);
+
+
+typedef int
+(*virDrvDomainMigratePerform3)(virDomainPtr dom,
+                               const char *xmlin,
+                               const char *cookiein,
+                               int cookieinlen,
+                               char **cookieout,
+                               int *cookieoutlen,
+                               const char *dconnuri,
+                               const char *uri,
+                               unsigned long flags,
+                               const char *dname,
+                               unsigned long resource);
+
+typedef virDomainPtr
+(*virDrvDomainMigrateFinish3)(virConnectPtr dconn,
+                              const char *dname,
+                              const char *cookiein,
+                              int cookieinlen,
+                              char **cookieout,
+                              int *cookieoutlen,
+                              const char *dconnuri,
+                              const char *uri,
+                              unsigned long flags,
+                              int cancelled);
+
+typedef int
+(*virDrvDomainMigrateConfirm3)(virDomainPtr domain,
+                               const char *cookiein,
+                               int cookieinlen,
+                               unsigned long flags,
+                               int cancelled);
+
+typedef int
+(*virDrvNodeSuspendForDuration)(virConnectPtr conn,
+                                unsigned int target,
+                                unsigned long long duration,
+                                unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockJobAbort)(virDomainPtr dom,
+                             const char *path,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainGetBlockJobInfo)(virDomainPtr dom,
+                               const char *path,
+                               virDomainBlockJobInfoPtr info,
+                               unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockJobSetSpeed)(virDomainPtr dom,
+                                const char *path,
+                                unsigned long bandwidth,
+                                unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockPull)(virDomainPtr dom,
+                         const char *path,
+                         unsigned long bandwidth,
+                         unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockRebase)(virDomainPtr dom,
+                           const char *path,
+                           const char *base,
+                           unsigned long bandwidth,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockCopy)(virDomainPtr dom,
+                         const char *path,
+                         const char *destxml,
+                         virTypedParameterPtr params,
+                         int nparams,
+                         unsigned int flags);
+
+typedef int
+(*virDrvDomainBlockCommit)(virDomainPtr dom,
+                           const char *disk,
+                           const char *base,
+                           const char *top,
+                           unsigned long bandwidth,
+                           unsigned int flags);
+
+typedef int
+(*virDrvConnectSetKeepAlive)(virConnectPtr conn,
+                             int interval,
+                             unsigned int count);
+
+typedef int
+(*virDrvDomainSetBlockIoTune)(virDomainPtr dom,
+                              const char *disk,
+                              virTypedParameterPtr params,
+                              int nparams,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainGetBlockIoTune)(virDomainPtr dom,
+                              const char *disk,
+                              virTypedParameterPtr params,
+                              int *nparams,
+                              unsigned int flags);
+
+typedef int
+(*virDrvDomainShutdownFlags)(virDomainPtr domain,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainGetCPUStats)(virDomainPtr domain,
+                           virTypedParameterPtr params,
+                           unsigned int nparams,
+                           int start_cpu,
+                           unsigned int ncpus,
+                           unsigned int flags);
+
+typedef int
+(*virDrvDomainGetDiskErrors)(virDomainPtr dom,
+                             virDomainDiskErrorPtr errors,
+                             unsigned int maxerrors,
+                             unsigned int flags);
+
+typedef int
+(*virDrvDomainSetMetadata)(virDomainPtr dom,
+                           int type,
+                           const char *metadata,
+                           const char *key,
+                           const char *uri,
+                           unsigned int flags);
+
+typedef char *
+(*virDrvDomainGetMetadata)(virDomainPtr dom,
+                           int type,
+                           const char *uri,
+                           unsigned int flags);
+
+typedef int
+(*virDrvNodeGetMemoryParameters)(virConnectPtr conn,
+                                 virTypedParameterPtr params,
+                                 int *nparams,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvNodeSetMemoryParameters)(virConnectPtr conn,
+                                 virTypedParameterPtr params,
+                                 int nparams,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvNodeGetCPUMap)(virConnectPtr conn,
+                       unsigned char **cpumap,
+                       unsigned int *online,
+                       unsigned int flags);
+
+typedef int
+(*virDrvDomainFSTrim)(virDomainPtr dom,
+                      const char *mountPoint,
+                      unsigned long long minimum,
+                      unsigned int flags);
+
+typedef int
+(*virDrvDomainGetTime)(virDomainPtr dom,
+                       long long *seconds,
+                       unsigned int *nseconds,
+                       unsigned int flags);
+
+typedef int
+(*virDrvDomainSetTime)(virDomainPtr dom,
+                       long long seconds,
+                       unsigned int nseconds,
+                       unsigned int flags);
+
+typedef int
+(*virDrvDomainLxcOpenNamespace)(virDomainPtr dom,
+                                int **fdlist,
+                                unsigned int flags);
+
+typedef char *
+(*virDrvDomainMigrateBegin3Params)(virDomainPtr domain,
+                                   virTypedParameterPtr params,
+                                   int nparams,
+                                   char **cookieout,
+                                   int *cookieoutlen,
+                                   unsigned int flags);
+
+typedef int
+(*virDrvDomainMigratePrepare3Params)(virConnectPtr dconn,
+                                     virTypedParameterPtr params,
+                                     int nparams,
+                                     const char *cookiein,
+                                     int cookieinlen,
+                                     char **cookieout,
+                                     int *cookieoutlen,
+                                     char **uri_out,
+                                     unsigned int flags);
+
+typedef int
+(*virDrvDomainMigratePrepareTunnel3Params)(virConnectPtr dconn,
+                                           virStreamPtr st,
+                                           virTypedParameterPtr params,
+                                           int nparams,
+                                           const char *cookiein,
+                                           int cookieinlen,
+                                           char **cookieout,
+                                           int *cookieoutlen,
+                                           unsigned int flags);
+
+typedef int
+(*virDrvDomainMigratePerform3Params)(virDomainPtr dom,
+                                     const char *dconnuri,
+                                     virTypedParameterPtr params,
+                                     int nparams,
+                                     const char *cookiein,
+                                     int cookieinlen,
+                                     char **cookieout,
+                                     int *cookieoutlen,
+                                     unsigned int flags);
+
+typedef virDomainPtr
+(*virDrvDomainMigrateFinish3Params)(virConnectPtr dconn,
+                                    virTypedParameterPtr params,
+                                    int nparams,
+                                    const char *cookiein,
+                                    int cookieinlen,
+                                    char **cookieout,
+                                    int *cookieoutlen,
+                                    unsigned int flags,
+                                    int cancelled);
+
+typedef int
+(*virDrvDomainMigrateConfirm3Params)(virDomainPtr domain,
+                                     virTypedParameterPtr params,
+                                     int nparams,
+                                     const char *cookiein,
+                                     int cookieinlen,
+                                     unsigned int flags,
+                                     int cancelled);
+
+typedef int
+(*virDrvDomainFSFreeze)(virDomainPtr dom,
+                        const char **mountpoints,
+                        unsigned int nmountpoints,
+                        unsigned int flags);
+
+typedef int
+(*virDrvDomainFSThaw)(virDomainPtr dom,
+                      const char **mountpoints,
+                      unsigned int nmountpoints,
+                      unsigned int flags);
+
+typedef int
+(*virDrvNodeGetFreePages)(virConnectPtr conn,
+                          unsigned int npages,
+                          unsigned int *pages,
+                          int startCell,
+                          unsigned int cellCount,
+                          unsigned long long *counts,
+                          unsigned int flags);
+
+
+typedef int
+(*virDrvConnectGetAllDomainStats)(virConnectPtr conn,
+                                  virDomainPtr *doms,
+                                  unsigned int ndoms,
+                                  unsigned int stats,
+                                  virDomainStatsRecordPtr **retStats,
+                                  unsigned int flags);
+
+typedef int
+(*virDrvNodeAllocPages)(virConnectPtr conn,
+                        unsigned int npages,
+                        unsigned int *pageSizes,
+                        unsigned long long *pageCounts,
+                        int startCell,
+                        unsigned int cellCount,
+                        unsigned int flags);
+
+
+typedef struct _virHypervisorDriver virHypervisorDriver;
+typedef virHypervisorDriver *virHypervisorDriverPtr;
+
+/**
+ * _virHypervisorDriver:
+ *
+ * Structure associated to a virtualization driver, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - no
+ *  - name
+ *  - open
+ *  - close
+ */
+struct _virHypervisorDriver {
+    int no; /* the number virDrvNo */
+    const char *name; /* the name of the driver */
+    virDrvConnectOpen connectOpen;
+    virDrvConnectClose connectClose;
+    virDrvConnectSupportsFeature connectSupportsFeature;
+    virDrvConnectGetType connectGetType;
+    virDrvConnectGetVersion connectGetVersion;
+    virDrvConnectGetLibVersion connectGetLibVersion;
+    virDrvConnectGetHostname connectGetHostname;
+    virDrvConnectGetSysinfo connectGetSysinfo;
+    virDrvConnectGetMaxVcpus connectGetMaxVcpus;
+    virDrvNodeGetInfo nodeGetInfo;
+    virDrvConnectGetCapabilities connectGetCapabilities;
+    virDrvConnectListDomains connectListDomains;
+    virDrvConnectNumOfDomains connectNumOfDomains;
+    virDrvConnectListAllDomains connectListAllDomains;
+    virDrvDomainCreateXML domainCreateXML;
+    virDrvDomainCreateXMLWithFiles domainCreateXMLWithFiles;
+    virDrvDomainLookupByID domainLookupByID;
+    virDrvDomainLookupByUUID domainLookupByUUID;
+    virDrvDomainLookupByName domainLookupByName;
+    virDrvDomainSuspend domainSuspend;
+    virDrvDomainResume domainResume;
+    virDrvDomainPMSuspendForDuration domainPMSuspendForDuration;
+    virDrvDomainPMWakeup domainPMWakeup;
+    virDrvDomainShutdown domainShutdown;
+    virDrvDomainShutdownFlags domainShutdownFlags;
+    virDrvDomainReboot domainReboot;
+    virDrvDomainReset domainReset;
+    virDrvDomainDestroy domainDestroy;
+    virDrvDomainDestroyFlags domainDestroyFlags;
+    virDrvDomainGetOSType domainGetOSType;
+    virDrvDomainGetHostname domainGetHostname;
+    virDrvDomainGetMaxMemory domainGetMaxMemory;
+    virDrvDomainSetMaxMemory domainSetMaxMemory;
+    virDrvDomainSetMemory domainSetMemory;
+    virDrvDomainSetMemoryFlags domainSetMemoryFlags;
+    virDrvDomainSetMemoryStatsPeriod domainSetMemoryStatsPeriod;
+    virDrvDomainSetMemoryParameters domainSetMemoryParameters;
+    virDrvDomainGetMemoryParameters domainGetMemoryParameters;
+    virDrvDomainSetNumaParameters domainSetNumaParameters;
+    virDrvDomainGetNumaParameters domainGetNumaParameters;
+    virDrvDomainSetBlkioParameters domainSetBlkioParameters;
+    virDrvDomainGetBlkioParameters domainGetBlkioParameters;
+    virDrvDomainGetInfo domainGetInfo;
+    virDrvDomainGetState domainGetState;
+    virDrvDomainGetControlInfo domainGetControlInfo;
+    virDrvDomainSave domainSave;
+    virDrvDomainSaveFlags domainSaveFlags;
+    virDrvDomainRestore domainRestore;
+    virDrvDomainRestoreFlags domainRestoreFlags;
+    virDrvDomainSaveImageGetXMLDesc domainSaveImageGetXMLDesc;
+    virDrvDomainSaveImageDefineXML domainSaveImageDefineXML;
+    virDrvDomainCoreDump domainCoreDump;
+    virDrvDomainCoreDumpWithFormat domainCoreDumpWithFormat;
+    virDrvDomainScreenshot domainScreenshot;
+    virDrvDomainSetVcpus domainSetVcpus;
+    virDrvDomainSetVcpusFlags domainSetVcpusFlags;
+    virDrvDomainGetVcpusFlags domainGetVcpusFlags;
+    virDrvDomainPinVcpu domainPinVcpu;
+    virDrvDomainPinVcpuFlags domainPinVcpuFlags;
+    virDrvDomainGetVcpuPinInfo domainGetVcpuPinInfo;
+    virDrvDomainPinEmulator domainPinEmulator;
+    virDrvDomainGetEmulatorPinInfo domainGetEmulatorPinInfo;
+    virDrvDomainGetVcpus domainGetVcpus;
+    virDrvDomainGetMaxVcpus domainGetMaxVcpus;
+    virDrvDomainGetSecurityLabel domainGetSecurityLabel;
+    virDrvDomainGetSecurityLabelList domainGetSecurityLabelList;
+    virDrvNodeGetSecurityModel nodeGetSecurityModel;
+    virDrvDomainGetXMLDesc domainGetXMLDesc;
+    virDrvConnectDomainXMLFromNative connectDomainXMLFromNative;
+    virDrvConnectDomainXMLToNative connectDomainXMLToNative;
+    virDrvConnectListDefinedDomains connectListDefinedDomains;
+    virDrvConnectNumOfDefinedDomains connectNumOfDefinedDomains;
+    virDrvDomainCreate domainCreate;
+    virDrvDomainCreateWithFlags domainCreateWithFlags;
+    virDrvDomainCreateWithFiles domainCreateWithFiles;
+    virDrvDomainDefineXML domainDefineXML;
+    virDrvDomainUndefine domainUndefine;
+    virDrvDomainUndefineFlags domainUndefineFlags;
+    virDrvDomainAttachDevice domainAttachDevice;
+    virDrvDomainAttachDeviceFlags domainAttachDeviceFlags;
+    virDrvDomainDetachDevice domainDetachDevice;
+    virDrvDomainDetachDeviceFlags domainDetachDeviceFlags;
+    virDrvDomainUpdateDeviceFlags domainUpdateDeviceFlags;
+    virDrvDomainGetAutostart domainGetAutostart;
+    virDrvDomainSetAutostart domainSetAutostart;
+    virDrvDomainGetSchedulerType domainGetSchedulerType;
+    virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
+    virDrvDomainGetSchedulerParametersFlags domainGetSchedulerParametersFlags;
+    virDrvDomainSetSchedulerParameters domainSetSchedulerParameters;
+    virDrvDomainSetSchedulerParametersFlags domainSetSchedulerParametersFlags;
+    virDrvDomainMigratePrepare domainMigratePrepare;
+    virDrvDomainMigratePerform domainMigratePerform;
+    virDrvDomainMigrateFinish domainMigrateFinish;
+    virDrvDomainBlockResize domainBlockResize;
+    virDrvDomainBlockStats domainBlockStats;
+    virDrvDomainBlockStatsFlags domainBlockStatsFlags;
+    virDrvDomainInterfaceStats domainInterfaceStats;
+    virDrvDomainSetInterfaceParameters domainSetInterfaceParameters;
+    virDrvDomainGetInterfaceParameters domainGetInterfaceParameters;
+    virDrvDomainMemoryStats domainMemoryStats;
+    virDrvDomainBlockPeek domainBlockPeek;
+    virDrvDomainMemoryPeek domainMemoryPeek;
+    virDrvDomainGetBlockInfo domainGetBlockInfo;
+    virDrvNodeGetCPUStats nodeGetCPUStats;
+    virDrvNodeGetMemoryStats nodeGetMemoryStats;
+    virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
+    virDrvNodeGetFreeMemory nodeGetFreeMemory;
+    virDrvConnectDomainEventRegister connectDomainEventRegister;
+    virDrvConnectDomainEventDeregister connectDomainEventDeregister;
+    virDrvDomainMigratePrepare2 domainMigratePrepare2;
+    virDrvDomainMigrateFinish2 domainMigrateFinish2;
+    virDrvNodeDeviceDettach nodeDeviceDettach;
+    virDrvNodeDeviceDetachFlags nodeDeviceDetachFlags;
+    virDrvNodeDeviceReAttach nodeDeviceReAttach;
+    virDrvNodeDeviceReset nodeDeviceReset;
+    virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
+    virDrvConnectIsEncrypted connectIsEncrypted;
+    virDrvConnectIsSecure connectIsSecure;
+    virDrvDomainIsActive domainIsActive;
+    virDrvDomainIsPersistent domainIsPersistent;
+    virDrvDomainIsUpdated domainIsUpdated;
+    virDrvConnectCompareCPU connectCompareCPU;
+    virDrvConnectBaselineCPU connectBaselineCPU;
+    virDrvDomainGetJobInfo domainGetJobInfo;
+    virDrvDomainGetJobStats domainGetJobStats;
+    virDrvDomainAbortJob domainAbortJob;
+    virDrvDomainMigrateSetMaxDowntime domainMigrateSetMaxDowntime;
+    virDrvDomainMigrateGetCompressionCache domainMigrateGetCompressionCache;
+    virDrvDomainMigrateSetCompressionCache domainMigrateSetCompressionCache;
+    virDrvDomainMigrateGetMaxSpeed domainMigrateGetMaxSpeed;
+    virDrvDomainMigrateSetMaxSpeed domainMigrateSetMaxSpeed;
+    virDrvConnectDomainEventRegisterAny connectDomainEventRegisterAny;
+    virDrvConnectDomainEventDeregisterAny connectDomainEventDeregisterAny;
+    virDrvDomainManagedSave domainManagedSave;
+    virDrvDomainHasManagedSaveImage domainHasManagedSaveImage;
+    virDrvDomainManagedSaveRemove domainManagedSaveRemove;
+    virDrvDomainSnapshotCreateXML domainSnapshotCreateXML;
+    virDrvDomainSnapshotGetXMLDesc domainSnapshotGetXMLDesc;
+    virDrvDomainSnapshotNum domainSnapshotNum;
+    virDrvDomainSnapshotListNames domainSnapshotListNames;
+    virDrvDomainListAllSnapshots domainListAllSnapshots;
+    virDrvDomainSnapshotNumChildren domainSnapshotNumChildren;
+    virDrvDomainSnapshotListChildrenNames domainSnapshotListChildrenNames;
+    virDrvDomainSnapshotListAllChildren domainSnapshotListAllChildren;
+    virDrvDomainSnapshotLookupByName domainSnapshotLookupByName;
+    virDrvDomainHasCurrentSnapshot domainHasCurrentSnapshot;
+    virDrvDomainSnapshotGetParent domainSnapshotGetParent;
+    virDrvDomainSnapshotCurrent domainSnapshotCurrent;
+    virDrvDomainSnapshotIsCurrent domainSnapshotIsCurrent;
+    virDrvDomainSnapshotHasMetadata domainSnapshotHasMetadata;
+    virDrvDomainRevertToSnapshot domainRevertToSnapshot;
+    virDrvDomainSnapshotDelete domainSnapshotDelete;
+    virDrvDomainQemuMonitorCommand domainQemuMonitorCommand;
+    virDrvDomainQemuAttach domainQemuAttach;
+    virDrvDomainQemuAgentCommand domainQemuAgentCommand;
+    virDrvConnectDomainQemuMonitorEventRegister connectDomainQemuMonitorEventRegister;
+    virDrvConnectDomainQemuMonitorEventDeregister connectDomainQemuMonitorEventDeregister;
+    virDrvDomainOpenConsole domainOpenConsole;
+    virDrvDomainOpenChannel domainOpenChannel;
+    virDrvDomainOpenGraphics domainOpenGraphics;
+    virDrvDomainOpenGraphicsFD domainOpenGraphicsFD;
+    virDrvDomainInjectNMI domainInjectNMI;
+    virDrvDomainMigrateBegin3 domainMigrateBegin3;
+    virDrvDomainMigratePrepare3 domainMigratePrepare3;
+    virDrvDomainMigratePrepareTunnel3 domainMigratePrepareTunnel3;
+    virDrvDomainMigratePerform3 domainMigratePerform3;
+    virDrvDomainMigrateFinish3 domainMigrateFinish3;
+    virDrvDomainMigrateConfirm3 domainMigrateConfirm3;
+    virDrvDomainSendKey domainSendKey;
+    virDrvDomainBlockJobAbort domainBlockJobAbort;
+    virDrvDomainGetBlockJobInfo domainGetBlockJobInfo;
+    virDrvDomainBlockJobSetSpeed domainBlockJobSetSpeed;
+    virDrvDomainBlockPull domainBlockPull;
+    virDrvDomainBlockRebase domainBlockRebase;
+    virDrvDomainBlockCopy domainBlockCopy;
+    virDrvDomainBlockCommit domainBlockCommit;
+    virDrvConnectSetKeepAlive connectSetKeepAlive;
+    virDrvConnectIsAlive connectIsAlive;
+    virDrvNodeSuspendForDuration nodeSuspendForDuration;
+    virDrvDomainSetBlockIoTune domainSetBlockIoTune;
+    virDrvDomainGetBlockIoTune domainGetBlockIoTune;
+    virDrvDomainGetCPUStats domainGetCPUStats;
+    virDrvDomainGetDiskErrors domainGetDiskErrors;
+    virDrvDomainSetMetadata domainSetMetadata;
+    virDrvDomainGetMetadata domainGetMetadata;
+    virDrvNodeGetMemoryParameters nodeGetMemoryParameters;
+    virDrvNodeSetMemoryParameters nodeSetMemoryParameters;
+    virDrvNodeGetCPUMap nodeGetCPUMap;
+    virDrvDomainFSTrim domainFSTrim;
+    virDrvDomainSendProcessSignal domainSendProcessSignal;
+    virDrvDomainLxcOpenNamespace domainLxcOpenNamespace;
+    virDrvDomainMigrateBegin3Params domainMigrateBegin3Params;
+    virDrvDomainMigratePrepare3Params domainMigratePrepare3Params;
+    virDrvDomainMigratePrepareTunnel3Params domainMigratePrepareTunnel3Params;
+    virDrvDomainMigratePerform3Params domainMigratePerform3Params;
+    virDrvDomainMigrateFinish3Params domainMigrateFinish3Params;
+    virDrvDomainMigrateConfirm3Params domainMigrateConfirm3Params;
+    virDrvConnectGetCPUModelNames connectGetCPUModelNames;
+    virDrvDomainFSFreeze domainFSFreeze;
+    virDrvDomainFSThaw domainFSThaw;
+    virDrvDomainGetTime domainGetTime;
+    virDrvDomainSetTime domainSetTime;
+    virDrvNodeGetFreePages nodeGetFreePages;
+    virDrvConnectGetDomainCapabilities connectGetDomainCapabilities;
+    virDrvConnectGetAllDomainStats connectGetAllDomainStats;
+    virDrvNodeAllocPages nodeAllocPages;
+};
+
+
+#endif /* __VIR_DRIVER_HYPERVISOR_H__ */
diff --git a/src/driver-interface.h b/src/driver-interface.h
new file mode 100644
index 0000000..eb9b1ad
--- /dev/null
+++ b/src/driver-interface.h
@@ -0,0 +1,131 @@
+/*
+ * driver-interface.h: entry points for interface drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_INTERFACE_H__
+# define __VIR_DRIVER_INTERFACE_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef virDrvConnectOpen virDrvInterfaceOpen;
+typedef virDrvConnectClose virDrvInterfaceClose;
+
+typedef int
+(*virDrvConnectNumOfInterfaces)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListInterfaces)(virConnectPtr conn,
+                               char **const names,
+                               int maxnames);
+
+typedef int
+(*virDrvConnectNumOfDefinedInterfaces)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListDefinedInterfaces)(virConnectPtr conn,
+                                      char **const names,
+                                      int maxnames);
+
+typedef int
+(*virDrvConnectListAllInterfaces)(virConnectPtr conn,
+                                  virInterfacePtr **ifaces,
+                                  unsigned int flags);
+
+typedef virInterfacePtr
+(*virDrvInterfaceLookupByName)(virConnectPtr conn,
+                               const char *name);
+
+typedef virInterfacePtr
+(*virDrvInterfaceLookupByMACString)(virConnectPtr conn,
+                                    const char *mac);
+
+typedef char *
+(*virDrvInterfaceGetXMLDesc)(virInterfacePtr iface,
+                             unsigned int flags);
+
+typedef virInterfacePtr
+(*virDrvInterfaceDefineXML)(virConnectPtr conn,
+                            const char *xmlDesc,
+                            unsigned int flags);
+
+typedef int
+(*virDrvInterfaceUndefine)(virInterfacePtr iface);
+
+typedef int
+(*virDrvInterfaceCreate)(virInterfacePtr iface,
+                         unsigned int flags);
+
+typedef int
+(*virDrvInterfaceDestroy)(virInterfacePtr iface,
+                          unsigned int flags);
+
+typedef int
+(*virDrvInterfaceIsActive)(virInterfacePtr iface);
+
+typedef int
+(*virDrvInterfaceChangeBegin)(virConnectPtr conn,
+                              unsigned int flags);
+
+typedef int
+(*virDrvInterfaceChangeCommit)(virConnectPtr conn,
+                               unsigned int flags);
+
+typedef int
+(*virDrvInterfaceChangeRollback)(virConnectPtr conn,
+                                 unsigned int flags);
+
+typedef struct _virInterfaceDriver virInterfaceDriver;
+typedef virInterfaceDriver *virInterfaceDriverPtr;
+
+/**
+ * _virInterfaceDriver:
+ *
+ * Structure associated to a network interface driver, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - open
+ *  - close
+ */
+struct _virInterfaceDriver {
+    const char *name; /* the name of the driver */
+    virDrvInterfaceOpen interfaceOpen;
+    virDrvInterfaceClose interfaceClose;
+    virDrvConnectNumOfInterfaces connectNumOfInterfaces;
+    virDrvConnectListInterfaces connectListInterfaces;
+    virDrvConnectNumOfDefinedInterfaces connectNumOfDefinedInterfaces;
+    virDrvConnectListDefinedInterfaces connectListDefinedInterfaces;
+    virDrvConnectListAllInterfaces connectListAllInterfaces;
+    virDrvInterfaceLookupByName interfaceLookupByName;
+    virDrvInterfaceLookupByMACString interfaceLookupByMACString;
+    virDrvInterfaceGetXMLDesc interfaceGetXMLDesc;
+    virDrvInterfaceDefineXML interfaceDefineXML;
+    virDrvInterfaceUndefine interfaceUndefine;
+    virDrvInterfaceCreate interfaceCreate;
+    virDrvInterfaceDestroy interfaceDestroy;
+    virDrvInterfaceIsActive interfaceIsActive;
+    virDrvInterfaceChangeBegin interfaceChangeBegin;
+    virDrvInterfaceChangeCommit interfaceChangeCommit;
+    virDrvInterfaceChangeRollback interfaceChangeRollback;
+};
+
+
+#endif /* __VIR_DRIVER_INTERFACE_H__ */
diff --git a/src/driver-network.h b/src/driver-network.h
new file mode 100644
index 0000000..9ede53c
--- /dev/null
+++ b/src/driver-network.h
@@ -0,0 +1,166 @@
+/*
+ * driver-network.h: entry points for network drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_NETWORK_H__
+# define __VIR_DRIVER_NETWORK_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef virDrvConnectOpen virDrvNetworkOpen;
+typedef virDrvConnectClose virDrvNetworkClose;
+
+typedef int
+(*virDrvConnectNumOfNetworks)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListNetworks)(virConnectPtr conn,
+                             char **const names,
+                             int maxnames);
+
+typedef int
+(*virDrvConnectNumOfDefinedNetworks)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListDefinedNetworks)(virConnectPtr conn,
+                                    char **const names,
+                                    int maxnames);
+
+typedef int
+(*virDrvConnectListAllNetworks)(virConnectPtr conn,
+                                virNetworkPtr **nets,
+                                unsigned int flags);
+
+typedef int
+(*virDrvConnectNetworkEventRegisterAny)(virConnectPtr conn,
+                                        virNetworkPtr dom,
+                                        int eventID,
+                                        virConnectNetworkEventGenericCallback cb,
+                                        void *opaque,
+                                        virFreeCallback freecb);
+
+typedef int
+(*virDrvConnectNetworkEventDeregisterAny)(virConnectPtr conn,
+                                          int callbackID);
+
+typedef virNetworkPtr
+(*virDrvNetworkLookupByUUID)(virConnectPtr conn,
+                             const unsigned char *uuid);
+
+typedef virNetworkPtr
+(*virDrvNetworkLookupByName)(virConnectPtr conn,
+                             const char *name);
+
+typedef virNetworkPtr
+(*virDrvNetworkCreateXML)(virConnectPtr conn,
+                          const char *xmlDesc);
+
+typedef virNetworkPtr
+(*virDrvNetworkDefineXML)(virConnectPtr conn,
+                          const char *xml);
+
+typedef int
+(*virDrvNetworkUndefine)(virNetworkPtr network);
+
+typedef int
+(*virDrvNetworkUpdate)(virNetworkPtr network,
+                       unsigned int command, /* virNetworkUpdateCommand */
+                       unsigned int section, /* virNetworkUpdateSection */
+                       int parentIndex,
+                       const char *xml,
+                       unsigned int flags);
+
+typedef int
+(*virDrvNetworkCreate)(virNetworkPtr network);
+
+typedef int
+(*virDrvNetworkDestroy)(virNetworkPtr network);
+
+typedef char *
+(*virDrvNetworkGetXMLDesc)(virNetworkPtr network,
+                           unsigned int flags);
+
+typedef char *
+(*virDrvNetworkGetBridgeName)(virNetworkPtr network);
+
+typedef int
+(*virDrvNetworkGetAutostart)(virNetworkPtr network,
+                             int *autostart);
+
+typedef int
+(*virDrvNetworkSetAutostart)(virNetworkPtr network,
+                             int autostart);
+
+typedef int
+(*virDrvNetworkIsActive)(virNetworkPtr net);
+
+typedef int
+(*virDrvNetworkIsPersistent)(virNetworkPtr net);
+
+typedef int
+(*virDrvNetworkGetDHCPLeases)(virNetworkPtr network,
+                              const char *mac,
+                              virNetworkDHCPLeasePtr **leases,
+                              unsigned int flags);
+
+typedef struct _virNetworkDriver virNetworkDriver;
+typedef virNetworkDriver *virNetworkDriverPtr;
+
+/**
+ * _virNetworkDriver:
+ *
+ * Structure associated to a network virtualization driver, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - open
+ *  - close
+ */
+struct _virNetworkDriver {
+    const char * name; /* the name of the driver */
+    virDrvNetworkOpen networkOpen;
+    virDrvNetworkClose networkClose;
+    virDrvConnectNumOfNetworks connectNumOfNetworks;
+    virDrvConnectListNetworks connectListNetworks;
+    virDrvConnectNumOfDefinedNetworks connectNumOfDefinedNetworks;
+    virDrvConnectListDefinedNetworks connectListDefinedNetworks;
+    virDrvConnectListAllNetworks connectListAllNetworks;
+    virDrvConnectNetworkEventRegisterAny connectNetworkEventRegisterAny;
+    virDrvConnectNetworkEventDeregisterAny connectNetworkEventDeregisterAny;
+    virDrvNetworkLookupByUUID networkLookupByUUID;
+    virDrvNetworkLookupByName networkLookupByName;
+    virDrvNetworkCreateXML networkCreateXML;
+    virDrvNetworkDefineXML networkDefineXML;
+    virDrvNetworkUndefine networkUndefine;
+    virDrvNetworkUpdate networkUpdate;
+    virDrvNetworkCreate networkCreate;
+    virDrvNetworkDestroy networkDestroy;
+    virDrvNetworkGetXMLDesc networkGetXMLDesc;
+    virDrvNetworkGetBridgeName networkGetBridgeName;
+    virDrvNetworkGetAutostart networkGetAutostart;
+    virDrvNetworkSetAutostart networkSetAutostart;
+    virDrvNetworkIsActive networkIsActive;
+    virDrvNetworkIsPersistent networkIsPersistent;
+    virDrvNetworkGetDHCPLeases networkGetDHCPLeases;
+};
+
+
+#endif /* __VIR_DRIVER_NETWORK_H__ */
diff --git a/src/driver-nodedev.h b/src/driver-nodedev.h
new file mode 100644
index 0000000..8d1c8a9
--- /dev/null
+++ b/src/driver-nodedev.h
@@ -0,0 +1,112 @@
+/*
+ * driver-nodedev.h: entry points for nodedev drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_NODEDEV_H__
+# define __VIR_DRIVER_NODEDEV_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef virDrvConnectOpen virDrvNodeDeviceOpen;
+typedef virDrvConnectClose virDrvNodeDeviceClose;
+
+
+typedef int
+(*virDrvNodeNumOfDevices)(virConnectPtr conn,
+                          const char *cap,
+                          unsigned int flags);
+
+typedef int
+(*virDrvNodeListDevices)(virConnectPtr conn,
+                         const char *cap,
+                         char **const names,
+                         int maxnames,
+                         unsigned int flags);
+
+typedef int
+(*virDrvConnectListAllNodeDevices)(virConnectPtr conn,
+                                   virNodeDevicePtr **devices,
+                                   unsigned int flags);
+
+typedef virNodeDevicePtr
+(*virDrvNodeDeviceLookupByName)(virConnectPtr conn,
+                                const char *name);
+
+typedef virNodeDevicePtr
+(*virDrvNodeDeviceLookupSCSIHostByWWN)(virConnectPtr conn,
+                                       const char *wwnn,
+                                       const char *wwpn,
+                                       unsigned int flags);
+
+typedef char *
+(*virDrvNodeDeviceGetXMLDesc)(virNodeDevicePtr dev,
+                              unsigned int flags);
+
+typedef char *
+(*virDrvNodeDeviceGetParent)(virNodeDevicePtr dev);
+
+typedef int
+(*virDrvNodeDeviceNumOfCaps)(virNodeDevicePtr dev);
+
+typedef int
+(*virDrvNodeDeviceListCaps)(virNodeDevicePtr dev,
+                            char **const names,
+                            int maxnames);
+
+typedef virNodeDevicePtr
+(*virDrvNodeDeviceCreateXML)(virConnectPtr conn,
+                             const char *xmlDesc,
+                             unsigned int flags);
+
+typedef int
+(*virDrvNodeDeviceDestroy)(virNodeDevicePtr dev);
+
+
+
+typedef struct _virNodeDeviceDriver virNodeDeviceDriver;
+typedef virNodeDeviceDriver *virNodeDeviceDriverPtr;
+
+/**
+ * _virNodeDeviceDriver:
+ *
+ * Structure associated with monitoring the devices
+ * on a virtualized node.
+ *
+ */
+struct _virNodeDeviceDriver {
+    const char * name; /* the name of the driver */
+    virDrvNodeDeviceOpen nodeDeviceOpen;
+    virDrvNodeDeviceClose nodeDeviceClose;
+    virDrvNodeNumOfDevices nodeNumOfDevices;
+    virDrvNodeListDevices nodeListDevices;
+    virDrvConnectListAllNodeDevices connectListAllNodeDevices;
+    virDrvNodeDeviceLookupByName nodeDeviceLookupByName;
+    virDrvNodeDeviceLookupSCSIHostByWWN nodeDeviceLookupSCSIHostByWWN;
+    virDrvNodeDeviceGetXMLDesc nodeDeviceGetXMLDesc;
+    virDrvNodeDeviceGetParent nodeDeviceGetParent;
+    virDrvNodeDeviceNumOfCaps nodeDeviceNumOfCaps;
+    virDrvNodeDeviceListCaps nodeDeviceListCaps;
+    virDrvNodeDeviceCreateXML nodeDeviceCreateXML;
+    virDrvNodeDeviceDestroy nodeDeviceDestroy;
+};
+
+
+#endif /* __VIR_DRIVER_NODEDEV_H__ */
diff --git a/src/driver-nwfilter.h b/src/driver-nwfilter.h
new file mode 100644
index 0000000..502700f
--- /dev/null
+++ b/src/driver-nwfilter.h
@@ -0,0 +1,94 @@
+/*
+ * driver-nwfilter.h: entry points for nwfilter drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_NWFILTER_H__
+# define __VIR_DRIVER_NWFILTER_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+
+typedef virDrvConnectOpen virDrvNWFilterOpen;
+typedef virDrvConnectClose virDrvNWFilterClose;
+
+
+typedef int
+(*virDrvConnectNumOfNWFilters)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListNWFilters)(virConnectPtr conn,
+                              char **const names,
+                              int maxnames);
+
+typedef int
+(*virDrvConnectListAllNWFilters)(virConnectPtr conn,
+                                 virNWFilterPtr **filters,
+                                 unsigned int flags);
+
+typedef virNWFilterPtr
+(*virDrvNWFilterLookupByName)(virConnectPtr conn,
+                              const char *name);
+
+typedef virNWFilterPtr
+(*virDrvNWFilterLookupByUUID)(virConnectPtr conn,
+                              const unsigned char *uuid);
+
+typedef virNWFilterPtr
+(*virDrvNWFilterDefineXML)(virConnectPtr conn,
+                           const char *xmlDesc);
+
+typedef int
+(*virDrvNWFilterUndefine)(virNWFilterPtr nwfilter);
+
+typedef char *
+(*virDrvNWFilterGetXMLDesc)(virNWFilterPtr nwfilter,
+                            unsigned int flags);
+
+
+typedef struct _virNWFilterDriver virNWFilterDriver;
+typedef virNWFilterDriver *virNWFilterDriverPtr;
+
+/**
+ * _virNWFilterDriver:
+ *
+ * Structure associated to a network filter driver, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - open
+ *  - close
+ */
+struct _virNWFilterDriver {
+    const char * name; /* the name of the driver */
+    virDrvNWFilterOpen nwfilterOpen;
+    virDrvNWFilterClose nwfilterClose;
+    virDrvConnectNumOfNWFilters connectNumOfNWFilters;
+    virDrvConnectListNWFilters connectListNWFilters;
+    virDrvConnectListAllNWFilters connectListAllNWFilters;
+    virDrvNWFilterLookupByName nwfilterLookupByName;
+    virDrvNWFilterLookupByUUID nwfilterLookupByUUID;
+    virDrvNWFilterDefineXML nwfilterDefineXML;
+    virDrvNWFilterUndefine nwfilterUndefine;
+    virDrvNWFilterGetXMLDesc nwfilterGetXMLDesc;
+};
+
+
+#endif /* __VIR_DRIVER_NWFILTER_H__ */
diff --git a/src/driver-secret.h b/src/driver-secret.h
new file mode 100644
index 0000000..d82e7df
--- /dev/null
+++ b/src/driver-secret.h
@@ -0,0 +1,114 @@
+/*
+ * driver-secret.h: entry points for secret drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_SECRET_H__
+# define __VIR_DRIVER_SECRET_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+enum {
+    /* This getValue call is inside libvirt, override the "private" flag.
+       This flag cannot be set by outside callers. */
+    VIR_SECRET_GET_VALUE_INTERNAL_CALL = 1 << 0,
+};
+
+typedef virDrvConnectOpen virDrvSecretOpen;
+typedef virDrvConnectClose virDrvSecretClose;
+
+
+typedef virSecretPtr
+(*virDrvSecretLookupByUUID)(virConnectPtr conn,
+                            const unsigned char *uuid);
+
+typedef virSecretPtr
+(*virDrvSecretLookupByUsage)(virConnectPtr conn,
+                             int usageType,
+                             const char *usageID);
+
+typedef virSecretPtr
+(*virDrvSecretDefineXML)(virConnectPtr conn,
+                         const char *xml,
+                         unsigned int flags);
+
+typedef char *
+(*virDrvSecretGetXMLDesc)(virSecretPtr secret,
+                          unsigned int flags);
+
+typedef int
+(*virDrvSecretSetValue)(virSecretPtr secret,
+                        const unsigned char *value,
+                        size_t value_size,
+                        unsigned int flags);
+
+typedef unsigned char *
+(*virDrvSecretGetValue)(virSecretPtr secret,
+                        size_t *value_size,
+                        unsigned int flags,
+                        unsigned int internalFlags);
+
+typedef int
+(*virDrvSecretUndefine)(virSecretPtr secret);
+
+typedef int
+(*virDrvConnectNumOfSecrets)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListSecrets)(virConnectPtr conn,
+                            char **uuids,
+                            int maxuuids);
+
+typedef int
+(*virDrvConnectListAllSecrets)(virConnectPtr conn,
+                               virSecretPtr **secrets,
+                               unsigned int flags);
+
+typedef struct _virSecretDriver virSecretDriver;
+typedef virSecretDriver *virSecretDriverPtr;
+
+/**
+ * _virSecretDriver:
+ *
+ * Structure associated to a driver for storing secrets, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - open
+ *  - close
+ */
+struct _virSecretDriver {
+    const char *name;
+    virDrvSecretOpen secretOpen;
+    virDrvSecretClose secretClose;
+    virDrvConnectNumOfSecrets connectNumOfSecrets;
+    virDrvConnectListSecrets connectListSecrets;
+    virDrvConnectListAllSecrets connectListAllSecrets;
+    virDrvSecretLookupByUUID secretLookupByUUID;
+    virDrvSecretLookupByUsage secretLookupByUsage;
+    virDrvSecretDefineXML secretDefineXML;
+    virDrvSecretGetXMLDesc secretGetXMLDesc;
+    virDrvSecretSetValue secretSetValue;
+    virDrvSecretGetValue secretGetValue;
+    virDrvSecretUndefine secretUndefine;
+};
+
+
+#endif /* __VIR_DRIVER_SECRET_H__ */
diff --git a/src/driver-state.h b/src/driver-state.h
new file mode 100644
index 0000000..1cb3e4f
--- /dev/null
+++ b/src/driver-state.h
@@ -0,0 +1,58 @@
+/*
+ * driver-state.h: entry points for state drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_STATE_H__
+# define __VIR_DRIVER_STATE_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef int
+(*virDrvStateInitialize)(bool privileged,
+                         virStateInhibitCallback callback,
+                         void *opaque);
+
+typedef void
+(*virDrvStateAutoStart)(void);
+
+typedef int
+(*virDrvStateCleanup)(void);
+
+typedef int
+(*virDrvStateReload)(void);
+
+typedef int
+(*virDrvStateStop)(void);
+
+typedef struct _virStateDriver virStateDriver;
+typedef virStateDriver *virStateDriverPtr;
+
+struct _virStateDriver {
+    const char *name;
+    virDrvStateInitialize stateInitialize;
+    virDrvStateAutoStart stateAutoStart;
+    virDrvStateCleanup stateCleanup;
+    virDrvStateReload stateReload;
+    virDrvStateStop stateStop;
+};
+
+
+#endif /* __VIR_DRIVER_STATE_H__ */
diff --git a/src/driver-storage.h b/src/driver-storage.h
new file mode 100644
index 0000000..4848dd3
--- /dev/null
+++ b/src/driver-storage.h
@@ -0,0 +1,265 @@
+/*
+ * driver-storage.h: entry points for storage drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_STORAGE_H__
+# define __VIR_DRIVER_STORAGE_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef virDrvConnectOpen virDrvStorageOpen;
+typedef virDrvConnectClose virDrvStorageClose;
+
+
+typedef int
+(*virDrvConnectNumOfStoragePools)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListStoragePools)(virConnectPtr conn,
+                                 char **const names,
+                                 int maxnames);
+
+typedef int
+(*virDrvConnectNumOfDefinedStoragePools)(virConnectPtr conn);
+
+typedef int
+(*virDrvConnectListDefinedStoragePools)(virConnectPtr conn,
+                                        char **const names,
+                                        int maxnames);
+
+typedef int
+(*virDrvConnectListAllStoragePools)(virConnectPtr conn,
+                                    virStoragePoolPtr **pools,
+                                    unsigned int flags);
+
+typedef char *
+(*virDrvConnectFindStoragePoolSources)(virConnectPtr conn,
+                                       const char *type,
+                                       const char *srcSpec,
+                                       unsigned int flags);
+
+typedef virStoragePoolPtr
+(*virDrvStoragePoolLookupByName)(virConnectPtr conn,
+                                 const char *name);
+
+typedef virStoragePoolPtr
+(*virDrvStoragePoolLookupByUUID)(virConnectPtr conn,
+                                 const unsigned char *uuid);
+
+typedef virStoragePoolPtr
+(*virDrvStoragePoolLookupByVolume)(virStorageVolPtr vol);
+
+typedef virStoragePoolPtr
+(*virDrvStoragePoolCreateXML)(virConnectPtr conn,
+                              const char *xmlDesc,
+                              unsigned int flags);
+
+typedef virStoragePoolPtr
+(*virDrvStoragePoolDefineXML)(virConnectPtr conn,
+                              const char *xmlDesc,
+                              unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolUndefine)(virStoragePoolPtr pool);
+
+typedef int
+(*virDrvStoragePoolBuild)(virStoragePoolPtr pool,
+                          unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolCreate)(virStoragePoolPtr pool,
+                           unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolDestroy)(virStoragePoolPtr pool);
+
+typedef int
+(*virDrvStoragePoolDelete)(virStoragePoolPtr pool,
+                           unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolRefresh)(virStoragePoolPtr pool,
+                            unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolGetInfo)(virStoragePoolPtr vol,
+                            virStoragePoolInfoPtr info);
+
+typedef char *
+(*virDrvStoragePoolGetXMLDesc)(virStoragePoolPtr pool,
+                               unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolGetAutostart)(virStoragePoolPtr pool,
+                                 int *autostart);
+
+typedef int
+(*virDrvStoragePoolSetAutostart)(virStoragePoolPtr pool,
+                                 int autostart);
+
+typedef int
+(*virDrvStoragePoolNumOfVolumes)(virStoragePoolPtr pool);
+
+typedef int
+(*virDrvStoragePoolListVolumes)(virStoragePoolPtr pool,
+                                char **const names,
+                                int maxnames);
+
+typedef int
+(*virDrvStoragePoolListAllVolumes)(virStoragePoolPtr pool,
+                                   virStorageVolPtr **vols,
+                                   unsigned int flags);
+
+typedef virStorageVolPtr
+(*virDrvStorageVolLookupByName)(virStoragePoolPtr pool,
+                                const char *name);
+
+typedef virStorageVolPtr
+(*virDrvStorageVolLookupByKey)(virConnectPtr pool,
+                               const char *key);
+
+typedef virStorageVolPtr
+(*virDrvStorageVolLookupByPath)(virConnectPtr pool,
+                                const char *path);
+
+typedef virStorageVolPtr
+(*virDrvStorageVolCreateXML)(virStoragePoolPtr pool,
+                             const char *xmldesc,
+                             unsigned int flags);
+
+typedef int
+(*virDrvStorageVolDelete)(virStorageVolPtr vol,
+                          unsigned int flags);
+
+typedef int
+(*virDrvStorageVolWipe)(virStorageVolPtr vol,
+                        unsigned int flags);
+
+typedef int
+(*virDrvStorageVolWipePattern)(virStorageVolPtr vol,
+                               unsigned int algorithm,
+                               unsigned int flags);
+
+typedef int
+(*virDrvStorageVolGetInfo)(virStorageVolPtr vol,
+                           virStorageVolInfoPtr info);
+
+typedef char *
+(*virDrvStorageVolGetXMLDesc)(virStorageVolPtr pool,
+                              unsigned int flags);
+
+typedef char *
+(*virDrvStorageVolGetPath)(virStorageVolPtr vol);
+
+typedef virStorageVolPtr
+(*virDrvStorageVolCreateXMLFrom)(virStoragePoolPtr pool,
+                                 const char *xmldesc,
+                                 virStorageVolPtr clonevol,
+                                 unsigned int flags);
+
+typedef int
+(*virDrvStorageVolDownload)(virStorageVolPtr vol,
+                            virStreamPtr stream,
+                            unsigned long long offset,
+                            unsigned long long length,
+                            unsigned int flags);
+
+typedef int
+(*virDrvStorageVolUpload)(virStorageVolPtr vol,
+                          virStreamPtr stream,
+                          unsigned long long offset,
+                          unsigned long long length,
+                          unsigned int flags);
+
+typedef int
+(*virDrvStorageVolResize)(virStorageVolPtr vol,
+                          unsigned long long capacity,
+                          unsigned int flags);
+
+typedef int
+(*virDrvStoragePoolIsActive)(virStoragePoolPtr pool);
+
+typedef int
+(*virDrvStoragePoolIsPersistent)(virStoragePoolPtr pool);
+
+
+
+typedef struct _virStorageDriver virStorageDriver;
+typedef virStorageDriver *virStorageDriverPtr;
+
+/**
+ * _virStorageDriver:
+ *
+ * Structure associated to a storage driver, defining the various
+ * entry points for it.
+ *
+ * All drivers must support the following fields/methods:
+ *  - open
+ *  - close
+ */
+struct _virStorageDriver {
+    const char * name; /* the name of the driver */
+    virDrvStorageOpen storageOpen;
+    virDrvStorageClose storageClose;
+    virDrvConnectNumOfStoragePools connectNumOfStoragePools;
+    virDrvConnectListStoragePools connectListStoragePools;
+    virDrvConnectNumOfDefinedStoragePools connectNumOfDefinedStoragePools;
+    virDrvConnectListDefinedStoragePools connectListDefinedStoragePools;
+    virDrvConnectListAllStoragePools connectListAllStoragePools;
+    virDrvConnectFindStoragePoolSources connectFindStoragePoolSources;
+    virDrvStoragePoolLookupByName storagePoolLookupByName;
+    virDrvStoragePoolLookupByUUID storagePoolLookupByUUID;
+    virDrvStoragePoolLookupByVolume storagePoolLookupByVolume;
+    virDrvStoragePoolCreateXML storagePoolCreateXML;
+    virDrvStoragePoolDefineXML storagePoolDefineXML;
+    virDrvStoragePoolBuild storagePoolBuild;
+    virDrvStoragePoolUndefine storagePoolUndefine;
+    virDrvStoragePoolCreate storagePoolCreate;
+    virDrvStoragePoolDestroy storagePoolDestroy;
+    virDrvStoragePoolDelete storagePoolDelete;
+    virDrvStoragePoolRefresh storagePoolRefresh;
+    virDrvStoragePoolGetInfo storagePoolGetInfo;
+    virDrvStoragePoolGetXMLDesc storagePoolGetXMLDesc;
+    virDrvStoragePoolGetAutostart storagePoolGetAutostart;
+    virDrvStoragePoolSetAutostart storagePoolSetAutostart;
+    virDrvStoragePoolNumOfVolumes storagePoolNumOfVolumes;
+    virDrvStoragePoolListVolumes storagePoolListVolumes;
+    virDrvStoragePoolListAllVolumes storagePoolListAllVolumes;
+    virDrvStorageVolLookupByName storageVolLookupByName;
+    virDrvStorageVolLookupByKey storageVolLookupByKey;
+    virDrvStorageVolLookupByPath storageVolLookupByPath;
+    virDrvStorageVolCreateXML storageVolCreateXML;
+    virDrvStorageVolCreateXMLFrom storageVolCreateXMLFrom;
+    virDrvStorageVolDownload storageVolDownload;
+    virDrvStorageVolUpload storageVolUpload;
+    virDrvStorageVolDelete storageVolDelete;
+    virDrvStorageVolWipe storageVolWipe;
+    virDrvStorageVolWipePattern storageVolWipePattern;
+    virDrvStorageVolGetInfo storageVolGetInfo;
+    virDrvStorageVolGetXMLDesc storageVolGetXMLDesc;
+    virDrvStorageVolGetPath storageVolGetPath;
+    virDrvStorageVolResize storageVolResize;
+    virDrvStoragePoolIsActive storagePoolIsActive;
+    virDrvStoragePoolIsPersistent storagePoolIsPersistent;
+};
+
+
+#endif /* __VIR_DRIVER_STORAGE_H__ */
diff --git a/src/driver-stream.h b/src/driver-stream.h
new file mode 100644
index 0000000..85b4e3b
--- /dev/null
+++ b/src/driver-stream.h
@@ -0,0 +1,72 @@
+/*
+ * driver-stream.h: entry points for stream drivers
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_DRIVER_STREAM_H__
+# define __VIR_DRIVER_STREAM_H__
+
+# ifndef __VIR_DRIVER_H_INCLUDES___
+#  error "Don't include this file directly, only use driver.h"
+# endif
+
+typedef int
+(*virDrvStreamSend)(virStreamPtr st,
+                    const char *data,
+                    size_t nbytes);
+
+typedef int
+(*virDrvStreamRecv)(virStreamPtr st,
+                    char *data,
+                    size_t nbytes);
+
+typedef int
+(*virDrvStreamEventAddCallback)(virStreamPtr stream,
+                                int events,
+                                virStreamEventCallback cb,
+                                void *opaque,
+                                virFreeCallback ff);
+
+typedef int
+(*virDrvStreamEventUpdateCallback)(virStreamPtr stream,
+                                   int events);
+
+typedef int
+(*virDrvStreamEventRemoveCallback)(virStreamPtr stream);
+
+typedef int
+(*virDrvStreamFinish)(virStreamPtr st);
+
+typedef int
+(*virDrvStreamAbort)(virStreamPtr st);
+
+typedef struct _virStreamDriver virStreamDriver;
+typedef virStreamDriver *virStreamDriverPtr;
+
+struct _virStreamDriver {
+    virDrvStreamSend streamSend;
+    virDrvStreamRecv streamRecv;
+    virDrvStreamEventAddCallback streamEventAddCallback;
+    virDrvStreamEventUpdateCallback streamEventUpdateCallback;
+    virDrvStreamEventRemoveCallback streamEventRemoveCallback;
+    virDrvStreamFinish streamFinish;
+    virDrvStreamAbort streamAbort;
+};
+
+
+#endif /* __VIR_DRIVER_STREAM_H__ */
diff --git a/src/driver.h b/src/driver.h
index 4b5e123..f7e10a1 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -82,2175 +82,35 @@ typedef enum {
     ((drv)->connectSupportsFeature ?                                    \
         (drv)->connectSupportsFeature((conn), (feature)) > 0 : 0)
 
-typedef virDrvOpenStatus
-(*virDrvConnectOpen)(virConnectPtr conn,
-                     virConnectAuthPtr auth,
-                     unsigned int flags);
 
-typedef int
-(*virDrvConnectClose)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectSupportsFeature)(virConnectPtr conn,
-                                int feature);
-
-typedef const char *
-(*virDrvConnectGetType)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectGetVersion)(virConnectPtr conn,
-                           unsigned long *hvVer);
-
-typedef int
-(*virDrvConnectGetLibVersion)(virConnectPtr conn,
-                              unsigned long *libVer);
-
-typedef char *
-(*virDrvConnectGetHostname)(virConnectPtr conn);
-
-typedef char *
-(*virDrvConnectGetURI)(virConnectPtr conn);
-
-typedef char *
-(*virDrvConnectGetSysinfo)(virConnectPtr conn,
-                           unsigned int flags);
-
-typedef int
-(*virDrvConnectGetMaxVcpus)(virConnectPtr conn,
-                            const char *type);
-
-typedef int
-(*virDrvNodeGetInfo)(virConnectPtr conn,
-                     virNodeInfoPtr info);
-
-typedef char *
-(*virDrvConnectGetCapabilities)(virConnectPtr conn);
-
-typedef char *
-(*virDrvConnectGetDomainCapabilities)(virConnectPtr conn,
-                                      const char *emulatorbin,
-                                      const char *arch,
-                                      const char *machine,
-                                      const char *virttype,
-                                      unsigned int flags);
-
-typedef int
-(*virDrvConnectListDomains)(virConnectPtr conn,
-                            int *ids,
-                            int maxids);
-
-typedef int
-(*virDrvConnectNumOfDomains)(virConnectPtr conn);
-
-typedef virDomainPtr
-(*virDrvDomainCreateXML)(virConnectPtr conn,
-                         const char *xmlDesc,
-                         unsigned int flags);
-typedef virDomainPtr
-(*virDrvDomainCreateXMLWithFiles)(virConnectPtr conn,
-                                  const char *xmlDesc,
-                                  unsigned int nfiles,
-                                  int *files,
-                                  unsigned int flags);
-
-typedef virDomainPtr
-(*virDrvDomainLookupByID)(virConnectPtr conn,
-                          int id);
-
-typedef virDomainPtr
-(*virDrvDomainLookupByUUID)(virConnectPtr conn,
-                            const unsigned char *uuid);
-
-typedef virDomainPtr
-(*virDrvDomainLookupByName)(virConnectPtr conn,
-                            const char *name);
-
-typedef int
-(*virDrvDomainSuspend)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainResume)(virDomainPtr domain);
-
-typedef int
- (*virDrvDomainPMSuspendForDuration)(virDomainPtr,
-                                     unsigned int target,
-                                     unsigned long long duration,
-                                     unsigned int flags);
-
-typedef int
-(*virDrvDomainPMWakeup)(virDomainPtr domain,
-                        unsigned int flags);
-
-typedef int
-(*virDrvDomainShutdown)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainReboot)(virDomainPtr domain,
-                      unsigned int flags);
-
-typedef int
-(*virDrvDomainReset)(virDomainPtr domain,
-                     unsigned int flags);
-
-typedef int
-(*virDrvDomainDestroy)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainDestroyFlags)(virDomainPtr domain,
-                            unsigned int flags);
-
-typedef char *
-(*virDrvDomainGetOSType)(virDomainPtr domain);
-
-typedef char *
-(*virDrvDomainGetHostname)(virDomainPtr domain,
-                           unsigned int flags);
-
-typedef unsigned long long
-(*virDrvDomainGetMaxMemory)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainSetMaxMemory)(virDomainPtr domain,
-                            unsigned long memory);
-
-typedef int
-(*virDrvDomainSetMemory)(virDomainPtr domain,
-                         unsigned long memory);
-
-typedef int
-(*virDrvDomainSetMemoryFlags)(virDomainPtr domain,
-                              unsigned long memory,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainSetMemoryStatsPeriod)(virDomainPtr domain,
-                                    int period,
-                                    unsigned int flags);
-
-typedef int
-(*virDrvDomainSetMemoryParameters)(virDomainPtr domain,
-                                   virTypedParameterPtr params,
-                                   int nparams,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainGetMemoryParameters)(virDomainPtr domain,
-                                   virTypedParameterPtr params,
-                                   int *nparams,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainSetNumaParameters)(virDomainPtr domain,
-                                 virTypedParameterPtr params,
-                                 int nparams,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainGetNumaParameters)(virDomainPtr domain,
-                                 virTypedParameterPtr params,
-                                 int *nparams,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainSetBlkioParameters)(virDomainPtr domain,
-                                  virTypedParameterPtr params,
-                                  int nparams,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainGetBlkioParameters)(virDomainPtr domain,
-                                  virTypedParameterPtr params,
-                                  int *nparams,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainGetInfo)(virDomainPtr domain,
-                       virDomainInfoPtr info);
-
-typedef int
-(*virDrvDomainGetState)(virDomainPtr domain,
-                        int *state,
-                        int *reason,
-                        unsigned int flags);
-
-typedef int
-(*virDrvDomainGetControlInfo)(virDomainPtr domain,
-                              virDomainControlInfoPtr info,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainSave)(virDomainPtr domain,
-                    const char *to);
-
-typedef int
-(*virDrvDomainSaveFlags)(virDomainPtr domain,
-                         const char *to,
-                         const char *dxml,
-                         unsigned int flags);
-
-typedef int
-(*virDrvDomainRestore)(virConnectPtr conn,
-                       const char *from);
-
-typedef int
-(*virDrvDomainRestoreFlags)(virConnectPtr conn,
-                            const char *from,
-                            const char *dxml,
-                            unsigned int flags);
-
-typedef char *
-(*virDrvDomainSaveImageGetXMLDesc)(virConnectPtr conn,
-                                   const char *file,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainSaveImageDefineXML)(virConnectPtr conn,
-                                  const char *file,
-                                  const char *dxml,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainCoreDump)(virDomainPtr domain,
-                        const char *to,
-                        unsigned int flags);
-
-typedef int
-(*virDrvDomainCoreDumpWithFormat)(virDomainPtr domain,
-                                  const char *to,
-                                  unsigned int dumpformat,
-                                  unsigned int flags);
-
-typedef char *
-(*virDrvDomainScreenshot)(virDomainPtr domain,
-                          virStreamPtr stream,
-                          unsigned int screen,
-                          unsigned int flags);
-
-typedef char *
-(*virDrvDomainGetXMLDesc)(virDomainPtr dom,
-                          unsigned int flags);
-
-typedef char *
-(*virDrvConnectDomainXMLFromNative)(virConnectPtr conn,
-                                    const char *nativeFormat,
-                                    const char *nativeConfig,
-                                    unsigned int flags);
-
-typedef char *
-(*virDrvConnectDomainXMLToNative)(virConnectPtr conn,
-                                  const char *nativeFormat,
-                                  const char *domainXml,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvConnectListDefinedDomains)(virConnectPtr conn,
-                                   char **const names,
-                                   int maxnames);
-
-typedef int
-(*virDrvConnectListAllDomains)(virConnectPtr conn,
-                               virDomainPtr **domains,
-                               unsigned int flags);
-
-typedef int
-(*virDrvConnectNumOfDefinedDomains)(virConnectPtr conn);
-
-typedef int
-(*virDrvDomainCreate)(virDomainPtr dom);
-
-typedef int
-(*virDrvDomainCreateWithFlags)(virDomainPtr dom,
-                               unsigned int flags);
-typedef int
-(*virDrvDomainCreateWithFiles)(virDomainPtr dom,
-                               unsigned int nfiles,
-                               int *files,
-                               unsigned int flags);
-
-typedef virDomainPtr
-(*virDrvDomainDefineXML)(virConnectPtr conn,
-                         const char *xml);
-
-typedef int
-(*virDrvDomainUndefine)(virDomainPtr dom);
-
-typedef int
-(*virDrvDomainUndefineFlags)(virDomainPtr dom,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainSetVcpus)(virDomainPtr domain,
-                        unsigned int nvcpus);
-
-typedef int
-(*virDrvDomainSetVcpusFlags)(virDomainPtr domain,
-                             unsigned int nvcpus,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainGetVcpusFlags)(virDomainPtr domain,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainPinVcpu)(virDomainPtr domain,
-                       unsigned int vcpu,
-                       unsigned char *cpumap,
-                       int maplen);
-
-typedef int
-(*virDrvDomainPinVcpuFlags)(virDomainPtr domain,
-                            unsigned int vcpu,
-                            unsigned char *cpumap,
-                            int maplen,
-                            unsigned int flags);
-
-typedef int
-(*virDrvDomainGetVcpuPinInfo)(virDomainPtr domain,
-                              int ncpumaps,
-                              unsigned char *cpumaps,
-                              int maplen,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainPinEmulator)(virDomainPtr domain,
-                           unsigned char *cpumap,
-                           int maplen,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainGetEmulatorPinInfo)(virDomainPtr domain,
-                                  unsigned char *cpumaps,
-                                  int maplen,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainGetVcpus)(virDomainPtr domain,
-                        virVcpuInfoPtr info,
-                        int maxinfo,
-                        unsigned char *cpumaps,
-                        int maplen);
-
-typedef int
-(*virDrvDomainGetMaxVcpus)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainGetSecurityLabel)(virDomainPtr domain,
-                                virSecurityLabelPtr seclabel);
-
-typedef int
-(*virDrvDomainGetSecurityLabelList)(virDomainPtr domain,
-                                    virSecurityLabelPtr* seclabels);
-
-typedef int
-(*virDrvNodeGetSecurityModel)(virConnectPtr conn,
-                              virSecurityModelPtr secmodel);
-
-typedef int
-(*virDrvDomainAttachDevice)(virDomainPtr domain,
-                            const char *xml);
-
-typedef int
-(*virDrvDomainAttachDeviceFlags)(virDomainPtr domain,
-                                 const char *xml,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainDetachDevice)(virDomainPtr domain,
-                            const char *xml);
-
-typedef int
-(*virDrvDomainDetachDeviceFlags)(virDomainPtr domain,
-                                 const char *xml,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainUpdateDeviceFlags)(virDomainPtr domain,
-                                 const char *xml,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainGetAutostart)(virDomainPtr domain,
-                            int *autostart);
-
-typedef int
-(*virDrvDomainSetAutostart)(virDomainPtr domain,
-                            int autostart);
-
-typedef char *
-(*virDrvDomainGetSchedulerType)(virDomainPtr domain,
-                                int *nparams);
-
-typedef int
-(*virDrvDomainGetSchedulerParameters)(virDomainPtr domain,
-                                      virTypedParameterPtr params,
-                                      int *nparams);
-
-typedef int
-(*virDrvDomainGetSchedulerParametersFlags)(virDomainPtr domain,
-                                           virTypedParameterPtr params,
-                                           int *nparams,
-                                           unsigned int flags);
-
-typedef int
-(*virDrvDomainSetSchedulerParameters)(virDomainPtr domain,
-                                      virTypedParameterPtr params,
-                                      int nparams);
-
-typedef int
-(*virDrvDomainSetSchedulerParametersFlags)(virDomainPtr domain,
-                                           virTypedParameterPtr params,
-                                           int nparams,
-                                           unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockStats)(virDomainPtr domain,
-                          const char *path,
-                          virDomainBlockStatsPtr stats);
-
-typedef int
-(*virDrvDomainBlockStatsFlags)(virDomainPtr domain,
-                               const char *path,
-                               virTypedParameterPtr params,
-                               int *nparams,
-                               unsigned int flags);
-
-typedef int
-(*virDrvDomainInterfaceStats)(virDomainPtr domain,
-                              const char *path,
-                              virDomainInterfaceStatsPtr stats);
-
-typedef int
-(*virDrvDomainSetInterfaceParameters)(virDomainPtr dom,
-                                      const char *device,
-                                      virTypedParameterPtr params,
-                                      int nparams,
-                                      unsigned int flags);
-
-typedef int
-(*virDrvDomainGetInterfaceParameters)(virDomainPtr dom,
-                                      const char *device,
-                                      virTypedParameterPtr params,
-                                      int *nparams,
-                                      unsigned int flags);
-
-typedef int
-(*virDrvDomainMemoryStats)(virDomainPtr domain,
-                           virDomainMemoryStatPtr stats,
-                           unsigned int nr_stats,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockPeek)(virDomainPtr domain,
-                         const char *path,
-                         unsigned long long offset,
-                         size_t size,
-                         void *buffer,
-                         unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockResize)(virDomainPtr domain,
-                           const char *path,
-                           unsigned long long size,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainMemoryPeek)(virDomainPtr domain,
-                          unsigned long long start,
-                          size_t size,
-                          void *buffer,
-                          unsigned int flags);
-
-typedef int
-(*virDrvDomainGetBlockInfo)(virDomainPtr domain,
-                            const char *path,
-                            virDomainBlockInfoPtr info,
-                            unsigned int flags);
-
-typedef int
-(*virDrvDomainMigratePrepare)(virConnectPtr dconn,
-                              char **cookie,
-                              int *cookielen,
-                              const char *uri_in,
-                              char **uri_out,
-                              unsigned long flags,
-                              const char *dname,
-                              unsigned long resource);
-
-typedef int
-(*virDrvDomainMigratePerform)(virDomainPtr domain,
-                              const char *cookie,
-                              int cookielen,
-                              const char *uri,
-                              unsigned long flags,
-                              const char *dname,
-                              unsigned long resource);
-
-typedef virDomainPtr
-(*virDrvDomainMigrateFinish)(virConnectPtr dconn,
-                             const char *dname,
-                             const char *cookie,
-                             int cookielen,
-                             const char *uri,
-                             unsigned long flags);
-
-typedef int
-(*virDrvNodeGetCPUStats)(virConnectPtr conn,
-                         int cpuNum,
-                         virNodeCPUStatsPtr params,
-                         int *nparams,
-                         unsigned int flags);
-
-typedef int
-(*virDrvNodeGetMemoryStats)(virConnectPtr conn,
-                            int cellNum,
-                            virNodeMemoryStatsPtr params,
-                            int *nparams,
-                            unsigned int flags);
-
-typedef int
-(*virDrvNodeGetCellsFreeMemory)(virConnectPtr conn,
-                                unsigned long long *freeMems,
-                                int startCell,
-                                int maxCells);
-
-typedef unsigned long long
-(*virDrvNodeGetFreeMemory)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectDomainEventRegister)(virConnectPtr conn,
-                                    virConnectDomainEventCallback cb,
-                                    void *opaque,
-                                    virFreeCallback freecb);
-
-typedef int
-(*virDrvConnectDomainEventDeregister)(virConnectPtr conn,
-                                      virConnectDomainEventCallback cb);
-
-typedef int
-(*virDrvDomainMigratePrepare2)(virConnectPtr dconn,
-                               char **cookie,
-                               int *cookielen,
-                               const char *uri_in,
-                               char **uri_out,
-                               unsigned long flags,
-                               const char *dname,
-                               unsigned long resource,
-                               const char *dom_xml);
-
-typedef virDomainPtr
-(*virDrvDomainMigrateFinish2)(virConnectPtr dconn,
-                              const char *dname,
-                              const char *cookie,
-                              int cookielen,
-                              const char *uri,
-                              unsigned long flags,
-                              int retcode);
-
-typedef int
-(*virDrvNodeDeviceDettach)(virNodeDevicePtr dev);
-
-typedef int
-(*virDrvNodeDeviceDetachFlags)(virNodeDevicePtr dev,
-                               const char *driverName,
-                               unsigned int flags);
-
-typedef int
-(*virDrvNodeDeviceReAttach)(virNodeDevicePtr dev);
-
-typedef int
-(*virDrvNodeDeviceReset)(virNodeDevicePtr dev);
-
-typedef int
-(*virDrvDomainMigratePrepareTunnel)(virConnectPtr dconn,
-                                    virStreamPtr st,
-                                    unsigned long flags,
-                                    const char *dname,
-                                    unsigned long resource,
-                                    const char *dom_xml);
-
-typedef int
-(*virDrvConnectIsEncrypted)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectIsSecure)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectIsAlive)(virConnectPtr conn);
-
-typedef int
-(*virDrvDomainIsActive)(virDomainPtr dom);
-
-typedef int
-(*virDrvDomainIsPersistent)(virDomainPtr dom);
-
-typedef int
-(*virDrvDomainIsUpdated)(virDomainPtr dom);
-
-typedef int
-(*virDrvConnectCompareCPU)(virConnectPtr conn,
-                           const char *cpu,
-                           unsigned int flags);
-
-typedef char *
-(*virDrvConnectBaselineCPU)(virConnectPtr conn,
-                            const char **xmlCPUs,
-                            unsigned int ncpus,
-                            unsigned int flags);
-
-typedef int
-(*virDrvConnectGetCPUModelNames)(virConnectPtr conn,
-                                 const char *args,
-                                 char ***models,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainGetJobInfo)(virDomainPtr domain,
-                          virDomainJobInfoPtr info);
-
-typedef int
-(*virDrvDomainGetJobStats)(virDomainPtr domain,
-                           int *type,
-                           virTypedParameterPtr *params,
-                           int *nparams,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainAbortJob)(virDomainPtr domain);
-
-typedef int
-(*virDrvDomainMigrateSetMaxDowntime)(virDomainPtr domain,
-                                     unsigned long long downtime,
-                                     unsigned int flags);
-
-typedef int
-(*virDrvDomainMigrateGetCompressionCache)(virDomainPtr domain,
-                                          unsigned long long *cacheSize,
-                                          unsigned int flags);
-
-typedef int
-(*virDrvDomainMigrateSetCompressionCache)(virDomainPtr domain,
-                                          unsigned long long cacheSize,
-                                          unsigned int flags);
-
-typedef int
-(*virDrvDomainMigrateSetMaxSpeed)(virDomainPtr domain,
-                                  unsigned long bandwidth,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainMigrateGetMaxSpeed)(virDomainPtr domain,
-                                  unsigned long *bandwidth,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvConnectDomainEventRegisterAny)(virConnectPtr conn,
-                                       virDomainPtr dom,
-                                       int eventID,
-                                       virConnectDomainEventGenericCallback cb,
-                                       void *opaque,
-                                       virFreeCallback freecb);
-
-typedef int
-(*virDrvConnectDomainEventDeregisterAny)(virConnectPtr conn,
-                                         int callbackID);
-
-typedef int
-(*virDrvDomainManagedSave)(virDomainPtr domain,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainHasManagedSaveImage)(virDomainPtr domain,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainManagedSaveRemove)(virDomainPtr domain,
-                                 unsigned int flags);
-
-typedef virDomainSnapshotPtr
-(*virDrvDomainSnapshotCreateXML)(virDomainPtr domain,
-                                 const char *xmlDesc,
-                                 unsigned int flags);
-
-typedef char *
-(*virDrvDomainSnapshotGetXMLDesc)(virDomainSnapshotPtr snapshot,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotNum)(virDomainPtr domain,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotListNames)(virDomainPtr domain,
-                                 char **names,
-                                 int nameslen,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainListAllSnapshots)(virDomainPtr domain,
-                                virDomainSnapshotPtr **snaps,
-                                unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotNumChildren)(virDomainSnapshotPtr snapshot,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotListChildrenNames)(virDomainSnapshotPtr snapshot,
-                                         char **names,
-                                         int nameslen,
-                                         unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotListAllChildren)(virDomainSnapshotPtr snapshot,
-                                       virDomainSnapshotPtr **snaps,
-                                       unsigned int flags);
-
-typedef virDomainSnapshotPtr
-(*virDrvDomainSnapshotLookupByName)(virDomainPtr domain,
-                                    const char *name,
-                                    unsigned int flags);
-
-typedef int
-(*virDrvDomainHasCurrentSnapshot)(virDomainPtr domain,
-                                  unsigned int flags);
-
-typedef virDomainSnapshotPtr
-(*virDrvDomainSnapshotGetParent)(virDomainSnapshotPtr snapshot,
-                                 unsigned int flags);
-
-typedef virDomainSnapshotPtr
-(*virDrvDomainSnapshotCurrent)(virDomainPtr domain,
-                               unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotIsCurrent)(virDomainSnapshotPtr snapshot,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotHasMetadata)(virDomainSnapshotPtr snapshot,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainRevertToSnapshot)(virDomainSnapshotPtr snapshot,
-                                unsigned int flags);
-
-typedef int
-(*virDrvDomainSnapshotDelete)(virDomainSnapshotPtr snapshot,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainQemuMonitorCommand)(virDomainPtr domain,
-                                  const char *cmd,
-                                  char **result,
-                                  unsigned int flags);
-
-typedef char *
-(*virDrvDomainQemuAgentCommand)(virDomainPtr domain,
-                                const char *cmd,
-                                int timeout,
-                                unsigned int flags);
-
-/* Choice of unsigned int rather than pid_t is intentional.  */
-typedef virDomainPtr
-(*virDrvDomainQemuAttach)(virConnectPtr conn,
-                          unsigned int pid_value,
-                          unsigned int flags);
-
-typedef int
-(*virDrvConnectDomainQemuMonitorEventRegister)(virConnectPtr conn,
-                                               virDomainPtr dom,
-                                               const char *event,
-                                               virConnectDomainQemuMonitorEventCallback cb,
-                                               void *opaque,
-                                               virFreeCallback freecb,
-                                               unsigned int flags);
-
-typedef int
-(*virDrvConnectDomainQemuMonitorEventDeregister)(virConnectPtr conn,
-                                                 int callbackID);
-
-typedef int
-(*virDrvDomainOpenConsole)(virDomainPtr dom,
-                           const char *dev_name,
-                           virStreamPtr st,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainOpenChannel)(virDomainPtr dom,
-                           const char *name,
-                           virStreamPtr st,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainOpenGraphics)(virDomainPtr dom,
-                            unsigned int idx,
-                            int fd,
-                            unsigned int flags);
-
-typedef int
-(*virDrvDomainOpenGraphicsFD)(virDomainPtr dom,
-                              unsigned int idx,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainInjectNMI)(virDomainPtr dom,
-                         unsigned int flags);
-
-typedef int
-(*virDrvDomainSendKey)(virDomainPtr dom,
-                       unsigned int codeset,
-                       unsigned int holdtime,
-                       unsigned int *keycodes,
-                       int nkeycodes,
-                       unsigned int flags);
-
-typedef int
-(*virDrvDomainSendProcessSignal)(virDomainPtr dom,
-                                 long long pid_value,
-                                 unsigned int signum,
-                                 unsigned int flags);
-
-typedef char *
-(*virDrvDomainMigrateBegin3)(virDomainPtr domain,
-                             const char *xmlin,
-                             char **cookieout,
-                             int *cookieoutlen,
-                             unsigned long flags,
-                             const char *dname,
-                             unsigned long resource);
-
-typedef int
-(*virDrvDomainMigratePrepare3)(virConnectPtr dconn,
-                               const char *cookiein,
-                               int cookieinlen,
-                               char **cookieout,
-                               int *cookieoutlen,
-                               const char *uri_in,
-                               char **uri_out,
-                               unsigned long flags,
-                               const char *dname,
-                               unsigned long resource,
-                               const char *dom_xml);
-
-typedef int
-(*virDrvDomainMigratePrepareTunnel3)(virConnectPtr dconn,
-                                     virStreamPtr st,
-                                     const char *cookiein,
-                                     int cookieinlen,
-                                     char **cookieout,
-                                     int *cookieoutlen,
-                                     unsigned long flags,
-                                     const char *dname,
-                                     unsigned long resource,
-                                     const char *dom_xml);
-
-
-typedef int
-(*virDrvDomainMigratePerform3)(virDomainPtr dom,
-                               const char *xmlin,
-                               const char *cookiein,
-                               int cookieinlen,
-                               char **cookieout,
-                               int *cookieoutlen,
-                               const char *dconnuri,
-                               const char *uri,
-                               unsigned long flags,
-                               const char *dname,
-                               unsigned long resource);
-
-typedef virDomainPtr
-(*virDrvDomainMigrateFinish3)(virConnectPtr dconn,
-                              const char *dname,
-                              const char *cookiein,
-                              int cookieinlen,
-                              char **cookieout,
-                              int *cookieoutlen,
-                              const char *dconnuri,
-                              const char *uri,
-                              unsigned long flags,
-                              int cancelled);
-
-typedef int
-(*virDrvDomainMigrateConfirm3)(virDomainPtr domain,
-                               const char *cookiein,
-                               int cookieinlen,
-                               unsigned long flags,
-                               int cancelled);
-
-typedef int
-(*virDrvNodeSuspendForDuration)(virConnectPtr conn,
-                                unsigned int target,
-                                unsigned long long duration,
-                                unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockJobAbort)(virDomainPtr dom,
-                             const char *path,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainGetBlockJobInfo)(virDomainPtr dom,
-                               const char *path,
-                               virDomainBlockJobInfoPtr info,
-                               unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockJobSetSpeed)(virDomainPtr dom,
-                                const char *path,
-                                unsigned long bandwidth,
-                                unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockPull)(virDomainPtr dom,
-                         const char *path,
-                         unsigned long bandwidth,
-                         unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockRebase)(virDomainPtr dom,
-                           const char *path,
-                           const char *base,
-                           unsigned long bandwidth,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockCopy)(virDomainPtr dom,
-                         const char *path,
-                         const char *destxml,
-                         virTypedParameterPtr params,
-                         int nparams,
-                         unsigned int flags);
-
-typedef int
-(*virDrvDomainBlockCommit)(virDomainPtr dom,
-                           const char *disk,
-                           const char *base,
-                           const char *top,
-                           unsigned long bandwidth,
-                           unsigned int flags);
-
-typedef int
-(*virDrvConnectSetKeepAlive)(virConnectPtr conn,
-                             int interval,
-                             unsigned int count);
-
-typedef int
-(*virDrvDomainSetBlockIoTune)(virDomainPtr dom,
-                              const char *disk,
-                              virTypedParameterPtr params,
-                              int nparams,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainGetBlockIoTune)(virDomainPtr dom,
-                              const char *disk,
-                              virTypedParameterPtr params,
-                              int *nparams,
-                              unsigned int flags);
-
-typedef int
-(*virDrvDomainShutdownFlags)(virDomainPtr domain,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainGetCPUStats)(virDomainPtr domain,
-                           virTypedParameterPtr params,
-                           unsigned int nparams,
-                           int start_cpu,
-                           unsigned int ncpus,
-                           unsigned int flags);
-
-typedef int
-(*virDrvDomainGetDiskErrors)(virDomainPtr dom,
-                             virDomainDiskErrorPtr errors,
-                             unsigned int maxerrors,
-                             unsigned int flags);
-
-typedef int
-(*virDrvDomainSetMetadata)(virDomainPtr dom,
-                           int type,
-                           const char *metadata,
-                           const char *key,
-                           const char *uri,
-                           unsigned int flags);
-
-typedef char *
-(*virDrvDomainGetMetadata)(virDomainPtr dom,
-                           int type,
-                           const char *uri,
-                           unsigned int flags);
-
-typedef int
-(*virDrvNodeGetMemoryParameters)(virConnectPtr conn,
-                                 virTypedParameterPtr params,
-                                 int *nparams,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvNodeSetMemoryParameters)(virConnectPtr conn,
-                                 virTypedParameterPtr params,
-                                 int nparams,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvNodeGetCPUMap)(virConnectPtr conn,
-                       unsigned char **cpumap,
-                       unsigned int *online,
-                       unsigned int flags);
-
-typedef int
-(*virDrvDomainFSTrim)(virDomainPtr dom,
-                      const char *mountPoint,
-                      unsigned long long minimum,
-                      unsigned int flags);
-
-typedef int
-(*virDrvDomainGetTime)(virDomainPtr dom,
-                       long long *seconds,
-                       unsigned int *nseconds,
-                       unsigned int flags);
-
-typedef int
-(*virDrvDomainSetTime)(virDomainPtr dom,
-                       long long seconds,
-                       unsigned int nseconds,
-                       unsigned int flags);
-
-typedef int
-(*virDrvDomainLxcOpenNamespace)(virDomainPtr dom,
-                                int **fdlist,
-                                unsigned int flags);
-
-typedef char *
-(*virDrvDomainMigrateBegin3Params)(virDomainPtr domain,
-                                   virTypedParameterPtr params,
-                                   int nparams,
-                                   char **cookieout,
-                                   int *cookieoutlen,
-                                   unsigned int flags);
-
-typedef int
-(*virDrvDomainMigratePrepare3Params)(virConnectPtr dconn,
-                                     virTypedParameterPtr params,
-                                     int nparams,
-                                     const char *cookiein,
-                                     int cookieinlen,
-                                     char **cookieout,
-                                     int *cookieoutlen,
-                                     char **uri_out,
-                                     unsigned int flags);
-
-typedef int
-(*virDrvDomainMigratePrepareTunnel3Params)(virConnectPtr dconn,
-                                           virStreamPtr st,
-                                           virTypedParameterPtr params,
-                                           int nparams,
-                                           const char *cookiein,
-                                           int cookieinlen,
-                                           char **cookieout,
-                                           int *cookieoutlen,
-                                           unsigned int flags);
-
-typedef int
-(*virDrvDomainMigratePerform3Params)(virDomainPtr dom,
-                                     const char *dconnuri,
-                                     virTypedParameterPtr params,
-                                     int nparams,
-                                     const char *cookiein,
-                                     int cookieinlen,
-                                     char **cookieout,
-                                     int *cookieoutlen,
-                                     unsigned int flags);
-
-typedef virDomainPtr
-(*virDrvDomainMigrateFinish3Params)(virConnectPtr dconn,
-                                    virTypedParameterPtr params,
-                                    int nparams,
-                                    const char *cookiein,
-                                    int cookieinlen,
-                                    char **cookieout,
-                                    int *cookieoutlen,
-                                    unsigned int flags,
-                                    int cancelled);
-
-typedef int
-(*virDrvDomainMigrateConfirm3Params)(virDomainPtr domain,
-                                     virTypedParameterPtr params,
-                                     int nparams,
-                                     const char *cookiein,
-                                     int cookieinlen,
-                                     unsigned int flags,
-                                     int cancelled);
-
-typedef int
-(*virDrvDomainFSFreeze)(virDomainPtr dom,
-                        const char **mountpoints,
-                        unsigned int nmountpoints,
-                        unsigned int flags);
-
-typedef int
-(*virDrvDomainFSThaw)(virDomainPtr dom,
-                      const char **mountpoints,
-                      unsigned int nmountpoints,
-                      unsigned int flags);
-
-typedef int
-(*virDrvNodeGetFreePages)(virConnectPtr conn,
-                          unsigned int npages,
-                          unsigned int *pages,
-                          int startCell,
-                          unsigned int cellCount,
-                          unsigned long long *counts,
-                          unsigned int flags);
-
-
-typedef int
-(*virDrvConnectGetAllDomainStats)(virConnectPtr conn,
-                                  virDomainPtr *doms,
-                                  unsigned int ndoms,
-                                  unsigned int stats,
-                                  virDomainStatsRecordPtr **retStats,
-                                  unsigned int flags);
-
-typedef int
-(*virDrvNodeAllocPages)(virConnectPtr conn,
-                        unsigned int npages,
-                        unsigned int *pageSizes,
-                        unsigned long long *pageCounts,
-                        int startCell,
-                        unsigned int cellCount,
-                        unsigned int flags);
-
-typedef struct _virHypervisorDriver virHypervisorDriver;
-typedef virHypervisorDriver *virHypervisorDriverPtr;
-
-/**
- * _virHypervisorDriver:
- *
- * Structure associated to a virtualization driver, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - no
- *  - name
- *  - open
- *  - close
- */
-struct _virHypervisorDriver {
-    int no; /* the number virDrvNo */
-    const char *name; /* the name of the driver */
-    virDrvConnectOpen connectOpen;
-    virDrvConnectClose connectClose;
-    virDrvConnectSupportsFeature connectSupportsFeature;
-    virDrvConnectGetType connectGetType;
-    virDrvConnectGetVersion connectGetVersion;
-    virDrvConnectGetLibVersion connectGetLibVersion;
-    virDrvConnectGetHostname connectGetHostname;
-    virDrvConnectGetSysinfo connectGetSysinfo;
-    virDrvConnectGetMaxVcpus connectGetMaxVcpus;
-    virDrvNodeGetInfo nodeGetInfo;
-    virDrvConnectGetCapabilities connectGetCapabilities;
-    virDrvConnectListDomains connectListDomains;
-    virDrvConnectNumOfDomains connectNumOfDomains;
-    virDrvConnectListAllDomains connectListAllDomains;
-    virDrvDomainCreateXML domainCreateXML;
-    virDrvDomainCreateXMLWithFiles domainCreateXMLWithFiles;
-    virDrvDomainLookupByID domainLookupByID;
-    virDrvDomainLookupByUUID domainLookupByUUID;
-    virDrvDomainLookupByName domainLookupByName;
-    virDrvDomainSuspend domainSuspend;
-    virDrvDomainResume domainResume;
-    virDrvDomainPMSuspendForDuration domainPMSuspendForDuration;
-    virDrvDomainPMWakeup domainPMWakeup;
-    virDrvDomainShutdown domainShutdown;
-    virDrvDomainShutdownFlags domainShutdownFlags;
-    virDrvDomainReboot domainReboot;
-    virDrvDomainReset domainReset;
-    virDrvDomainDestroy domainDestroy;
-    virDrvDomainDestroyFlags domainDestroyFlags;
-    virDrvDomainGetOSType domainGetOSType;
-    virDrvDomainGetHostname domainGetHostname;
-    virDrvDomainGetMaxMemory domainGetMaxMemory;
-    virDrvDomainSetMaxMemory domainSetMaxMemory;
-    virDrvDomainSetMemory domainSetMemory;
-    virDrvDomainSetMemoryFlags domainSetMemoryFlags;
-    virDrvDomainSetMemoryStatsPeriod domainSetMemoryStatsPeriod;
-    virDrvDomainSetMemoryParameters domainSetMemoryParameters;
-    virDrvDomainGetMemoryParameters domainGetMemoryParameters;
-    virDrvDomainSetNumaParameters domainSetNumaParameters;
-    virDrvDomainGetNumaParameters domainGetNumaParameters;
-    virDrvDomainSetBlkioParameters domainSetBlkioParameters;
-    virDrvDomainGetBlkioParameters domainGetBlkioParameters;
-    virDrvDomainGetInfo domainGetInfo;
-    virDrvDomainGetState domainGetState;
-    virDrvDomainGetControlInfo domainGetControlInfo;
-    virDrvDomainSave domainSave;
-    virDrvDomainSaveFlags domainSaveFlags;
-    virDrvDomainRestore domainRestore;
-    virDrvDomainRestoreFlags domainRestoreFlags;
-    virDrvDomainSaveImageGetXMLDesc domainSaveImageGetXMLDesc;
-    virDrvDomainSaveImageDefineXML domainSaveImageDefineXML;
-    virDrvDomainCoreDump domainCoreDump;
-    virDrvDomainCoreDumpWithFormat domainCoreDumpWithFormat;
-    virDrvDomainScreenshot domainScreenshot;
-    virDrvDomainSetVcpus domainSetVcpus;
-    virDrvDomainSetVcpusFlags domainSetVcpusFlags;
-    virDrvDomainGetVcpusFlags domainGetVcpusFlags;
-    virDrvDomainPinVcpu domainPinVcpu;
-    virDrvDomainPinVcpuFlags domainPinVcpuFlags;
-    virDrvDomainGetVcpuPinInfo domainGetVcpuPinInfo;
-    virDrvDomainPinEmulator domainPinEmulator;
-    virDrvDomainGetEmulatorPinInfo domainGetEmulatorPinInfo;
-    virDrvDomainGetVcpus domainGetVcpus;
-    virDrvDomainGetMaxVcpus domainGetMaxVcpus;
-    virDrvDomainGetSecurityLabel domainGetSecurityLabel;
-    virDrvDomainGetSecurityLabelList domainGetSecurityLabelList;
-    virDrvNodeGetSecurityModel nodeGetSecurityModel;
-    virDrvDomainGetXMLDesc domainGetXMLDesc;
-    virDrvConnectDomainXMLFromNative connectDomainXMLFromNative;
-    virDrvConnectDomainXMLToNative connectDomainXMLToNative;
-    virDrvConnectListDefinedDomains connectListDefinedDomains;
-    virDrvConnectNumOfDefinedDomains connectNumOfDefinedDomains;
-    virDrvDomainCreate domainCreate;
-    virDrvDomainCreateWithFlags domainCreateWithFlags;
-    virDrvDomainCreateWithFiles domainCreateWithFiles;
-    virDrvDomainDefineXML domainDefineXML;
-    virDrvDomainUndefine domainUndefine;
-    virDrvDomainUndefineFlags domainUndefineFlags;
-    virDrvDomainAttachDevice domainAttachDevice;
-    virDrvDomainAttachDeviceFlags domainAttachDeviceFlags;
-    virDrvDomainDetachDevice domainDetachDevice;
-    virDrvDomainDetachDeviceFlags domainDetachDeviceFlags;
-    virDrvDomainUpdateDeviceFlags domainUpdateDeviceFlags;
-    virDrvDomainGetAutostart domainGetAutostart;
-    virDrvDomainSetAutostart domainSetAutostart;
-    virDrvDomainGetSchedulerType domainGetSchedulerType;
-    virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
-    virDrvDomainGetSchedulerParametersFlags domainGetSchedulerParametersFlags;
-    virDrvDomainSetSchedulerParameters domainSetSchedulerParameters;
-    virDrvDomainSetSchedulerParametersFlags domainSetSchedulerParametersFlags;
-    virDrvDomainMigratePrepare domainMigratePrepare;
-    virDrvDomainMigratePerform domainMigratePerform;
-    virDrvDomainMigrateFinish domainMigrateFinish;
-    virDrvDomainBlockResize domainBlockResize;
-    virDrvDomainBlockStats domainBlockStats;
-    virDrvDomainBlockStatsFlags domainBlockStatsFlags;
-    virDrvDomainInterfaceStats domainInterfaceStats;
-    virDrvDomainSetInterfaceParameters domainSetInterfaceParameters;
-    virDrvDomainGetInterfaceParameters domainGetInterfaceParameters;
-    virDrvDomainMemoryStats domainMemoryStats;
-    virDrvDomainBlockPeek domainBlockPeek;
-    virDrvDomainMemoryPeek domainMemoryPeek;
-    virDrvDomainGetBlockInfo domainGetBlockInfo;
-    virDrvNodeGetCPUStats nodeGetCPUStats;
-    virDrvNodeGetMemoryStats nodeGetMemoryStats;
-    virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
-    virDrvNodeGetFreeMemory nodeGetFreeMemory;
-    virDrvConnectDomainEventRegister connectDomainEventRegister;
-    virDrvConnectDomainEventDeregister connectDomainEventDeregister;
-    virDrvDomainMigratePrepare2 domainMigratePrepare2;
-    virDrvDomainMigrateFinish2 domainMigrateFinish2;
-    virDrvNodeDeviceDettach nodeDeviceDettach;
-    virDrvNodeDeviceDetachFlags nodeDeviceDetachFlags;
-    virDrvNodeDeviceReAttach nodeDeviceReAttach;
-    virDrvNodeDeviceReset nodeDeviceReset;
-    virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
-    virDrvConnectIsEncrypted connectIsEncrypted;
-    virDrvConnectIsSecure connectIsSecure;
-    virDrvDomainIsActive domainIsActive;
-    virDrvDomainIsPersistent domainIsPersistent;
-    virDrvDomainIsUpdated domainIsUpdated;
-    virDrvConnectCompareCPU connectCompareCPU;
-    virDrvConnectBaselineCPU connectBaselineCPU;
-    virDrvDomainGetJobInfo domainGetJobInfo;
-    virDrvDomainGetJobStats domainGetJobStats;
-    virDrvDomainAbortJob domainAbortJob;
-    virDrvDomainMigrateSetMaxDowntime domainMigrateSetMaxDowntime;
-    virDrvDomainMigrateGetCompressionCache domainMigrateGetCompressionCache;
-    virDrvDomainMigrateSetCompressionCache domainMigrateSetCompressionCache;
-    virDrvDomainMigrateGetMaxSpeed domainMigrateGetMaxSpeed;
-    virDrvDomainMigrateSetMaxSpeed domainMigrateSetMaxSpeed;
-    virDrvConnectDomainEventRegisterAny connectDomainEventRegisterAny;
-    virDrvConnectDomainEventDeregisterAny connectDomainEventDeregisterAny;
-    virDrvDomainManagedSave domainManagedSave;
-    virDrvDomainHasManagedSaveImage domainHasManagedSaveImage;
-    virDrvDomainManagedSaveRemove domainManagedSaveRemove;
-    virDrvDomainSnapshotCreateXML domainSnapshotCreateXML;
-    virDrvDomainSnapshotGetXMLDesc domainSnapshotGetXMLDesc;
-    virDrvDomainSnapshotNum domainSnapshotNum;
-    virDrvDomainSnapshotListNames domainSnapshotListNames;
-    virDrvDomainListAllSnapshots domainListAllSnapshots;
-    virDrvDomainSnapshotNumChildren domainSnapshotNumChildren;
-    virDrvDomainSnapshotListChildrenNames domainSnapshotListChildrenNames;
-    virDrvDomainSnapshotListAllChildren domainSnapshotListAllChildren;
-    virDrvDomainSnapshotLookupByName domainSnapshotLookupByName;
-    virDrvDomainHasCurrentSnapshot domainHasCurrentSnapshot;
-    virDrvDomainSnapshotGetParent domainSnapshotGetParent;
-    virDrvDomainSnapshotCurrent domainSnapshotCurrent;
-    virDrvDomainSnapshotIsCurrent domainSnapshotIsCurrent;
-    virDrvDomainSnapshotHasMetadata domainSnapshotHasMetadata;
-    virDrvDomainRevertToSnapshot domainRevertToSnapshot;
-    virDrvDomainSnapshotDelete domainSnapshotDelete;
-    virDrvDomainQemuMonitorCommand domainQemuMonitorCommand;
-    virDrvDomainQemuAttach domainQemuAttach;
-    virDrvDomainQemuAgentCommand domainQemuAgentCommand;
-    virDrvConnectDomainQemuMonitorEventRegister connectDomainQemuMonitorEventRegister;
-    virDrvConnectDomainQemuMonitorEventDeregister connectDomainQemuMonitorEventDeregister;
-    virDrvDomainOpenConsole domainOpenConsole;
-    virDrvDomainOpenChannel domainOpenChannel;
-    virDrvDomainOpenGraphics domainOpenGraphics;
-    virDrvDomainOpenGraphicsFD domainOpenGraphicsFD;
-    virDrvDomainInjectNMI domainInjectNMI;
-    virDrvDomainMigrateBegin3 domainMigrateBegin3;
-    virDrvDomainMigratePrepare3 domainMigratePrepare3;
-    virDrvDomainMigratePrepareTunnel3 domainMigratePrepareTunnel3;
-    virDrvDomainMigratePerform3 domainMigratePerform3;
-    virDrvDomainMigrateFinish3 domainMigrateFinish3;
-    virDrvDomainMigrateConfirm3 domainMigrateConfirm3;
-    virDrvDomainSendKey domainSendKey;
-    virDrvDomainBlockJobAbort domainBlockJobAbort;
-    virDrvDomainGetBlockJobInfo domainGetBlockJobInfo;
-    virDrvDomainBlockJobSetSpeed domainBlockJobSetSpeed;
-    virDrvDomainBlockPull domainBlockPull;
-    virDrvDomainBlockRebase domainBlockRebase;
-    virDrvDomainBlockCopy domainBlockCopy;
-    virDrvDomainBlockCommit domainBlockCommit;
-    virDrvConnectSetKeepAlive connectSetKeepAlive;
-    virDrvConnectIsAlive connectIsAlive;
-    virDrvNodeSuspendForDuration nodeSuspendForDuration;
-    virDrvDomainSetBlockIoTune domainSetBlockIoTune;
-    virDrvDomainGetBlockIoTune domainGetBlockIoTune;
-    virDrvDomainGetCPUStats domainGetCPUStats;
-    virDrvDomainGetDiskErrors domainGetDiskErrors;
-    virDrvDomainSetMetadata domainSetMetadata;
-    virDrvDomainGetMetadata domainGetMetadata;
-    virDrvNodeGetMemoryParameters nodeGetMemoryParameters;
-    virDrvNodeSetMemoryParameters nodeSetMemoryParameters;
-    virDrvNodeGetCPUMap nodeGetCPUMap;
-    virDrvDomainFSTrim domainFSTrim;
-    virDrvDomainSendProcessSignal domainSendProcessSignal;
-    virDrvDomainLxcOpenNamespace domainLxcOpenNamespace;
-    virDrvDomainMigrateBegin3Params domainMigrateBegin3Params;
-    virDrvDomainMigratePrepare3Params domainMigratePrepare3Params;
-    virDrvDomainMigratePrepareTunnel3Params domainMigratePrepareTunnel3Params;
-    virDrvDomainMigratePerform3Params domainMigratePerform3Params;
-    virDrvDomainMigrateFinish3Params domainMigrateFinish3Params;
-    virDrvDomainMigrateConfirm3Params domainMigrateConfirm3Params;
-    virDrvConnectGetCPUModelNames connectGetCPUModelNames;
-    virDrvDomainFSFreeze domainFSFreeze;
-    virDrvDomainFSThaw domainFSThaw;
-    virDrvDomainGetTime domainGetTime;
-    virDrvDomainSetTime domainSetTime;
-    virDrvNodeGetFreePages nodeGetFreePages;
-    virDrvConnectGetDomainCapabilities connectGetDomainCapabilities;
-    virDrvConnectGetAllDomainStats connectGetAllDomainStats;
-    virDrvNodeAllocPages nodeAllocPages;
-};
-
-
-typedef virDrvConnectOpen virDrvNetworkOpen;
-typedef virDrvConnectClose virDrvNetworkClose;
-
-typedef int
-(*virDrvConnectNumOfNetworks)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListNetworks)(virConnectPtr conn,
-                             char **const names,
-                             int maxnames);
-
-typedef int
-(*virDrvConnectNumOfDefinedNetworks)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListDefinedNetworks)(virConnectPtr conn,
-                                    char **const names,
-                                    int maxnames);
-
-typedef int
-(*virDrvConnectListAllNetworks)(virConnectPtr conn,
-                                virNetworkPtr **nets,
-                                unsigned int flags);
-
-typedef int
-(*virDrvConnectNetworkEventRegisterAny)(virConnectPtr conn,
-                                        virNetworkPtr dom,
-                                        int eventID,
-                                        virConnectNetworkEventGenericCallback cb,
-                                        void *opaque,
-                                        virFreeCallback freecb);
-
-typedef int
-(*virDrvConnectNetworkEventDeregisterAny)(virConnectPtr conn,
-                                          int callbackID);
-
-typedef virNetworkPtr
-(*virDrvNetworkLookupByUUID)(virConnectPtr conn,
-                             const unsigned char *uuid);
-
-typedef virNetworkPtr
-(*virDrvNetworkLookupByName)(virConnectPtr conn,
-                             const char *name);
-
-typedef virNetworkPtr
-(*virDrvNetworkCreateXML)(virConnectPtr conn,
-                          const char *xmlDesc);
-
-typedef virNetworkPtr
-(*virDrvNetworkDefineXML)(virConnectPtr conn,
-                          const char *xml);
-
-typedef int
-(*virDrvNetworkUndefine)(virNetworkPtr network);
-
-typedef int
-(*virDrvNetworkUpdate)(virNetworkPtr network,
-                       unsigned int command, /* virNetworkUpdateCommand */
-                       unsigned int section, /* virNetworkUpdateSection */
-                       int parentIndex,
-                       const char *xml,
-                       unsigned int flags);
-
-typedef int
-(*virDrvNetworkCreate)(virNetworkPtr network);
-
-typedef int
-(*virDrvNetworkDestroy)(virNetworkPtr network);
-
-typedef char *
-(*virDrvNetworkGetXMLDesc)(virNetworkPtr network,
-                           unsigned int flags);
-
-typedef char *
-(*virDrvNetworkGetBridgeName)(virNetworkPtr network);
-
-typedef int
-(*virDrvNetworkGetAutostart)(virNetworkPtr network,
-                             int *autostart);
-
-typedef int
-(*virDrvNetworkSetAutostart)(virNetworkPtr network,
-                             int autostart);
-
-typedef int
-(*virDrvNetworkIsActive)(virNetworkPtr net);
-
-typedef int
-(*virDrvNetworkIsPersistent)(virNetworkPtr net);
-
-typedef int
-(*virDrvNetworkGetDHCPLeases)(virNetworkPtr network,
-                              const char *mac,
-                              virNetworkDHCPLeasePtr **leases,
-                              unsigned int flags);
-
-typedef struct _virNetworkDriver virNetworkDriver;
-typedef virNetworkDriver *virNetworkDriverPtr;
-
-/**
- * _virNetworkDriver:
- *
- * Structure associated to a network virtualization driver, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - open
- *  - close
- */
-struct _virNetworkDriver {
-    const char * name; /* the name of the driver */
-    virDrvNetworkOpen networkOpen;
-    virDrvNetworkClose networkClose;
-    virDrvConnectNumOfNetworks connectNumOfNetworks;
-    virDrvConnectListNetworks connectListNetworks;
-    virDrvConnectNumOfDefinedNetworks connectNumOfDefinedNetworks;
-    virDrvConnectListDefinedNetworks connectListDefinedNetworks;
-    virDrvConnectListAllNetworks connectListAllNetworks;
-    virDrvConnectNetworkEventRegisterAny connectNetworkEventRegisterAny;
-    virDrvConnectNetworkEventDeregisterAny connectNetworkEventDeregisterAny;
-    virDrvNetworkLookupByUUID networkLookupByUUID;
-    virDrvNetworkLookupByName networkLookupByName;
-    virDrvNetworkCreateXML networkCreateXML;
-    virDrvNetworkDefineXML networkDefineXML;
-    virDrvNetworkUndefine networkUndefine;
-    virDrvNetworkUpdate networkUpdate;
-    virDrvNetworkCreate networkCreate;
-    virDrvNetworkDestroy networkDestroy;
-    virDrvNetworkGetXMLDesc networkGetXMLDesc;
-    virDrvNetworkGetBridgeName networkGetBridgeName;
-    virDrvNetworkGetAutostart networkGetAutostart;
-    virDrvNetworkSetAutostart networkSetAutostart;
-    virDrvNetworkIsActive networkIsActive;
-    virDrvNetworkIsPersistent networkIsPersistent;
-    virDrvNetworkGetDHCPLeases networkGetDHCPLeases;
-};
-
-
-typedef virDrvConnectOpen virDrvInterfaceOpen;
-typedef virDrvConnectClose virDrvInterfaceClose;
-
-typedef int
-(*virDrvConnectNumOfInterfaces)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListInterfaces)(virConnectPtr conn,
-                               char **const names,
-                               int maxnames);
-
-typedef int
-(*virDrvConnectNumOfDefinedInterfaces)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListDefinedInterfaces)(virConnectPtr conn,
-                                      char **const names,
-                                      int maxnames);
-
-typedef int
-(*virDrvConnectListAllInterfaces)(virConnectPtr conn,
-                                  virInterfacePtr **ifaces,
-                                  unsigned int flags);
-
-typedef virInterfacePtr
-(*virDrvInterfaceLookupByName)(virConnectPtr conn,
-                               const char *name);
-
-typedef virInterfacePtr
-(*virDrvInterfaceLookupByMACString)(virConnectPtr conn,
-                                    const char *mac);
-
-typedef char *
-(*virDrvInterfaceGetXMLDesc)(virInterfacePtr iface,
-                             unsigned int flags);
-
-typedef virInterfacePtr
-(*virDrvInterfaceDefineXML)(virConnectPtr conn,
-                            const char *xmlDesc,
-                            unsigned int flags);
-
-typedef int
-(*virDrvInterfaceUndefine)(virInterfacePtr iface);
-
-typedef int
-(*virDrvInterfaceCreate)(virInterfacePtr iface,
-                         unsigned int flags);
-
-typedef int
-(*virDrvInterfaceDestroy)(virInterfacePtr iface,
-                          unsigned int flags);
-
-typedef int
-(*virDrvInterfaceIsActive)(virInterfacePtr iface);
-
-typedef int
-(*virDrvInterfaceChangeBegin)(virConnectPtr conn,
-                              unsigned int flags);
-
-typedef int
-(*virDrvInterfaceChangeCommit)(virConnectPtr conn,
-                               unsigned int flags);
-
-typedef int
-(*virDrvInterfaceChangeRollback)(virConnectPtr conn,
-                                 unsigned int flags);
-
-typedef struct _virInterfaceDriver virInterfaceDriver;
-typedef virInterfaceDriver *virInterfaceDriverPtr;
-
-/**
- * _virInterfaceDriver:
- *
- * Structure associated to a network interface driver, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - open
- *  - close
- */
-struct _virInterfaceDriver {
-    const char *name; /* the name of the driver */
-    virDrvInterfaceOpen interfaceOpen;
-    virDrvInterfaceClose interfaceClose;
-    virDrvConnectNumOfInterfaces connectNumOfInterfaces;
-    virDrvConnectListInterfaces connectListInterfaces;
-    virDrvConnectNumOfDefinedInterfaces connectNumOfDefinedInterfaces;
-    virDrvConnectListDefinedInterfaces connectListDefinedInterfaces;
-    virDrvConnectListAllInterfaces connectListAllInterfaces;
-    virDrvInterfaceLookupByName interfaceLookupByName;
-    virDrvInterfaceLookupByMACString interfaceLookupByMACString;
-    virDrvInterfaceGetXMLDesc interfaceGetXMLDesc;
-    virDrvInterfaceDefineXML interfaceDefineXML;
-    virDrvInterfaceUndefine interfaceUndefine;
-    virDrvInterfaceCreate interfaceCreate;
-    virDrvInterfaceDestroy interfaceDestroy;
-    virDrvInterfaceIsActive interfaceIsActive;
-    virDrvInterfaceChangeBegin interfaceChangeBegin;
-    virDrvInterfaceChangeCommit interfaceChangeCommit;
-    virDrvInterfaceChangeRollback interfaceChangeRollback;
-};
-
-
-typedef virDrvConnectOpen virDrvStorageOpen;
-typedef virDrvConnectClose virDrvStorageClose;
-
-
-typedef int
-(*virDrvConnectNumOfStoragePools)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListStoragePools)(virConnectPtr conn,
-                                 char **const names,
-                                 int maxnames);
-
-typedef int
-(*virDrvConnectNumOfDefinedStoragePools)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListDefinedStoragePools)(virConnectPtr conn,
-                                        char **const names,
-                                        int maxnames);
-
-typedef int
-(*virDrvConnectListAllStoragePools)(virConnectPtr conn,
-                                    virStoragePoolPtr **pools,
-                                    unsigned int flags);
-
-typedef char *
-(*virDrvConnectFindStoragePoolSources)(virConnectPtr conn,
-                                       const char *type,
-                                       const char *srcSpec,
-                                       unsigned int flags);
-
-typedef virStoragePoolPtr
-(*virDrvStoragePoolLookupByName)(virConnectPtr conn,
-                                 const char *name);
-
-typedef virStoragePoolPtr
-(*virDrvStoragePoolLookupByUUID)(virConnectPtr conn,
-                                 const unsigned char *uuid);
-
-typedef virStoragePoolPtr
-(*virDrvStoragePoolLookupByVolume)(virStorageVolPtr vol);
-
-typedef virStoragePoolPtr
-(*virDrvStoragePoolCreateXML)(virConnectPtr conn,
-                              const char *xmlDesc,
-                              unsigned int flags);
-
-typedef virStoragePoolPtr
-(*virDrvStoragePoolDefineXML)(virConnectPtr conn,
-                              const char *xmlDesc,
-                              unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolUndefine)(virStoragePoolPtr pool);
-
-typedef int
-(*virDrvStoragePoolBuild)(virStoragePoolPtr pool,
-                          unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolCreate)(virStoragePoolPtr pool,
-                           unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolDestroy)(virStoragePoolPtr pool);
-
-typedef int
-(*virDrvStoragePoolDelete)(virStoragePoolPtr pool,
-                           unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolRefresh)(virStoragePoolPtr pool,
-                            unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolGetInfo)(virStoragePoolPtr vol,
-                            virStoragePoolInfoPtr info);
-
-typedef char *
-(*virDrvStoragePoolGetXMLDesc)(virStoragePoolPtr pool,
-                               unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolGetAutostart)(virStoragePoolPtr pool,
-                                 int *autostart);
-
-typedef int
-(*virDrvStoragePoolSetAutostart)(virStoragePoolPtr pool,
-                                 int autostart);
-
-typedef int
-(*virDrvStoragePoolNumOfVolumes)(virStoragePoolPtr pool);
-
-typedef int
-(*virDrvStoragePoolListVolumes)(virStoragePoolPtr pool,
-                                char **const names,
-                                int maxnames);
-
-typedef int
-(*virDrvStoragePoolListAllVolumes)(virStoragePoolPtr pool,
-                                   virStorageVolPtr **vols,
-                                   unsigned int flags);
-
-typedef virStorageVolPtr
-(*virDrvStorageVolLookupByName)(virStoragePoolPtr pool,
-                                const char *name);
-
-typedef virStorageVolPtr
-(*virDrvStorageVolLookupByKey)(virConnectPtr pool,
-                               const char *key);
-
-typedef virStorageVolPtr
-(*virDrvStorageVolLookupByPath)(virConnectPtr pool,
-                                const char *path);
-
-typedef virStorageVolPtr
-(*virDrvStorageVolCreateXML)(virStoragePoolPtr pool,
-                             const char *xmldesc,
-                             unsigned int flags);
-
-typedef int
-(*virDrvStorageVolDelete)(virStorageVolPtr vol,
-                          unsigned int flags);
-
-typedef int
-(*virDrvStorageVolWipe)(virStorageVolPtr vol,
-                        unsigned int flags);
-
-typedef int
-(*virDrvStorageVolWipePattern)(virStorageVolPtr vol,
-                               unsigned int algorithm,
-                               unsigned int flags);
-
-typedef int
-(*virDrvStorageVolGetInfo)(virStorageVolPtr vol,
-                           virStorageVolInfoPtr info);
-
-typedef char *
-(*virDrvStorageVolGetXMLDesc)(virStorageVolPtr pool,
-                              unsigned int flags);
-
-typedef char *
-(*virDrvStorageVolGetPath)(virStorageVolPtr vol);
-
-typedef virStorageVolPtr
-(*virDrvStorageVolCreateXMLFrom)(virStoragePoolPtr pool,
-                                 const char *xmldesc,
-                                 virStorageVolPtr clonevol,
-                                 unsigned int flags);
-
-typedef int
-(*virDrvStorageVolDownload)(virStorageVolPtr vol,
-                            virStreamPtr stream,
-                            unsigned long long offset,
-                            unsigned long long length,
-                            unsigned int flags);
-
-typedef int
-(*virDrvStorageVolUpload)(virStorageVolPtr vol,
-                          virStreamPtr stream,
-                          unsigned long long offset,
-                          unsigned long long length,
-                          unsigned int flags);
-
-typedef int
-(*virDrvStorageVolResize)(virStorageVolPtr vol,
-                          unsigned long long capacity,
-                          unsigned int flags);
-
-typedef int
-(*virDrvStoragePoolIsActive)(virStoragePoolPtr pool);
-
-typedef int
-(*virDrvStoragePoolIsPersistent)(virStoragePoolPtr pool);
-
-
-
-typedef struct _virStorageDriver virStorageDriver;
-typedef virStorageDriver *virStorageDriverPtr;
-
-/**
- * _virStorageDriver:
- *
- * Structure associated to a storage driver, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - open
- *  - close
- */
-struct _virStorageDriver {
-    const char * name; /* the name of the driver */
-    virDrvStorageOpen storageOpen;
-    virDrvStorageClose storageClose;
-    virDrvConnectNumOfStoragePools connectNumOfStoragePools;
-    virDrvConnectListStoragePools connectListStoragePools;
-    virDrvConnectNumOfDefinedStoragePools connectNumOfDefinedStoragePools;
-    virDrvConnectListDefinedStoragePools connectListDefinedStoragePools;
-    virDrvConnectListAllStoragePools connectListAllStoragePools;
-    virDrvConnectFindStoragePoolSources connectFindStoragePoolSources;
-    virDrvStoragePoolLookupByName storagePoolLookupByName;
-    virDrvStoragePoolLookupByUUID storagePoolLookupByUUID;
-    virDrvStoragePoolLookupByVolume storagePoolLookupByVolume;
-    virDrvStoragePoolCreateXML storagePoolCreateXML;
-    virDrvStoragePoolDefineXML storagePoolDefineXML;
-    virDrvStoragePoolBuild storagePoolBuild;
-    virDrvStoragePoolUndefine storagePoolUndefine;
-    virDrvStoragePoolCreate storagePoolCreate;
-    virDrvStoragePoolDestroy storagePoolDestroy;
-    virDrvStoragePoolDelete storagePoolDelete;
-    virDrvStoragePoolRefresh storagePoolRefresh;
-    virDrvStoragePoolGetInfo storagePoolGetInfo;
-    virDrvStoragePoolGetXMLDesc storagePoolGetXMLDesc;
-    virDrvStoragePoolGetAutostart storagePoolGetAutostart;
-    virDrvStoragePoolSetAutostart storagePoolSetAutostart;
-    virDrvStoragePoolNumOfVolumes storagePoolNumOfVolumes;
-    virDrvStoragePoolListVolumes storagePoolListVolumes;
-    virDrvStoragePoolListAllVolumes storagePoolListAllVolumes;
-    virDrvStorageVolLookupByName storageVolLookupByName;
-    virDrvStorageVolLookupByKey storageVolLookupByKey;
-    virDrvStorageVolLookupByPath storageVolLookupByPath;
-    virDrvStorageVolCreateXML storageVolCreateXML;
-    virDrvStorageVolCreateXMLFrom storageVolCreateXMLFrom;
-    virDrvStorageVolDownload storageVolDownload;
-    virDrvStorageVolUpload storageVolUpload;
-    virDrvStorageVolDelete storageVolDelete;
-    virDrvStorageVolWipe storageVolWipe;
-    virDrvStorageVolWipePattern storageVolWipePattern;
-    virDrvStorageVolGetInfo storageVolGetInfo;
-    virDrvStorageVolGetXMLDesc storageVolGetXMLDesc;
-    virDrvStorageVolGetPath storageVolGetPath;
-    virDrvStorageVolResize storageVolResize;
-    virDrvStoragePoolIsActive storagePoolIsActive;
-    virDrvStoragePoolIsPersistent storagePoolIsPersistent;
-};
+# define __VIR_DRIVER_H_INCLUDES___
 
+# include "driver-hypervisor.h"
+# include "driver-interface.h"
+# include "driver-network.h"
+# include "driver-nodedev.h"
+# include "driver-nwfilter.h"
+# include "driver-secret.h"
 # ifdef WITH_LIBVIRTD
-
-typedef int
-(*virDrvStateInitialize)(bool privileged,
-                         virStateInhibitCallback callback,
-                         void *opaque);
-
-typedef void
-(*virDrvStateAutoStart)(void);
-
-typedef int
-(*virDrvStateCleanup)(void);
-
-typedef int
-(*virDrvStateReload)(void);
-
-typedef int
-(*virDrvStateStop)(void);
-
-typedef struct _virStateDriver virStateDriver;
-typedef virStateDriver *virStateDriverPtr;
-
-struct _virStateDriver {
-    const char *name;
-    virDrvStateInitialize stateInitialize;
-    virDrvStateAutoStart stateAutoStart;
-    virDrvStateCleanup stateCleanup;
-    virDrvStateReload stateReload;
-    virDrvStateStop stateStop;
-};
+#  include "driver-state.h"
 # endif
+# include "driver-stream.h"
+# include "driver-storage.h"
 
+# undef __VIR_DRIVER_H_INCLUDES___
 
-typedef virDrvConnectOpen virDrvNodeDeviceOpen;
-typedef virDrvConnectClose virDrvNodeDeviceClose;
-
-
-typedef int
-(*virDrvNodeNumOfDevices)(virConnectPtr conn,
-                          const char *cap,
-                          unsigned int flags);
-
-typedef int
-(*virDrvNodeListDevices)(virConnectPtr conn,
-                         const char *cap,
-                         char **const names,
-                         int maxnames,
-                         unsigned int flags);
-
-typedef int
-(*virDrvConnectListAllNodeDevices)(virConnectPtr conn,
-                                   virNodeDevicePtr **devices,
-                                   unsigned int flags);
-
-typedef virNodeDevicePtr
-(*virDrvNodeDeviceLookupByName)(virConnectPtr conn,
-                                const char *name);
-
-typedef virNodeDevicePtr
-(*virDrvNodeDeviceLookupSCSIHostByWWN)(virConnectPtr conn,
-                                       const char *wwnn,
-                                       const char *wwpn,
-                                       unsigned int flags);
-
-typedef char *
-(*virDrvNodeDeviceGetXMLDesc)(virNodeDevicePtr dev,
-                              unsigned int flags);
-
-typedef char *
-(*virDrvNodeDeviceGetParent)(virNodeDevicePtr dev);
-
-typedef int
-(*virDrvNodeDeviceNumOfCaps)(virNodeDevicePtr dev);
-
-typedef int
-(*virDrvNodeDeviceListCaps)(virNodeDevicePtr dev,
-                            char **const names,
-                            int maxnames);
-
-typedef virNodeDevicePtr
-(*virDrvNodeDeviceCreateXML)(virConnectPtr conn,
-                             const char *xmlDesc,
-                             unsigned int flags);
-
-typedef int
-(*virDrvNodeDeviceDestroy)(virNodeDevicePtr dev);
-
-
-
-typedef struct _virNodeDeviceDriver virNodeDeviceDriver;
-typedef virNodeDeviceDriver *virNodeDeviceDriverPtr;
-
-/**
- * _virNodeDeviceDriver:
- *
- * Structure associated with monitoring the devices
- * on a virtualized node.
- *
- */
-struct _virNodeDeviceDriver {
-    const char * name; /* the name of the driver */
-    virDrvNodeDeviceOpen nodeDeviceOpen;
-    virDrvNodeDeviceClose nodeDeviceClose;
-    virDrvNodeNumOfDevices nodeNumOfDevices;
-    virDrvNodeListDevices nodeListDevices;
-    virDrvConnectListAllNodeDevices connectListAllNodeDevices;
-    virDrvNodeDeviceLookupByName nodeDeviceLookupByName;
-    virDrvNodeDeviceLookupSCSIHostByWWN nodeDeviceLookupSCSIHostByWWN;
-    virDrvNodeDeviceGetXMLDesc nodeDeviceGetXMLDesc;
-    virDrvNodeDeviceGetParent nodeDeviceGetParent;
-    virDrvNodeDeviceNumOfCaps nodeDeviceNumOfCaps;
-    virDrvNodeDeviceListCaps nodeDeviceListCaps;
-    virDrvNodeDeviceCreateXML nodeDeviceCreateXML;
-    virDrvNodeDeviceDestroy nodeDeviceDestroy;
-};
-
-enum {
-    /* This getValue call is inside libvirt, override the "private" flag.
-       This flag cannot be set by outside callers. */
-    VIR_SECRET_GET_VALUE_INTERNAL_CALL = 1 << 0,
-};
-
-typedef virDrvConnectOpen virDrvSecretOpen;
-typedef virDrvConnectClose virDrvSecretClose;
-
-
-typedef virSecretPtr
-(*virDrvSecretLookupByUUID)(virConnectPtr conn,
-                            const unsigned char *uuid);
-
-typedef virSecretPtr
-(*virDrvSecretLookupByUsage)(virConnectPtr conn,
-                             int usageType,
-                             const char *usageID);
-
-typedef virSecretPtr
-(*virDrvSecretDefineXML)(virConnectPtr conn,
-                         const char *xml,
-                         unsigned int flags);
-
-typedef char *
-(*virDrvSecretGetXMLDesc)(virSecretPtr secret,
-                          unsigned int flags);
-
-typedef int
-(*virDrvSecretSetValue)(virSecretPtr secret,
-                        const unsigned char *value,
-                        size_t value_size,
-                        unsigned int flags);
-
-typedef unsigned char *
-(*virDrvSecretGetValue)(virSecretPtr secret,
-                        size_t *value_size,
-                        unsigned int flags,
-                        unsigned int internalFlags);
-
-typedef int
-(*virDrvSecretUndefine)(virSecretPtr secret);
-
-typedef int
-(*virDrvConnectNumOfSecrets)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListSecrets)(virConnectPtr conn,
-                            char **uuids,
-                            int maxuuids);
-
-typedef int
-(*virDrvConnectListAllSecrets)(virConnectPtr conn,
-                               virSecretPtr **secrets,
-                               unsigned int flags);
-
-typedef struct _virSecretDriver virSecretDriver;
-typedef virSecretDriver *virSecretDriverPtr;
-
-/**
- * _virSecretDriver:
- *
- * Structure associated to a driver for storing secrets, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - open
- *  - close
- */
-struct _virSecretDriver {
-    const char *name;
-    virDrvSecretOpen secretOpen;
-    virDrvSecretClose secretClose;
-    virDrvConnectNumOfSecrets connectNumOfSecrets;
-    virDrvConnectListSecrets connectListSecrets;
-    virDrvConnectListAllSecrets connectListAllSecrets;
-    virDrvSecretLookupByUUID secretLookupByUUID;
-    virDrvSecretLookupByUsage secretLookupByUsage;
-    virDrvSecretDefineXML secretDefineXML;
-    virDrvSecretGetXMLDesc secretGetXMLDesc;
-    virDrvSecretSetValue secretSetValue;
-    virDrvSecretGetValue secretGetValue;
-    virDrvSecretUndefine secretUndefine;
-};
-
-
-typedef int
-(*virDrvStreamSend)(virStreamPtr st,
-                    const char *data,
-                    size_t nbytes);
-
-typedef int
-(*virDrvStreamRecv)(virStreamPtr st,
-                    char *data,
-                    size_t nbytes);
-
-typedef int
-(*virDrvStreamEventAddCallback)(virStreamPtr stream,
-                                int events,
-                                virStreamEventCallback cb,
-                                void *opaque,
-                                virFreeCallback ff);
-
-typedef int
-(*virDrvStreamEventUpdateCallback)(virStreamPtr stream,
-                                   int events);
-
-typedef int
-(*virDrvStreamEventRemoveCallback)(virStreamPtr stream);
-
-typedef int
-(*virDrvStreamFinish)(virStreamPtr st);
-
-typedef int
-(*virDrvStreamAbort)(virStreamPtr st);
-
-typedef struct _virStreamDriver virStreamDriver;
-typedef virStreamDriver *virStreamDriverPtr;
-
-struct _virStreamDriver {
-    virDrvStreamSend streamSend;
-    virDrvStreamRecv streamRecv;
-    virDrvStreamEventAddCallback streamEventAddCallback;
-    virDrvStreamEventUpdateCallback streamEventUpdateCallback;
-    virDrvStreamEventRemoveCallback streamEventRemoveCallback;
-    virDrvStreamFinish streamFinish;
-    virDrvStreamAbort streamAbort;
-};
-
-
-typedef virDrvConnectOpen virDrvNWFilterOpen;
-typedef virDrvConnectClose virDrvNWFilterClose;
-
-
-typedef int
-(*virDrvConnectNumOfNWFilters)(virConnectPtr conn);
-
-typedef int
-(*virDrvConnectListNWFilters)(virConnectPtr conn,
-                              char **const names,
-                              int maxnames);
-
-typedef int
-(*virDrvConnectListAllNWFilters)(virConnectPtr conn,
-                                 virNWFilterPtr **filters,
-                                 unsigned int flags);
-
-typedef virNWFilterPtr
-(*virDrvNWFilterLookupByName)(virConnectPtr conn,
-                              const char *name);
-
-typedef virNWFilterPtr
-(*virDrvNWFilterLookupByUUID)(virConnectPtr conn,
-                              const unsigned char *uuid);
-
-typedef virNWFilterPtr
-(*virDrvNWFilterDefineXML)(virConnectPtr conn,
-                           const char *xmlDesc);
-
-typedef int
-(*virDrvNWFilterUndefine)(virNWFilterPtr nwfilter);
-
-typedef char *
-(*virDrvNWFilterGetXMLDesc)(virNWFilterPtr nwfilter,
-                            unsigned int flags);
-
-
-typedef struct _virNWFilterDriver virNWFilterDriver;
-typedef virNWFilterDriver *virNWFilterDriverPtr;
-
-/**
- * _virNWFilterDriver:
- *
- * Structure associated to a network filter driver, defining the various
- * entry points for it.
- *
- * All drivers must support the following fields/methods:
- *  - open
- *  - close
- */
-struct _virNWFilterDriver {
-    const char * name; /* the name of the driver */
-    virDrvNWFilterOpen nwfilterOpen;
-    virDrvNWFilterClose nwfilterClose;
-    virDrvConnectNumOfNWFilters connectNumOfNWFilters;
-    virDrvConnectListNWFilters connectListNWFilters;
-    virDrvConnectListAllNWFilters connectListAllNWFilters;
-    virDrvNWFilterLookupByName nwfilterLookupByName;
-    virDrvNWFilterLookupByUUID nwfilterLookupByUUID;
-    virDrvNWFilterDefineXML nwfilterDefineXML;
-    virDrvNWFilterUndefine nwfilterUndefine;
-    virDrvNWFilterGetXMLDesc nwfilterGetXMLDesc;
-};
-
-
-/*
- * Registration
- * TODO: also need ways to (des)activate a given driver
- *       lookup based on the URI given in a virConnectOpen(ReadOnly)
- */
 int virRegisterHypervisorDriver(virHypervisorDriverPtr) ATTRIBUTE_RETURN_CHECK;
 int virRegisterNetworkDriver(virNetworkDriverPtr) ATTRIBUTE_RETURN_CHECK;
 int virRegisterInterfaceDriver(virInterfaceDriverPtr) ATTRIBUTE_RETURN_CHECK;
-int virRegisterStorageDriver(virStorageDriverPtr) ATTRIBUTE_RETURN_CHECK;
+int virRegisterNetworkDriver(virNetworkDriverPtr) ATTRIBUTE_RETURN_CHECK;
 int virRegisterNodeDeviceDriver(virNodeDeviceDriverPtr) ATTRIBUTE_RETURN_CHECK;
-int virRegisterSecretDriver(virSecretDriverPtr) ATTRIBUTE_RETURN_CHECK;
 int virRegisterNWFilterDriver(virNWFilterDriverPtr) ATTRIBUTE_RETURN_CHECK;
+int virRegisterSecretDriver(virSecretDriverPtr) ATTRIBUTE_RETURN_CHECK;
 # ifdef WITH_LIBVIRTD
 int virRegisterStateDriver(virStateDriverPtr) ATTRIBUTE_RETURN_CHECK;
 # endif
+int virRegisterStorageDriver(virStorageDriverPtr) ATTRIBUTE_RETURN_CHECK;
+
 void *virDriverLoadModule(const char *name);
 
 #endif /* __VIR_DRIVER_H__ */
-- 
2.1.0




More information about the libvir-list mailing list