Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > 0b7d91ce0c9dc6614b6f54c3313f2e91 > files > 71

libvirt-devel-1.0.2-8.7.mga3.i586.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!--
        This file is autogenerated from html/libvirt-virterror.html.in
        Do not edit this file. Changes will be lost.
      --><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="../main.css" /><link rel="SHORTCUT ICON" href="../32favicon.png" /><title>libvirt: Module virterror from libvirt</title><meta name="description" content="libvirt, virtualization, virtualization API" /></head><body><div id="header"><div id="headerLogo"></div><div id="headerSearch"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><div><input id="query" name="query" type="text" size="12" value="" /><input id="submit" name="submit" type="submit" value="Search" /></div></form></div></div><div id="body"><div id="menu"><ul class="l0"><li><div><a title="Front page of the libvirt website" class="inactive" href="../index.html">Home</a></div></li><li><div><a title="Details of new features and bugs fixed in each release" class="inactive" href="../news.html">News</a></div></li><li><div><a title="Applications known to use libvirt" class="inactive" href="../apps.html">Applications</a></div></li><li><div><a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="../downloads.html">Downloads</a></div></li><li><div><a title="Information for users, administrators and developers" class="active" href="../docs.html">Documentation</a><ul class="l1"><li><div><a title="How to compile libvirt" class="inactive" href="../compiling.html">Compiling</a></div></li><li><div><a title="Information about deploying and using libvirt" class="inactive" href="../deployment.html">Deployment</a></div></li><li><div><a title="Overview of the logical subsystems in the libvirt API" class="inactive" href="../intro.html">Architecture</a></div></li><li><div><a title="Description of the XML formats used in libvirt" class="inactive" href="../format.html">XML format</a></div></li><li><div><a title="Hypervisor specific driver information" class="inactive" href="../drivers.html">Drivers</a></div></li><li><div><a title="Reference manual for the C public API" class="active" href="../html/index.html">API reference</a><ul class="l2"><li><div><a title="core interfaces for the libvirt library" class="inactive" href="../html/libvirt-libvirt.html">libvirt</a></div></li><li><div><span class="active">virterror</span></div></li><li><div><a title="matrix of API support per hypervisor per release" class="inactive" href="../hvsupport.html">Driver support</a></div></li></ul></div></li><li><div><a title="Bindings of the libvirt API for other languages" class="inactive" href="../bindings.html">Language bindings</a></div></li><li><div><a title="Working on the internals of libvirt API, driver and daemon code" class="inactive" href="../internals.html">Internals</a></div></li><li><div><a title="A guide and reference for developing with libvirt" class="inactive" href="../devguide.html">Development Guide</a></div></li><li><div><a title="Command reference for virsh" class="inactive" href="../virshcmdref.html">Virsh Commands</a></div></li></ul></div></li><li><div><a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a></div></li><li><div><a title="Frequently asked questions" class="inactive" href="http://wiki.libvirt.org/page/FAQ">FAQ</a></div></li><li><div><a title="How and where to report bugs and request features" class="inactive" href="../bugs.html">Bug reports</a></div></li><li><div><a title="How to contact the developers via email and IRC" class="inactive" href="../contact.html">Contact</a></div></li><li><div><a title="Available test suites for libvirt" class="inactive" href="../testsuites.html">Test suites</a></div></li><li><div><a title="Miscellaneous links of interest related to libvirt" class="inactive" href="../relatedlinks.html">Related Links</a></div></li><li><div><a title="Overview of all content on the website" class="inactive" href="../sitemap.html">Sitemap</a></div></li></ul></div><div id="content"><h1>Module virterror from libvirt</h1><p>Provides the interfaces of the libvirt library to handle errors raised while using the library.  Copyright (C) 2006, 2010-2012 Red Hat, Inc.  This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.  You should have received a copy of the GNU Lesser General Public License along with this library.  If not, see &lt;http://www.gnu.org/licenses/&gt;. </p><h2>Table of Contents</h2><h3><a href="#types">Types</a></h3><pre class="api"><span class="keyword">typedef</span> <span class="type">struct _virError</span> <a href="#virError">virError</a>
