]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
public API for domain XML conversions
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 21 May 2009 13:46:35 +0000 (13:46 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 21 May 2009 13:46:35 +0000 (13:46 +0000)
20 files changed:
ChangeLog
docs/devhelp/libvirt-libvirt.html
docs/devhelp/libvirt-virterror.html
docs/html/libvirt-libvirt.html
docs/html/libvirt-virterror.html
docs/libvirt-api.xml
docs/libvirt-refs.xml
include/libvirt/libvirt.h
include/libvirt/libvirt.h.in
src/driver.h
src/libvirt.c
src/libvirt_public.syms
src/lxc_driver.c
src/openvz_driver.c
src/qemu_driver.c
src/remote_internal.c
src/test.c
src/uml_driver.c
src/virsh.c
src/xen_unified.c

index 204a54c71366041dd871e6bf42b598d68f34ec17..cd83d5bd31f2cac827c5a445896b3b7eda0bda67 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Thu May 21 14:32:22 BST 2009 Daniel P. Berrange <berrange@redhat.com>
+
+       Public APIs for domain XML conversions.
+       * docs/devhelp/libvirt-libvirt.html, docs/devhelp/libvirt-virterror.html,
+       docs/html/libvirt-libvirt.html, docs/html/libvirt-virterror.html,
+       docs/libvirt-api.xml, docs/libvirt-refs.xml: Regenerate with new public
+       APIs
+       * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in,
+       src/driver.h, src/libvirt.c, src/libvirt_public.syms: Add
+       virConnectDomainXMLFromNative and virConnectDomainXMLToNative
+       * src/lxc_driver.c, src/openvz_driver.c, src/qemu_driver.c,
+       src/remote_internal.c, src/test.c, src/uml_driver.c,
+       src/xen_unified.c: Stub out new API entry points
+       * src/virsh.c: Add domxml-to-native and domxml-from-native commands
+
 Thu May 21 11:52:22 BST 2009 Daniel P. Berrange <berrange@redhat.com>
 
        * python/generator.py, python/libvirt_wrap.h, python/types.c: Add
index 59717ef0eff7cec61752dcd3d948593faabff1ab..587b5bd08a373cd6306e099a5549421385eebabf 100644 (file)
@@ -84,9 +84,11 @@ typedef struct _virNodeDevice <a href="#virNodeDevice">virNodeDevice</a>;
 typedef <a href="libvirt-libvirt.html#virConnect">virConnect</a> * <a href="#virConnectPtr">virConnectPtr</a>;
 typedef struct _virStorageVol <a href="#virStorageVol">virStorageVol</a>;
 typedef <a href="libvirt-libvirt.html#virNodeDevice">virNodeDevice</a> * <a href="#virNodeDevicePtr">virNodeDevicePtr</a>;
+typedef struct _virInterface <a href="#virInterface">virInterface</a>;
 typedef struct _virSchedParameter <a href="#virSchedParameter">virSchedParameter</a>;
 typedef enum <a href="#virConnectFlags">virConnectFlags</a>;
 typedef enum <a href="#virDomainEventDefinedDetailType">virDomainEventDefinedDetailType</a>;
+typedef <a href="libvirt-libvirt.html#virInterface">virInterface</a> * <a href="#virInterfacePtr">virInterfacePtr</a>;
 typedef enum <a href="#virDomainMemoryFlags">virDomainMemoryFlags</a>;
 typedef enum <a href="#virDomainEventStoppedDetailType">virDomainEventStoppedDetailType</a>;
 typedef <a href="libvirt-libvirt.html#virStorageVol">virStorageVol</a> * <a href="#virStorageVolPtr">virStorageVolPtr</a>;
@@ -122,6 +124,7 @@ int <a href="#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a>      (<a href=
 int    <a href="#virInitialize">virInitialize</a>                      (void);
 const char *   <a href="#virNodeDeviceGetName">virNodeDeviceGetName</a>        (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
 int    <a href="#virStoragePoolSetAutostart">virStoragePoolSetAutostart</a>    (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                      int autostart);
+char * <a href="#virConnectDomainXMLFromNative">virConnectDomainXMLFromNative</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * nativeFormat, <br/>                                        const char * nativeConfig, <br/>                                        unsigned int flags);
 int    <a href="#virNodeDeviceDettach">virNodeDeviceDettach</a>                (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
 int    <a href="#virDomainGetSecurityLabel">virDomainGetSecurityLabel</a>      (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      <a href="libvirt-libvirt.html#virSecurityLabelPtr">virSecurityLabelPtr</a> seclabel);
 int    <a href="#virConnectDomainEventDeregister">virConnectDomainEventDeregister</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb);
@@ -130,7 +133,7 @@ int <a href="#virDomainGetSchedulerParameters">virDomainGetSchedulerParameters</
 int    <a href="#virConnectNumOfDefinedNetworks">virConnectNumOfDefinedNetworks</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 int    <a href="#virConnectNumOfDomains">virConnectNumOfDomains</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 int    <a href="#virNetworkGetUUID">virNetworkGetUUID</a>              (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/>                                   unsigned char * uuid);
-<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a>   <a href="#virNodeDeviceCreateXML">virNodeDeviceCreateXML</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * xmlDesc, <br/>                                             unsigned int flags);
+char * <a href="#virInterfaceGetXMLDesc">virInterfaceGetXMLDesc</a>            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags);
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virStoragePoolGetConnect">virStoragePoolGetConnect</a>        (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool);
 int    <a href="#virConnectGetVersion">virConnectGetVersion</a>                (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      unsigned long * hvVer);
 int    <a href="#virDomainFree">virDomainFree</a>                      (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
@@ -143,6 +146,7 @@ int <a href="#virDomainSetAutostart">virDomainSetAutostart</a>              (<a href="libvir
 int    <a href="#virNetworkCreate">virNetworkCreate</a>                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 int    <a href="#virDomainSetMaxMemory">virDomainSetMaxMemory</a>              (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      unsigned long memory);
 void   <a href="#virEventRegisterImpl">virEventRegisterImpl</a>                (<a href="libvirt-libvirt.html#virEventAddHandleFunc">virEventAddHandleFunc</a> addHandle, <br/>                                         <a href="libvirt-libvirt.html#virEventUpdateHandleFunc">virEventUpdateHandleFunc</a> updateHandle, <br/>                                        <a href="libvirt-libvirt.html#virEventRemoveHandleFunc">virEventRemoveHandleFunc</a> removeHandle, <br/>                                        <a href="libvirt-libvirt.html#virEventAddTimeoutFunc">virEventAddTimeoutFunc</a> addTimeout, <br/>                                      <a href="libvirt-libvirt.html#virEventUpdateTimeoutFunc">virEventUpdateTimeoutFunc</a> updateTimeout, <br/>                                     <a href="libvirt-libvirt.html#virEventRemoveTimeoutFunc">virEventRemoveTimeoutFunc</a> removeTimeout);
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceDefineXML">virInterfaceDefineXML</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * xml, <br/>                                         unsigned int flags);
 <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>   <a href="#virDomainMigrate">virDomainMigrate</a>        (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> dconn, <br/>                                     unsigned long flags, <br/>                                      const char * dname, <br/>                                       const char * uri, <br/>                                         unsigned long bandwidth);
 int    <a href="#virDomainSuspend">virDomainSuspend</a>                (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
 <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>   <a href="#virDomainCreateLinux">virDomainCreateLinux</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * xmlDesc, <br/>                                     unsigned int flags);
@@ -151,17 +155,20 @@ typedef void <a href="#virEventUpdateHandleFunc">virEventUpdateHandleFunc</a>     (i
 int    <a href="#virDomainDestroy">virDomainDestroy</a>                (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
 int    <a href="#virConnectNumOfNetworks">virConnectNumOfNetworks</a>          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> <a href="#virStoragePoolLookupByUUIDString">virStoragePoolLookupByUUIDString</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                                      const char * uuidstr);
+int    <a href="#virInterfaceCreate">virInterfaceCreate</a>            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags);
 char * <a href="#virDomainGetXMLDesc">virDomainGetXMLDesc</a>          (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      int flags);
 int    <a href="#virStoragePoolGetUUID">virStoragePoolGetUUID</a>              (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                      unsigned char * uuid);
 int    <a href="#virNodeDeviceFree">virNodeDeviceFree</a>              (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
 int    <a href="#virStorageVolGetInfo">virStorageVolGetInfo</a>                (<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> vol, <br/>                                         <a href="libvirt-libvirt.html#virStorageVolInfoPtr">virStorageVolInfoPtr</a> info);
 int    <a href="#virDomainGetInfo">virDomainGetInfo</a>                (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info);
+<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a>   <a href="#virNodeDeviceCreateXML">virNodeDeviceCreateXML</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * xmlDesc, <br/>                                             unsigned int flags);
 int    <a href="#virNetworkDestroy">virNetworkDestroy</a>              (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> <a href="#virStoragePoolLookupByName">virStoragePoolLookupByName</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                                      const char * name);
 <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> <a href="#virStoragePoolCreateXML">virStoragePoolCreateXML</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * xmlDesc, <br/>                                             unsigned int flags);
 int    <a href="#virNetworkGetAutostart">virNetworkGetAutostart</a>            (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/>                                   int * autostart);
 char * <a href="#virNetworkGetBridgeName">virNetworkGetBridgeName</a>          (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 char * <a href="#virStorageVolGetXMLDesc">virStorageVolGetXMLDesc</a>          (<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> vol, <br/>                                         unsigned int flags);
+char * <a href="#virConnectDomainXMLToNative">virConnectDomainXMLToNative</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * nativeFormat, <br/>                                        const char * domainXml, <br/>                                   unsigned int flags);
 int    <a href="#virDomainSetSchedulerParameters">virDomainSetSchedulerParameters</a>  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      <a href="libvirt-libvirt.html#virSchedParameterPtr">virSchedParameterPtr</a> params, <br/>                                      int nparams);
 const char *   <a href="#virConnectGetType">virConnectGetType</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 <a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a>   <a href="#virStorageVolCreateXML">virStorageVolCreateXML</a>    (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                              const char * xmldesc, <br/>                                             unsigned int flags);
@@ -170,6 +177,7 @@ int <a href="#virDomainCreate">virDomainCreate</a>                  (<a href="libvirt-libvirt.h
 int    <a href="#virConnectListDomains">virConnectListDomains</a>              (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      int * ids, <br/>                                        int maxids);
 int    <a href="#virDomainCoreDump">virDomainCoreDump</a>              (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      const char * to, <br/>                                  int flags);
 int    <a href="#virDomainSetMemory">virDomainSetMemory</a>            (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      unsigned long memory);
+const char *   <a href="#virInterfaceGetName">virInterfaceGetName</a>  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
 int    <a href="#virStoragePoolCreate">virStoragePoolCreate</a>                (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                      unsigned int flags);
 int    <a href="#virNodeGetInfo">virNodeGetInfo</a>                    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info);
 int    <a href="#virNetworkSetAutostart">virNetworkSetAutostart</a>            (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/>                                   int autostart);
@@ -192,6 +200,7 @@ const char *        <a href="#virDomainGetName">virDomainGetName</a>        (<a href="libvirt-
 int    <a href="#virStoragePoolRef">virStoragePoolRef</a>              (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool);
 char * <a href="#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a>                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/>                                   int flags);
 int    <a href="#virConnectNumOfStoragePools">virConnectNumOfStoragePools</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
+<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virInterfaceGetConnect">virInterfaceGetConnect</a>    (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
 const char *   <a href="#virNetworkGetName">virNetworkGetName</a>      (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 int    <a href="#virConnectListDefinedDomains">virConnectListDefinedDomains</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames);
 char * <a href="#virConnectGetCapabilities">virConnectGetCapabilities</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
@@ -207,21 +216,24 @@ typedef int <a href="#virConnectDomainEventCallback">virConnectDomainEventCallba
 <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>   <a href="#virDomainLookupByID">virDomainLookupByID</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      int id);
 int    <a href="#virStorageVolDelete">virStorageVolDelete</a>          (<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> vol, <br/>                                         unsigned int flags);
 int    <a href="#virStorageVolFree">virStorageVolFree</a>              (<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> vol);
+int    <a href="#virConnectListInterfaces">virConnectListInterfaces</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames);
 int    <a href="#virDomainMemoryPeek">virDomainMemoryPeek</a>          (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/>                                         unsigned long long start, <br/>                                         size_t size, <br/>                                      void * buffer, <br/>                                    unsigned int flags);
 <a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkLookupByUUID">virNetworkLookupByUUID</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const unsigned char * uuid);
 int    <a href="#virConnectListDefinedNetworks">virConnectListDefinedNetworks</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames);
 int    <a href="#virConnectRef">virConnectRef</a>                      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 int    <a href="#virDomainGetUUID">virDomainGetUUID</a>                (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      unsigned char * uuid);
 <a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkCreateXML">virNetworkCreateXML</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * xmlDesc);
+int    <a href="#virConnectDomainEventRegister">virConnectDomainEventRegister</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb, <br/>                                        void * opaque, <br/>                                    <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> freecb);
 int    <a href="#virDomainGetVcpus">virDomainGetVcpus</a>              (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      <a href="libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a> info, <br/>                                    int maxinfo, <br/>                                      unsigned char * cpumaps, <br/>                                  int maplen);
 <a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a>   <a href="#virNodeDeviceLookupByName">virNodeDeviceLookupByName</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                                      const char * name);
 int    <a href="#virStoragePoolGetInfo">virStoragePoolGetInfo</a>              (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                      <a href="libvirt-libvirt.html#virStoragePoolInfoPtr">virStoragePoolInfoPtr</a> info);
 int    <a href="#virDomainResume">virDomainResume</a>                  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
-int    <a href="#virNodeListDevices">virNodeListDevices</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * cap, <br/>                                         char ** const names, <br/>                                      int maxnames, <br/>                                     unsigned int flags);
+int    <a href="#virInterfaceRef">virInterfaceRef</a>                  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
+const char *   <a href="#virInterfaceGetMACString">virInterfaceGetMACString</a>        (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
 int    <a href="#virNetworkRef">virNetworkRef</a>                      (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 int    <a href="#virStoragePoolRefresh">virStoragePoolRefresh</a>              (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                      unsigned int flags);
 int    <a href="#virConnectNumOfDefinedDomains">virConnectNumOfDefinedDomains</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
-<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a>   <a href="#virStorageVolLookupByKey">virStorageVolLookupByKey</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                                      const char * key);
+<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a>   <a href="#virStorageVolCreateXMLFrom">virStorageVolCreateXMLFrom</a>    (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                                      const char * xmldesc, <br/>                                                     <a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> clonevol, <br/>                                                    unsigned int flags);
 int    <a href="#virDomainUndefine">virDomainUndefine</a>              (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
 int    <a href="#virDomainReboot">virDomainReboot</a>                  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      unsigned int flags);
 int    <a href="#virNetworkGetUUIDString">virNetworkGetUUIDString</a>          (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/>                                   char * buf);
@@ -245,10 +257,12 @@ typedef int <a href="#virEventAddHandleFunc">virEventAddHandleFunc</a>            (int fd,
 int    <a href="#virNetworkUndefine">virNetworkUndefine</a>            (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
 int    <a href="#virConnectListDefinedStoragePools">virConnectListDefinedStoragePools</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              char ** const names, <br/>                                              int maxnames);
 typedef void <a href="#virEventTimeoutCallback">virEventTimeoutCallback</a>            (int timer, <br/>                                        void * opaque);
-<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a>   <a href="#virStorageVolCreateXMLFrom">virStorageVolCreateXMLFrom</a>    (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/>                                                      const char * xmldesc, <br/>                                                     <a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> clonevol, <br/>                                                    unsigned int flags);
+int    <a href="#virInterfaceFree">virInterfaceFree</a>                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
 int    <a href="#virNodeDeviceNumOfCaps">virNodeDeviceNumOfCaps</a>            (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceLookupByMACString">virInterfaceLookupByMACString</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * macstr);
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virNetworkGetConnect">virNetworkGetConnect</a>        (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> net);
 unsigned long long     <a href="#virNodeGetFreeMemory">virNodeGetFreeMemory</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
+int    <a href="#virInterfaceDestroy">virInterfaceDestroy</a>          (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags);
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virStorageVolGetConnect">virStorageVolGetConnect</a>  (<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a> vol);
 int    <a href="#virNodeNumOfDevices">virNodeNumOfDevices</a>          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * cap, <br/>                                         unsigned int flags);
 int    <a href="#virStoragePoolDestroy">virStoragePoolDestroy</a>              (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool);
@@ -260,18 +274,22 @@ int       <a href="#virConnectGetMaxVcpus">virConnectGetMaxVcpus</a>              (<a href="libvir
 int    <a href="#virDomainGetUUIDString">virDomainGetUUIDString</a>            (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      char * buf);
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virDomainGetConnect">virDomainGetConnect</a>  (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom);
 int    <a href="#virConnectNumOfDefinedStoragePools">virConnectNumOfDefinedStoragePools</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
+int    <a href="#virNodeListDevices">virNodeListDevices</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * cap, <br/>                                         char ** const names, <br/>                                      int maxnames, <br/>                                     unsigned int flags);
 const char *   <a href="#virNodeDeviceGetParent">virNodeDeviceGetParent</a>    (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpen">virConnectOpen</a>            (const char * name);
 <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a>   <a href="#virDomainCreateXML">virDomainCreateXML</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * xmlDesc, <br/>                                     unsigned int flags);
 int    <a href="#virNodeDeviceRef">virNodeDeviceRef</a>                (<a href="libvirt-libvirt.html#virNodeDevicePtr">virNodeDevicePtr</a> dev);
+int    <a href="#virInterfaceUndefine">virInterfaceUndefine</a>                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface);
 int    <a href="#virDomainSetVcpus">virDomainSetVcpus</a>              (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/>                                      unsigned int nvcpus);
 int    <a href="#virDomainRef">virDomainRef</a>                        (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
-int    <a href="#virConnectDomainEventRegister">virConnectDomainEventRegister</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb, <br/>                                        void * opaque, <br/>                                    <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> freecb);
+int    <a href="#virConnectNumOfInterfaces">virConnectNumOfInterfaces</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
 unsigned int   <a href="#virDomainGetID">virDomainGetID</a>            (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
 int    <a href="#virDomainBlockPeek">virDomainBlockPeek</a>            (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/>                                         const char * path, <br/>                                        unsigned long long offset, <br/>                                        size_t size, <br/>                                      void * buffer, <br/>                                    unsigned int flags);
 typedef int <a href="#virEventAddTimeoutFunc">virEventAddTimeoutFunc</a>               (int timeout, <br/>                                      <a href="libvirt-libvirt.html#virEventTimeoutCallback">virEventTimeoutCallback</a> cb, <br/>                                    void * opaque, <br/>                                    <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> ff);
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceLookupByName">virInterfaceLookupByName</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * name);
 int    <a href="#virDomainInterfaceStats">virDomainInterfaceStats</a>          (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/>                                         const char * path, <br/>                                        <a href="libvirt-libvirt.html#virDomainInterfaceStatsPtr">virDomainInterfaceStatsPtr</a> stats, <br/>                                   size_t size);
 int    <a href="#virConnectListNetworks">virConnectListNetworks</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames);
+<a href="libvirt-libvirt.html#virStorageVolPtr">virStorageVolPtr</a>   <a href="#virStorageVolLookupByKey">virStorageVolLookupByKey</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                                      const char * key);
 </pre>
     </div>
     <div class="refsect1" lang="en">
@@ -550,6 +568,16 @@ The content of this structure is not made public by the API.
     <a name="VIR_EVENT_HANDLE_HANGUP">VIR_EVENT_HANDLE_HANGUP</a> = 8
 };
 </pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterface">Structure </a>virInterface</h3><pre class="programlisting">struct _virInterface {
+The content of this structure is not made public by the API.
+} virInterface;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfacePtr">Typedef </a>virInterfacePtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterface">virInterface</a> * virInterfacePtr;
+</pre><p>a <a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> is pointer to a <a href="libvirt-libvirt.html#virInterface">virInterface</a> private structure, this is the type used to reference a virtual interface in the API.</p>
 </div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="virNetwork">Structure </a>virNetwork</h3><pre class="programlisting">struct _virNetwork {
@@ -794,6 +822,14 @@ The content of this structure is not made public by the API.
         <div class="refsect2" lang="en"><h3><a name="virConnectDomainEventRegister"/>virConnectDomainEventRegister ()</h3><pre class="programlisting">int      virConnectDomainEventRegister   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb, <br/>                                        void * opaque, <br/>                                    <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> freecb)<br/>
 </pre><p>Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the connection</td></tr><tr><td><span class="term"><i><tt>cb</tt></i>:</span></td><td>callback to the function handling domain events</td></tr><tr><td><span class="term"><i><tt>opaque</tt></i>:</span></td><td>opaque data to pass on to the callback</td></tr><tr><td><span class="term"><i><tt>freecb</tt></i>:</span></td><td>optional function to deallocate opaque when not used anymore</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virConnectDomainXMLFromNative"/>virConnectDomainXMLFromNative ()</h3><pre class="programlisting">char *   virConnectDomainXMLFromNative   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * nativeFormat, <br/>                                        const char * nativeConfig, <br/>                                        unsigned int flags)<br/>
+</pre><p>Reads native configuration data describing a domain, and generates libvirt domain XML. The format of the native data is hypervisor dependant.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>a connection object</td></tr><tr><td><span class="term"><i><tt>nativeFormat</tt></i>:</span></td><td>configuration format importing from</td></tr><tr><td><span class="term"><i><tt>nativeConfig</tt></i>:</span></td><td>the configuration data to import</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>currently unused, pass 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virConnectDomainXMLToNative"/>virConnectDomainXMLToNative ()</h3><pre class="programlisting">char *       virConnectDomainXMLToNative     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * nativeFormat, <br/>                                        const char * domainXml, <br/>                                   unsigned int flags)<br/>
+</pre><p>Reads a domain XML configuration document, and generates generates a native configuration file describing the domain. The format of the native data is hypervisor dependant.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>a connection object</td></tr><tr><td><span class="term"><i><tt>nativeFormat</tt></i>:</span></td><td>configuration format exporting to</td></tr><tr><td><span class="term"><i><tt>domainXml</tt></i>:</span></td><td>the domain configuration to export</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>currently unused, pass 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded native config datafile, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="virConnectFindStoragePoolSources"/>virConnectFindStoragePoolSources ()</h3><pre class="programlisting">char *     virConnectFindStoragePoolSources        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * type, <br/>                                                const char * srcSpec, <br/>                                             unsigned int flags)<br/>
 </pre><p>Talks to a storage backend and attempts to auto-discover the set of available storage pool sources. e.g. For iSCSI this would be a set of iSCSI targets. For NFS this would be a list of exported paths. The srcSpec (optional for some storage pool types, e.g. local ones) is an instance of the storage pool's source element specifying where to look for the pools. srcSpec is not required for some types (e.g., those querying local storage resources only)</p>
@@ -838,6 +874,10 @@ The content of this structure is not made public by the API.
         <div class="refsect2" lang="en"><h3><a name="virConnectListDomains"/>virConnectListDomains ()</h3><pre class="programlisting">int      virConnectListDomains           (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      int * ids, <br/>                                        int maxids)<br/>
 </pre><p>Collect the list of active domains, and store their ID in @maxids</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virConnectListInterfaces"/>virConnectListInterfaces ()</h3><pre class="programlisting">int        virConnectListInterfaces        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames)<br/>
+</pre><p>Collect the list of physical host interfaces, and store their names in @names</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>array to collect the list of names of interfaces</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of @names</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of interfaces found or -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="virConnectListNetworks"/>virConnectListNetworks ()</h3><pre class="programlisting">int    virConnectListNetworks          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      char ** const names, <br/>                                      int maxnames)<br/>
 </pre><p>Collect the list of active networks, and store their names in @names</p>
@@ -862,6 +902,10 @@ The content of this structure is not made public by the API.
         <div class="refsect2" lang="en"><h3><a name="virConnectNumOfDomains"/>virConnectNumOfDomains ()</h3><pre class="programlisting">int    virConnectNumOfDomains          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
 </pre><p>Provides the number of active domains.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virConnectNumOfInterfaces"/>virConnectNumOfInterfaces ()</h3><pre class="programlisting">int      virConnectNumOfInterfaces       (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
+</pre><p>Provides the number of interfaces on the physical host.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of interface found or -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="virConnectNumOfNetworks"/>virConnectNumOfNetworks ()</h3><pre class="programlisting">int  virConnectNumOfNetworks         (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
 </pre><p>Provides the number of active networks.</p>
@@ -1086,6 +1130,54 @@ The content of this structure is not made public by the API.
         <div class="refsect2" lang="en"><h3><a name="virInitialize"/>virInitialize ()</h3><pre class="programlisting">int      virInitialize                   (void)<br/>
 </pre><p>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceCreate"/>virInterfaceCreate ()</h3><pre class="programlisting">int    virInterfaceCreate              (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags)<br/>
+</pre><p>Activate an interface (ie call "ifup")</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>pointer to a defined interface</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceDefineXML"/>virInterfaceDefineXML ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>       virInterfaceDefineXML   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                      const char * xml, <br/>                                         unsigned int flags)<br/>
+</pre><p>Define an interface (or modify existing interface configuration)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>the XML description for the interface, preferably in UTF-8</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a pointer to the interface otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceDestroy"/>virInterfaceDestroy ()</h3><pre class="programlisting">int  virInterfaceDestroy             (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags)<br/>
+</pre><p>deactivate an interface (ie call "ifdown") This does not remove the interface from the config, and does not free the associated <a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>an interface object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceFree"/>virInterfaceFree ()</h3><pre class="programlisting">int        virInterfaceFree                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Free the interface object. The interface itself is unaltered. The data structure is freed and should not be used thereafter.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceGetConnect"/>virInterfaceGetConnect ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virInterfaceGetConnect  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Provides the connection pointer associated with an interface. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the interface object together.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> or NULL in case of failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceGetMACString"/>virInterfaceGetMACString ()</h3><pre class="programlisting">const char *       virInterfaceGetMACString        (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Get the MAC for a interface as string. For more information about MAC see RFC4122.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the MAC address (in null-terminated ASCII format) or NULL, the string need not be deallocated its lifetime will be the same as the interface object.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceGetName"/>virInterfaceGetName ()</h3><pre class="programlisting">const char * virInterfaceGetName     (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Get the public name for that interface</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the interface object.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceGetXMLDesc"/>virInterfaceGetXMLDesc ()</h3><pre class="programlisting">char * virInterfaceGetXMLDesc          (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br/>                                     unsigned int flags)<br/>
+</pre><p>Provide an XML description of the interface. The description may be reused later to recreate the interface with virInterfaceCreateXML().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceLookupByMACString"/>virInterfaceLookupByMACString ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>       virInterfaceLookupByMACString   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * macstr)<br/>
+</pre><p>Try to lookup an interface on the given hypervisor based on its MAC.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>macstr</tt></i>:</span></td><td>the MAC for the interface (null-terminated ASCII format)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new interface object or NULL in case of failure. If the interface cannot be found, then <a href="libvirt-virterror.html#VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a> error is raised.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceLookupByName"/>virInterfaceLookupByName ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> virInterfaceLookupByName        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/>                                              const char * name)<br/>
+</pre><p>Try to lookup an interface on the given hypervisor based on its name.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the interface</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new interface object or NULL in case of failure. If the interface cannot be found, then <a href="libvirt-virterror.html#VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a> error is raised.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceRef"/>virInterfaceRef ()</h3><pre class="programlisting">int  virInterfaceRef                 (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Increment the reference count on the interface. For each additional call to this method, there shall be a corresponding call to <a href="libvirt-libvirt.html#virInterfaceFree">virInterfaceFree</a> to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a interface would increment the reference count.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>the interface to hold a reference on</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="virInterfaceUndefine"/>virInterfaceUndefine ()</h3><pre class="programlisting">int        virInterfaceUndefine            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br/>
+</pre><p>Undefine an interface, ie remove it from the config. This does not free the associated <a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> object.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>pointer to a defined interface</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="virNetworkCreate"/>virNetworkCreate ()</h3><pre class="programlisting">int        virNetworkCreate                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br/>
 </pre><p>Create and start a defined network. If the call succeed the network moves from the defined to the running networks pools.</p>
index b2055832c0ef621ef5e9ad93b0f97b038ee34014..e9e98965e2fc8a2b2f5c57b51b7126ba4af6cc14 100644 (file)
@@ -107,7 +107,8 @@ void        <a href="#virConnResetLastError">virConnResetLastError</a>              (<a href="libvi
     <a name="VIR_FROM_NODEDEV">VIR_FROM_NODEDEV</a> = 22 /* Error from node device monitor */
     <a name="VIR_FROM_XEN_INOTIFY">VIR_FROM_XEN_INOTIFY</a> = 23 /* Error from xen inotify layer */
     <a name="VIR_FROM_SECURITY">VIR_FROM_SECURITY</a> = 24 /* Error from security framework */
-    <a name="VIR_FROM_VBOX">VIR_FROM_VBOX</a> = 25 /*  Error from VirtualBox driver */
+    <a name="VIR_FROM_VBOX">VIR_FROM_VBOX</a> = 25 /* Error from VirtualBox driver */
+    <a name="VIR_FROM_INTERFACE">VIR_FROM_INTERFACE</a> = 26 /*  Error when operating on an interface */
 };
 </pre><p/>
 </div>
@@ -176,7 +177,10 @@ void       <a href="#virConnResetLastError">virConnResetLastError</a>              (<a href="libvi
     <a name="VIR_ERR_INVALID_NODE_DEVICE">VIR_ERR_INVALID_NODE_DEVICE</a> = 52 /* invalid node device object */
     <a name="VIR_ERR_NO_NODE_DEVICE">VIR_ERR_NO_NODE_DEVICE</a> = 53 /* node device not found */
     <a name="VIR_ERR_NO_SECURITY_MODEL">VIR_ERR_NO_SECURITY_MODEL</a> = 54 /* security model not found */
-    <a name="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a> = 55 /*  operation is not applicable at this time */
+    <a name="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a> = 55 /* operation is not applicable at this time */
+    <a name="VIR_WAR_NO_INTERFACE">VIR_WAR_NO_INTERFACE</a> = 56 /* failed to start interface driver */
+    <a name="VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a> = 57 /* interface driver not running */
+    <a name="VIR_ERR_INVALID_INTERFACE">VIR_ERR_INVALID_INTERFACE</a> = 58 /*  invalid interface object */
 };
 </pre><p/>
 </div>
index 4a126967397c17353a04a5a93cdfbab9b5dc039a..073d2d71385294e05660269732ac0aa2fa73788a 100644 (file)
@@ -46,6 +46,8 @@ typedef <a href="libvirt-libvirt.html#virDomain">virDomain</a> * <a name="virDom
 typedef enum <a href="#virDomainState">virDomainState</a>
 typedef enum <a href="#virDomainXMLFlags">virDomainXMLFlags</a>
 typedef enum <a href="#virEventHandleType">virEventHandleType</a>
+typedef struct _virInterface <a href="#virInterface">virInterface</a>
+typedef <a href="libvirt-libvirt.html#virInterface">virInterface</a> * <a name="virInterfacePtr" id="virInterfacePtr">virInterfacePtr</a>
 typedef struct _virNetwork <a href="#virNetwork">virNetwork</a>
 typedef <a href="libvirt-libvirt.html#virNetwork">virNetwork</a> * <a name="virNetworkPtr" id="virNetworkPtr">virNetworkPtr</a>
 typedef struct _virNodeDevice <a href="#virNodeDevice">virNodeDevice</a>
@@ -84,6 +86,8 @@ int   <a href="#virConnectDomainEventCallback">virConnectDomainEventCallback</a>      (
 
 int    <a href="#virConnectDomainEventDeregister">virConnectDomainEventDeregister</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb)
 int    <a href="#virConnectDomainEventRegister">virConnectDomainEventRegister</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb, <br />                                       void * opaque, <br />                                   <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> freecb)
+char * <a href="#virConnectDomainXMLFromNative">virConnectDomainXMLFromNative</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * nativeFormat, <br />                                       const char * nativeConfig, <br />                                       unsigned int flags)
+char * <a href="#virConnectDomainXMLToNative">virConnectDomainXMLToNative</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * nativeFormat, <br />                                       const char * domainXml, <br />                                  unsigned int flags)
 char * <a href="#virConnectFindStoragePoolSources">virConnectFindStoragePoolSources</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * type, <br />                                               const char * srcSpec, <br />                                            unsigned int flags)
 char * <a href="#virConnectGetCapabilities">virConnectGetCapabilities</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 char * <a href="#virConnectGetHostname">virConnectGetHostname</a>              (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
@@ -95,12 +99,14 @@ int <a href="#virConnectListDefinedDomains">virConnectListDefinedDomains</a>        (<a
 int    <a href="#virConnectListDefinedNetworks">virConnectListDefinedNetworks</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)
 int    <a href="#virConnectListDefinedStoragePools">virConnectListDefinedStoragePools</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             char ** const names, <br />                                             int maxnames)
 int    <a href="#virConnectListDomains">virConnectListDomains</a>              (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     int * ids, <br />                                       int maxids)
+int    <a href="#virConnectListInterfaces">virConnectListInterfaces</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)
 int    <a href="#virConnectListNetworks">virConnectListNetworks</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)
 int    <a href="#virConnectListStoragePools">virConnectListStoragePools</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)
 int    <a href="#virConnectNumOfDefinedDomains">virConnectNumOfDefinedDomains</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 int    <a href="#virConnectNumOfDefinedNetworks">virConnectNumOfDefinedNetworks</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 int    <a href="#virConnectNumOfDefinedStoragePools">virConnectNumOfDefinedStoragePools</a>    (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 int    <a href="#virConnectNumOfDomains">virConnectNumOfDomains</a>            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
+int    <a href="#virConnectNumOfInterfaces">virConnectNumOfInterfaces</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 int    <a href="#virConnectNumOfNetworks">virConnectNumOfNetworks</a>          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 int    <a href="#virConnectNumOfStoragePools">virConnectNumOfStoragePools</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)
 <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpen">virConnectOpen</a>            (const char * name)
@@ -184,6 +190,18 @@ void       <a href="#virFreeCallback">virFreeCallback</a>                  (void * opaque)
 
 int    <a href="#virGetVersion">virGetVersion</a>                      (unsigned long * libVer, <br />                                  const char * type, <br />                                       unsigned long * typeVer)
 int    <a href="#virInitialize">virInitialize</a>                      (void)
+int    <a href="#virInterfaceCreate">virInterfaceCreate</a>            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceDefineXML">virInterfaceDefineXML</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xml, <br />                                        unsigned int flags)
+int    <a href="#virInterfaceDestroy">virInterfaceDestroy</a>          (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)
+int    <a href="#virInterfaceFree">virInterfaceFree</a>                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
+<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virInterfaceGetConnect">virInterfaceGetConnect</a>    (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
+const char *   <a href="#virInterfaceGetMACString">virInterfaceGetMACString</a>        (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
+const char *   <a href="#virInterfaceGetName">virInterfaceGetName</a>  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
+char * <a href="#virInterfaceGetXMLDesc">virInterfaceGetXMLDesc</a>            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceLookupByMACString">virInterfaceLookupByMACString</a>      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * macstr)
+<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>     <a href="#virInterfaceLookupByName">virInterfaceLookupByName</a>        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * name)
+int    <a href="#virInterfaceRef">virInterfaceRef</a>                  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
+int    <a href="#virInterfaceUndefine">virInterfaceUndefine</a>                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)
 int    <a href="#virNetworkCreate">virNetworkCreate</a>                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)
 <a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkCreateXML">virNetworkCreateXML</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xmlDesc)
 <a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkDefineXML">virNetworkDefineXML</a>  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xml)
@@ -310,6 +328,9 @@ int <a href="#virStorageVolRef">virStorageVolRef</a>                (<a href="libvirt-libvirt.
 </pre><table><tr><td><a name="VIR_DOMAIN_XML_SECURE" id="VIR_DOMAIN_XML_SECURE">VIR_DOMAIN_XML_SECURE</a></td><td> = </td><td>1</td><td> : dump security sensitive information too</td></tr><tr><td><a name="VIR_DOMAIN_XML_INACTIVE" id="VIR_DOMAIN_XML_INACTIVE">VIR_DOMAIN_XML_INACTIVE</a></td><td> = </td><td>2</td><td> : dump inactive domain information</td></tr></table><pre>}
 </pre></div><h3><a name="virEventHandleType" id="virEventHandleType"><code>virEventHandleType</code></a></h3><div class="api"><pre>enum virEventHandleType {
 </pre><table><tr><td><a name="VIR_EVENT_HANDLE_READABLE" id="VIR_EVENT_HANDLE_READABLE">VIR_EVENT_HANDLE_READABLE</a></td><td> = </td><td>1</td></tr><tr><td><a name="VIR_EVENT_HANDLE_WRITABLE" id="VIR_EVENT_HANDLE_WRITABLE">VIR_EVENT_HANDLE_WRITABLE</a></td><td> = </td><td>2</td></tr><tr><td><a name="VIR_EVENT_HANDLE_ERROR" id="VIR_EVENT_HANDLE_ERROR">VIR_EVENT_HANDLE_ERROR</a></td><td> = </td><td>4</td></tr><tr><td><a name="VIR_EVENT_HANDLE_HANGUP" id="VIR_EVENT_HANDLE_HANGUP">VIR_EVENT_HANDLE_HANGUP</a></td><td> = </td><td>8</td></tr></table><pre>}
+</pre></div><h3><a name="virInterface" id="virInterface"><code>virInterface</code></a></h3><div class="api"><pre>struct virInterface{
+</pre><table><tr><td colspan="3">The content of this structure is not made public by the API</td></tr></table><pre>
+}
 </pre></div><h3><a name="virNetwork" id="virNetwork"><code>virNetwork</code></a></h3><div class="api"><pre>struct virNetwork{
 </pre><table><tr><td colspan="3">The content of this structure is not made public by the API</td></tr></table><pre>
 }
@@ -362,7 +383,9 @@ int <a href="#virStorageVolRef">virStorageVolRef</a>                (<a href="libvirt-libvirt.
 </pre><p>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virConnectDomainEventCallback" id="virConnectDomainEventCallback"><code>virConnectDomainEventCallback</code></a></h3><pre class="programlisting">typedef int       (*virConnectDomainEventCallback)        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br />                                        int event, <br />                                       int detail, <br />                                      void * opaque)
 </pre><p>A callback function to be registered, and called when a domain event occurs</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td><a href="libvirt-libvirt.html#virConnect">virConnect</a> connection</td></tr><tr><td><span class="term"><i><tt>dom</tt></i>:</span></td><td>The domain on which the event occured</td></tr><tr><td><span class="term"><i><tt>event</tt></i>:</span></td><td>The specfic <a href="libvirt-libvirt.html#virDomainEventType">virDomainEventType</a> which occured</td></tr><tr><td><span class="term"><i><tt>detail</tt></i>:</span></td><td>event specific detail information</td></tr><tr><td><span class="term"><i><tt>opaque</tt></i>:</span></td><td>opaque user data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><br /><h3><a name="virConnectDomainEventDeregister" id="virConnectDomainEventDeregister"><code>virConnectDomainEventDeregister</code></a></h3><pre class="programlisting">int       virConnectDomainEventDeregister (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb)<br />
 </pre><p>Removes a Domain Event Callback. De-registering for a domain callback will disable delivery of this event type</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the connection</td></tr><tr><td><span class="term"><i><tt>cb</tt></i>:</span></td><td>callback to the function handling domain events</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, -1 on failure</td></tr></tbody></table></div><h3><a name="virConnectDomainEventRegister" id="virConnectDomainEventRegister"><code>virConnectDomainEventRegister</code></a></h3><pre class="programlisting">int    virConnectDomainEventRegister   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-libvirt.html#virConnectDomainEventCallback">virConnectDomainEventCallback</a> cb, <br />                                       void * opaque, <br />                                   <a href="libvirt-libvirt.html#virFreeCallback">virFreeCallback</a> freecb)<br />
-</pre><p>Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the connection</td></tr><tr><td><span class="term"><i><tt>cb</tt></i>:</span></td><td>callback to the function handling domain events</td></tr><tr><td><span class="term"><i><tt>opaque</tt></i>:</span></td><td>opaque data to pass on to the callback</td></tr><tr><td><span class="term"><i><tt>freecb</tt></i>:</span></td><td>optional function to deallocate opaque when not used anymore</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure</td></tr></tbody></table></div><h3><a name="virConnectFindStoragePoolSources" id="virConnectFindStoragePoolSources"><code>virConnectFindStoragePoolSources</code></a></h3><pre class="programlisting">char *       virConnectFindStoragePoolSources        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * type, <br />                                               const char * srcSpec, <br />                                            unsigned int flags)<br />
+</pre><p>Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the connection</td></tr><tr><td><span class="term"><i><tt>cb</tt></i>:</span></td><td>callback to the function handling domain events</td></tr><tr><td><span class="term"><i><tt>opaque</tt></i>:</span></td><td>opaque data to pass on to the callback</td></tr><tr><td><span class="term"><i><tt>freecb</tt></i>:</span></td><td>optional function to deallocate opaque when not used anymore</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure</td></tr></tbody></table></div><h3><a name="virConnectDomainXMLFromNative" id="virConnectDomainXMLFromNative"><code>virConnectDomainXMLFromNative</code></a></h3><pre class="programlisting">char *        virConnectDomainXMLFromNative   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * nativeFormat, <br />                                       const char * nativeConfig, <br />                                       unsigned int flags)<br />
+</pre><p>Reads native configuration data describing a domain, and generates libvirt domain XML. The format of the native data is hypervisor dependant.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>a connection object</td></tr><tr><td><span class="term"><i><tt>nativeFormat</tt></i>:</span></td><td>configuration format importing from</td></tr><tr><td><span class="term"><i><tt>nativeConfig</tt></i>:</span></td><td>the configuration data to import</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>currently unused, pass 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div><h3><a name="virConnectDomainXMLToNative" id="virConnectDomainXMLToNative"><code>virConnectDomainXMLToNative</code></a></h3><pre class="programlisting">char *       virConnectDomainXMLToNative     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * nativeFormat, <br />                                       const char * domainXml, <br />                                  unsigned int flags)<br />
+</pre><p>Reads a domain XML configuration document, and generates generates a native configuration file describing the domain. The format of the native data is hypervisor dependant.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>a connection object</td></tr><tr><td><span class="term"><i><tt>nativeFormat</tt></i>:</span></td><td>configuration format exporting to</td></tr><tr><td><span class="term"><i><tt>domainXml</tt></i>:</span></td><td>the domain configuration to export</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>currently unused, pass 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded native config datafile, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div><h3><a name="virConnectFindStoragePoolSources" id="virConnectFindStoragePoolSources"><code>virConnectFindStoragePoolSources</code></a></h3><pre class="programlisting">char *  virConnectFindStoragePoolSources        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * type, <br />                                               const char * srcSpec, <br />                                            unsigned int flags)<br />
 </pre><p>Talks to a storage backend and attempts to auto-discover the set of available storage pool sources. e.g. For iSCSI this would be a set of iSCSI targets. For NFS this would be a list of exported paths. The srcSpec (optional for some storage pool types, e.g. local ones) is an instance of the storage pool's source element specifying where to look for the pools. srcSpec is not required for some types (e.g., those querying local storage resources only)</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to hypervisor connection</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>type of storage pool sources to discover</td></tr><tr><td><span class="term"><i><tt>srcSpec</tt></i>:</span></td><td>XML document specifying discovery source</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>flags for discovery (unused, pass 0)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an xml document consisting of a SourceList element containing a source document appropriate to the given pool type for each discovered source.</td></tr></tbody></table></div><h3><a name="virConnectGetCapabilities" id="virConnectGetCapabilities"><code>virConnectGetCapabilities</code></a></h3><pre class="programlisting">char *       virConnectGetCapabilities       (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides capabilities of the hypervisor / driver.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, or an XML string defining the capabilities. The client must free the returned string after use.</td></tr></tbody></table></div><h3><a name="virConnectGetHostname" id="virConnectGetHostname"><code>virConnectGetHostname</code></a></h3><pre class="programlisting">char *       virConnectGetHostname           (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>This returns the system hostname on which the hypervisor is running (the result of the gethostname(2) system call). If we are connected to a remote system, then this returns the hostname of the remote system.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to a hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the hostname which must be freed by the caller, or NULL if there was an error.</td></tr></tbody></table></div><h3><a name="virConnectGetMaxVcpus" id="virConnectGetMaxVcpus"><code>virConnectGetMaxVcpus</code></a></h3><pre class="programlisting">int     virConnectGetMaxVcpus           (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * type)<br />