<span class="keyword">typedef</span> <span class="keyword">enum</span> <a href="#virErrorDomain">virErrorDomain</a>
<span class="keyword">typedef</span> <span class="keyword">enum</span> <a href="#virErrorLevel">virErrorLevel</a>
<span class="keyword">typedef</span> <span class="keyword">enum</span> <a href="#virErrorNumber">virErrorNumber</a>
<span class="keyword">typedef</span> <span class="type"><a href="libvirt-virterror.html#virError">virError</a> *</span> <a name="virErrorPtr" id="virErrorPtr">virErrorPtr</a>
</pre><h3><a href="#functions">Functions</a></h3><pre class="api"><span class="type">int</span>	<a href="#virConnCopyLastError">virConnCopyLastError</a>		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn, <br />					 <span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> to)
<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	<a href="#virConnGetLastError">virConnGetLastError</a>	(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn)
<span class="type">void</span>	<a href="#virConnResetLastError">virConnResetLastError</a>		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn)
<span class="type">void</span>	<a href="#virConnSetErrorFunc">virConnSetErrorFunc</a>		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn, <br />					 <span class="type">void *</span> userData, <br />					 <span class="type"><a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a></span> handler)
<span class="type">int</span>	<a href="#virCopyLastError">virCopyLastError</a>		(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> to)
<span class="type">void</span>	<a href="#virDefaultErrorFunc">virDefaultErrorFunc</a>		(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)
<span class="keyword">typedef</span> <a href="#virErrorFunc">virErrorFunc</a>
<span class="type">void</span>	<a href="#virErrorFunc">virErrorFunc</a>			(<span class="type">void *</span> userData, <br />					 <span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> error)