@@ -373,13 +396,15 @@ int       <a href="#virStorageVolRef">virStorageVolRef</a>                (<a href="libvirt-libvirt.
 </pre><p>list the defined but inactive domains, stores the pointers to the names in @names</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>pointer to an array to store the names</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of names provided in the array or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListDefinedNetworks" id="virConnectListDefinedNetworks"><code>virConnectListDefinedNetworks</code></a></h3><pre class="programlisting">int        virConnectListDefinedNetworks   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)<br />
 </pre><p>list the inactive networks, stores the pointers to the names in @names</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>pointer to an array to store the names</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of names provided in the array or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListDefinedStoragePools" id="virConnectListDefinedStoragePools"><code>virConnectListDefinedStoragePools</code></a></h3><pre class="programlisting">int       virConnectListDefinedStoragePools       (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             char ** const names, <br />                                             int maxnames)<br />
 </pre><p>Provides the list of names of inactive storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>array of char * to fill with pool names (allocated by caller)</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the names array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, -1 on error</td></tr></tbody></table></div><h3><a name="virConnectListDomains" id="virConnectListDomains"><code>virConnectListDomains</code></a></h3><pre class="programlisting">int     virConnectListDomains           (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     int * ids, <br />                                       int maxids)<br />
-</pre><p>Collect the list of active domains, and store their ID in @maxids</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListNetworks" id="virConnectListNetworks"><code>virConnectListNetworks</code></a></h3><pre class="programlisting">int virConnectListNetworks          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)<br />
+</pre><p>Collect the list of active domains, and store their ID in @maxids</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListInterfaces" id="virConnectListInterfaces"><code>virConnectListInterfaces</code></a></h3><pre class="programlisting">int   virConnectListInterfaces        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)<br />
+</pre><p>Collect the list of physical host interfaces, and store their names in @names</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>array to collect the list of names of interfaces</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of @names</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of interfaces found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListNetworks" id="virConnectListNetworks"><code>virConnectListNetworks</code></a></h3><pre class="programlisting">int     virConnectListNetworks          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)<br />
 </pre><p>Collect the list of active networks, and store their names in @names</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>array to collect the list of names of active networks</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of @names</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of networks found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListStoragePools" id="virConnectListStoragePools"><code>virConnectListStoragePools</code></a></h3><pre class="programlisting">int       virConnectListStoragePools      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     char ** const names, <br />                                     int maxnames)<br />
 </pre><p>Provides the list of names of active storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>array of char * to fill with pool names (allocated by caller)</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the names array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, -1 on error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDefinedDomains" id="virConnectNumOfDefinedDomains"><code>virConnectNumOfDefinedDomains</code></a></h3><pre class="programlisting">int       virConnectNumOfDefinedDomains   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides the number of defined but inactive domains.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDefinedNetworks" id="virConnectNumOfDefinedNetworks"><code>virConnectNumOfDefinedNetworks</code></a></h3><pre class="programlisting">int virConnectNumOfDefinedNetworks  (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides the number of inactive networks.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of networks found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDefinedStoragePools" id="virConnectNumOfDefinedStoragePools"><code>virConnectNumOfDefinedStoragePools</code></a></h3><pre class="programlisting">int      virConnectNumOfDefinedStoragePools      (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides the number of inactive storage pools</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of pools found, or -1 on error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDomains" id="virConnectNumOfDomains"><code>virConnectNumOfDomains</code></a></h3><pre class="programlisting">int    virConnectNumOfDomains          (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
-</pre><p>Provides the number of active domains.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfNetworks" id="virConnectNumOfNetworks"><code>virConnectNumOfNetworks</code></a></h3><pre class="programlisting">int    virConnectNumOfNetworks         (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
+</pre><p>Provides the number of active domains.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfInterfaces" id="virConnectNumOfInterfaces"><code>virConnectNumOfInterfaces</code></a></h3><pre class="programlisting">int      virConnectNumOfInterfaces       (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
+</pre><p>Provides the number of interfaces on the physical host.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of interface found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfNetworks" id="virConnectNumOfNetworks"><code>virConnectNumOfNetworks</code></a></h3><pre class="programlisting">int        virConnectNumOfNetworks         (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides the number of active networks.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of network found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfStoragePools" id="virConnectNumOfStoragePools"><code>virConnectNumOfStoragePools</code></a></h3><pre class="programlisting">int      virConnectNumOfStoragePools     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provides the number of active storage pools</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of pools found, or -1 on error</td></tr></tbody></table></div><h3><a name="virConnectOpen" id="virConnectOpen"><code>virConnectOpen</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>   virConnectOpen          (const char * name)<br />
 </pre><p>This function should be called first to get a connection to the Hypervisor and xen store</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>URI of the hypervisor</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html</td></tr></tbody></table></div><h3><a name="virConnectOpenAuth" id="virConnectOpenAuth"><code>virConnectOpenAuth</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>    virConnectOpenAuth      (const char * name, <br />                                       <a href="libvirt-libvirt.html#virConnectAuthPtr">virConnectAuthPtr</a> auth, <br />                                     int flags)<br />
@@ -444,7 +469,19 @@ int        <a href="#virStorageVolRef">virStorageVolRef</a>                (<a href="libvirt-libvirt.
 </pre><p>Part of the EventImpl, this user-defined callback updates an event timeout.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>timer</tt></i>:</span></td><td>the timer to modify</td></tr><tr><td><span class="term"><i><tt>timeout</tt></i>:</span></td><td>the new timeout value</td></tr></tbody></table></div><br /><h3><a name="virFreeCallback" id="virFreeCallback"><code>virFreeCallback</code></a></h3><pre class="programlisting">typedef void    (*virFreeCallback               )       (void * opaque)
 </pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>opaque</tt></i>:</span></td><td></td></tr></tbody></table></div><br /><h3><a name="virGetVersion" id="virGetVersion"><code>virGetVersion</code></a></h3><pre class="programlisting">int  virGetVersion                   (unsigned long * libVer, <br />                                  const char * type, <br />                                       unsigned long * typeVer)<br />
 </pre><p>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not available, an error code will be returned and @typeVer will be 0.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>libVer</tt></i>:</span></td><td>return value for the library version (OUT)</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of connection/driver looked at</td></tr><tr><td><span class="term"><i><tt>typeVer</tt></i>:</span></td><td>return value for the version of the hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.</td></tr></tbody></table></div><h3><a name="virInitialize" id="virInitialize"><code>virInitialize</code></a></h3><pre class="programlisting">int      virInitialize                   (void)<br />
-</pre><p>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNetworkCreate" id="virNetworkCreate"><code>virNetworkCreate</code></a></h3><pre class="programlisting">int     virNetworkCreate                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br />
+</pre><p>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virInterfaceCreate" id="virInterfaceCreate"><code>virInterfaceCreate</code></a></h3><pre class="programlisting">int       virInterfaceCreate              (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)<br />
+</pre><p>Activate an interface (ie call "ifup")</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>pointer to a defined interface</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virInterfaceDefineXML" id="virInterfaceDefineXML"><code>virInterfaceDefineXML</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>  virInterfaceDefineXML   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xml, <br />                                        unsigned int flags)<br />
+</pre><p>Define an interface (or modify existing interface configuration)</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>the XML description for the interface, preferably in UTF-8</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a pointer to the interface otherwise</td></tr></tbody></table></div><h3><a name="virInterfaceDestroy" id="virInterfaceDestroy"><code>virInterfaceDestroy</code></a></h3><pre class="programlisting">int       virInterfaceDestroy             (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)<br />
+</pre><p>deactivate an interface (ie call "ifdown") This does not remove the interface from the config, and does not free the associated <a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> object.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>an interface object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virInterfaceFree" id="virInterfaceFree"><code>virInterfaceFree</code></a></h3><pre class="programlisting">int virInterfaceFree                (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Free the interface object. The interface itself is unaltered. The data structure is freed and should not be used thereafter.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virInterfaceGetConnect" id="virInterfaceGetConnect"><code>virInterfaceGetConnect</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>     virInterfaceGetConnect  (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Provides the connection pointer associated with an interface. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the interface object together.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> or NULL in case of failure.</td></tr></tbody></table></div><h3><a name="virInterfaceGetMACString" id="virInterfaceGetMACString"><code>virInterfaceGetMACString</code></a></h3><pre class="programlisting">const char *      virInterfaceGetMACString        (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Get the MAC for a interface as string. For more information about MAC see RFC4122.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the MAC address (in null-terminated ASCII format) or NULL, the string need not be deallocated its lifetime will be the same as the interface object.</td></tr></tbody></table></div><h3><a name="virInterfaceGetName" id="virInterfaceGetName"><code>virInterfaceGetName</code></a></h3><pre class="programlisting">const char *        virInterfaceGetName     (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Get the public name for that interface</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the interface object.</td></tr></tbody></table></div><h3><a name="virInterfaceGetXMLDesc" id="virInterfaceGetXMLDesc"><code>virInterfaceGetXMLDesc</code></a></h3><pre class="programlisting">char *  virInterfaceGetXMLDesc          (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface, <br />                                    unsigned int flags)<br />
+</pre><p>Provide an XML description of the interface. The description may be reused later to recreate the interface with virInterfaceCreateXML().</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>a interface object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div><h3><a name="virInterfaceLookupByMACString" id="virInterfaceLookupByMACString"><code>virInterfaceLookupByMACString</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>      virInterfaceLookupByMACString   (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * macstr)<br />
+</pre><p>Try to lookup an interface on the given hypervisor based on its MAC.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>macstr</tt></i>:</span></td><td>the MAC for the interface (null-terminated ASCII format)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new interface object or NULL in case of failure. If the interface cannot be found, then <a href="libvirt-virterror.html#VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a> error is raised.</td></tr></tbody></table></div><h3><a name="virInterfaceLookupByName" id="virInterfaceLookupByName"><code>virInterfaceLookupByName</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a>        virInterfaceLookupByName        (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                             const char * name)<br />
+</pre><p>Try to lookup an interface on the given hypervisor based on its name.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the interface</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new interface object or NULL in case of failure. If the interface cannot be found, then <a href="libvirt-virterror.html#VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a> error is raised.</td></tr></tbody></table></div><h3><a name="virInterfaceRef" id="virInterfaceRef"><code>virInterfaceRef</code></a></h3><pre class="programlisting">int     virInterfaceRef                 (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Increment the reference count on the interface. For each additional call to this method, there shall be a corresponding call to <a href="libvirt-libvirt.html#virInterfaceFree">virInterfaceFree</a> to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a interface would increment the reference count.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>the interface to hold a reference on</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virInterfaceUndefine" id="virInterfaceUndefine"><code>virInterfaceUndefine</code></a></h3><pre class="programlisting">int virInterfaceUndefine            (<a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> interface)<br />
+</pre><p>Undefine an interface, ie remove it from the config. This does not free the associated <a href="libvirt-libvirt.html#virInterfacePtr">virInterfacePtr</a> object.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>interface</tt></i>:</span></td><td>pointer to a defined interface</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNetworkCreate" id="virNetworkCreate"><code>virNetworkCreate</code></a></h3><pre class="programlisting">int       virNetworkCreate                (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br />
 </pre><p>Create and start a defined network. If the call succeed the network moves from the defined to the running networks pools.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>network</tt></i>:</span></td><td>pointer to a defined network</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNetworkCreateXML" id="virNetworkCreateXML"><code>virNetworkCreateXML</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a>       virNetworkCreateXML     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xmlDesc)<br />
 </pre><p>Create and start a new virtual network, based on an XML description similar to the one returned by virNetworkGetXMLDesc()</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xmlDesc</tt></i>:</span></td><td>an XML description of the network</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new network object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virNetworkDefineXML" id="virNetworkDefineXML"><code>virNetworkDefineXML</code></a></h3><pre class="programlisting"><a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a>      virNetworkDefineXML     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     const char * xml)<br />
 </pre><p>Define a network, but does not create it</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>the XML description for the network, preferably in UTF-8</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a pointer to the network otherwise</td></tr></tbody></table></div><h3><a name="virNetworkDestroy" id="virNetworkDestroy"><code>virNetworkDestroy</code></a></h3><pre class="programlisting">int   virNetworkDestroy               (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br />
index bf757196f60b17fd43c1b32457ea34a06fb6fa0e..34d21eb181eca81de90d16ec9eb94cd693340cdb 100644 (file)
@@ -27,11 +27,11 @@ void        <a href="#virSetErrorFunc">virSetErrorFunc</a>                  (void * userData, <br />
 </pre><table><tr><td>int</td><td>code</td><td> : The error code, a <a href="libvirt-virterror.html#virErrorNumber">virErrorNumber</a></td></tr><tr><td>int</td><td>domain</td><td> : What part of the library raised this error</td></tr><tr><td>char *</td><td>message</td><td> : human-readable informative error message</td></tr><tr><td><a href="libvirt-virterror.html#virErrorLevel">virErrorLevel</a></td><td>level</td><td> : how consequent is the error</td></tr><tr><td><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></td><td>conn</td><td> : connection if available, deprecated see note above</td></tr><tr><td><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a></td><td>dom</td><td> : domain if available, deprecated see note above</td></tr><tr><td>char *</td><td>str1</td><td> : extra string information</td></tr><tr><td>char *</td><td>str2</td><td> : extra string information</td></tr><tr><td>char *</td><td>str3</td><td> : extra string information</td></tr><tr><td>int</td><td>int1</td><td> : extra number information</td></tr><tr><td>int</td><td>int2</td><td> : extra number information</td></tr><tr><td><a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a></td><td>net</td><td> : network if available, deprecated see note above</td></tr></table><pre>
 }
 </pre></div><h3><a name="virErrorDomain" id="virErrorDomain"><code>virErrorDomain</code></a></h3><div class="api"><pre>enum virErrorDomain {
-</pre><table><tr><td><a name="VIR_FROM_NONE" id="VIR_FROM_NONE">VIR_FROM_NONE</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_FROM_XEN" id="VIR_FROM_XEN">VIR_FROM_XEN</a></td><td> = </td><td>1</td><td> : Error at Xen hypervisor layer</td></tr><tr><td><a name="VIR_FROM_XEND" id="VIR_FROM_XEND">VIR_FROM_XEND</a></td><td> = </td><td>2</td><td> : Error at connection with xend daemon</td></tr><tr><td><a name="VIR_FROM_XENSTORE" id="VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a></td><td> = </td><td>3</td><td> : Error at connection with xen store</td></tr><tr><td><a name="VIR_FROM_SEXPR" id="VIR_FROM_SEXPR">VIR_FROM_SEXPR</a></td><td> = </td><td>4</td><td> : Error in the S-Expression code</td></tr><tr><td><a name="VIR_FROM_XML" id="VIR_FROM_XML">VIR_FROM_XML</a></td><td> = </td><td>5</td><td> : Error in the XML code</td></tr><tr><td><a name="VIR_FROM_DOM" id="VIR_FROM_DOM">VIR_FROM_DOM</a></td><td> = </td><td>6</td><td> : Error when operating on a domain</td></tr><tr><td><a name="VIR_FROM_RPC" id="VIR_FROM_RPC">VIR_FROM_RPC</a></td><td> = </td><td>7</td><td> : Error in the XML-RPC code</td></tr><tr><td><a name="VIR_FROM_PROXY" id="VIR_FROM_PROXY">VIR_FROM_PROXY</a></td><td> = </td><td>8</td><td> : Error in the proxy code</td></tr><tr><td><a name="VIR_FROM_CONF" id="VIR_FROM_CONF">VIR_FROM_CONF</a></td><td> = </td><td>9</td><td> : Error in the configuration file handling</td></tr><tr><td><a name="VIR_FROM_QEMU" id="VIR_FROM_QEMU">VIR_FROM_QEMU</a></td><td> = </td><td>10</td><td> : Error at the QEMU daemon</td></tr><tr><td><a name="VIR_FROM_NET" id="VIR_FROM_NET">VIR_FROM_NET</a></td><td> = </td><td>11</td><td> : Error when operating on a network</td></tr><tr><td><a name="VIR_FROM_TEST" id="VIR_FROM_TEST">VIR_FROM_TEST</a></td><td> = </td><td>12</td><td> : Error from test driver</td></tr><tr><td><a name="VIR_FROM_REMOTE" id="VIR_FROM_REMOTE">VIR_FROM_REMOTE</a></td><td> = </td><td>13</td><td> : Error from remote driver</td></tr><tr><td><a name="VIR_FROM_OPENVZ" id="VIR_FROM_OPENVZ">VIR_FROM_OPENVZ</a></td><td> = </td><td>14</td><td> : Error from OpenVZ driver</td></tr><tr><td><a name="VIR_FROM_XENXM" id="VIR_FROM_XENXM">VIR_FROM_XENXM</a></td><td> = </td><td>15</td><td> : Error at Xen XM layer</td></tr><tr><td><a name="VIR_FROM_STATS_LINUX" id="VIR_FROM_STATS_LINUX">VIR_FROM_STATS_LINUX</a></td><td> = </td><td>16</td><td> : Error in the Linux Stats code</td></tr><tr><td><a name="VIR_FROM_LXC" id="VIR_FROM_LXC">VIR_FROM_LXC</a></td><td> = </td><td>17</td><td> : Error from Linux Container driver</td></tr><tr><td><a name="VIR_FROM_STORAGE" id="VIR_FROM_STORAGE">VIR_FROM_STORAGE</a></td><td> = </td><td>18</td><td> : Error from storage driver</td></tr><tr><td><a name="VIR_FROM_NETWORK" id="VIR_FROM_NETWORK">VIR_FROM_NETWORK</a></td><td> = </td><td>19</td><td> : Error from network config</td></tr><tr><td><a name="VIR_FROM_DOMAIN" id="VIR_FROM_DOMAIN">VIR_FROM_DOMAIN</a></td><td> = </td><td>20</td><td> : Error from domain config</td></tr><tr><td><a name="VIR_FROM_UML" id="VIR_FROM_UML">VIR_FROM_UML</a></td><td> = </td><td>21</td><td> : Error at the UML driver</td></tr><tr><td><a name="VIR_FROM_NODEDEV" id="VIR_FROM_NODEDEV">VIR_FROM_NODEDEV</a></td><td> = </td><td>22</td><td> : Error from node device monitor</td></tr><tr><td><a name="VIR_FROM_XEN_INOTIFY" id="VIR_FROM_XEN_INOTIFY">VIR_FROM_XEN_INOTIFY</a></td><td> = </td><td>23</td><td> : Error from xen inotify layer</td></tr><tr><td><a name="VIR_FROM_SECURITY" id="VIR_FROM_SECURITY">VIR_FROM_SECURITY</a></td><td> = </td><td>24</td><td> : Error from security framework</td></tr><tr><td><a name="VIR_FROM_VBOX" id="VIR_FROM_VBOX">VIR_FROM_VBOX</a></td><td> = </td><td>25</td><td> : Error from VirtualBox driver</td></tr></table><pre>}
+</pre><table><tr><td><a name="VIR_FROM_NONE" id="VIR_FROM_NONE">VIR_FROM_NONE</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_FROM_XEN" id="VIR_FROM_XEN">VIR_FROM_XEN</a></td><td> = </td><td>1</td><td> : Error at Xen hypervisor layer</td></tr><tr><td><a name="VIR_FROM_XEND" id="VIR_FROM_XEND">VIR_FROM_XEND</a></td><td> = </td><td>2</td><td> : Error at connection with xend daemon</td></tr><tr><td><a name="VIR_FROM_XENSTORE" id="VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a></td><td> = </td><td>3</td><td> : Error at connection with xen store</td></tr><tr><td><a name="VIR_FROM_SEXPR" id="VIR_FROM_SEXPR">VIR_FROM_SEXPR</a></td><td> = </td><td>4</td><td> : Error in the S-Expression code</td></tr><tr><td><a name="VIR_FROM_XML" id="VIR_FROM_XML">VIR_FROM_XML</a></td><td> = </td><td>5</td><td> : Error in the XML code</td></tr><tr><td><a name="VIR_FROM_DOM" id="VIR_FROM_DOM">VIR_FROM_DOM</a></td><td> = </td><td>6</td><td> : Error when operating on a domain</td></tr><tr><td><a name="VIR_FROM_RPC" id="VIR_FROM_RPC">VIR_FROM_RPC</a></td><td> = </td><td>7</td><td> : Error in the XML-RPC code</td></tr><tr><td><a name="VIR_FROM_PROXY" id="VIR_FROM_PROXY">VIR_FROM_PROXY</a></td><td> = </td><td>8</td><td> : Error in the proxy code</td></tr><tr><td><a name="VIR_FROM_CONF" id="VIR_FROM_CONF">VIR_FROM_CONF</a></td><td> = </td><td>9</td><td> : Error in the configuration file handling</td></tr><tr><td><a name="VIR_FROM_QEMU" id="VIR_FROM_QEMU">VIR_FROM_QEMU</a></td><td> = </td><td>10</td><td> : Error at the QEMU daemon</td></tr><tr><td><a name="VIR_FROM_NET" id="VIR_FROM_NET">VIR_FROM_NET</a></td><td> = </td><td>11</td><td> : Error when operating on a network</td></tr><tr><td><a name="VIR_FROM_TEST" id="VIR_FROM_TEST">VIR_FROM_TEST</a></td><td> = </td><td>12</td><td> : Error from test driver</td></tr><tr><td><a name="VIR_FROM_REMOTE" id="VIR_FROM_REMOTE">VIR_FROM_REMOTE</a></td><td> = </td><td>13</td><td> : Error from remote driver</td></tr><tr><td><a name="VIR_FROM_OPENVZ" id="VIR_FROM_OPENVZ">VIR_FROM_OPENVZ</a></td><td> = </td><td>14</td><td> : Error from OpenVZ driver</td></tr><tr><td><a name="VIR_FROM_XENXM" id="VIR_FROM_XENXM">VIR_FROM_XENXM</a></td><td> = </td><td>15</td><td> : Error at Xen XM layer</td></tr><tr><td><a name="VIR_FROM_STATS_LINUX" id="VIR_FROM_STATS_LINUX">VIR_FROM_STATS_LINUX</a></td><td> = </td><td>16</td><td> : Error in the Linux Stats code</td></tr><tr><td><a name="VIR_FROM_LXC" id="VIR_FROM_LXC">VIR_FROM_LXC</a></td><td> = </td><td>17</td><td> : Error from Linux Container driver</td></tr><tr><td><a name="VIR_FROM_STORAGE" id="VIR_FROM_STORAGE">VIR_FROM_STORAGE</a></td><td> = </td><td>18</td><td> : Error from storage driver</td></tr><tr><td><a name="VIR_FROM_NETWORK" id="VIR_FROM_NETWORK">VIR_FROM_NETWORK</a></td><td> = </td><td>19</td><td> : Error from network config</td></tr><tr><td><a name="VIR_FROM_DOMAIN" id="VIR_FROM_DOMAIN">VIR_FROM_DOMAIN</a></td><td> = </td><td>20</td><td> : Error from domain config</td></tr><tr><td><a name="VIR_FROM_UML" id="VIR_FROM_UML">VIR_FROM_UML</a></td><td> = </td><td>21</td><td> : Error at the UML driver</td></tr><tr><td><a name="VIR_FROM_NODEDEV" id="VIR_FROM_NODEDEV">VIR_FROM_NODEDEV</a></td><td> = </td><td>22</td><td> : Error from node device monitor</td></tr><tr><td><a name="VIR_FROM_XEN_INOTIFY" id="VIR_FROM_XEN_INOTIFY">VIR_FROM_XEN_INOTIFY</a></td><td> = </td><td>23</td><td> : Error from xen inotify layer</td></tr><tr><td><a name="VIR_FROM_SECURITY" id="VIR_FROM_SECURITY">VIR_FROM_SECURITY</a></td><td> = </td><td>24</td><td> : Error from security framework</td></tr><tr><td><a name="VIR_FROM_VBOX" id="VIR_FROM_VBOX">VIR_FROM_VBOX</a></td><td> = </td><td>25</td><td> : Error from VirtualBox driver</td></tr><tr><td><a name="VIR_FROM_INTERFACE" id="VIR_FROM_INTERFACE">VIR_FROM_INTERFACE</a></td><td> = </td><td>26</td><td> : Error when operating on an interface</td></tr></table><pre>}
 </pre></div><h3><a name="virErrorLevel" id="virErrorLevel"><code>virErrorLevel</code></a></h3><div class="api"><pre>enum virErrorLevel {
 </pre><table><tr><td><a name="VIR_ERR_NONE" id="VIR_ERR_NONE">VIR_ERR_NONE</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_WARNING" id="VIR_ERR_WARNING">VIR_ERR_WARNING</a></td><td> = </td><td>1</td><td> : A simple warning</td></tr><tr><td><a name="VIR_ERR_ERROR" id="VIR_ERR_ERROR">VIR_ERR_ERROR</a></td><td> = </td><td>2</td><td> : An error</td></tr></table><pre>}
 </pre></div><h3><a name="virErrorNumber" id="virErrorNumber"><code>virErrorNumber</code></a></h3><div class="api"><pre>enum virErrorNumber {
-</pre><table><tr><td><a name="VIR_ERR_OK" id="VIR_ERR_OK">VIR_ERR_OK</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_INTERNAL_ERROR" id="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a></td><td> = </td><td>1</td><td> : internal error</td></tr><tr><td><a name="VIR_ERR_NO_MEMORY" id="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a></td><td> = </td><td>2</td><td> : memory allocation failure</td></tr><tr><td><a name="VIR_ERR_NO_SUPPORT" id="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a></td><td> = </td><td>3</td><td> : no support for this function</td></tr><tr><td><a name="VIR_ERR_UNKNOWN_HOST" id="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a></td><td> = </td><td>4</td><td> : could not resolve hostname</td></tr><tr><td><a name="VIR_ERR_NO_CONNECT" id="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a></td><td> = </td><td>5</td><td> : can't connect to hypervisor</td></tr><tr><td><a name="VIR_ERR_INVALID_CONN" id="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a></td><td> = </td><td>6</td><td> : invalid connection object</td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN" id="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a></td><td> = </td><td>7</td><td> : invalid domain object</td></tr><tr><td><a name="VIR_ERR_INVALID_ARG" id="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a></td><td> = </td><td>8</td><td> : invalid function argument</td></tr><tr><td><a name="VIR_ERR_OPERATION_FAILED" id="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a></td><td> = </td><td>9</td><td> : a command to hypervisor failed</td></tr><tr><td><a name="VIR_ERR_GET_FAILED" id="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a></td><td> = </td><td>10</td><td> : a HTTP GET command to failed</td></tr><tr><td><a name="VIR_ERR_POST_FAILED" id="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a></td><td> = </td><td>11</td><td> : a HTTP POST command to failed</td></tr><tr><td><a name="VIR_ERR_HTTP_ERROR" id="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a></td><td> = </td><td>12</td><td> : unexpected HTTP error code</td></tr><tr><td><a name="VIR_ERR_SEXPR_SERIAL" id="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a></td><td> = </td><td>13</td><td> : failure to serialize an S-Expr</td></tr><tr><td><a name="VIR_ERR_NO_XEN" id="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a></td><td> = </td><td>14</td><td> : could not open Xen hypervisor control</td></tr><tr><td><a name="VIR_ERR_XEN_CALL" id="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a></td><td> = </td><td>15</td><td> : failure doing an hypervisor call</td></tr><tr><td><a name="VIR_ERR_OS_TYPE" id="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a></td><td> = </td><td>16</td><td> : unknown OS type</td></tr><tr><td><a name="VIR_ERR_NO_KERNEL" id="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a></td><td> = </td><td>17</td><td> : missing kernel information</td></tr><tr><td><a name="VIR_ERR_NO_ROOT" id="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a></td><td> = </td><td>18</td><td> : missing root device information</td></tr><tr><td><a name="VIR_ERR_NO_SOURCE" id="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a></td><td> = </td><td>19</td><td> : missing source device information</td></tr><tr><td><a name="VIR_ERR_NO_TARGET" id="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a></td><td> = </td><td>20</td><td> : missing target device information</td></tr><tr><td><a name="VIR_ERR_NO_NAME" id="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a></td><td> = </td><td>21</td><td> : missing domain name information</td></tr><tr><td><a name="VIR_ERR_NO_OS" id="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a></td><td> = </td><td>22</td><td> : missing domain OS information</td></tr><tr><td><a name="VIR_ERR_NO_DEVICE" id="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a></td><td> = </td><td>23</td><td> : missing domain devices information</td></tr><tr><td><a name="VIR_ERR_NO_XENSTORE" id="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a></td><td> = </td><td>24</td><td> : could not open Xen Store control</td></tr><tr><td><a name="VIR_ERR_DRIVER_FULL" id="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a></td><td> = </td><td>25</td><td> : too many drivers registered</td></tr><tr><td><a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a></td><td> = </td><td>26</td><td> : not supported by the drivers (DEPRECATED)</td></tr><tr><td><a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a></td><td> = </td><td>27</td><td> : an XML description is not well formed or broken</td></tr><tr><td><a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a></td><td> = </td><td>28</td><td> : the domain already exist</td></tr><tr><td><a name="VIR_ERR_OPERATION_DENIED" id="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a></td><td> = </td><td>29</td><td> : operation forbidden on read-only connections</td></tr><tr><td><a name="VIR_ERR_OPEN_FAILED" id="VIR_ERR_OPEN_FAILED">VIR_ERR_OPEN_FAILED</a></td><td> = </td><td>30</td><td> : failed to open a conf file</td></tr><tr><td><a name="VIR_ERR_READ_FAILED" id="VIR_ERR_READ_FAILED">VIR_ERR_READ_FAILED</a></td><td> = </td><td>31</td><td> : failed to read a conf file</td></tr><tr><td><a name="VIR_ERR_PARSE_FAILED" id="VIR_ERR_PARSE_FAILED">VIR_ERR_PARSE_FAILED</a></td><td> = </td><td>32</td><td> : failed to parse a conf file</td></tr><tr><td><a name="VIR_ERR_CONF_SYNTAX" id="VIR_ERR_CONF_SYNTAX">VIR_ERR_CONF_SYNTAX</a></td><td> = </td><td>33</td><td> : failed to parse the syntax of a conf file</td></tr><tr><td><a name="VIR_ERR_WRITE_FAILED" id="VIR_ERR_WRITE_FAILED">VIR_ERR_WRITE_FAILED</a></td><td> = </td><td>34</td><td> : failed to write a conf file</td></tr><tr><td><a name="VIR_ERR_XML_DETAIL" id="VIR_ERR_XML_DETAIL">VIR_ERR_XML_DETAIL</a></td><td> = </td><td>35</td><td> : detail of an XML error</td></tr><tr><td><a name="VIR_ERR_INVALID_NETWORK" id="VIR_ERR_INVALID_NETWORK">VIR_ERR_INVALID_NETWORK</a></td><td> = </td><td>36</td><td> : invalid network object</td></tr><tr><td><a name="VIR_ERR_NETWORK_EXIST" id="VIR_ERR_NETWORK_EXIST">VIR_ERR_NETWORK_EXIST</a></td><td> = </td><td>37</td><td> : the network already exist</td></tr><tr><td><a name="VIR_ERR_SYSTEM_ERROR" id="VIR_ERR_SYSTEM_ERROR">VIR_ERR_SYSTEM_ERROR</a></td><td> = </td><td>38</td><td> : general system call failure</td></tr><tr><td><a name="VIR_ERR_RPC" id="VIR_ERR_RPC">VIR_ERR_RPC</a></td><td> = </td><td>39</td><td> : some sort of RPC error</td></tr><tr><td><a name="VIR_ERR_GNUTLS_ERROR" id="VIR_ERR_GNUTLS_ERROR">VIR_ERR_GNUTLS_ERROR</a></td><td> = </td><td>40</td><td> : error from a GNUTLS call</td></tr><tr><td><a name="VIR_WAR_NO_NETWORK" id="VIR_WAR_NO_NETWORK">VIR_WAR_NO_NETWORK</a></td><td> = </td><td>41</td><td> : failed to start network</td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN" id="VIR_ERR_NO_DOMAIN">VIR_ERR_NO_DOMAIN</a></td><td> = </td><td>42</td><td> : domain not found or unexpectedly disappeared</td></tr><tr><td><a name="VIR_ERR_NO_NETWORK" id="VIR_ERR_NO_NETWORK">VIR_ERR_NO_NETWORK</a></td><td> = </td><td>43</td><td> : network not found</td></tr><tr><td><a name="VIR_ERR_INVALID_MAC" id="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a></td><td> = </td><td>44</td><td> : invalid MAC address</td></tr><tr><td><a name="VIR_ERR_AUTH_FAILED" id="VIR_ERR_AUTH_FAILED">VIR_ERR_AUTH_FAILED</a></td><td> = </td><td>45</td><td> : authentication failed</td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_POOL" id="VIR_ERR_INVALID_STORAGE_POOL">VIR_ERR_INVALID_STORAGE_POOL</a></td><td> = </td><td>46</td><td> : invalid storage pool object</td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_VOL" id="VIR_ERR_INVALID_STORAGE_VOL">VIR_ERR_INVALID_STORAGE_VOL</a></td><td> = </td><td>47</td><td> : invalid storage vol object</td></tr><tr><td><a name="VIR_WAR_NO_STORAGE" id="VIR_WAR_NO_STORAGE">VIR_WAR_NO_STORAGE</a></td><td> = </td><td>48</td><td> : failed to start storage</td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_POOL" id="VIR_ERR_NO_STORAGE_POOL">VIR_ERR_NO_STORAGE_POOL</a></td><td> = </td><td>49</td><td> : storage pool not found</td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_VOL" id="VIR_ERR_NO_STORAGE_VOL">VIR_ERR_NO_STORAGE_VOL</a></td><td> = </td><td>50</td><td> : storage pool not found</td></tr><tr><td><a name="VIR_WAR_NO_NODE" id="VIR_WAR_NO_NODE">VIR_WAR_NO_NODE</a></td><td> = </td><td>51</td><td> : failed to start node driver</td></tr><tr><td><a name="VIR_ERR_INVALID_NODE_DEVICE" id="VIR_ERR_INVALID_NODE_DEVICE">VIR_ERR_INVALID_NODE_DEVICE</a></td><td> = </td><td>52</td><td> : invalid node device object</td></tr><tr><td><a name="VIR_ERR_NO_NODE_DEVICE" id="VIR_ERR_NO_NODE_DEVICE">VIR_ERR_NO_NODE_DEVICE</a></td><td> = </td><td>53</td><td> : node device not found</td></tr><tr><td><a name="VIR_ERR_NO_SECURITY_MODEL" id="VIR_ERR_NO_SECURITY_MODEL">VIR_ERR_NO_SECURITY_MODEL</a></td><td> = </td><td>54</td><td> : security model not found</td></tr><tr><td><a name="VIR_ERR_OPERATION_INVALID" id="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a></td><td> = </td><td>55</td><td> : operation is not applicable at this time</td></tr></table><pre>}
+</pre><table><tr><td><a name="VIR_ERR_OK" id="VIR_ERR_OK">VIR_ERR_OK</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_INTERNAL_ERROR" id="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a></td><td> = </td><td>1</td><td> : internal error</td></tr><tr><td><a name="VIR_ERR_NO_MEMORY" id="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a></td><td> = </td><td>2</td><td> : memory allocation failure</td></tr><tr><td><a name="VIR_ERR_NO_SUPPORT" id="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a></td><td> = </td><td>3</td><td> : no support for this function</td></tr><tr><td><a name="VIR_ERR_UNKNOWN_HOST" id="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a></td><td> = </td><td>4</td><td> : could not resolve hostname</td></tr><tr><td><a name="VIR_ERR_NO_CONNECT" id="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a></td><td> = </td><td>5</td><td> : can't connect to hypervisor</td></tr><tr><td><a name="VIR_ERR_INVALID_CONN" id="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a></td><td> = </td><td>6</td><td> : invalid connection object</td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN" id="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a></td><td> = </td><td>7</td><td> : invalid domain object</td></tr><tr><td><a name="VIR_ERR_INVALID_ARG" id="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a></td><td> = </td><td>8</td><td> : invalid function argument</td></tr><tr><td><a name="VIR_ERR_OPERATION_FAILED" id="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a></td><td> = </td><td>9</td><td> : a command to hypervisor failed</td></tr><tr><td><a name="VIR_ERR_GET_FAILED" id="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a></td><td> = </td><td>10</td><td> : a HTTP GET command to failed</td></tr><tr><td><a name="VIR_ERR_POST_FAILED" id="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a></td><td> = </td><td>11</td><td> : a HTTP POST command to failed</td></tr><tr><td><a name="VIR_ERR_HTTP_ERROR" id="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a></td><td> = </td><td>12</td><td> : unexpected HTTP error code</td></tr><tr><td><a name="VIR_ERR_SEXPR_SERIAL" id="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a></td><td> = </td><td>13</td><td> : failure to serialize an S-Expr</td></tr><tr><td><a name="VIR_ERR_NO_XEN" id="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a></td><td> = </td><td>14</td><td> : could not open Xen hypervisor control</td></tr><tr><td><a name="VIR_ERR_XEN_CALL" id="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a></td><td> = </td><td>15</td><td> : failure doing an hypervisor call</td></tr><tr><td><a name="VIR_ERR_OS_TYPE" id="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a></td><td> = </td><td>16</td><td> : unknown OS type</td></tr><tr><td><a name="VIR_ERR_NO_KERNEL" id="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a></td><td> = </td><td>17</td><td> : missing kernel information</td></tr><tr><td><a name="VIR_ERR_NO_ROOT" id="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a></td><td> = </td><td>18</td><td> : missing root device information</td></tr><tr><td><a name="VIR_ERR_NO_SOURCE" id="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a></td><td> = </td><td>19</td><td> : missing source device information</td></tr><tr><td><a name="VIR_ERR_NO_TARGET" id="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a></td><td> = </td><td>20</td><td> : missing target device information</td></tr><tr><td><a name="VIR_ERR_NO_NAME" id="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a></td><td> = </td><td>21</td><td> : missing domain name information</td></tr><tr><td><a name="VIR_ERR_NO_OS" id="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a></td><td> = </td><td>22</td><td> : missing domain OS information</td></tr><tr><td><a name="VIR_ERR_NO_DEVICE" id="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a></td><td> = </td><td>23</td><td> : missing domain devices information</td></tr><tr><td><a name="VIR_ERR_NO_XENSTORE" id="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a></td><td> = </td><td>24</td><td> : could not open Xen Store control</td></tr><tr><td><a name="VIR_ERR_DRIVER_FULL" id="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a></td><td> = </td><td>25</td><td> : too many drivers registered</td></tr><tr><td><a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a></td><td> = </td><td>26</td><td> : not supported by the drivers (DEPRECATED)</td></tr><tr><td><a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a></td><td> = </td><td>27</td><td> : an XML description is not well formed or broken</td></tr><tr><td><a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a></td><td> = </td><td>28</td><td> : the domain already exist</td></tr><tr><td><a name="VIR_ERR_OPERATION_DENIED" id="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a></td><td> = </td><td>29</td><td> : operation forbidden on read-only connections</td></tr><tr><td><a name="VIR_ERR_OPEN_FAILED" id="VIR_ERR_OPEN_FAILED">VIR_ERR_OPEN_FAILED</a></td><td> = </td><td>30</td><td> : failed to open a conf file</td></tr><tr><td><a name="VIR_ERR_READ_FAILED" id="VIR_ERR_READ_FAILED">VIR_ERR_READ_FAILED</a></td><td> = </td><td>31</td><td> : failed to read a conf file</td></tr><tr><td><a name="VIR_ERR_PARSE_FAILED" id="VIR_ERR_PARSE_FAILED">VIR_ERR_PARSE_FAILED</a></td><td> = </td><td>32</td><td> : failed to parse a conf file</td></tr><tr><td><a name="VIR_ERR_CONF_SYNTAX" id="VIR_ERR_CONF_SYNTAX">VIR_ERR_CONF_SYNTAX</a></td><td> = </td><td>33</td><td> : failed to parse the syntax of a conf file</td></tr><tr><td><a name="VIR_ERR_WRITE_FAILED" id="VIR_ERR_WRITE_FAILED">VIR_ERR_WRITE_FAILED</a></td><td> = </td><td>34</td><td> : failed to write a conf file</td></tr><tr><td><a name="VIR_ERR_XML_DETAIL" id="VIR_ERR_XML_DETAIL">VIR_ERR_XML_DETAIL</a></td><td> = </td><td>35</td><td> : detail of an XML error</td></tr><tr><td><a name="VIR_ERR_INVALID_NETWORK" id="VIR_ERR_INVALID_NETWORK">VIR_ERR_INVALID_NETWORK</a></td><td> = </td><td>36</td><td> : invalid network object</td></tr><tr><td><a name="VIR_ERR_NETWORK_EXIST" id="VIR_ERR_NETWORK_EXIST">VIR_ERR_NETWORK_EXIST</a></td><td> = </td><td>37</td><td> : the network already exist</td></tr><tr><td><a name="VIR_ERR_SYSTEM_ERROR" id="VIR_ERR_SYSTEM_ERROR">VIR_ERR_SYSTEM_ERROR</a></td><td> = </td><td>38</td><td> : general system call failure</td></tr><tr><td><a name="VIR_ERR_RPC" id="VIR_ERR_RPC">VIR_ERR_RPC</a></td><td> = </td><td>39</td><td> : some sort of RPC error</td></tr><tr><td><a name="VIR_ERR_GNUTLS_ERROR" id="VIR_ERR_GNUTLS_ERROR">VIR_ERR_GNUTLS_ERROR</a></td><td> = </td><td>40</td><td> : error from a GNUTLS call</td></tr><tr><td><a name="VIR_WAR_NO_NETWORK" id="VIR_WAR_NO_NETWORK">VIR_WAR_NO_NETWORK</a></td><td> = </td><td>41</td><td> : failed to start network</td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN" id="VIR_ERR_NO_DOMAIN">VIR_ERR_NO_DOMAIN</a></td><td> = </td><td>42</td><td> : domain not found or unexpectedly disappeared</td></tr><tr><td><a name="VIR_ERR_NO_NETWORK" id="VIR_ERR_NO_NETWORK">VIR_ERR_NO_NETWORK</a></td><td> = </td><td>43</td><td> : network not found</td></tr><tr><td><a name="VIR_ERR_INVALID_MAC" id="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a></td><td> = </td><td>44</td><td> : invalid MAC address</td></tr><tr><td><a name="VIR_ERR_AUTH_FAILED" id="VIR_ERR_AUTH_FAILED">VIR_ERR_AUTH_FAILED</a></td><td> = </td><td>45</td><td> : authentication failed</td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_POOL" id="VIR_ERR_INVALID_STORAGE_POOL">VIR_ERR_INVALID_STORAGE_POOL</a></td><td> = </td><td>46</td><td> : invalid storage pool object</td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_VOL" id="VIR_ERR_INVALID_STORAGE_VOL">VIR_ERR_INVALID_STORAGE_VOL</a></td><td> = </td><td>47</td><td> : invalid storage vol object</td></tr><tr><td><a name="VIR_WAR_NO_STORAGE" id="VIR_WAR_NO_STORAGE">VIR_WAR_NO_STORAGE</a></td><td> = </td><td>48</td><td> : failed to start storage</td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_POOL" id="VIR_ERR_NO_STORAGE_POOL">VIR_ERR_NO_STORAGE_POOL</a></td><td> = </td><td>49</td><td> : storage pool not found</td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_VOL" id="VIR_ERR_NO_STORAGE_VOL">VIR_ERR_NO_STORAGE_VOL</a></td><td> = </td><td>50</td><td> : storage pool not found</td></tr><tr><td><a name="VIR_WAR_NO_NODE" id="VIR_WAR_NO_NODE">VIR_WAR_NO_NODE</a></td><td> = </td><td>51</td><td> : failed to start node driver</td></tr><tr><td><a name="VIR_ERR_INVALID_NODE_DEVICE" id="VIR_ERR_INVALID_NODE_DEVICE">VIR_ERR_INVALID_NODE_DEVICE</a></td><td> = </td><td>52</td><td> : invalid node device object</td></tr><tr><td><a name="VIR_ERR_NO_NODE_DEVICE" id="VIR_ERR_NO_NODE_DEVICE">VIR_ERR_NO_NODE_DEVICE</a></td><td> = </td><td>53</td><td> : node device not found</td></tr><tr><td><a name="VIR_ERR_NO_SECURITY_MODEL" id="VIR_ERR_NO_SECURITY_MODEL">VIR_ERR_NO_SECURITY_MODEL</a></td><td> = </td><td>54</td><td> : security model not found</td></tr><tr><td><a name="VIR_ERR_OPERATION_INVALID" id="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a></td><td> = </td><td>55</td><td> : operation is not applicable at this time</td></tr><tr><td><a name="VIR_WAR_NO_INTERFACE" id="VIR_WAR_NO_INTERFACE">VIR_WAR_NO_INTERFACE</a></td><td> = </td><td>56</td><td> : failed to start interface driver</td></tr><tr><td><a name="VIR_ERR_NO_INTERFACE" id="VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a></td><td> = </td><td>57</td><td> : interface driver not running</td></tr><tr><td><a name="VIR_ERR_INVALID_INTERFACE" id="VIR_ERR_INVALID_INTERFACE">VIR_ERR_INVALID_INTERFACE</a></td><td> = </td><td>58</td><td> : invalid interface object</td></tr></table><pre>}
 </pre></div><h3><a name="functions" id="functions">Functions</a></h3><h3><a name="virConnCopyLastError" id="virConnCopyLastError"><code>virConnCopyLastError</code></a></h3><pre class="programlisting">int    virConnCopyLastError            (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br />                                     <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to)<br />
 </pre><p>Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError()</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>target to receive the copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no error was found and the error code otherwise and -1 in case of parameter error.</td></tr></tbody></table></div><h3><a name="virConnGetLastError" id="virConnGetLastError"><code>virConnGetLastError</code></a></h3><pre class="programlisting"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a>   virConnGetLastError     (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
 </pre><p>Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the last error or NULL if none occurred.</td></tr></tbody></table></div><h3><a name="virConnResetLastError" id="virConnResetLastError"><code>virConnResetLastError</code></a></h3><pre class="programlisting">void      virConnResetLastError           (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
index c1121ebb69a362613752beb2f4eedf6213e41eb6..4ce93842658d0cbd69caa4886807740c8388bcbf 100644 (file)
      <exports symbol='virConnectPtr' type='typedef'/>
      <exports symbol='virStorageVol' type='typedef'/>
      <exports symbol='virNodeDevicePtr' type='typedef'/>
+     <exports symbol='virInterface' type='typedef'/>
      <exports symbol='virSchedParameter' type='typedef'/>
      <exports symbol='virConnectFlags' type='typedef'/>
      <exports symbol='virDomainEventDefinedDetailType' type='typedef'/>
+     <exports symbol='virInterfacePtr' type='typedef'/>
      <exports symbol='virDomainMemoryFlags' type='typedef'/>
      <exports symbol='virDomainEventStoppedDetailType' type='typedef'/>
      <exports symbol='virStorageVolPtr' type='typedef'/>
      <exports symbol='virInitialize' type='function'/>
      <exports symbol='virNodeDeviceGetName' type='function'/>
      <exports symbol='virStoragePoolSetAutostart' type='function'/>
+     <exports symbol='virConnectDomainXMLFromNative' type='function'/>
      <exports symbol='virNodeDeviceDettach' type='function'/>
      <exports symbol='virDomainGetSecurityLabel' type='function'/>
      <exports symbol='virConnectDomainEventDeregister' type='function'/>
      <exports symbol='virConnectNumOfDefinedNetworks' type='function'/>
      <exports symbol='virConnectNumOfDomains' type='function'/>
      <exports symbol='virNetworkGetUUID' type='function'/>
-     <exports symbol='virNodeDeviceCreateXML' type='function'/>
+     <exports symbol='virInterfaceGetXMLDesc' type='function'/>
      <exports symbol='virStoragePoolGetConnect' type='function'/>
      <exports symbol='virConnectGetVersion' type='function'/>
      <exports symbol='virDomainFree' type='function'/>
      <exports symbol='virNetworkCreate' type='function'/>
      <exports symbol='virDomainSetMaxMemory' type='function'/>
      <exports symbol='virEventRegisterImpl' type='function'/>
+     <exports symbol='virInterfaceDefineXML' type='function'/>
      <exports symbol='virDomainMigrate' type='function'/>
      <exports symbol='virDomainSuspend' type='function'/>
      <exports symbol='virDomainCreateLinux' type='function'/>
      <exports symbol='virDomainDestroy' type='function'/>
      <exports symbol='virConnectNumOfNetworks' type='function'/>
      <exports symbol='virStoragePoolLookupByUUIDString' type='function'/>
+     <exports symbol='virInterfaceCreate' type='function'/>
      <exports symbol='virDomainGetXMLDesc' type='function'/>
      <exports symbol='virStoragePoolGetUUID' type='function'/>
      <exports symbol='virNodeDeviceFree' type='function'/>
      <exports symbol='virStorageVolGetInfo' type='function'/>
      <exports symbol='virDomainGetInfo' type='function'/>
+     <exports symbol='virNodeDeviceCreateXML' type='function'/>
      <exports symbol='virNetworkDestroy' type='function'/>
      <exports symbol='virStoragePoolLookupByName' type='function'/>
      <exports symbol='virStoragePoolCreateXML' type='function'/>
      <exports symbol='virNetworkGetAutostart' type='function'/>
      <exports symbol='virNetworkGetBridgeName' type='function'/>
      <exports symbol='virStorageVolGetXMLDesc' type='function'/>
+     <exports symbol='virConnectDomainXMLToNative' type='function'/>
      <exports symbol='virDomainSetSchedulerParameters' type='function'/>
      <exports symbol='virConnectGetType' type='function'/>
      <exports symbol='virStorageVolCreateXML' type='function'/>
      <exports symbol='virConnectListDomains' type='function'/>
      <exports symbol='virDomainCoreDump' type='function'/>
      <exports symbol='virDomainSetMemory' type='function'/>
+     <exports symbol='virInterfaceGetName' type='function'/>
      <exports symbol='virStoragePoolCreate' type='function'/>
      <exports symbol='virNodeGetInfo' type='function'/>
      <exports symbol='virNetworkSetAutostart' type='function'/>
      <exports symbol='virStoragePoolRef' type='function'/>
      <exports symbol='virNetworkGetXMLDesc' type='function'/>
      <exports symbol='virConnectNumOfStoragePools' type='function'/>
+     <exports symbol='virInterfaceGetConnect' type='function'/>
      <exports symbol='virNetworkGetName' type='function'/>
      <exports symbol='virConnectListDefinedDomains' type='function'/>
      <exports symbol='virConnectGetCapabilities' type='function'/>
      <exports symbol='virDomainLookupByID' type='function'/>
      <exports symbol='virStorageVolDelete' type='function'/>
      <exports symbol='virStorageVolFree' type='function'/>
+     <exports symbol='virConnectListInterfaces' type='function'/>
      <exports symbol='virDomainMemoryPeek' type='function'/>
      <exports symbol='virNetworkLookupByUUID' type='function'/>
      <exports symbol='virConnectListDefinedNetworks' type='function'/>
      <exports symbol='virConnectRef' type='function'/>
      <exports symbol='virDomainGetUUID' type='function'/>
      <exports symbol='virNetworkCreateXML' type='function'/>
+     <exports symbol='virConnectDomainEventRegister' type='function'/>
      <exports symbol='virDomainGetVcpus' type='function'/>
      <exports symbol='virNodeDeviceLookupByName' type='function'/>
      <exports symbol='virStoragePoolGetInfo' type='function'/>
      <exports symbol='virDomainResume' type='function'/>
-     <exports symbol='virNodeListDevices' type='function'/>
+     <exports symbol='virInterfaceRef' type='function'/>
+     <exports symbol='virInterfaceGetMACString' type='function'/>
      <exports symbol='virNetworkRef' type='function'/>
      <exports symbol='virStoragePoolRefresh' type='function'/>
      <exports symbol='virConnectNumOfDefinedDomains' type='function'/>
-     <exports symbol='virStorageVolLookupByKey' type='function'/>
+     <exports symbol='virStorageVolCreateXMLFrom' type='function'/>
      <exports symbol='virDomainUndefine' type='function'/>
      <exports symbol='virDomainReboot' type='function'/>
      <exports symbol='virNetworkGetUUIDString' type='function'/>
      <exports symbol='virNetworkUndefine' type='function'/>
      <exports symbol='virConnectListDefinedStoragePools' type='function'/>
      <exports symbol='virEventTimeoutCallback' type='function'/>
-     <exports symbol='virStorageVolCreateXMLFrom' type='function'/>
+     <exports symbol='virInterfaceFree' type='function'/>
      <exports symbol='virNodeDeviceNumOfCaps' type='function'/>
+     <exports symbol='virInterfaceLookupByMACString' type='function'/>
      <exports symbol='virNetworkGetConnect' type='function'/>
      <exports symbol='virNodeGetFreeMemory' type='function'/>
+     <exports symbol='virInterfaceDestroy' type='function'/>
      <exports symbol='virStorageVolGetConnect' type='function'/>
      <exports symbol='virNodeNumOfDevices' type='function'/>
      <exports symbol='virStoragePoolDestroy' type='function'/>
      <exports symbol='virDomainGetUUIDString' type='function'/>
      <exports symbol='virDomainGetConnect' type='function'/>
      <exports symbol='virConnectNumOfDefinedStoragePools' type='function'/>
+     <exports symbol='virNodeListDevices' type='function'/>
      <exports symbol='virNodeDeviceGetParent' type='function'/>
      <exports symbol='virConnectOpen' type='function'/>
      <exports symbol='virDomainCreateXML' type='function'/>
      <exports symbol='virNodeDeviceRef' type='function'/>
+     <exports symbol='virInterfaceUndefine' type='function'/>
      <exports symbol='virDomainSetVcpus' type='function'/>
      <exports symbol='virDomainRef' type='function'/>
-     <exports symbol='virConnectDomainEventRegister' type='function'/>
+     <exports symbol='virConnectNumOfInterfaces' type='function'/>
      <exports symbol='virDomainGetID' type='function'/>
      <exports symbol='virDomainBlockPeek' type='function'/>
      <exports symbol='virEventAddTimeoutFunc' type='function'/>
+     <exports symbol='virInterfaceLookupByName' type='function'/>
      <exports symbol='virDomainInterfaceStats' type='function'/>
      <exports symbol='virConnectListNetworks' type='function'/>
+     <exports symbol='virStorageVolLookupByKey' type='function'/>
     </file>
     <file name='virterror'>
      <summary>error handling interfaces for the libvirt library</summary>
      <description>Provides the interfaces of the libvirt library to handle errors raised while using the library. </description>
      <author>Daniel Veillard &lt;veillard@redhat.com&gt; </author>
-     <exports symbol='VIR_ERR_XML_ERROR' type='enum'/>
-     <exports symbol='VIR_ERR_RPC' type='enum'/>
-     <exports symbol='VIR_ERR_SYSTEM_ERROR' type='enum'/>
-     <exports symbol='VIR_FROM_TEST' type='enum'/>
-     <exports symbol='VIR_ERR_WARNING' type='enum'/>
-     <exports symbol='VIR_FROM_OPENVZ' type='enum'/>
      <exports symbol='VIR_ERR_NO_XEN' type='enum'/>
-     <exports symbol='VIR_FROM_STATS_LINUX' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_ARG' type='enum'/>
-     <exports symbol='VIR_FROM_XEN_INOTIFY' type='enum'/>
-     <exports symbol='VIR_ERR_ERROR' type='enum'/>
-     <exports symbol='VIR_ERR_NO_OS' type='enum'/>
+     <exports symbol='VIR_FROM_NETWORK' type='enum'/>
      <exports symbol='VIR_ERR_NO_NODE_DEVICE' type='enum'/>
-     <exports symbol='VIR_ERR_NO_DEVICE' type='enum'/>
      <exports symbol='VIR_ERR_NO_MEMORY' type='enum'/>
-     <exports symbol='VIR_FROM_SEXPR' type='enum'/>
      <exports symbol='VIR_WAR_NO_NODE' type='enum'/>
-     <exports symbol='VIR_FROM_RPC' type='enum'/>
-     <exports symbol='VIR_FROM_UML' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_MAC' type='enum'/>
      <exports symbol='VIR_ERR_NO_STORAGE_VOL' type='enum'/>
-     <exports symbol='VIR_FROM_NONE' type='enum'/>
-     <exports symbol='VIR_ERR_DOM_EXIST' type='enum'/>
-     <exports symbol='VIR_ERR_NO_XENSTORE' type='enum'/>
-     <exports symbol='VIR_FROM_DOM' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_DOMAIN' type='enum'/>
-     <exports symbol='VIR_ERR_NO_STORAGE_POOL' type='enum'/>
      <exports symbol='VIR_FROM_CONF' type='enum'/>
      <exports symbol='VIR_ERR_INVALID_NETWORK' type='enum'/>
-     <exports symbol='VIR_ERR_AUTH_FAILED' type='enum'/>
-     <exports symbol='VIR_FROM_XML' type='enum'/>
-     <exports symbol='VIR_ERR_OPERATION_DENIED' type='enum'/>
-     <exports symbol='VIR_FROM_VBOX' type='enum'/>
-     <exports symbol='VIR_FROM_STORAGE' type='enum'/>
-     <exports symbol='VIR_ERR_NO_KERNEL' type='enum'/>
-     <exports symbol='VIR_WAR_NO_STORAGE' type='enum'/>
-     <exports symbol='VIR_ERR_GNUTLS_ERROR' type='enum'/>
+     <exports symbol='VIR_ERR_PARSE_FAILED' type='enum'/>
      <exports symbol='VIR_ERR_POST_FAILED' type='enum'/>
-     <exports symbol='VIR_ERR_OS_TYPE' type='enum'/>
-     <exports symbol='VIR_ERR_OPERATION_INVALID' type='enum'/>
-     <exports symbol='VIR_WAR_NO_NETWORK' type='enum'/>
      <exports symbol='VIR_ERR_INVALID_CONN' type='enum'/>
+     <exports symbol='VIR_ERR_GET_FAILED' type='enum'/>
+     <exports symbol='VIR_ERR_NO_SOURCE' type='enum'/>
+     <exports symbol='VIR_ERR_NETWORK_EXIST' type='enum'/>
      <exports symbol='VIR_ERR_NONE' type='enum'/>
-     <exports symbol='VIR_ERR_OK' type='enum'/>
-     <exports symbol='VIR_FROM_XENXM' type='enum'/>
-     <exports symbol='VIR_FROM_NETWORK' type='enum'/>
-     <exports symbol='VIR_ERR_XML_DETAIL' type='enum'/>
-     <exports symbol='VIR_FROM_NET' type='enum'/>
-     <exports symbol='VIR_FROM_XENSTORE' type='enum'/>
+     <exports symbol='VIR_FROM_REMOTE' type='enum'/>
+     <exports symbol='VIR_FROM_XEN_INOTIFY' type='enum'/>
+     <exports symbol='VIR_ERR_NO_NETWORK' type='enum'/>
+     <exports symbol='VIR_ERR_READ_FAILED' type='enum'/>
+     <exports symbol='VIR_FROM_INTERFACE' type='enum'/>
+     <exports symbol='VIR_ERR_NO_CONNECT' type='enum'/>
+     <exports symbol='VIR_ERR_CALL_FAILED' type='enum'/>
+     <exports symbol='VIR_FROM_VBOX' type='enum'/>
+     <exports symbol='VIR_FROM_TEST' type='enum'/>
+     <exports symbol='VIR_ERR_NO_DEVICE' type='enum'/>
+     <exports symbol='VIR_FROM_SEXPR' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_MAC' type='enum'/>
+     <exports symbol='VIR_ERR_HTTP_ERROR' type='enum'/>
+     <exports symbol='VIR_ERR_NO_XENSTORE' type='enum'/>
+     <exports symbol='VIR_FROM_XEND' type='enum'/>
+     <exports symbol='VIR_FROM_STATS_LINUX' type='enum'/>
+     <exports symbol='VIR_FROM_OPENVZ' type='enum'/>
+     <exports symbol='VIR_ERR_OS_TYPE' type='enum'/>
+     <exports symbol='VIR_WAR_NO_NETWORK' type='enum'/>
+     <exports symbol='VIR_FROM_UML' type='enum'/>
      <exports symbol='VIR_ERR_NO_NAME' type='enum'/>
      <exports symbol='VIR_ERR_NO_ROOT' type='enum'/>
      <exports symbol='VIR_ERR_OPERATION_FAILED' type='enum'/>
-     <exports symbol='VIR_ERR_GET_FAILED' type='enum'/>
      <exports symbol='VIR_FROM_NODEDEV' type='enum'/>
-     <exports symbol='VIR_ERR_DRIVER_FULL' type='enum'/>
-     <exports symbol='VIR_ERR_HTTP_ERROR' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_NODE_DEVICE' type='enum'/>
-     <exports symbol='VIR_ERR_PARSE_FAILED' type='enum'/>
-     <exports symbol='VIR_ERR_NO_SOURCE' type='enum'/>
-     <exports symbol='VIR_FROM_DOMAIN' type='enum'/>
      <exports symbol='VIR_ERR_NO_TARGET' type='enum'/>
-     <exports symbol='VIR_ERR_NETWORK_EXIST' type='enum'/>
      <exports symbol='VIR_FROM_SECURITY' type='enum'/>
-     <exports symbol='VIR_ERR_WRITE_FAILED' type='enum'/>
-     <exports symbol='VIR_ERR_INTERNAL_ERROR' type='enum'/>
      <exports symbol='VIR_ERR_CONF_SYNTAX' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_STORAGE_POOL' type='enum'/>
-     <exports symbol='VIR_FROM_REMOTE' type='enum'/>
      <exports symbol='VIR_ERR_NO_SUPPORT' type='enum'/>
      <exports symbol='VIR_ERR_NO_SECURITY_MODEL' type='enum'/>
-     <exports symbol='VIR_FROM_QEMU' type='enum'/>
-     <exports symbol='VIR_FROM_XEND' type='enum'/>
-     <exports symbol='VIR_ERR_INVALID_STORAGE_VOL' type='enum'/>
+     <exports symbol='VIR_ERR_SEXPR_SERIAL' type='enum'/>
+     <exports symbol='VIR_FROM_XENSTORE' type='enum'/>
+     <exports symbol='VIR_ERR_OPEN_FAILED' type='enum'/>
+     <exports symbol='VIR_ERR_NO_OS' type='enum'/>
+     <exports symbol='VIR_FROM_RPC' type='enum'/>
+     <exports symbol='VIR_FROM_NONE' type='enum'/>
+     <exports symbol='VIR_FROM_DOM' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_DOMAIN' type='enum'/>
+     <exports symbol='VIR_ERR_OPERATION_INVALID' type='enum'/>
+     <exports symbol='VIR_WAR_NO_STORAGE' type='enum'/>
+     <exports symbol='VIR_ERR_GNUTLS_ERROR' type='enum'/>
+     <exports symbol='VIR_ERR_XML_ERROR' type='enum'/>
+     <exports symbol='VIR_ERR_OK' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_INTERFACE' type='enum'/>
+     <exports symbol='VIR_FROM_STORAGE' type='enum'/>
      <exports symbol='VIR_FROM_PROXY' type='enum'/>
-     <exports symbol='VIR_ERR_NO_NETWORK' type='enum'/>
+     <exports symbol='VIR_ERR_DRIVER_FULL' type='enum'/>
+     <exports symbol='VIR_FROM_DOMAIN' type='enum'/>
+     <exports symbol='VIR_FROM_XML' type='enum'/>
+     <exports symbol='VIR_ERR_OPERATION_DENIED' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_STORAGE_POOL' type='enum'/>
      <exports symbol='VIR_ERR_NO_DOMAIN' type='enum'/>
-     <exports symbol='VIR_ERR_READ_FAILED' type='enum'/>
-     <exports symbol='VIR_ERR_SEXPR_SERIAL' type='enum'/>
-     <exports symbol='VIR_FROM_LXC' type='enum'/>
      <exports symbol='VIR_FROM_XEN' type='enum'/>
-     <exports symbol='VIR_ERR_OPEN_FAILED' type='enum'/>
+     <exports symbol='VIR_ERR_RPC' type='enum'/>
+     <exports symbol='VIR_ERR_WARNING' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_ARG' type='enum'/>
+     <exports symbol='VIR_ERR_ERROR' type='enum'/>
+     <exports symbol='VIR_WAR_NO_INTERFACE' type='enum'/>
+     <exports symbol='VIR_ERR_DOM_EXIST' type='enum'/>
+     <exports symbol='VIR_FROM_LXC' type='enum'/>
+     <exports symbol='VIR_ERR_NO_STORAGE_POOL' type='enum'/>
+     <exports symbol='VIR_ERR_NO_KERNEL' type='enum'/>
+     <exports symbol='VIR_ERR_NO_INTERFACE' type='enum'/>
+     <exports symbol='VIR_ERR_XML_DETAIL' type='enum'/>
+     <exports symbol='VIR_FROM_NET' type='enum'/>
+     <exports symbol='VIR_ERR_AUTH_FAILED' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_NODE_DEVICE' type='enum'/>
+     <exports symbol='VIR_ERR_SYSTEM_ERROR' type='enum'/>
+     <exports symbol='VIR_FROM_QEMU' type='enum'/>
+     <exports symbol='VIR_ERR_WRITE_FAILED' type='enum'/>
+     <exports symbol='VIR_ERR_INTERNAL_ERROR' type='enum'/>
+     <exports symbol='VIR_FROM_XENXM' type='enum'/>
+     <exports symbol='VIR_ERR_INVALID_STORAGE_VOL' type='enum'/>
      <exports symbol='VIR_ERR_XEN_CALL' type='enum'/>
      <exports symbol='VIR_ERR_UNKNOWN_HOST' type='enum'/>
-     <exports symbol='VIR_ERR_NO_CONNECT' type='enum'/>
-     <exports symbol='VIR_ERR_CALL_FAILED' type='enum'/>
      <exports symbol='virErrorPtr' type='typedef'/>
      <exports symbol='virErrorLevel' type='typedef'/>
      <exports symbol='virErrorDomain' type='typedef'/>
     <enum name='VIR_ERR_INVALID_ARG' file='virterror' value='8' type='virErrorNumber' info='invalid function argument'/>
     <enum name='VIR_ERR_INVALID_CONN' file='virterror' value='6' type='virErrorNumber' info='invalid connection object'/>
     <enum name='VIR_ERR_INVALID_DOMAIN' file='virterror' value='7' type='virErrorNumber' info='invalid domain object'/>
+    <enum name='VIR_ERR_INVALID_INTERFACE' file='virterror' value='58' type='virErrorNumber' info=' invalid interface object'/>
     <enum name='VIR_ERR_INVALID_MAC' file='virterror' value='44' type='virErrorNumber' info='invalid MAC address'/>
     <enum name='VIR_ERR_INVALID_NETWORK' file='virterror' value='36' type='virErrorNumber' info='invalid network object'/>
     <enum name='VIR_ERR_INVALID_NODE_DEVICE' file='virterror' value='52' type='virErrorNumber' info='invalid node device object'/>
     <enum name='VIR_ERR_NO_CONNECT' file='virterror' value='5' type='virErrorNumber' info='can&apos;t connect to hypervisor'/>
     <enum name='VIR_ERR_NO_DEVICE' file='virterror' value='23' type='virErrorNumber' info='missing domain devices information'/>
     <enum name='VIR_ERR_NO_DOMAIN' file='virterror' value='42' type='virErrorNumber' info='domain not found or unexpectedly disappeared'/>
+    <enum name='VIR_ERR_NO_INTERFACE' file='virterror' value='57' type='virErrorNumber' info='interface driver not running'/>
     <enum name='VIR_ERR_NO_KERNEL' file='virterror' value='17' type='virErrorNumber' info='missing kernel information'/>
     <enum name='VIR_ERR_NO_MEMORY' file='virterror' value='2' type='virErrorNumber' info='memory allocation failure'/>
     <enum name='VIR_ERR_NO_NAME' file='virterror' value='21' type='virErrorNumber' info='missing domain name information'/>
     <enum name='VIR_ERR_OPEN_FAILED' file='virterror' value='30' type='virErrorNumber' info='failed to open a conf file'/>
     <enum name='VIR_ERR_OPERATION_DENIED' file='virterror' value='29' type='virErrorNumber' info='operation forbidden on read-only connections'/>
     <enum name='VIR_ERR_OPERATION_FAILED' file='virterror' value='9' type='virErrorNumber' info='a command to hypervisor failed'/>
-    <enum name='VIR_ERR_OPERATION_INVALID' file='virterror' value='55' type='virErrorNumber' info=' operation is not applicable at this time'/>
+    <enum name='VIR_ERR_OPERATION_INVALID' file='virterror' value='55' type='virErrorNumber' info='operation is not applicable at this time'/>
     <enum name='VIR_ERR_OS_TYPE' file='virterror' value='16' type='virErrorNumber' info='unknown OS type'/>
     <enum name='VIR_ERR_PARSE_FAILED' file='virterror' value='32' type='virErrorNumber' info='failed to parse a conf file'/>
     <enum name='VIR_ERR_POST_FAILED' file='virterror' value='11' type='virErrorNumber' info='a HTTP POST command to failed'/>
     <enum name='VIR_FROM_CONF' file='virterror' value='9' type='virErrorDomain' info='Error in the configuration file handling'/>
     <enum name='VIR_FROM_DOM' file='virterror' value='6' type='virErrorDomain' info='Error when operating on a domain'/>
     <enum name='VIR_FROM_DOMAIN' file='virterror' value='20' type='virErrorDomain' info='Error from domain config'/>
+    <enum name='VIR_FROM_INTERFACE' file='virterror' value='26' type='virErrorDomain' info=' Error when operating on an interface'/>
     <enum name='VIR_FROM_LXC' file='virterror' value='17' type='virErrorDomain' info='Error from Linux Container driver'/>
     <enum name='VIR_FROM_NET' file='virterror' value='11' type='virErrorDomain' info='Error when operating on a network'/>
     <enum name='VIR_FROM_NETWORK' file='virterror' value='19' type='virErrorDomain' info='Error from network config'/>
     <enum name='VIR_FROM_STORAGE' file='virterror' value='18' type='virErrorDomain' info='Error from storage driver'/>
     <enum name='VIR_FROM_TEST' file='virterror' value='12' type='virErrorDomain' info='Error from test driver'/>
     <enum name='VIR_FROM_UML' file='virterror' value='21' type='virErrorDomain' info='Error at the UML driver'/>
-    <enum name='VIR_FROM_VBOX' file='virterror' value='25' type='virErrorDomain' info=' Error from VirtualBox driver'/>
+    <enum name='VIR_FROM_VBOX' file='virterror' value='25' type='virErrorDomain' info='Error from VirtualBox driver'/>
     <enum name='VIR_FROM_XEN' file='virterror' value='1' type='virErrorDomain' info='Error at Xen hypervisor layer'/>
     <enum name='VIR_FROM_XEND' file='virterror' value='2' type='virErrorDomain' info='Error at connection with xend daemon'/>
     <enum name='VIR_FROM_XENSTORE' file='virterror' value='3' type='virErrorDomain' info='Error at connection with xen store'/>
     <enum name='VIR_VCPU_BLOCKED' file='libvirt' value='2' type='virVcpuState' info=' the virtual CPU is blocked on resource'/>
     <enum name='VIR_VCPU_OFFLINE' file='libvirt' value='0' type='virVcpuState' info='the virtual CPU is offline'/>
     <enum name='VIR_VCPU_RUNNING' file='libvirt' value='1' type='virVcpuState' info='the virtual CPU is running'/>
+    <enum name='VIR_WAR_NO_INTERFACE' file='virterror' value='56' type='virErrorNumber' info='failed to start interface driver'/>
     <enum name='VIR_WAR_NO_NETWORK' file='virterror' value='41' type='virErrorNumber' info='failed to start network'/>
     <enum name='VIR_WAR_NO_NODE' file='virterror' value='51' type='virErrorNumber' info='failed to start node driver'/>
     <enum name='VIR_WAR_NO_STORAGE' file='virterror' value='48' type='virErrorNumber' info='failed to start storage'/>
@@ -741,6 +767,10 @@ see note above'/>
     <typedef name='virErrorNumber' file='virterror' type='enum'/>
     <typedef name='virErrorPtr' file='virterror' type='virError *'/>
     <typedef name='virEventHandleType' file='libvirt' type='enum'/>
+    <struct name='virInterface' file='libvirt' type='struct _virInterface'/>
+    <typedef name='virInterfacePtr' file='libvirt' type='virInterface *'>
+      <info>a virInterfacePtr is pointer to a virInterface private structure, this is the type used to reference a virtual interface in the API.</info>
+    </typedef>
     <struct name='virNetwork' file='libvirt' type='struct _virNetwork'/>
     <typedef name='virNetworkPtr' file='libvirt' type='virNetwork *'>
       <info>a virNetworkPtr is pointer to a virNetwork private structure, this is the type used to reference a virtual network in the API.</info>
@@ -871,6 +901,22 @@ see note above'/>
       <arg name='opaque' type='void *' info='opaque data to pass on to the callback'/>
       <arg name='freecb' type='virFreeCallback' info='optional function to deallocate opaque when not used anymore'/>
     </function>
+    <function name='virConnectDomainXMLFromNative' file='libvirt' module='libvirt'>
+      <info>Reads native configuration data  describing a domain, and generates libvirt domain XML. The format of the native data is hypervisor dependant.</info>
+      <return type='char *' info='a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.'/>
+      <arg name='conn' type='virConnectPtr' info='a connection object'/>
+      <arg name='nativeFormat' type='const char *' info='configuration format importing from'/>
+      <arg name='nativeConfig' type='const char *' info='the configuration data to import'/>
+      <arg name='flags' type='unsigned int' info='currently unused, pass 0'/>
+    </function>
+    <function name='virConnectDomainXMLToNative' file='libvirt' module='libvirt'>
+      <info>Reads a domain XML configuration document, and generates generates a native configuration file describing the domain. The format of the native data is hypervisor dependant.</info>
+      <return type='char *' info='a 0 terminated UTF-8 encoded native config datafile, or NULL in case of error. the caller must free() the returned value.'/>
+      <arg name='conn' type='virConnectPtr' info='a connection object'/>
+      <arg name='nativeFormat' type='const char *' info='configuration format exporting to'/>
+      <arg name='domainXml' type='const char *' info='the domain configuration to export'/>
+      <arg name='flags' type='unsigned int' info='currently unused, pass 0'/>
+    </function>
     <function name='virConnectFindStoragePoolSources' file='libvirt' module='libvirt'>
       <info>Talks to a storage backend and attempts to auto-discover the set of available storage pool sources. e.g. For iSCSI this would be a set of iSCSI targets. For NFS this would be a list of exported paths.  The srcSpec (optional for some storage pool types, e.g. local ones) is an instance of the storage pool&apos;s source element specifying where to look for the pools.  srcSpec is not required for some types (e.g., those querying local storage resources only)</info>
       <return type='char *' info='an xml document consisting of a SourceList element containing a source document appropriate to the given pool type for each discovered source.'/>
@@ -939,6 +985,13 @@ see note above'/>
       <arg name='ids' type='int *' info='array to collect the list of IDs of active domains'/>
       <arg name='maxids' type='int' info='size of @ids'/>
     </function>
+    <function name='virConnectListInterfaces' file='libvirt' module='libvirt'>
+      <info>Collect the list of physical host interfaces, and store their names in @names</info>
+      <return type='int' info='the number of interfaces found or -1 in case of error'/>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <arg name='names' type='char ** const' info='array to collect the list of names of interfaces'/>
+      <arg name='maxnames' type='int' info='size of @names'/>
+    </function>
     <function name='virConnectListNetworks' file='libvirt' module='libvirt'>
       <info>Collect the list of active networks, and store their names in @names</info>
       <return type='int' info='the number of networks found or -1 in case of error'/>
@@ -973,6 +1026,11 @@ see note above'/>
       <return type='int' info='the number of domain found or -1 in case of error'/>
       <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
     </function>
+    <function name='virConnectNumOfInterfaces' file='libvirt' module='libvirt'>
+      <info>Provides the number of interfaces on the physical host.</info>
+      <return type='int' info='the number of interface found or -1 in case of error'/>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+    </function>
     <function name='virConnectNumOfNetworks' file='libvirt' module='libvirt'>
       <info>Provides the number of active networks.</info>
       <return type='int' info='the number of network found or -1 in case of error'/>
@@ -1402,6 +1460,73 @@ see note above'/>
       <info>Initialize the library. It&apos;s better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</info>
       <return type='int' info='0 in case of success, -1 in case of error'/>
     </function>
+    <function name='virInterfaceCreate' file='libvirt' module='libvirt'>
+      <info>Activate an interface (ie call &quot;ifup&quot;)</info>
+      <return type='int' info='0 in case of success, -1 in case of error'/>
+      <arg name='interface' type='virInterfacePtr' info='pointer to a defined interface'/>
+      <arg name='flags' type='unsigned int' info='and OR&apos;ed set of extraction flags, not used yet'/>
+    </function>
+    <function name='virInterfaceDefineXML' file='libvirt' module='libvirt'>
+      <info>Define an interface (or modify existing interface configuration)</info>
+      <return type='virInterfacePtr' info='NULL in case of error, a pointer to the interface otherwise'/>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <arg name='xml' type='const char *' info='the XML description for the interface, preferably in UTF-8'/>
+      <arg name='flags' type='unsigned int' info='and OR&apos;ed set of extraction flags, not used yet'/>
+    </function>
+    <function name='virInterfaceDestroy' file='libvirt' module='libvirt'>
+      <info>deactivate an interface (ie call &quot;ifdown&quot;) This does not remove the interface from the config, and does not free the associated virInterfacePtr object.</info>
+      <return type='int' info='0 in case of success and -1 in case of failure.'/>
+      <arg name='interface' type='virInterfacePtr' info='an interface object'/>
+      <arg name='flags' type='unsigned int' info='and OR&apos;ed set of extraction flags, not used yet'/>
+    </function>
+    <function name='virInterfaceFree' file='libvirt' module='libvirt'>
+      <info>Free the interface object. The interface itself is unaltered. The data structure is freed and should not be used thereafter.</info>
+      <return type='int' info='0 in case of success and -1 in case of failure.'/>
+      <arg name='interface' type='virInterfacePtr' info='a interface object'/>
+    </function>
+    <function name='virInterfaceGetConnect' file='libvirt' module='libvirt'>
+      <info>Provides the connection pointer associated with an interface.  The reference counter on the connection is not increased by this call.  WARNING: When writing libvirt bindings in other languages, do not use this function.  Instead, store the connection and the interface object together.</info>
+      <return type='virConnectPtr' info='the virConnectPtr or NULL in case of failure.'/>
+      <arg name='interface' type='virInterfacePtr' info=''/>
+    </function>
+    <function name='virInterfaceGetMACString' file='libvirt' module='libvirt'>
+      <info>Get the MAC for a interface as string. For more information about MAC see RFC4122.</info>
+      <return type='const char *' info='a pointer to the MAC address (in null-terminated ASCII format) or NULL, the string need not be deallocated its lifetime will be the same as the interface object.'/>
+      <arg name='interface' type='virInterfacePtr' info='a interface object'/>
+    </function>
+    <function name='virInterfaceGetName' file='libvirt' module='libvirt'>
+      <info>Get the public name for that interface</info>
+      <return type='const char *' info='a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the interface object.'/>
+      <arg name='interface' type='virInterfacePtr' info='a interface object'/>
+    </function>
+    <function name='virInterfaceGetXMLDesc' file='libvirt' module='libvirt'>
+      <info>Provide an XML description of the interface. The description may be reused later to recreate the interface with virInterfaceCreateXML().</info>
+      <return type='char *' info='a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.'/>
+      <arg name='interface' type='virInterfacePtr' info='a interface object'/>
+      <arg name='flags' type='unsigned int' info='and OR&apos;ed set of extraction flags, not used yet'/>
+    </function>
+    <function name='virInterfaceLookupByMACString' file='libvirt' module='libvirt'>
+      <info>Try to lookup an interface on the given hypervisor based on its MAC.</info>
+      <return type='virInterfacePtr' info='a new interface object or NULL in case of failure.  If the interface cannot be found, then VIR_ERR_NO_INTERFACE error is raised.'/>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <arg name='macstr' type='const char *' info='the MAC for the interface (null-terminated ASCII format)'/>
+    </function>
+    <function name='virInterfaceLookupByName' file='libvirt' module='libvirt'>
+      <info>Try to lookup an interface on the given hypervisor based on its name.</info>
+      <return type='virInterfacePtr' info='a new interface object or NULL in case of failure.  If the interface cannot be found, then VIR_ERR_NO_INTERFACE error is raised.'/>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <arg name='name' type='const char *' info='name for the interface'/>
+    </function>
+    <function name='virInterfaceRef' file='libvirt' module='libvirt'>
+      <info>Increment the reference count on the interface. For each additional call to this method, there shall be a corresponding call to virInterfaceFree to release the reference count, once the caller no longer needs the reference to this object.  This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a interface would increment the reference count.</info>
+      <return type='int' info='0 in case of success, -1 in case of failure.'/>
+      <arg name='interface' type='virInterfacePtr' info='the interface to hold a reference on'/>
+    </function>
+    <function name='virInterfaceUndefine' file='libvirt' module='libvirt'>
+      <info>Undefine an interface, ie remove it from the config. This does not free the associated virInterfacePtr object.</info>
+      <return type='int' info='0 in case of success, -1 in case of error'/>
+      <arg name='interface' type='virInterfacePtr' info='pointer to a defined interface'/>
+    </function>
     <function name='virNetworkCreate' file='libvirt' module='libvirt'>
       <info>Create and start a defined network. If the call succeed the network moves from the defined to the running networks pools.</info>
       <return type='int' info='0 in case of success, -1 in case of error'/>
index abb9f7aeca8756f25c294e59d87f610d168ccea2..7d1db12b31fb8ef846756d226bee37e3422bdc8e 100644 (file)
@@ -67,6 +67,7 @@
     <reference name='VIR_ERR_INVALID_ARG' href='html/libvirt-virterror.html#VIR_ERR_INVALID_ARG'/>
     <reference name='VIR_ERR_INVALID_CONN' href='html/libvirt-virterror.html#VIR_ERR_INVALID_CONN'/>
     <reference name='VIR_ERR_INVALID_DOMAIN' href='html/libvirt-virterror.html#VIR_ERR_INVALID_DOMAIN'/>
+    <reference name='VIR_ERR_INVALID_INTERFACE' href='html/libvirt-virterror.html#VIR_ERR_INVALID_INTERFACE'/>
     <reference name='VIR_ERR_INVALID_MAC' href='html/libvirt-virterror.html#VIR_ERR_INVALID_MAC'/>
     <reference name='VIR_ERR_INVALID_NETWORK' href='html/libvirt-virterror.html#VIR_ERR_INVALID_NETWORK'/>
     <reference name='VIR_ERR_INVALID_NODE_DEVICE' href='html/libvirt-virterror.html#VIR_ERR_INVALID_NODE_DEVICE'/>
@@ -77,6 +78,7 @@
     <reference name='VIR_ERR_NO_CONNECT' href='html/libvirt-virterror.html#VIR_ERR_NO_CONNECT'/>
     <reference name='VIR_ERR_NO_DEVICE' href='html/libvirt-virterror.html#VIR_ERR_NO_DEVICE'/>
     <reference name='VIR_ERR_NO_DOMAIN' href='html/libvirt-virterror.html#VIR_ERR_NO_DOMAIN'/>
+    <reference name='VIR_ERR_NO_INTERFACE' href='html/libvirt-virterror.html#VIR_ERR_NO_INTERFACE'/>
     <reference name='VIR_ERR_NO_KERNEL' href='html/libvirt-virterror.html#VIR_ERR_NO_KERNEL'/>
     <reference name='VIR_ERR_NO_MEMORY' href='html/libvirt-virterror.html#VIR_ERR_NO_MEMORY'/>
     <reference name='VIR_ERR_NO_NAME' href='html/libvirt-virterror.html#VIR_ERR_NO_NAME'/>
     <reference name='VIR_FROM_CONF' href='html/libvirt-virterror.html#VIR_FROM_CONF'/>
     <reference name='VIR_FROM_DOM' href='html/libvirt-virterror.html#VIR_FROM_DOM'/>
     <reference name='VIR_FROM_DOMAIN' href='html/libvirt-virterror.html#VIR_FROM_DOMAIN'/>
+    <reference name='VIR_FROM_INTERFACE' href='html/libvirt-virterror.html#VIR_FROM_INTERFACE'/>
     <reference name='VIR_FROM_LXC' href='html/libvirt-virterror.html#VIR_FROM_LXC'/>
     <reference name='VIR_FROM_NET' href='html/libvirt-virterror.html#VIR_FROM_NET'/>
     <reference name='VIR_FROM_NETWORK' href='html/libvirt-virterror.html#VIR_FROM_NETWORK'/>
     <reference name='VIR_VCPU_BLOCKED' href='html/libvirt-libvirt.html#VIR_VCPU_BLOCKED'/>
     <reference name='VIR_VCPU_OFFLINE' href='html/libvirt-libvirt.html#VIR_VCPU_OFFLINE'/>
     <reference name='VIR_VCPU_RUNNING' href='html/libvirt-libvirt.html#VIR_VCPU_RUNNING'/>
+    <reference name='VIR_WAR_NO_INTERFACE' href='html/libvirt-virterror.html#VIR_WAR_NO_INTERFACE'/>
     <reference name='VIR_WAR_NO_NETWORK' href='html/libvirt-virterror.html#VIR_WAR_NO_NETWORK'/>
     <reference name='VIR_WAR_NO_NODE' href='html/libvirt-virterror.html#VIR_WAR_NO_NODE'/>
     <reference name='VIR_WAR_NO_STORAGE' href='html/libvirt-virterror.html#VIR_WAR_NO_STORAGE'/>
     <reference name='virConnectDomainEventCallback' href='html/libvirt-libvirt.html#virConnectDomainEventCallback'/>
     <reference name='virConnectDomainEventDeregister' href='html/libvirt-libvirt.html#virConnectDomainEventDeregister'/>
     <reference name='virConnectDomainEventRegister' href='html/libvirt-libvirt.html#virConnectDomainEventRegister'/>
+    <reference name='virConnectDomainXMLFromNative' href='html/libvirt-libvirt.html#virConnectDomainXMLFromNative'/>
+    <reference name='virConnectDomainXMLToNative' href='html/libvirt-libvirt.html#virConnectDomainXMLToNative'/>
     <reference name='virConnectFindStoragePoolSources' href='html/libvirt-libvirt.html#virConnectFindStoragePoolSources'/>
     <reference name='virConnectFlags' href='html/libvirt-libvirt.html#virConnectFlags'/>
     <reference name='virConnectGetCapabilities' href='html/libvirt-libvirt.html#virConnectGetCapabilities'/>
     <reference name='virConnectListDefinedNetworks' href='html/libvirt-libvirt.html#virConnectListDefinedNetworks'/>
     <reference name='virConnectListDefinedStoragePools' href='html/libvirt-libvirt.html#virConnectListDefinedStoragePools'/>
     <reference name='virConnectListDomains' href='html/libvirt-libvirt.html#virConnectListDomains'/>
+    <reference name='virConnectListInterfaces' href='html/libvirt-libvirt.html#virConnectListInterfaces'/>
     <reference name='virConnectListNetworks' href='html/libvirt-libvirt.html#virConnectListNetworks'/>
     <reference name='virConnectListStoragePools' href='html/libvirt-libvirt.html#virConnectListStoragePools'/>
     <reference name='virConnectNumOfDefinedDomains' href='html/libvirt-libvirt.html#virConnectNumOfDefinedDomains'/>
     <reference name='virConnectNumOfDefinedNetworks' href='html/libvirt-libvirt.html#virConnectNumOfDefinedNetworks'/>
     <reference name='virConnectNumOfDefinedStoragePools' href='html/libvirt-libvirt.html#virConnectNumOfDefinedStoragePools'/>
     <reference name='virConnectNumOfDomains' href='html/libvirt-libvirt.html#virConnectNumOfDomains'/>
+    <reference name='virConnectNumOfInterfaces' href='html/libvirt-libvirt.html#virConnectNumOfInterfaces'/>
     <reference name='virConnectNumOfNetworks' href='html/libvirt-libvirt.html#virConnectNumOfNetworks'/>
     <reference name='virConnectNumOfStoragePools' href='html/libvirt-libvirt.html#virConnectNumOfStoragePools'/>
     <reference name='virConnectOpen' href='html/libvirt-libvirt.html#virConnectOpen'/>
     <reference name='virGetLastError' href='html/libvirt-virterror.html#virGetLastError'/>
     <reference name='virGetVersion' href='html/libvirt-libvirt.html#virGetVersion'/>
     <reference name='virInitialize' href='html/libvirt-libvirt.html#virInitialize'/>
+    <reference name='virInterface' href='html/libvirt-libvirt.html#virInterface'/>
+    <reference name='virInterfaceCreate' href='html/libvirt-libvirt.html#virInterfaceCreate'/>
+    <reference name='virInterfaceDefineXML' href='html/libvirt-libvirt.html#virInterfaceDefineXML'/>
+    <reference name='virInterfaceDestroy' href='html/libvirt-libvirt.html#virInterfaceDestroy'/>
+    <reference name='virInterfaceFree' href='html/libvirt-libvirt.html#virInterfaceFree'/>
+    <reference name='virInterfaceGetConnect' href='html/libvirt-libvirt.html#virInterfaceGetConnect'/>
+    <reference name='virInterfaceGetMACString' href='html/libvirt-libvirt.html#virInterfaceGetMACString'/>
+    <reference name='virInterfaceGetName' href='html/libvirt-libvirt.html#virInterfaceGetName'/>
+    <reference name='virInterfaceGetXMLDesc' href='html/libvirt-libvirt.html#virInterfaceGetXMLDesc'/>
+    <reference name='virInterfaceLookupByMACString' href='html/libvirt-libvirt.html#virInterfaceLookupByMACString'/>
+    <reference name='virInterfaceLookupByName' href='html/libvirt-libvirt.html#virInterfaceLookupByName'/>
+    <reference name='virInterfacePtr' href='html/libvirt-libvirt.html#virInterfacePtr'/>
+    <reference name='virInterfaceRef' href='html/libvirt-libvirt.html#virInterfaceRef'/>
+    <reference name='virInterfaceUndefine' href='html/libvirt-libvirt.html#virInterfaceUndefine'/>
     <reference name='virNetwork' href='html/libvirt-libvirt.html#virNetwork'/>
     <reference name='virNetworkCreate' href='html/libvirt-libvirt.html#virNetworkCreate'/>
     <reference name='virNetworkCreateXML' href='html/libvirt-libvirt.html#virNetworkCreateXML'/>
       <ref name='VIR_ERR_INVALID_ARG'/>
       <ref name='VIR_ERR_INVALID_CONN'/>
       <ref name='VIR_ERR_INVALID_DOMAIN'/>
+      <ref name='VIR_ERR_INVALID_INTERFACE'/>
       <ref name='VIR_ERR_INVALID_MAC'/>
       <ref name='VIR_ERR_INVALID_NETWORK'/>
       <ref name='VIR_ERR_INVALID_NODE_DEVICE'/>
       <ref name='VIR_ERR_NO_CONNECT'/>
       <ref name='VIR_ERR_NO_DEVICE'/>
       <ref name='VIR_ERR_NO_DOMAIN'/>
+      <ref name='VIR_ERR_NO_INTERFACE'/>
       <ref name='VIR_ERR_NO_KERNEL'/>
       <ref name='VIR_ERR_NO_MEMORY'/>
       <ref name='VIR_ERR_NO_NAME'/>
       <ref name='VIR_FROM_CONF'/>
       <ref name='VIR_FROM_DOM'/>
       <ref name='VIR_FROM_DOMAIN'/>
+      <ref name='VIR_FROM_INTERFACE'/>
       <ref name='VIR_FROM_LXC'/>
       <ref name='VIR_FROM_NET'/>
       <ref name='VIR_FROM_NETWORK'/>
       <ref name='VIR_VCPU_BLOCKED'/>
       <ref name='VIR_VCPU_OFFLINE'/>
       <ref name='VIR_VCPU_RUNNING'/>
+      <ref name='VIR_WAR_NO_INTERFACE'/>
       <ref name='VIR_WAR_NO_NETWORK'/>
       <ref name='VIR_WAR_NO_NODE'/>
       <ref name='VIR_WAR_NO_STORAGE'/>
       <ref name='virConnectDomainEventCallback'/>
       <ref name='virConnectDomainEventDeregister'/>
       <ref name='virConnectDomainEventRegister'/>
+      <ref name='virConnectDomainXMLFromNative'/>
+      <ref name='virConnectDomainXMLToNative'/>
       <ref name='virConnectFindStoragePoolSources'/>
       <ref name='virConnectFlags'/>
       <ref name='virConnectGetCapabilities'/>
       <ref name='virConnectListDefinedNetworks'/>
       <ref name='virConnectListDefinedStoragePools'/>
       <ref name='virConnectListDomains'/>
+      <ref name='virConnectListInterfaces'/>
       <ref name='virConnectListNetworks'/>
       <ref name='virConnectListStoragePools'/>
       <ref name='virConnectNumOfDefinedDomains'/>
       <ref name='virConnectNumOfDefinedNetworks'/>
       <ref name='virConnectNumOfDefinedStoragePools'/>
       <ref name='virConnectNumOfDomains'/>
+      <ref name='virConnectNumOfInterfaces'/>
       <ref name='virConnectNumOfNetworks'/>
       <ref name='virConnectNumOfStoragePools'/>
       <ref name='virConnectOpen'/>
       <ref name='virGetLastError'/>
       <ref name='virGetVersion'/>
       <ref name='virInitialize'/>
+      <ref name='virInterface'/>
+      <ref name='virInterfaceCreate'/>
+      <ref name='virInterfaceDefineXML'/>
+      <ref name='virInterfaceDestroy'/>
+      <ref name='virInterfaceFree'/>
+      <ref name='virInterfaceGetConnect'/>
+      <ref name='virInterfaceGetMACString'/>
+      <ref name='virInterfaceGetName'/>
+      <ref name='virInterfaceGetXMLDesc'/>
+      <ref name='virInterfaceLookupByMACString'/>
+      <ref name='virInterfaceLookupByName'/>
+      <ref name='virInterfacePtr'/>
+      <ref name='virInterfaceRef'/>
+      <ref name='virInterfaceUndefine'/>
       <ref name='virNetwork'/>
       <ref name='virNetworkCreate'/>
       <ref name='virNetworkCreateXML'/>
       <ref name='virConnectOpenAuth'/>
       <ref name='virConnectOpenReadOnly'/>
       <ref name='virDomainGetConnect'/>
+      <ref name='virInterfaceGetConnect'/>
       <ref name='virNetworkGetConnect'/>
       <ref name='virStoragePoolGetConnect'/>
       <ref name='virStorageVolGetConnect'/>
       <ref name='virGetLastError'/>
       <ref name='virSaveLastError'/>
     </type>
+    <type name='virInterfacePtr'>
+      <ref name='virInterfaceDefineXML'/>
+      <ref name='virInterfaceLookupByMACString'/>
+      <ref name='virInterfaceLookupByName'/>
+    </type>
     <type name='virNetworkPtr'>
       <ref name='virNetworkCreateXML'/>
       <ref name='virNetworkDefineXML'/>
       <ref name='virConnectListDefinedDomains'/>
       <ref name='virConnectListDefinedNetworks'/>
       <ref name='virConnectListDefinedStoragePools'/>
+      <ref name='virConnectListInterfaces'/>
       <ref name='virConnectListNetworks'/>
       <ref name='virConnectListStoragePools'/>
       <ref name='virNodeDeviceListCaps'/>
     </type>
     <type name='unsigned int'>
       <ref name='virConnectAuthCallbackPtr'/>
+      <ref name='virConnectDomainXMLFromNative'/>
+      <ref name='virConnectDomainXMLToNative'/>
       <ref name='virConnectFindStoragePoolSources'/>
       <ref name='virDomainBlockPeek'/>
       <ref name='virDomainCreateLinux'/>
       <ref name='virDomainPinVcpu'/>
       <ref name='virDomainReboot'/>
       <ref name='virDomainSetVcpus'/>
+      <ref name='virInterfaceCreate'/>
+      <ref name='virInterfaceDefineXML'/>
+      <ref name='virInterfaceDestroy'/>
+      <ref name='virInterfaceGetXMLDesc'/>
       <ref name='virNodeDeviceCreateXML'/>
       <ref name='virNodeDeviceGetXMLDesc'/>
       <ref name='virNodeListDevices'/>
       <ref name='virConnectDomainEventCallback'/>
       <ref name='virConnectDomainEventDeregister'/>
       <ref name='virConnectDomainEventRegister'/>
+      <ref name='virConnectDomainXMLFromNative'/>
+      <ref name='virConnectDomainXMLToNative'/>
       <ref name='virConnectFindStoragePoolSources'/>
       <ref name='virConnectGetCapabilities'/>
       <ref name='virConnectGetHostname'/>
       <ref name='virConnectListDefinedNetworks'/>
       <ref name='virConnectListDefinedStoragePools'/>
       <ref name='virConnectListDomains'/>
+      <ref name='virConnectListInterfaces'/>
       <ref name='virConnectListNetworks'/>
       <ref name='virConnectListStoragePools'/>
       <ref name='virConnectNumOfDefinedDomains'/>
       <ref name='virConnectNumOfDefinedNetworks'/>
       <ref name='virConnectNumOfDefinedStoragePools'/>
       <ref name='virConnectNumOfDomains'/>
+      <ref name='virConnectNumOfInterfaces'/>
       <ref name='virConnectNumOfNetworks'/>
       <ref name='virConnectNumOfStoragePools'/>
       <ref name='virConnectRef'/>
       <ref name='virDomainLookupByUUIDString'/>
       <ref name='virDomainMigrate'/>
       <ref name='virDomainRestore'/>
+      <ref name='virInterfaceDefineXML'/>
+      <ref name='virInterfaceLookupByMACString'/>
+      <ref name='virInterfaceLookupByName'/>
       <ref name='virNetworkCreateXML'/>
       <ref name='virNetworkDefineXML'/>
       <ref name='virNetworkLookupByName'/>
       <ref name='virEventAddHandleFunc'/>
       <ref name='virEventAddTimeoutFunc'/>
     </type>
+    <type name='virInterfacePtr'>
+      <ref name='virInterfaceCreate'/>
+      <ref name='virInterfaceDestroy'/>
+      <ref name='virInterfaceFree'/>
+      <ref name='virInterfaceGetConnect'/>
+      <ref name='virInterfaceGetMACString'/>
+      <ref name='virInterfaceGetName'/>
+      <ref name='virInterfaceGetXMLDesc'/>
+      <ref name='virInterfaceRef'/>
+      <ref name='virInterfaceUndefine'/>
+    </type>
     <type name='virNetworkPtr'>
       <ref name='virNetworkCreate'/>
       <ref name='virNetworkDestroy'/>
       <ref name='virConnectDomainEventCallback'/>
       <ref name='virConnectDomainEventDeregister'/>
       <ref name='virConnectDomainEventRegister'/>
+      <ref name='virConnectDomainXMLFromNative'/>
+      <ref name='virConnectDomainXMLToNative'/>
       <ref name='virConnectFindStoragePoolSources'/>
       <ref name='virConnectFlags'/>
       <ref name='virConnectGetCapabilities'/>
       <ref name='virConnectListDefinedNetworks'/>
       <ref name='virConnectListDefinedStoragePools'/>
       <ref name='virConnectListDomains'/>
+      <ref name='virConnectListInterfaces'/>
       <ref name='virConnectListNetworks'/>
       <ref name='virConnectListStoragePools'/>
       <ref name='virConnectNumOfDefinedDomains'/>
       <ref name='virConnectNumOfDefinedNetworks'/>
       <ref name='virConnectNumOfDefinedStoragePools'/>
       <ref name='virConnectNumOfDomains'/>
+      <ref name='virConnectNumOfInterfaces'/>
       <ref name='virConnectNumOfNetworks'/>
       <ref name='virConnectNumOfStoragePools'/>
       <ref name='virConnectOpen'/>
       <ref name='virFreeCallback'/>
       <ref name='virGetVersion'/>
       <ref name='virInitialize'/>
+      <ref name='virInterface'/>
+      <ref name='virInterfaceCreate'/>
+      <ref name='virInterfaceDefineXML'/>
+      <ref name='virInterfaceDestroy'/>
+      <ref name='virInterfaceFree'/>
+      <ref name='virInterfaceGetConnect'/>
+      <ref name='virInterfaceGetMACString'/>
+      <ref name='virInterfaceGetName'/>
+      <ref name='virInterfaceGetXMLDesc'/>
+      <ref name='virInterfaceLookupByMACString'/>
+      <ref name='virInterfaceLookupByName'/>
+      <ref name='virInterfacePtr'/>
+      <ref name='virInterfaceRef'/>
+      <ref name='virInterfaceUndefine'/>
       <ref name='virNetwork'/>
       <ref name='virNetworkCreate'/>
       <ref name='virNetworkCreateXML'/>
       <ref name='VIR_ERR_INVALID_ARG'/>
       <ref name='VIR_ERR_INVALID_CONN'/>
       <ref name='VIR_ERR_INVALID_DOMAIN'/>
+      <ref name='VIR_ERR_INVALID_INTERFACE'/>
       <ref name='VIR_ERR_INVALID_MAC'/>
       <ref name='VIR_ERR_INVALID_NETWORK'/>
       <ref name='VIR_ERR_INVALID_NODE_DEVICE'/>
       <ref name='VIR_ERR_NO_CONNECT'/>
       <ref name='VIR_ERR_NO_DEVICE'/>
       <ref name='VIR_ERR_NO_DOMAIN'/>
+      <ref name='VIR_ERR_NO_INTERFACE'/>
       <ref name='VIR_ERR_NO_KERNEL'/>
       <ref name='VIR_ERR_NO_MEMORY'/>
       <ref name='VIR_ERR_NO_NAME'/>
       <ref name='VIR_FROM_CONF'/>
       <ref name='VIR_FROM_DOM'/>
       <ref name='VIR_FROM_DOMAIN'/>
+      <ref name='VIR_FROM_INTERFACE'/>
       <ref name='VIR_FROM_LXC'/>
       <ref name='VIR_FROM_NET'/>
       <ref name='VIR_FROM_NETWORK'/>
       <ref name='VIR_FROM_XENXM'/>
       <ref name='VIR_FROM_XEN_INOTIFY'/>
       <ref name='VIR_FROM_XML'/>
+      <ref name='VIR_WAR_NO_INTERFACE'/>
       <ref name='VIR_WAR_NO_NETWORK'/>
       <ref name='VIR_WAR_NO_NODE'/>
       <ref name='VIR_WAR_NO_STORAGE'/>
           <ref name='virConnectOpenReadOnly'/>
           <ref name='virNodeGetFreeMemory'/>
         </word>
+        <word name='ASCII'>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+        </word>
         <word name='Accessor'>
           <ref name='virNodeDeviceGetParent'/>
           <ref name='virNodeDeviceNumOfCaps'/>
         </word>
+        <word name='Activate'>
+          <ref name='virInterfaceCreate'/>
+        </word>
         <word name='Additional'>
           <ref name='_virConnectCredential'/>
         </word>
         </word>
         <word name='Collect'>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virNodeListDevices'/>
         </word>
         </word>
         <word name='Define'>
           <ref name='virDomainDefineXML'/>
+          <ref name='virInterfaceDefineXML'/>
           <ref name='virNetworkDefineXML'/>
           <ref name='virStoragePoolDefineXML'/>
         </word>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkGetUUIDString'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
         </word>
         <word name='Free'>
           <ref name='virDomainFree'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
           <ref name='virStoragePoolFree'/>
         </word>
           <ref name='virDomainGetSchedulerType'/>
           <ref name='virDomainGetUUID'/>
           <ref name='virDomainGetUUIDString'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
           <ref name='virNetworkGetUUID'/>
           <ref name='virNetworkGetUUIDString'/>
         <word name='Increment'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
         <word name='Instead'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
       </letter>
+    </chunk>
+    <chunk name='chunk1'>
       <letter name='J'>
         <word name='Just'>
           <ref name='virNodeDeviceGetName'/>
           <ref name='virNodeDeviceLookupByName'/>
         </word>
       </letter>
-    </chunk>
-    <chunk name='chunk1'>
       <letter name='M'>
+        <word name='MAC'>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+        </word>
         <word name='Macro'>
           <ref name='LIBVIR_VERSION_NUMBER'/>
           <ref name='VIR_DOMAIN_SCHED_FIELD_LENGTH'/>
           <ref name='virConnGetLastError'/>
           <ref name='virDomainGetXMLDesc'/>
           <ref name='virGetLastError'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         <word name='Provides'>
           <ref name='virConnectNumOfDefinedNetworks'/>
           <ref name='virConnectNumOfDefinedStoragePools'/>
           <ref name='virConnectNumOfDomains'/>
+          <ref name='virConnectNumOfInterfaces'/>
           <ref name='virConnectNumOfNetworks'/>
           <ref name='virConnectNumOfStoragePools'/>
           <ref name='virDomainGetAutostart'/>
           <ref name='virDomainGetConnect'/>
           <ref name='virDomainGetMaxVcpus'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetAutostart'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetConnect'/>
       <letter name='R'>
         <word name='RFC4122'>
           <ref name='virDomainGetUUIDString'/>
+          <ref name='virInterfaceGetMACString'/>
           <ref name='virNetworkGetUUIDString'/>
         </word>
         <word name='Re-attach'>
         <word name='Read-Only'>
           <ref name='virConnectGetVersion'/>
         </word>
+        <word name='Reads'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='Reboot'>
           <ref name='virDomainReboot'/>
         </word>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
           <ref name='VIR_USE_CPU'/>
         </word>
         <word name='UTF-8'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkDefineXML'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         </word>
         <word name='Undefine'>
           <ref name='virDomainUndefine'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkUndefine'/>
           <ref name='virStoragePoolUndefine'/>
         </word>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
         </word>
+        <word name='VIR_ERR_NO_INTERFACE'>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
+        </word>
         <word name='VIR_ERR_NO_NETWORK'>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
       <letter name='W'>
         <word name='WARNING:'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
         <word name='When'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
       </letter>
+    </chunk>
+    <chunk name='chunk2'>
       <letter name='X'>
         <word name='Xen'>
           <ref name='_virDomainBlockStats'/>
           <ref name='virDomainGetInfo'/>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainGetVcpus'/>
+          <ref name='virInterfaceGetMACString'/>
           <ref name='virNetworkGetUUIDString'/>
           <ref name='virNodeGetInfo'/>
           <ref name='virStoragePoolGetInfo'/>
         <word name='additional'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virNodeGetCellsFreeMemory'/>
         </word>
         <word name='address'>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetMACString'/>
         </word>
         <word name='addresses'>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainDestroy'/>
           <ref name='virDomainGetVcpus'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceGetXMLDesc'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
           <ref name='virInitialize'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainPinVcpu'/>
           <ref name='virDomainRef'/>
           <ref name='virEventAddHandleFunc'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
         <word name='associated'>
           <ref name='virDomainDestroy'/>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetConnect'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolDestroy'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk2'>
+    <chunk name='chunk3'>
       <letter name='b'>
         <word name='back'>
           <ref name='virConnSetErrorFunc'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkCreateXML'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
         </word>
         <word name='bindings'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
         <word name='caller'>
           <ref name='cpumap'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetHostname'/>
           <ref name='virConnectGetURI'/>
           <ref name='virConnectListDefinedStoragePools'/>
           <ref name='virDomainGetSecurityLabel'/>
           <ref name='virDomainGetXMLDesc'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceGetXMLDesc'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virNetworkRef'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
         <word name='collect'>
           <ref name='_virConnectAuth'/>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virNodeDeviceListCaps'/>
           <ref name='virNodeListDevices'/>
           <ref name='virResetLastError'/>
         </word>
         <word name='config'>
+          <ref name='virConnectDomainXMLToNative'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virStoragePoolDestroy'/>
         </word>
         <word name='configuration'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
+          <ref name='virInterfaceDefineXML'/>
           <ref name='virStorageVolGetPath'/>
         </word>
         <word name='configured'>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainPinVcpu'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         <word name='count'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virNodeListDevices'/>
         </word>
         <word name='counter'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
           <ref name='virStorageVolGetInfo'/>
         </word>
         <word name='currently'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainCoreDump'/>
           <ref name='virNodeDeviceDettach'/>
           <ref name='virNodeDeviceReAttach'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk3'>
+    <chunk name='chunk4'>
       <letter name='d'>
         <word name='data'>
           <ref name='virConnSetErrorFunc'/>
           <ref name='virConnectDomainEventCallback'/>
           <ref name='virConnectDomainEventRegister'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainFree'/>
           <ref name='virErrorFunc'/>
           <ref name='virEventAddHandleFunc'/>
           <ref name='virEventRemoveHandleFunc'/>
           <ref name='virEventRemoveTimeoutFunc'/>
           <ref name='virEventTimeoutCallback'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
           <ref name='virSetErrorFunc'/>
         </word>
+        <word name='datafile'>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='dconn'>
           <ref name='virDomainMigrate'/>
         </word>
         <word name='deactivate'>
+          <ref name='virInterfaceDestroy'/>
           <ref name='virStoragePoolDestroy'/>
         </word>
         <word name='deallocate'>
         </word>
         <word name='deallocated'>
           <ref name='virDomainGetName'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
         </word>
         <word name='decides'>
           <ref name='virConnectNumOfDefinedDomains'/>
           <ref name='virDomainCreate'/>
           <ref name='virDomainUndefine'/>
+          <ref name='virInterfaceCreate'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkCreate'/>
           <ref name='virNetworkUndefine'/>
         </word>
           <ref name='virConnectDomainEventDeregister'/>
           <ref name='virConnectDomainEventRegister'/>
         </word>
+        <word name='dependant'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='depends'>
           <ref name='virNodeDeviceReset'/>
         </word>
           <ref name='virDomainGetVcpus'/>
         </word>
         <word name='describing'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virNodeDeviceGetXMLDesc'/>
           <ref name='virStoragePoolGetXMLDesc'/>
           <ref name='virStorageVolGetXMLDesc'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainDetachDevice'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkCreateXML'/>
           <ref name='virNetworkDefineXML'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virDomainShutdown'/>
         </word>
         <word name='document'>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virNodeDeviceGetXMLDesc'/>
           <ref name='virStoragePoolGetXMLDesc'/>
           <ref name='virDomainInterfaceStats'/>
           <ref name='virDomainSetVcpus'/>
           <ref name='virDomainUndefine'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkDefineXML'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkUndefine'/>
           <ref name='virDomainPinVcpu'/>
           <ref name='virDomainRef'/>
           <ref name='virEventHandleCallback'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virNodeGetCellsFreeMemory'/>
           <ref name='virConnectDomainEventRegister'/>
         </word>
         <word name='encoded'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         <word name='ensures'>
         </word>
         <word name='existing'>
           <ref name='virDomainCreateLinux'/>
+          <ref name='virInterfaceDefineXML'/>
         </word>
         <word name='exists'>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virStoragePoolDefineXML'/>
         </word>
+        <word name='export'>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='exported'>
           <ref name='virConnectFindStoragePoolSources'/>
         </word>
+        <word name='exporting'>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='extra'>
           <ref name='_virError'/>
           <ref name='virDomainCoreDump'/>
           <ref name='virDomainGetInfo'/>
         </word>
         <word name='extraction'>
+          <ref name='virInterfaceCreate'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk4'>
+    <chunk name='chunk5'>
       <letter name='f'>
         <word name='fact'>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainInterfaceStats'/>
         </word>
         <word name='file'>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainCoreDump'/>
           <ref name='virDomainSave'/>
         <word name='finished'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainMigrate'/>
           <ref name='virDomainReboot'/>
+          <ref name='virInterfaceCreate'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virNodeDeviceGetXMLDesc'/>
           <ref name='virNodeListDevices'/>
           <ref name='virDomainMigrate'/>
         </word>
         <word name='format'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virDomainGetVcpus'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceLookupByMACString'/>
           <ref name='virStoragePoolGetXMLDesc'/>
         </word>
         <word name='found'>
           <ref name='virConnCopyLastError'/>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virConnectNumOfDefinedDomains'/>
           <ref name='virConnectNumOfDefinedNetworks'/>
           <ref name='virConnectNumOfDefinedStoragePools'/>
           <ref name='virConnectNumOfDomains'/>
+          <ref name='virConnectNumOfInterfaces'/>
           <ref name='virConnectNumOfNetworks'/>
           <ref name='virConnectNumOfStoragePools'/>
           <ref name='virCopyLastError'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
         <word name='free'>
           <ref name='_virStoragePoolInfo'/>
           <ref name='virConnCopyLastError'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetCapabilities'/>
           <ref name='virCopyLastError'/>
           <ref name='virDomainDestroy'/>
           <ref name='virEventAddHandleFunc'/>
           <ref name='virEventAddTimeoutFunc'/>
           <ref name='virFreeError'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetXMLDesc'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virConnectGetURI'/>
           <ref name='virDomainFree'/>
           <ref name='virDomainGetOSType'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
         </word>
         <word name='freeing'>
           <ref name='_virVcpuInfo'/>
           <ref name='virConnCopyLastError'/>
           <ref name='virConnGetLastError'/>
+          <ref name='virConnectDomainXMLFromNative'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainCreate'/>
           <ref name='virDomainGetVcpus'/>
           <ref name='virDomainPinVcpu'/>
           <ref name='virDomainResume'/>
           <ref name='virEventHandleCallback'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceUndefine'/>
           <ref name='virNetworkCreate'/>
           <ref name='virNodeDeviceDestroy'/>
           <ref name='virNodeDeviceDettach'/>
         <word name='general'>
           <ref name='virDomainShutdown'/>
         </word>
+        <word name='generates'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='generation'>
           <ref name='virNodeDeviceGetXMLDesc'/>
           <ref name='virStorageVolGetXMLDesc'/>
           <ref name='virDomainLookupByUUIDString'/>
           <ref name='virDomainMigrate'/>
           <ref name='virFreeError'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk5'>
+    <chunk name='chunk6'>
       <letter name='h'>
         <word name='handle'>
           <ref name='virConnectDomainEventRegister'/>
           <ref name='virDomainLookupByID'/>
           <ref name='virDomainRef'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         <word name='hold'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
         <word name='host'>
           <ref name='VIR_NODEINFO_MAXCPUS'/>
+          <ref name='virConnectListInterfaces'/>
+          <ref name='virConnectNumOfInterfaces'/>
           <ref name='virDomainCoreDump'/>
           <ref name='virDomainCreateXML'/>
           <ref name='virDomainGetAutostart'/>
           <ref name='cpumap'/>
           <ref name='virDomainGetVcpus'/>
         </word>
+        <word name='ifdown'>
+          <ref name='virInterfaceDestroy'/>
+        </word>
+        <word name='ifup'>
+          <ref name='virInterfaceCreate'/>
+        </word>
         <word name='ignore'>
           <ref name='virDomainReboot'/>
           <ref name='virDomainShutdown'/>
         <word name='image'>
           <ref name='virDomainMemoryPeek'/>
         </word>
+        <word name='import'>
+          <ref name='virConnectDomainXMLFromNative'/>
+        </word>
+        <word name='importing'>
+          <ref name='virConnectDomainXMLFromNative'/>
+        </word>
         <word name='imposed'>
           <ref name='virDomainMigrate'/>
         </word>
         </word>
         <word name='increased'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         <word name='increment'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainGetVcpus'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceGetMACString'/>
           <ref name='virNetworkGetUUIDString'/>
           <ref name='virNodeGetCellsFreeMemory'/>
           <ref name='virNodeGetInfo'/>
         </word>
         <word name='instance'>
           <ref name='nodeinfo'/>
+          <ref name='virConnectDomainXMLFromNative'/>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virDomainDestroy'/>
           <ref name='virDomainFree'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkDestroy'/>
           <ref name='virNetworkFree'/>
           <ref name='virNetworkGetXMLDesc'/>
         <word name='interaction'>
           <ref name='virConnectClose'/>
         </word>
-        <word name='interface'>
-          <ref name='virDomainInterfaceStats'/>
-          <ref name='virNetworkGetBridgeName'/>
-        </word>
         <word name='interfaces'>
+          <ref name='virConnectListInterfaces'/>
+          <ref name='virConnectNumOfInterfaces'/>
           <ref name='virDomainInterfaceStats'/>
         </word>
         <word name='interpreted'>
           <ref name='virDomainLookupByUUIDString'/>
           <ref name='virDomainMigrate'/>
           <ref name='virDomainSave'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkGetName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virStorageVolLookupByPath'/>
         </word>
         <word name='itself'>
+          <ref name='virInterfaceFree'/>
           <ref name='virNodeDeviceDettach'/>
           <ref name='virStoragePoolDelete'/>
         </word>
       </letter>
+    </chunk>
+    <chunk name='chunk7'>
       <letter name='j'>
         <word name='join'>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virDomainShutdown'/>
         </word>
       </letter>
-    </chunk>
-    <chunk name='chunk6'>
       <letter name='l'>
         <word name='label'>
           <ref name='VIR_SECURITY_LABEL_BUFLEN'/>
         </word>
         <word name='languages'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
           <ref name='VIR_COPY_CPUMAP'/>
           <ref name='virConnectGetURI'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virStoragePoolDestroy'/>
           <ref name='virStoragePoolGetXMLDesc'/>
           <ref name='virConnectGetType'/>
         </word>
         <word name='libvirt'>
+          <ref name='virConnectDomainXMLFromNative'/>
           <ref name='virConnectOpen'/>
           <ref name='virConnectOpenAuth'/>
           <ref name='virConnectOpenReadOnly'/>
           <ref name='virDomainGetConnect'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virNodeGetFreeMemory'/>
           <ref name='virStoragePoolGetConnect'/>
         </word>
         <word name='lifetime'>
           <ref name='virDomainGetName'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
         </word>
         <word name='limit'>
           <ref name='virConnectListDefinedNetworks'/>
           <ref name='virConnectListDefinedStoragePools'/>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virConnectListStoragePools'/>
           <ref name='virNodeDeviceListCaps'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
           <ref name='virEventRemoveHandleFunc'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainLookupByName'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
           <ref name='virDomainRef'/>
           <ref name='virDomainRestore'/>
           <ref name='virDomainSave'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceDettach'/>
           <ref name='virNodeDeviceReAttach'/>
         <word name='modify'>
           <ref name='virEventUpdateHandleFunc'/>
           <ref name='virEventUpdateTimeoutFunc'/>
+          <ref name='virInterfaceDefineXML'/>
         </word>
         <word name='moment'>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainInterfaceStats'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetMACString'/>
           <ref name='virNetworkGetUUIDString'/>
           <ref name='virNodeGetCellsFreeMemory'/>
         </word>
           <ref name='virDomainInterfaceStats'/>
           <ref name='virDomainRef'/>
           <ref name='virEventAddHandleFunc'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
         <word name='must'>
           <ref name='cpumap'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetCapabilities'/>
           <ref name='virConnectGetHostname'/>
           <ref name='virConnectGetURI'/>
           <ref name='virDomainGetXMLDesc'/>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virNodeGetCellsFreeMemory'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk7'>
+    <chunk name='chunk8'>
       <letter name='n'>
         <word name='names'>
           <ref name='virConnectListDefinedDomains'/>
           <ref name='virConnectListDefinedNetworks'/>
           <ref name='virConnectListDefinedStoragePools'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virConnectListStoragePools'/>
           <ref name='virNodeDeviceListCaps'/>
           <ref name='_virDomainInfo'/>
           <ref name='_virVcpuInfo'/>
         </word>
+        <word name='native'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
+        </word>
         <word name='necessary'>
           <ref name='VIR_NODEINFO_MAXCPUS'/>
           <ref name='virConnectOpenAuth'/>
           <ref name='virDomainGetName'/>
           <ref name='virDomainLookupByID'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
         </word>
         <word name='needed'>
         <word name='needs'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainGetSchedulerParameters'/>
           <ref name='virDomainSetSchedulerParameters'/>
         </word>
+        <word name='null-terminated'>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceLookupByMACString'/>
+        </word>
       </letter>
       <letter name='o'>
         <word name='objects'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
           <ref name='virEventHandleCallback'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainGetConnect'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virNodeDeviceReset'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainMigrate'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceDefineXML'/>
           <ref name='virNetworkDefineXML'/>
           <ref name='virNodeDeviceLookupByName'/>
         </word>
         <word name='pass'>
           <ref name='virConnSetErrorFunc'/>
           <ref name='virConnectDomainEventRegister'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainCreateLinux'/>
         <word name='physical'>
           <ref name='VIR_CPU_MAPLEN'/>
           <ref name='cpu'/>
+          <ref name='virConnectListInterfaces'/>
+          <ref name='virConnectNumOfInterfaces'/>
           <ref name='virDomainGetMaxMemory'/>
           <ref name='virDomainSetMaxMemory'/>
           <ref name='virDomainSetMemory'/>
         </word>
         <word name='preferably'>
           <ref name='virDomainDefineXML'/>
+          <ref name='virInterfaceDefineXML'/>
           <ref name='virNetworkDefineXML'/>
         </word>
         <word name='previous'>
         </word>
         <word name='public'>
           <ref name='virDomainGetName'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
         </word>
         <word name='purpose'>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk8'>
+    <chunk name='chunk9'>
       <letter name='q'>
         <word name='querying'>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virDomainLookupByUUID'/>
           <ref name='virDomainLookupByUUIDString'/>
           <ref name='virErrorFunc'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
           <ref name='virEventHandleCallback'/>
           <ref name='virEventTimeoutCallback'/>
         </word>
+        <word name='recreate'>
+          <ref name='virInterfaceGetXMLDesc'/>
+        </word>
         <word name='redhat'>
           <ref name='virConnectGetType'/>
         </word>
           <ref name='virEventRemoveHandleFunc'/>
           <ref name='virEventRemoveTimeoutFunc'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         <word name='remain'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
         <word name='remove'>
           <ref name='virEventRemoveTimeoutFunc'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceUndefine'/>
         </word>
         <word name='removed'>
           <ref name='virNodeDeviceDestroy'/>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virNodeGetCellsFreeMemory'/>
         </word>
         <word name='returned'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetCapabilities'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainBlockStats'/>
           <ref name='virDomainPinVcpu'/>
           <ref name='virDomainSetSchedulerParameters'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkCreateXML'/>
           <ref name='virNetworkGetAutostart'/>
           <ref name='virNetworkGetBridgeName'/>
         </word>
         <word name='reused'>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         <word name='routine'>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk9'>
+    <chunk name='chunk10'>
       <letter name='s'>
         <word name='safe'>
           <ref name='virEventRemoveHandleFunc'/>
           <ref name='virDomainMigrate'/>
           <ref name='virDomainSetSchedulerParameters'/>
           <ref name='virEventAddHandleFunc'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
           <ref name='virStorageVolGetKey'/>
         </word>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainMigrate'/>
+          <ref name='virInterfaceGetMACString'/>
           <ref name='virNetworkGetUUIDString'/>
         </word>
         <word name='seen'>
           <ref name='virDomainGetXMLDesc'/>
           <ref name='virDomainMigrate'/>
           <ref name='virDomainPinVcpu'/>
+          <ref name='virInterfaceCreate'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
           <ref name='virStoragePoolGetXMLDesc'/>
         </word>
           <ref name='virConnectDomainEventRegister'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainSetAutostart'/>
           <ref name='virDomainSetSchedulerParameters'/>
           <ref name='virDomainShutdown'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
           <ref name='virNetworkSetAutostart'/>
           <ref name='virNodeDeviceCreateXML'/>
           <ref name='virConnectListDefinedDomains'/>
           <ref name='virConnectListDefinedNetworks'/>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virConnectOpen'/>
           <ref name='virDomainGetConnect'/>
           <ref name='virDomainGetVcpus'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virNodeListDevices'/>
           <ref name='virStoragePoolGetAutostart'/>
           <ref name='virDomainGetSchedulerType'/>
           <ref name='virDomainGetUUIDString'/>
           <ref name='virDomainLookupByUUIDString'/>
+          <ref name='virInterfaceGetMACString'/>
+          <ref name='virInterfaceGetName'/>
           <ref name='virNetworkGetName'/>
           <ref name='virNetworkGetUUIDString'/>
           <ref name='virNetworkLookupByUUIDString'/>
           <ref name='virDomainGetInfo'/>
           <ref name='virDomainGetSecurityLabel'/>
           <ref name='virDomainInterfaceStats'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
           <ref name='virNodeGetInfo'/>
           <ref name='virNodeGetSecurityModel'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk10'>
+    <chunk name='chunk11'>
       <letter name='t'>
         <word name='take'>
           <ref name='virConnectDomainEventRegister'/>
           <ref name='virDomainMigrate'/>
         </word>
         <word name='terminated'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetType'/>
           <ref name='virDomainGetXMLDesc'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         </word>
         <word name='their'>
           <ref name='virConnectListDomains'/>
+          <ref name='virConnectListInterfaces'/>
           <ref name='virConnectListNetworks'/>
           <ref name='virNodeListDevices'/>
           <ref name='virResetLastError'/>
           <ref name='virDomainSetMemory'/>
           <ref name='virEventAddHandleFunc'/>
           <ref name='virEventAddTimeoutFunc'/>
+          <ref name='virInterfaceLookupByMACString'/>
+          <ref name='virInterfaceLookupByName'/>
           <ref name='virNetworkLookupByName'/>
           <ref name='virNetworkLookupByUUID'/>
           <ref name='virNetworkLookupByUUIDString'/>
           <ref name='virDomainRef'/>
           <ref name='virDomainShutdown'/>
           <ref name='virErrorFunc'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virSetErrorFunc'/>
         </word>
         <word name='thereafter'>
           <ref name='virDomainFree'/>
+          <ref name='virInterfaceFree'/>
           <ref name='virNetworkFree'/>
         </word>
         <word name='those'>
           <ref name='virCopyLastError'/>
           <ref name='virDomainRef'/>
           <ref name='virGetLastError'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virResetLastError'/>
           <ref name='virCopyLastError'/>
           <ref name='virDomainRef'/>
           <ref name='virGetLastError'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virResetLastError'/>
         </word>
         <word name='together'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainMigrate'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
       </letter>
       <letter name='u'>
+        <word name='unaltered'>
+          <ref name='virInterfaceFree'/>
+        </word>
         <word name='unbinding'>
           <ref name='virNodeDeviceDettach'/>
           <ref name='virNodeDeviceReAttach'/>
           <ref name='virConnectRef'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolDefineXML'/>
           <ref name='virStorageVolRef'/>
         </word>
         <word name='unused'>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectFindStoragePoolSources'/>
           <ref name='virDomainBlockPeek'/>
           <ref name='virDomainCoreDump'/>
           <ref name='virConnectGetCapabilities'/>
           <ref name='virDomainGetConnect'/>
           <ref name='virErrorFunc'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virNodeDeviceDettach'/>
           <ref name='virNodeDeviceReAttach'/>
           <ref name='virStorageVolDelete'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
-        <word name='used'>
-          <ref name='VIR_COPY_CPUMAP'/>
-          <ref name='VIR_CPU_MAPLEN'/>
-          <ref name='VIR_CPU_USABLE'/>
-          <ref name='VIR_GET_CPUMAP'/>
-          <ref name='VIR_SECURITY_LABEL_BUFLEN'/>
-          <ref name='VIR_UNUSE_CPU'/>
-          <ref name='VIR_USE_CPU'/>
-          <ref name='_virConnectAuth'/>
-          <ref name='_virDomainInfo'/>
-          <ref name='_virVcpuInfo'/>
-          <ref name='virConnectDomainEventRegister'/>
-          <ref name='virConnectGetType'/>
-          <ref name='virConnectGetURI'/>
-          <ref name='virDomainDestroy'/>
-          <ref name='virDomainFree'/>
-          <ref name='virDomainGetInfo'/>
-          <ref name='virDomainMigrate'/>
-          <ref name='virDomainReboot'/>
-          <ref name='virDomainSetVcpus'/>
-          <ref name='virDomainSuspend'/>
-          <ref name='virEventAddHandleFunc'/>
-          <ref name='virNetworkDestroy'/>
-          <ref name='virNetworkFree'/>
-          <ref name='virNetworkGetXMLDesc'/>
-          <ref name='virNodeDeviceReAttach'/>
-        </word>
         <word name='useful'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         <word name='using'>
           <ref name='virConnectRef'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceCreateXML'/>
           <ref name='virNodeDeviceDettach'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk11'>
+    <chunk name='chunk12'>
       <letter name='v'>
         <word name='valid'>
           <ref name='virConnectDomainEventRegister'/>
           <ref name='VIR_CPU_USABLE'/>
           <ref name='VIR_SECURITY_LABEL_BUFLEN'/>
           <ref name='_virVcpuInfo'/>
+          <ref name='virConnectDomainXMLFromNative'/>
+          <ref name='virConnectDomainXMLToNative'/>
           <ref name='virConnectGetMaxVcpus'/>
           <ref name='virConnectGetVersion'/>
           <ref name='virDomainGetAutostart'/>
           <ref name='virEventAddTimeoutFunc'/>
           <ref name='virEventUpdateTimeoutFunc'/>
           <ref name='virGetVersion'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetAutostart'/>
           <ref name='virNetworkGetBridgeName'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         <word name='virConnectPtr'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
           <ref name='virConnCopyLastError'/>
           <ref name='virConnGetLastError'/>
         </word>
+        <word name='virInterfaceCreateXML'>
+          <ref name='virInterfaceGetXMLDesc'/>
+        </word>
+        <word name='virInterfaceFree'>
+          <ref name='virInterfaceRef'/>
+        </word>
+        <word name='virInterfacePtr'>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceUndefine'/>
+        </word>
         <word name='virNetworkCreateXML'>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
           <ref name='virDomainResume'/>
           <ref name='virDomainSetMaxMemory'/>
           <ref name='virDomainSetMemory'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
           <ref name='virDomainDefineXML'/>
           <ref name='virDomainMemoryPeek'/>
           <ref name='virDomainRef'/>
+          <ref name='virInterfaceRef'/>
           <ref name='virNetworkRef'/>
           <ref name='virNodeDeviceRef'/>
           <ref name='virStoragePoolRef'/>
         </word>
         <word name='writing'>
           <ref name='virDomainGetConnect'/>
+          <ref name='virInterfaceGetConnect'/>
           <ref name='virNetworkGetConnect'/>
           <ref name='virStoragePoolGetConnect'/>
           <ref name='virStorageVolGetConnect'/>
         </word>
       </letter>
     </chunk>
-    <chunk name='chunk12'>
+    <chunk name='chunk13'>
       <letter name='x'>
         <word name='xen'>
           <ref name='virConnectOpen'/>
       <letter name='y'>
         <word name='yet'>
           <ref name='virDomainReboot'/>
+          <ref name='virInterfaceCreate'/>
+          <ref name='virInterfaceDefineXML'/>
+          <ref name='virInterfaceDestroy'/>
+          <ref name='virInterfaceGetXMLDesc'/>
           <ref name='virNetworkGetXMLDesc'/>
         </word>
         <word name='you'>
       </letter>
     </chunk>
     <chunks>
-      <chunk name='chunk0' start='A' end='L'/>
-      <chunk name='chunk1' start='M' end='a'/>
-      <chunk name='chunk2' start='b' end='c'/>
-      <chunk name='chunk3' start='d' end='e'/>
-      <chunk name='chunk4' start='f' end='g'/>
-      <chunk name='chunk5' start='h' end='k'/>
-      <chunk name='chunk6' start='l' end='m'/>
-      <chunk name='chunk7' start='n' end='p'/>
-      <chunk name='chunk8' start='q' end='r'/>
-      <chunk name='chunk9' start='s' end='s'/>
-      <chunk name='chunk10' start='t' end='u'/>
-      <chunk name='chunk11' start='v' end='w'/>
-      <chunk name='chunk12' start='x' end='z'/>
+      <chunk name='chunk0' start='A' end='I'/>
+      <chunk name='chunk1' start='J' end='W'/>
+      <chunk name='chunk2' start='X' end='a'/>
+      <chunk name='chunk3' start='b' end='c'/>
+      <chunk name='chunk4' start='d' end='e'/>
+      <chunk name='chunk5' start='f' end='g'/>
+      <chunk name='chunk6' start='h' end='i'/>
+      <chunk name='chunk7' start='j' end='m'/>
+      <chunk name='chunk8' start='n' end='p'/>
+      <chunk name='chunk9' start='q' end='r'/>
+      <chunk name='chunk10' start='s' end='s'/>
+      <chunk name='chunk11' start='t' end='u'/>
+      <chunk name='chunk12' start='v' end='w'/>
+      <chunk name='chunk13' start='x' end='z'/>
     </chunks>
   </index>
 </apirefs>
index 5835f70c17777b006ee4f7a3aa066c8dcedec91a..633be86a467d28d02b5cb6276ae8f2c240114eea 100644 (file)
@@ -591,6 +591,16 @@ typedef enum {
 char *                  virDomainGetXMLDesc     (virDomainPtr domain,
                                                  int flags);
 
+
+char *                  virConnectDomainXMLFromNative(virConnectPtr conn,
+                                                      const char *nativeFormat,
+                                                      const char *nativeConfig,
+                                                      unsigned int flags);
+char *                  virConnectDomainXMLToNative(virConnectPtr conn,
+                                                    const char *nativeFormat,
+                                                    const char *domainXml,
+                                                    unsigned int flags);
+
 int                     virDomainBlockStats     (virDomainPtr dom,
                                                  const char *path,
                                                  virDomainBlockStatsPtr stats,
index 60048aec969443a5fe26632414075cab9d4df295..025e2a7f80a83d0030b56dab2d822fe40ea1965a 100644 (file)
@@ -591,6 +591,16 @@ typedef enum {
 char *                  virDomainGetXMLDesc     (virDomainPtr domain,
                                                  int flags);
 
+
+char *                  virConnectDomainXMLFromNative(virConnectPtr conn,
+                                                      const char *nativeFormat,
+                                                      const char *nativeConfig,
+                                                      unsigned int flags);
+char *                  virConnectDomainXMLToNative(virConnectPtr conn,
+                                                    const char *nativeFormat,
+                                                    const char *domainXml,
+                                                    unsigned int flags);
+
 int                     virDomainBlockStats     (virDomainPtr dom,
                                                  const char *path,
                                                  virDomainBlockStatsPtr stats,
index 01758a9a1246008ce9a198f02721c218dd510b39..15709178e130a22eb9ee87678ea44192cb7d1502 100644 (file)
@@ -152,6 +152,16 @@ typedef int
 typedef char *
         (*virDrvDomainDumpXML)         (virDomainPtr dom,
                                          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
         (*virDrvListDefinedDomains)    (virConnectPtr conn,
                                          char **const names,
@@ -381,6 +391,8 @@ struct _virDriver {
     virDrvDomainGetSecurityLabel     domainGetSecurityLabel;
     virDrvNodeGetSecurityModel  nodeGetSecurityModel;
     virDrvDomainDumpXML                domainDumpXML;
+    virDrvConnectDomainXMLFromNative domainXMLFromNative;
+    virDrvConnectDomainXMLToNative domainXMLToNative;
     virDrvListDefinedDomains   listDefinedDomains;
     virDrvNumOfDefinedDomains  numOfDefinedDomains;
     virDrvDomainCreate         domainCreate;
index cb486bbdcb154c8e073c437d7d148ea3cd63ed17..c601b94698bd018a1c289573d560914ba2896b1b 100644 (file)
@@ -2730,6 +2730,111 @@ error:
     return NULL;
 }
 
+/**
+ * virConnectDomainXMLFromNative:
+ * @conn: a connection object
+ * @nativeFormat: configuration format importing from
+ * @nativeConfig: the configuration data to import
+ * @flags: currently unused, pass 0
+ *
+ * Reads native configuration data  describing a domain, and
+ * generates libvirt domain XML. The format of the native
+ * data is hypervisor dependant.
+ *
+ * Returns a 0 terminated UTF-8 encoded XML instance, or NULL in case of error.
+ *         the caller must free() the returned value.
+ */
+char *virConnectDomainXMLFromNative(virConnectPtr conn,
+                                    const char *nativeFormat,
+                                    const char *nativeConfig,
+                                    unsigned int flags)
+{
+    DEBUG("conn=%p, format=%s config=%s flags=%u", conn, nativeFormat, nativeConfig, flags);
+
+    virResetLastError();
+
+    if (!VIR_IS_CONNECT(conn)) {
+        virLibConnError(NULL, VIR_ERR_INVALID_CONN, __FUNCTION__);
+        return (NULL);
+    }
+
+    if (nativeFormat == NULL || nativeConfig == NULL) {
+        virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
+        return (NULL);
+    }
+
+    if (conn->driver->domainXMLFromNative) {
+        char *ret;
+        ret = conn->driver->domainXMLFromNative (conn,
+                                                 nativeFormat,
+                                                 nativeConfig,
+                                                 flags);
+        if (!ret)
+            goto error;
+        return ret;
+    }
+
+    virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+    /* Copy to connection error object for back compatability */
+    virSetConnError(conn);
+    return NULL;
+}
+
+/**
+ * virConnectDomainXMLToNative:
+ * @conn: a connection object
+ * @nativeFormat: configuration format exporting to
+ * @domainXml: the domain configuration to export
+ * @flags: currently unused, pass 0
+ *
+ * Reads a domain XML configuration document, and generates
+ * generates a native configuration file describing the domain.
+ * The format of the native data is hypervisor dependant.
+ *
+ * Returns a 0 terminated UTF-8 encoded native config datafile, or NULL in case of error.
+ *         the caller must free() the returned value.
+ */
+char *virConnectDomainXMLToNative(virConnectPtr conn,
+                                  const char *nativeFormat,
+                                  const char *domainXml,
+                                  unsigned int flags)
+{
+    DEBUG("conn=%p, format=%s xml=%s flags=%u", conn, nativeFormat, domainXml, flags);
+
+    virResetLastError();
+
+    if (!VIR_IS_CONNECT(conn)) {
+        virLibConnError(NULL, VIR_ERR_INVALID_CONN, __FUNCTION__);
+        return (NULL);
+    }
+
+    if (nativeFormat == NULL || domainXml == NULL) {
+        virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
+        return (NULL);
+    }
+
+    if (conn->driver->domainXMLToNative) {
+        char *ret;
+        ret = conn->driver->domainXMLToNative(conn,
+                                              nativeFormat,
+                                              domainXml,
+                                              flags);
+        if (!ret)
+            goto error;
+        return ret;
+    }
+
+    virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+    /* Copy to connection error object for back compatability */
+    virSetConnError(conn);
+    return NULL;
+}
+
+
 /**
  * virDomainMigrate:
  * @domain: a domain object
index 85a26d40dee2d0a58d2fe95734977c34561d1a97..3f0f4bc3b036d8a0dd2251b4ea5325bd295e7657 100644 (file)
@@ -264,8 +264,6 @@ LIBVIRT_0.6.3 {
        virNodeDeviceDestroy;
 } LIBVIRT_0.6.1;
 
-# .... define new API here using predicted next version number ....
-
 LIBVIRT_0.6.4 {
     global:
        virInterfaceGetConnect;
@@ -283,4 +281,8 @@ LIBVIRT_0.6.4 {
        virInterfaceCreate;
        virInterfaceDestroy;
        virStorageVolCreateXMLFrom;
+       virConnectDomainXMLFromNative;
+       virConnectDomainXMLToNative;
 } LIBVIRT_0.6.3;
+
+# .... define new API here using predicted next version number ....
index 64c735dc26415be02d6601f0a1ace0caf6a4b697..0109f15f80037a4801cc8dbc9007c85711e84dd6 100644 (file)
@@ -1457,6 +1457,8 @@ static virDriver lxcDriver = {
     NULL, /* domainGetSecurityLabel */
     NULL, /* nodeGetSecurityModel */
     lxcDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     lxcListDefinedDomains, /* listDefinedDomains */
     lxcNumDefinedDomains, /* numOfDefinedDomains */
     lxcDomainStart, /* domainCreate */
index 755e449d9c9144a642274a206afb85bf545f5c3b..f6d41f2ed3ad34260312e62876f8309bbcc685b0 100644 (file)
@@ -1344,6 +1344,8 @@ static virDriver openvzDriver = {
     NULL, /* domainGetSecurityLabel */
     NULL, /* nodeGetSecurityModel */
     openvzDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     openvzListDefinedDomains, /* listDefinedDomains */
     openvzNumDefinedDomains, /* numOfDefinedDomains */
     openvzDomainCreate, /* domainCreate */
index 4c5e8e5558ee574d0344264895adca07858a83e5..2cac1bf08f47981051964e87c2d72a70d3507a1e 100644 (file)
@@ -5224,6 +5224,8 @@ static virDriver qemuDriver = {
     qemudDomainGetSecurityLabel, /* domainGetSecurityLabel */
     qemudNodeGetSecurityModel, /* nodeGetSecurityModel */
     qemudDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     qemudListDefinedDomains, /* listDefinedDomains */
     qemudNumDefinedDomains, /* numOfDefinedDomains */
     qemudDomainStart, /* domainCreate */
index 48c35fad4c924a5fbd08d377a208e682fb01ac3a..bc70f239515fbab9dd2e7987613a945107cd46f6 100644 (file)
@@ -7301,6 +7301,8 @@ static virDriver driver = {
     remoteDomainGetSecurityLabel, /* domainGetSecurityLabel */
     remoteNodeGetSecurityModel, /* nodeGetSecurityModel */
     remoteDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     remoteListDefinedDomains, /* listDefinedDomains */
     remoteNumOfDefinedDomains, /* numOfDefinedDomains */
     remoteDomainCreate, /* domainCreate */
index 9a9992f77556b51d90f820b0233a657880897fdf..ba9ad6620cc3db42559d11f4022a302a5438b170 100644 (file)
@@ -3591,6 +3591,8 @@ static virDriver testDriver = {
     NULL, /* domainGetSecurityLabel */
     NULL, /* nodeGetSecurityModel */
     testDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     testListDefinedDomains, /* listDefinedDomains */
     testNumOfDefinedDomains, /* numOfDefinedDomains */
     testDomainCreate, /* domainCreate */
index 704ca4308da8b9fa1be2e00119948e9cbb83ce58..4cb8eaabde8fb14babc9cbc5dc66faa37bbff505 100644 (file)
@@ -1854,6 +1854,8 @@ static virDriver umlDriver = {
     NULL, /* domainGetSecurityLabel */
     NULL, /* nodeGetSecurityModel */
     umlDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     umlListDefinedDomains, /* listDefinedDomains */
     umlNumDefinedDomains, /* numOfDefinedDomains */
     umlDomainStart, /* domainCreate */
index 865b6e53196ec57e3d93a75bc1183c79d33215d6..fe4e8e6a537bc6f1649859c28a2fa3278506bf9f 100644 (file)
@@ -2209,6 +2209,98 @@ cmdDumpXML(vshControl *ctl, const vshCmd *cmd)
     return ret;
 }
 
+/*
+ * "domxml-from-native" command
+ */
+static const vshCmdInfo info_domxmlfromnative[] = {
+    {"help", gettext_noop("Convert native config to domain XML")},
+    {"desc", gettext_noop("Convert native guest configuration format to domain XML format.")},
+    {NULL, NULL}
+};
+
+static const vshCmdOptDef opts_domxmlfromnative[] = {
+    {"format", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("source config data format")},
+    {"config", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("config data file to import from")},
+    {NULL, 0, 0, NULL}
+};
+
+static int
+cmdDomXMLFromNative(vshControl *ctl, const vshCmd *cmd)
+{
+    int ret = TRUE;
+    char *format;
+    char *configFile;
+    char *configData;
+    char *xmlData;
+    int flags = 0;
+
+    if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
+        return FALSE;
+
+    format = vshCommandOptString(cmd, "format", NULL);
+    configFile = vshCommandOptString(cmd, "config", NULL);
+
+    if (virFileReadAll(configFile, 1024*1024, &configData) < 0) {
+        return FALSE;
+    }
+
+    xmlData = virConnectDomainXMLFromNative(ctl->conn, format, configData, flags);
+    if (xmlData != NULL) {
+        printf("%s", xmlData);
+        free(xmlData);
+    } else {
+        ret = FALSE;
+    }
+
+    return ret;
+}
+
+/*
+ * "domxml-to-native" command
+ */
+static const vshCmdInfo info_domxmltonative[] = {
+    {"help", gettext_noop("Convert domain XML to native config")},
+    {"desc", gettext_noop("Convert domain XML config to a native guest configuration format.")},
+    {NULL, NULL}
+};
+
+static const vshCmdOptDef opts_domxmltonative[] = {
+    {"format", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("target config data type format")},
+    {"xml", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("xml data file to export from")},
+    {NULL, 0, 0, NULL}
+};
+
+static int
+cmdDomXMLToNative(vshControl *ctl, const vshCmd *cmd)
+{
+    int ret = TRUE;
+    char *format;
+    char *xmlFile;
+    char *configData;
+    char *xmlData;
+    int flags = 0;
+
+    if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
+        return FALSE;
+
+    format = vshCommandOptString(cmd, "format", NULL);
+    xmlFile = vshCommandOptString(cmd, "xml", NULL);
+
+    if (virFileReadAll(xmlFile, 1024*1024, &xmlData) < 0) {
+        return FALSE;
+    }
+
+    configData = virConnectDomainXMLToNative(ctl->conn, format, xmlData, flags);
+    if (configData != NULL) {
+        printf("%s", configData);
+        free(configData);
+    } else {
+        ret = FALSE;
+    }
+
+    return ret;
+}
+
 /*
  * "domname" command
  */
@@ -6030,6 +6122,8 @@ static const vshCmdDef commands[] = {
     {"domstate", cmdDomstate, opts_domstate, info_domstate},
     {"domblkstat", cmdDomblkstat, opts_domblkstat, info_domblkstat},
     {"domifstat", cmdDomIfstat, opts_domifstat, info_domifstat},
+    {"domxml-from-native", cmdDomXMLFromNative, opts_domxmlfromnative, info_domxmlfromnative},
+    {"domxml-to-native", cmdDomXMLToNative, opts_domxmltonative, info_domxmltonative},
     {"dumpxml", cmdDumpXML, opts_dumpxml, info_dumpxml},
     {"edit", cmdEdit, opts_edit, info_edit},
     {"find-storage-pool-sources", cmdPoolDiscoverSources,
index e708980538fb1f02225ee2f31d9de9b8a1ded616..bd363ffe3b4aac9f9c0f06c20c6efeff58673b9f 100644 (file)
@@ -1580,6 +1580,8 @@ static virDriver xenUnifiedDriver = {
     NULL, /* domainGetSecurityLabel */
     NULL, /* nodeGetSecurityModel */
     xenUnifiedDomainDumpXML, /* domainDumpXML */
+    NULL, /* domainXmlFromNative */
+    NULL, /* domainXmlToNative */
     xenUnifiedListDefinedDomains, /* listDefinedDomains */
     xenUnifiedNumOfDefinedDomains, /* numOfDefinedDomains */
     xenUnifiedDomainCreate, /* domainCreate */