<span class="type">void</span>	<a href="#virFreeError">virFreeError</a>			(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)
<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	<a href="#virGetLastError">virGetLastError</a>		(<span class="type">void</span>)
<span class="type">void</span>	<a href="#virResetError">virResetError</a>			(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)
<span class="type">void</span>	<a href="#virResetLastError">virResetLastError</a>		(<span class="type">void</span>)
<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	<a href="#virSaveLastError">virSaveLastError</a>	(<span class="type">void</span>)
<span class="type">void</span>	<a href="#virSetErrorFunc">virSetErrorFunc</a>			(<span class="type">void *</span> userData, <br />					 <span class="type"><a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a></span> handler)
</pre><h2>Description</h2><h3><a name="types" id="types">Types</a></h3><h3><a name="virError" id="virError"><code>virError</code></a></h3><div class="api"><pre><span class="keyword">struct </span>virError {
</pre><table><tr><td><span class="type">int</span></td><td>code</td><td><div class="comment">The error code, a <a href="libvirt-virterror.html#virErrorNumber">virErrorNumber</a></div></td></tr><tr><td><span class="type">int</span></td><td>domain</td><td><div class="comment">What part of the library raised this error</div></td></tr><tr><td><span class="type">char *</span></td><td>message</td><td><div class="comment">human-readable informative error message</div></td></tr><tr><td><span class="type"><a href="libvirt-virterror.html#virErrorLevel">virErrorLevel</a></span></td><td>level</td><td><div class="comment">how consequent is the error</div></td></tr><tr><td><span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span></td><td>conn</td><td><div class="comment">connection if available, deprecated see note above</div></td></tr><tr><td><span class="type"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a></span></td><td>dom</td><td><div class="comment">domain if available, deprecated see note above</div></td></tr><tr><td><span class="type">char *</span></td><td>str1</td><td><div class="comment">extra string information</div></td></tr><tr><td><span class="type">char *</span></td><td>str2</td><td><div class="comment">extra string information</div></td></tr><tr><td><span class="type">char *</span></td><td>str3</td><td><div class="comment">extra string information</div></td></tr><tr><td><span class="type">int</span></td><td>int1</td><td><div class="comment">extra number information</div></td></tr><tr><td><span class="type">int</span></td><td>int2</td><td><div class="comment">extra number information</div></td></tr><tr><td><span class="type"><a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a></span></td><td>net</td><td><div class="comment">network if available, deprecated see note above</div></td></tr></table><pre>
}
</pre></div><h3><a name="virErrorDomain" id="virErrorDomain"><code>virErrorDomain</code></a></h3><div class="api"><pre><span class="keyword">enum</span> 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><div class="comment">Error at Xen hypervisor layer</div></td></tr><tr><td><a name="VIR_FROM_XEND" id="VIR_FROM_XEND">VIR_FROM_XEND</a></td><td> = </td><td>2</td><td><div class="comment">Error at connection with xend daemon</div></td></tr><tr><td><a name="VIR_FROM_XENSTORE" id="VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a></td><td> = </td><td>3</td><td><div class="comment">Error at connection with xen store</div></td></tr><tr><td><a name="VIR_FROM_SEXPR" id="VIR_FROM_SEXPR">VIR_FROM_SEXPR</a></td><td> = </td><td>4</td><td><div class="comment">Error in the S-Expression code</div></td></tr><tr><td><a name="VIR_FROM_XML" id="VIR_FROM_XML">VIR_FROM_XML</a></td><td> = </td><td>5</td><td><div class="comment">Error in the XML code</div></td></tr><tr><td><a name="VIR_FROM_DOM" id="VIR_FROM_DOM">VIR_FROM_DOM</a></td><td> = </td><td>6</td><td><div class="comment">Error when operating on a domain</div></td></tr><tr><td><a name="VIR_FROM_RPC" id="VIR_FROM_RPC">VIR_FROM_RPC</a></td><td> = </td><td>7</td><td><div class="comment">Error in the XML-RPC code</div></td></tr><tr><td><a name="VIR_FROM_PROXY" id="VIR_FROM_PROXY">VIR_FROM_PROXY</a></td><td> = </td><td>8</td><td><div class="comment">Error in the proxy code; unused since 0.8.6</div></td></tr><tr><td><a name="VIR_FROM_CONF" id="VIR_FROM_CONF">VIR_FROM_CONF</a></td><td> = </td><td>9</td><td><div class="comment">Error in the configuration file handling</div></td></tr><tr><td><a name="VIR_FROM_QEMU" id="VIR_FROM_QEMU">VIR_FROM_QEMU</a></td><td> = </td><td>10</td><td><div class="comment">Error at the QEMU daemon</div></td></tr><tr><td><a name="VIR_FROM_NET" id="VIR_FROM_NET">VIR_FROM_NET</a></td><td> = </td><td>11</td><td><div class="comment">Error when operating on a network</div></td></tr><tr><td><a name="VIR_FROM_TEST" id="VIR_FROM_TEST">VIR_FROM_TEST</a></td><td> = </td><td>12</td><td><div class="comment">Error from test driver</div></td></tr><tr><td><a name="VIR_FROM_REMOTE" id="VIR_FROM_REMOTE">VIR_FROM_REMOTE</a></td><td> = </td><td>13</td><td><div class="comment">Error from remote driver</div></td></tr><tr><td><a name="VIR_FROM_OPENVZ" id="VIR_FROM_OPENVZ">VIR_FROM_OPENVZ</a></td><td> = </td><td>14</td><td><div class="comment">Error from OpenVZ driver</div></td></tr><tr><td><a name="VIR_FROM_XENXM" id="VIR_FROM_XENXM">VIR_FROM_XENXM</a></td><td> = </td><td>15</td><td><div class="comment">Error at Xen XM layer</div></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><div class="comment">Error in the Linux Stats code</div></td></tr><tr><td><a name="VIR_FROM_LXC" id="VIR_FROM_LXC">VIR_FROM_LXC</a></td><td> = </td><td>17</td><td><div class="comment">Error from Linux Container driver</div></td></tr><tr><td><a name="VIR_FROM_STORAGE" id="VIR_FROM_STORAGE">VIR_FROM_STORAGE</a></td><td> = </td><td>18</td><td><div class="comment">Error from storage driver</div></td></tr><tr><td><a name="VIR_FROM_NETWORK" id="VIR_FROM_NETWORK">VIR_FROM_NETWORK</a></td><td> = </td><td>19</td><td><div class="comment">Error from network config</div></td></tr><tr><td><a name="VIR_FROM_DOMAIN" id="VIR_FROM_DOMAIN">VIR_FROM_DOMAIN</a></td><td> = </td><td>20</td><td><div class="comment">Error from domain config</div></td></tr><tr><td><a name="VIR_FROM_UML" id="VIR_FROM_UML">VIR_FROM_UML</a></td><td> = </td><td>21</td><td><div class="comment">Error at the UML driver</div></td></tr><tr><td><a name="VIR_FROM_NODEDEV" id="VIR_FROM_NODEDEV">VIR_FROM_NODEDEV</a></td><td> = </td><td>22</td><td><div class="comment">Error from node device monitor</div></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><div class="comment">Error from xen inotify layer</div></td></tr><tr><td><a name="VIR_FROM_SECURITY" id="VIR_FROM_SECURITY">VIR_FROM_SECURITY</a></td><td> = </td><td>24</td><td><div class="comment">Error from security framework</div></td></tr><tr><td><a name="VIR_FROM_VBOX" id="VIR_FROM_VBOX">VIR_FROM_VBOX</a></td><td> = </td><td>25</td><td><div class="comment">Error from VirtualBox driver</div></td></tr><tr><td><a name="VIR_FROM_INTERFACE" id="VIR_FROM_INTERFACE">VIR_FROM_INTERFACE</a></td><td> = </td><td>26</td><td><div class="comment">Error when operating on an interface</div></td></tr><tr><td><a name="VIR_FROM_ONE" id="VIR_FROM_ONE">VIR_FROM_ONE</a></td><td> = </td><td>27</td><td><div class="comment">The OpenNebula driver no longer exists. Retained for ABI/API compat only</div></td></tr><tr><td><a name="VIR_FROM_ESX" id="VIR_FROM_ESX">VIR_FROM_ESX</a></td><td> = </td><td>28</td><td><div class="comment">Error from ESX driver</div></td></tr><tr><td><a name="VIR_FROM_PHYP" id="VIR_FROM_PHYP">VIR_FROM_PHYP</a></td><td> = </td><td>29</td><td><div class="comment">Error from IBM power hypervisor</div></td></tr><tr><td><a name="VIR_FROM_SECRET" id="VIR_FROM_SECRET">VIR_FROM_SECRET</a></td><td> = </td><td>30</td><td><div class="comment">Error from secret storage</div></td></tr><tr><td><a name="VIR_FROM_CPU" id="VIR_FROM_CPU">VIR_FROM_CPU</a></td><td> = </td><td>31</td><td><div class="comment">Error from CPU driver</div></td></tr><tr><td><a name="VIR_FROM_XENAPI" id="VIR_FROM_XENAPI">VIR_FROM_XENAPI</a></td><td> = </td><td>32</td><td><div class="comment">Error from XenAPI</div></td></tr><tr><td><a name="VIR_FROM_NWFILTER" id="VIR_FROM_NWFILTER">VIR_FROM_NWFILTER</a></td><td> = </td><td>33</td><td><div class="comment">Error from network filter driver</div></td></tr><tr><td><a name="VIR_FROM_HOOK" id="VIR_FROM_HOOK">VIR_FROM_HOOK</a></td><td> = </td><td>34</td><td><div class="comment">Error from Synchronous hooks</div></td></tr><tr><td><a name="VIR_FROM_DOMAIN_SNAPSHOT" id="VIR_FROM_DOMAIN_SNAPSHOT">VIR_FROM_DOMAIN_SNAPSHOT</a></td><td> = </td><td>35</td><td><div class="comment">Error from domain snapshot</div></td></tr><tr><td><a name="VIR_FROM_AUDIT" id="VIR_FROM_AUDIT">VIR_FROM_AUDIT</a></td><td> = </td><td>36</td><td><div class="comment">Error from auditing subsystem</div></td></tr><tr><td><a name="VIR_FROM_SYSINFO" id="VIR_FROM_SYSINFO">VIR_FROM_SYSINFO</a></td><td> = </td><td>37</td><td><div class="comment">Error from sysinfo/SMBIOS</div></td></tr><tr><td><a name="VIR_FROM_STREAMS" id="VIR_FROM_STREAMS">VIR_FROM_STREAMS</a></td><td> = </td><td>38</td><td><div class="comment">Error from I/O streams</div></td></tr><tr><td><a name="VIR_FROM_VMWARE" id="VIR_FROM_VMWARE">VIR_FROM_VMWARE</a></td><td> = </td><td>39</td><td><div class="comment">Error from VMware driver</div></td></tr><tr><td><a name="VIR_FROM_EVENT" id="VIR_FROM_EVENT">VIR_FROM_EVENT</a></td><td> = </td><td>40</td><td><div class="comment">Error from event loop impl</div></td></tr><tr><td><a name="VIR_FROM_LIBXL" id="VIR_FROM_LIBXL">VIR_FROM_LIBXL</a></td><td> = </td><td>41</td><td><div class="comment">Error from libxenlight driver</div></td></tr><tr><td><a name="VIR_FROM_LOCKING" id="VIR_FROM_LOCKING">VIR_FROM_LOCKING</a></td><td> = </td><td>42</td><td><div class="comment">Error from lock manager</div></td></tr><tr><td><a name="VIR_FROM_HYPERV" id="VIR_FROM_HYPERV">VIR_FROM_HYPERV</a></td><td> = </td><td>43</td><td><div class="comment">Error from Hyper-V driver</div></td></tr><tr><td><a name="VIR_FROM_CAPABILITIES" id="VIR_FROM_CAPABILITIES">VIR_FROM_CAPABILITIES</a></td><td> = </td><td>44</td><td><div class="comment">Error from capabilities</div></td></tr><tr><td><a name="VIR_FROM_URI" id="VIR_FROM_URI">VIR_FROM_URI</a></td><td> = </td><td>45</td><td><div class="comment">Error from URI handling</div></td></tr><tr><td><a name="VIR_FROM_AUTH" id="VIR_FROM_AUTH">VIR_FROM_AUTH</a></td><td> = </td><td>46</td><td><div class="comment">Error from auth handling</div></td></tr><tr><td><a name="VIR_FROM_DBUS" id="VIR_FROM_DBUS">VIR_FROM_DBUS</a></td><td> = </td><td>47</td><td><div class="comment">Error from DBus</div></td></tr><tr><td><a name="VIR_FROM_PARALLELS" id="VIR_FROM_PARALLELS">VIR_FROM_PARALLELS</a></td><td> = </td><td>48</td><td><div class="comment">Error from Parallels</div></td></tr><tr><td><a name="VIR_FROM_DEVICE" id="VIR_FROM_DEVICE">VIR_FROM_DEVICE</a></td><td> = </td><td>49</td><td><div class="comment">Error from Device</div></td></tr><tr><td><a name="VIR_FROM_SSH" id="VIR_FROM_SSH">VIR_FROM_SSH</a></td><td> = </td><td>50</td><td><div class="comment">Error from libssh2 connection transport</div></td></tr><tr><td><a name="VIR_FROM_LOCKSPACE" id="VIR_FROM_LOCKSPACE">VIR_FROM_LOCKSPACE</a></td><td> = </td><td>51</td><td><div class="comment">Error from lockspace</div></td></tr><tr><td><a name="VIR_FROM_INITCTL" id="VIR_FROM_INITCTL">VIR_FROM_INITCTL</a></td><td> = </td><td>52</td><td><div class="comment">Error from initctl device communication</div></td></tr><tr><td><a name="VIR_ERR_DOMAIN_LAST" id="VIR_ERR_DOMAIN_LAST">VIR_ERR_DOMAIN_LAST</a></td><td> = </td><td>53</td></tr></table><pre>}
</pre></div><h3><a name="virErrorLevel" id="virErrorLevel"><code>virErrorLevel</code></a></h3><div class="api"><pre><span class="keyword">enum</span> 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><div class="comment">A simple warning</div></td></tr><tr><td><a name="VIR_ERR_ERROR" id="VIR_ERR_ERROR">VIR_ERR_ERROR</a></td><td> = </td><td>2</td><td><div class="comment">An error</div></td></tr></table><pre>}
</pre></div><h3><a name="virErrorNumber" id="virErrorNumber"><code>virErrorNumber</code></a></h3><div class="api"><pre><span class="keyword">enum</span> 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><div class="comment">internal error</div></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><div class="comment">memory allocation failure</div></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><div class="comment">no support for this function</div></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><div class="comment">could not resolve hostname</div></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><div class="comment">can't connect to hypervisor</div></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><div class="comment">invalid connection object</div></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><div class="comment">invalid domain object</div></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><div class="comment">invalid function argument</div></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><div class="comment">a command to hypervisor failed</div></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><div class="comment">a HTTP GET command to failed</div></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><div class="comment">a HTTP POST command to failed</div></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><div class="comment">unexpected HTTP error code</div></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><div class="comment">failure to serialize an S-Expr</div></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><div class="comment">could not open Xen hypervisor control</div></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><div class="comment">failure doing an hypervisor call</div></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><div class="comment">unknown OS type</div></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><div class="comment">missing kernel information</div></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><div class="comment">missing root device information</div></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><div class="comment">missing source device information</div></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><div class="comment">missing target device information</div></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><div class="comment">missing domain name information</div></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><div class="comment">missing domain OS information</div></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><div class="comment">missing domain devices information</div></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><div class="comment">could not open Xen Store control</div></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><div class="comment">too many drivers registered</div></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><div class="comment">not supported by the drivers (DEPRECATED)</div></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><div class="comment">an XML description is not well formed or broken</div></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><div class="comment">the domain already exist</div></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><div class="comment">operation forbidden on read-only connections</div></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><div class="comment">failed to open a conf file</div></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><div class="comment">failed to read a conf file</div></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><div class="comment">failed to parse a conf file</div></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><div class="comment">failed to parse the syntax of a conf file</div></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><div class="comment">failed to write a conf file</div></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><div class="comment">detail of an XML error</div></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><div class="comment">invalid network object</div></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><div class="comment">the network already exist</div></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><div class="comment">general system call failure</div></td></tr><tr><td><a name="VIR_ERR_RPC" id="VIR_ERR_RPC">VIR_ERR_RPC</a></td><td> = </td><td>39</td><td><div class="comment">some sort of RPC error</div></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><div class="comment">error from a GNUTLS call</div></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><div class="comment">failed to start network</div></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><div class="comment">domain not found or unexpectedly disappeared</div></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><div class="comment">network not found</div></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><div class="comment">invalid MAC address</div></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><div class="comment">authentication failed</div></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><div class="comment">invalid storage pool object</div></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><div class="comment">invalid storage vol object</div></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><div class="comment">failed to start storage</div></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><div class="comment">storage pool not found</div></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><div class="comment">storage volume not found</div></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><div class="comment">failed to start node driver</div></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><div class="comment">invalid node device object</div></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><div class="comment">node device not found</div></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><div class="comment">security model not found</div></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><div class="comment">operation is not applicable at this time</div></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><div class="comment">failed to start interface driver</div></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><div class="comment">interface driver not running</div></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><div class="comment">invalid interface object</div></td></tr><tr><td><a name="VIR_ERR_MULTIPLE_INTERFACES" id="VIR_ERR_MULTIPLE_INTERFACES">VIR_ERR_MULTIPLE_INTERFACES</a></td><td> = </td><td>59</td><td><div class="comment">more than one matching interface found</div></td></tr><tr><td><a name="VIR_WAR_NO_NWFILTER" id="VIR_WAR_NO_NWFILTER">VIR_WAR_NO_NWFILTER</a></td><td> = </td><td>60</td><td><div class="comment">failed to start nwfilter driver</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NWFILTER" id="VIR_ERR_INVALID_NWFILTER">VIR_ERR_INVALID_NWFILTER</a></td><td> = </td><td>61</td><td><div class="comment">invalid nwfilter object</div></td></tr><tr><td><a name="VIR_ERR_NO_NWFILTER" id="VIR_ERR_NO_NWFILTER">VIR_ERR_NO_NWFILTER</a></td><td> = </td><td>62</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_ERR_BUILD_FIREWALL" id="VIR_ERR_BUILD_FIREWALL">VIR_ERR_BUILD_FIREWALL</a></td><td> = </td><td>63</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_WAR_NO_SECRET" id="VIR_WAR_NO_SECRET">VIR_WAR_NO_SECRET</a></td><td> = </td><td>64</td><td><div class="comment">failed to start secret storage</div></td></tr><tr><td><a name="VIR_ERR_INVALID_SECRET" id="VIR_ERR_INVALID_SECRET">VIR_ERR_INVALID_SECRET</a></td><td> = </td><td>65</td><td><div class="comment">invalid secret</div></td></tr><tr><td><a name="VIR_ERR_NO_SECRET" id="VIR_ERR_NO_SECRET">VIR_ERR_NO_SECRET</a></td><td> = </td><td>66</td><td><div class="comment">secret not found</div></td></tr><tr><td><a name="VIR_ERR_CONFIG_UNSUPPORTED" id="VIR_ERR_CONFIG_UNSUPPORTED">VIR_ERR_CONFIG_UNSUPPORTED</a></td><td> = </td><td>67</td><td><div class="comment">unsupported configuration construct</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_TIMEOUT" id="VIR_ERR_OPERATION_TIMEOUT">VIR_ERR_OPERATION_TIMEOUT</a></td><td> = </td><td>68</td><td><div class="comment">timeout occurred during operation</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_PERSIST_FAILED" id="VIR_ERR_MIGRATE_PERSIST_FAILED">VIR_ERR_MIGRATE_PERSIST_FAILED</a></td><td> = </td><td>69</td><td><div class="comment">a migration worked, but making the VM persist on the dest host failed</div></td></tr><tr><td><a name="VIR_ERR_HOOK_SCRIPT_FAILED" id="VIR_ERR_HOOK_SCRIPT_FAILED">VIR_ERR_HOOK_SCRIPT_FAILED</a></td><td> = </td><td>70</td><td><div class="comment">a synchronous hook script failed</div></td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN_SNAPSHOT" id="VIR_ERR_INVALID_DOMAIN_SNAPSHOT">VIR_ERR_INVALID_DOMAIN_SNAPSHOT</a></td><td> = </td><td>71</td><td><div class="comment">invalid domain snapshot</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_SNAPSHOT" id="VIR_ERR_NO_DOMAIN_SNAPSHOT">VIR_ERR_NO_DOMAIN_SNAPSHOT</a></td><td> = </td><td>72</td><td><div class="comment">domain snapshot not found</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STREAM" id="VIR_ERR_INVALID_STREAM">VIR_ERR_INVALID_STREAM</a></td><td> = </td><td>73</td><td><div class="comment">stream pointer not valid</div></td></tr><tr><td><a name="VIR_ERR_ARGUMENT_UNSUPPORTED" id="VIR_ERR_ARGUMENT_UNSUPPORTED">VIR_ERR_ARGUMENT_UNSUPPORTED</a></td><td> = </td><td>74</td><td><div class="comment">valid API use but unsupported by the given driver</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_PROBE_FAILED" id="VIR_ERR_STORAGE_PROBE_FAILED">VIR_ERR_STORAGE_PROBE_FAILED</a></td><td> = </td><td>75</td><td><div class="comment">storage pool probe failed</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_POOL_BUILT" id="VIR_ERR_STORAGE_POOL_BUILT">VIR_ERR_STORAGE_POOL_BUILT</a></td><td> = </td><td>76</td><td><div class="comment">storage pool already built</div></td></tr><tr><td><a name="VIR_ERR_SNAPSHOT_REVERT_RISKY" id="VIR_ERR_SNAPSHOT_REVERT_RISKY">VIR_ERR_SNAPSHOT_REVERT_RISKY</a></td><td> = </td><td>77</td><td><div class="comment">force was not requested for a risky domain snapshot revert</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_ABORTED" id="VIR_ERR_OPERATION_ABORTED">VIR_ERR_OPERATION_ABORTED</a></td><td> = </td><td>78</td><td><div class="comment">operation on a domain was canceled/aborted by user</div></td></tr><tr><td><a name="VIR_ERR_AUTH_CANCELLED" id="VIR_ERR_AUTH_CANCELLED">VIR_ERR_AUTH_CANCELLED</a></td><td> = </td><td>79</td><td><div class="comment">authentication cancelled</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_METADATA" id="VIR_ERR_NO_DOMAIN_METADATA">VIR_ERR_NO_DOMAIN_METADATA</a></td><td> = </td><td>80</td><td><div class="comment">The metadata is not present</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_UNSAFE" id="VIR_ERR_MIGRATE_UNSAFE">VIR_ERR_MIGRATE_UNSAFE</a></td><td> = </td><td>81</td><td><div class="comment">Migration is not safe</div></td></tr><tr><td><a name="VIR_ERR_OVERFLOW" id="VIR_ERR_OVERFLOW">VIR_ERR_OVERFLOW</a></td><td> = </td><td>82</td><td><div class="comment">integer overflow</div></td></tr><tr><td><a name="VIR_ERR_BLOCK_COPY_ACTIVE" id="VIR_ERR_BLOCK_COPY_ACTIVE">VIR_ERR_BLOCK_COPY_ACTIVE</a></td><td> = </td><td>83</td><td><div class="comment">action prevented by block copy job</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_UNSUPPORTED" id="VIR_ERR_OPERATION_UNSUPPORTED">VIR_ERR_OPERATION_UNSUPPORTED</a></td><td> = </td><td>84</td><td><div class="comment">The requested operation is not supported</div></td></tr><tr><td><a name="VIR_ERR_SSH" id="VIR_ERR_SSH">VIR_ERR_SSH</a></td><td> = </td><td>85</td><td><div class="comment">error in ssh transport driver</div></td></tr><tr><td><a name="VIR_ERR_AGENT_UNRESPONSIVE" id="VIR_ERR_AGENT_UNRESPONSIVE">VIR_ERR_AGENT_UNRESPONSIVE</a></td><td> = </td><td>86</td><td><div class="comment">guest agent is unresponsive, not running or not usable</div></td></tr><tr><td><a name="VIR_ERR_RESOURCE_BUSY" id="VIR_ERR_RESOURCE_BUSY">VIR_ERR_RESOURCE_BUSY</a></td><td> = </td><td>87</td><td><div class="comment">resource is already in use</div></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="api"><span class="type">int</span>	virConnCopyLastError		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn,
					 <span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> to)</pre><div><p>Copy the content of the last error caught on that connection</p><p>This method is not protected against access from multiple threads. In a multi-threaded application, always use the global <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>() API which is backed by thread local storage.</p><p>If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object.</p><p>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 <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>(). This method remains for backwards compatibility.</p><p>One will need to free the result with <a href="libvirt-virterror.html#virResetError">virResetError</a>()</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd><dt>to</dt><dd>target to receive the copy</dd><dt>Returns</dt><dd>0 if no error was found and the error code otherwise and -1 in case of parameter error.</dd></dl><h3><a name="virConnGetLastError" id="virConnGetLastError"><code>virConnGetLastError</code></a></h3><pre class="api"><span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	virConnGetLastError	(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn)</pre><div><p>Provide a pointer to the last error caught on that connection</p><p>This method is not protected against access from multiple threads. In a multi-threaded application, always use the global <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>() API which is backed by thread local storage.</p><p>If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object.</p><p>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 <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>(). This method remains for backwards compatibility.</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd><dt>Returns</dt><dd>a pointer to the last error or NULL if none occurred.</dd></dl><h3><a name="virConnResetLastError" id="virConnResetLastError"><code>virConnResetLastError</code></a></h3><pre class="api"><span class="type">void</span>	virConnResetLastError		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn)</pre><div><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently.</p><p>Reset the last error caught on that connection</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd></dl><h3><a name="virConnSetErrorFunc" id="virConnSetErrorFunc"><code>virConnSetErrorFunc</code></a></h3><pre class="api"><span class="type">void</span>	virConnSetErrorFunc		(<span class="type"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a></span> conn,
					 <span class="type">void *</span> userData,
					 <span class="type"><a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a></span> handler)</pre><div><p>Set a connection error handling function, if @handler is NULL it will reset to default which is to pass error back to the global library handler.</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd><dt>userData</dt><dd>pointer to the user data provided in the handler callback</dd><dt>handler</dt><dd>the function to get called in case of error or NULL</dd></dl><h3><a name="virCopyLastError" id="virCopyLastError"><code>virCopyLastError</code></a></h3><pre class="api"><span class="type">int</span>	virCopyLastError		(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> to)</pre><div><p>Copy the content of the last error caught at the library level</p><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently.</p><p>One will need to free the result with <a href="libvirt-virterror.html#virResetError">virResetError</a>()</p></div><dl class="variablelist"><dt>to</dt><dd>target to receive the copy</dd><dt>Returns</dt><dd>0 if no error was found and the error code otherwise and -1 in case of parameter error.</dd></dl><h3><a name="virDefaultErrorFunc" id="virDefaultErrorFunc"><code>virDefaultErrorFunc</code></a></h3><pre class="api"><span class="type">void</span>	virDefaultErrorFunc		(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)</pre><div><p>Default routine reporting an error to stderr.</p></div><dl class="variablelist"><dt>err</dt><dd>pointer to the error.</dd></dl><h3><a name="virErrorFunc" id="virErrorFunc"><code>virErrorFunc</code></a></h3><pre class="api"><span class="keyword">typedef</span> <span class="type">void</span>	(*virErrorFunc		)	(<span class="type">void *</span> userData,
					 <span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> error)
</pre><div><p>Signature of a function to use when there is an error raised by the library.</p></div><dl class="variablelist"><dt>userData</dt><dd>user provided data for the error callback</dd><dt>error</dt><dd>the error being raised.</dd></dl><br /><h3><a name="virFreeError" id="virFreeError"><code>virFreeError</code></a></h3><pre class="api"><span class="type">void</span>	virFreeError			(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)</pre><div><p>Resets and frees the given error.</p></div><dl class="variablelist"><dt>err</dt><dd>error to free</dd></dl><h3><a name="virGetLastError" id="virGetLastError"><code>virGetLastError</code></a></h3><pre class="api"><span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	virGetLastError		(<span class="type">void</span>)</pre><div><p>Provide a pointer to the last error caught at the library level</p><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently.</p></div><dl class="variablelist"><dt>Returns</dt><dd>a pointer to the last error or NULL if none occurred.</dd></dl><h3><a name="virResetError" id="virResetError"><code>virResetError</code></a></h3><pre class="api"><span class="type">void</span>	virResetError			(<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> err)</pre><div><p>Reset the error being pointed to</p></div><dl class="variablelist"><dt>err</dt><dd>pointer to the <a href="libvirt-virterror.html#virError">virError</a> to clean up</dd></dl><h3><a name="virResetLastError" id="virResetLastError"><code>virResetLastError</code></a></h3><pre class="api"><span class="type">void</span>	virResetLastError		(<span class="type">void</span>)</pre><div><p>Reset the last error caught at the library level.</p><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently, only resetting their own error object.</p></div><h3><a name="virSaveLastError" id="virSaveLastError"><code>virSaveLastError</code></a></h3><pre class="api"><span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span>	virSaveLastError	(<span class="type">void</span>)</pre><div><p>Save the last error into a new error object. On success, errno is unchanged; on failure, errno is ENOMEM.</p></div><dl class="variablelist"><dt>Returns</dt><dd>a pointer to the copied error or NULL if allocation failed. It is the caller's responsibility to free the error with <a href="libvirt-virterror.html#virFreeError">virFreeError</a>().</dd></dl><h3><a name="virSetErrorFunc" id="virSetErrorFunc"><code>virSetErrorFunc</code></a></h3><pre class="api"><span class="type">void</span>	virSetErrorFunc			(<span class="type">void *</span> userData,
					 <span class="type"><a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a></span> handler)</pre><div><p>Set a library global error handling function, if @handler is NULL, it will reset to default printing on stderr. The error raised there are those for which no handler at the connection level could caught.</p></div><dl class="variablelist"><dt>userData</dt><dd>pointer to the user data provided in the handler callback</dd><dt>handler</dt><dd>the function to get called in case of error or NULL</dd></dl></div></div><div id="footer"><p id="sponsor">
	    Sponsored by:<br /><a href="http://et.redhat.com/"><img src="../et.png" alt="Project sponsored by Red Hat Emerging Technology" /></a></p></div></body></html>