mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-31 10:05:31 +00:00
typos fixes
* docs//* src/conf.c src/hash.c src/libvirt.c src/proxy_internal.c src/remote_internal.c src/virsh.c src/xen_internal.c src/xend_internal.c src/xml.c: applied patch from Atsushi SAKAI fixing a lot of typos Daniel
This commit is contained in:
parent
17fc060be7
commit
a528e97383
@ -1,3 +1,10 @@
|
||||
Fri Apr 4 09:56:42 CEST 2008 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs//* src/conf.c src/hash.c src/libvirt.c src/proxy_internal.c
|
||||
src/remote_internal.c src/virsh.c src/xen_internal.c
|
||||
src/xend_internal.c src/xml.c: applied patch from Atsushi SAKAI
|
||||
fixing a lot of typos
|
||||
|
||||
Fri Apr 4 09:29:08 CEST 2008 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/test.c: patch from Cole Robinson to add
|
||||
|
@ -34,7 +34,7 @@
|
||||
<p><code>make rpm</code></p>
|
||||
</li>
|
||||
<li><em>Failure to use the API for non-root users</em>
|
||||
<p>Large parts of the API may only be accessible with root priviledges,
|
||||
<p>Large parts of the API may only be accessible with root privileges,
|
||||
however the read only access to the xenstore data doesnot have to be
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dominfo"
|
||||
fails to run as an user, change the mode of the xenstore read-only socket
|
||||
|
@ -14,7 +14,7 @@ supervise the control and execution of the sets of domains. The hypervisor,
|
||||
drivers, kernels and daemons communicate though a shared system bus
|
||||
implemented in the hypervisor. The figure below tries to provide a view of
|
||||
this environment:</p><img src="architecture.gif" alt="The Xen architecture" /><p>The library can be initialized in 2 ways depending on the level of
|
||||
priviledge of the embedding program. If it runs with root access,
|
||||
privilege of the embedding program. If it runs with root access,
|
||||
virConnectOpen() can be used, it will use three different ways to connect to
|
||||
the Xen infrastructure:</p><ul><li>a connection to the Xen Daemon though an HTTP RPC layer</li>
|
||||
<li>a read/write connection to the Xen Store</li>
|
||||
@ -25,7 +25,7 @@ the Xen infrastructure:</p><ul><li>a connection to the Xen Daemon though an HTTP
|
||||
changing the state of the system, but for performance and accuracy reasons
|
||||
may talk directly to the hypervisor when gathering state information at
|
||||
least when possible (i.e. when the running program using libvirt has root
|
||||
priviledge access).</p><p>If it runs without root access virConnectOpenReadOnly() should be used to
|
||||
privilege access).</p><p>If it runs without root access virConnectOpenReadOnly() should be used to
|
||||
connect to initialize the library. It will then fork a libvirt_proxy
|
||||
program running as root and providing read_only access to the API, this is
|
||||
then only useful for reporting and monitoring.</p><h3><a name="QEmu" id="QEmu">Libvirt QEmu and KVM support</a></h3><p>The model for QEmu and KVM is completely similar, basically KVM is based
|
||||
@ -36,14 +36,14 @@ QEmu or KVM process. That program called libvirt_qemud talks though a specific
|
||||
protocol to the library, and connects to the console of the QEmu process in
|
||||
order to control and report on its status. Libvirt tries to expose all the
|
||||
emulations models of QEmu, the selection is done when creating the new
|
||||
domain, by specifying the architecture and machine type targetted.</p><p>The code controlling the QEmu process is available in the
|
||||
domain, by specifying the architecture and machine type targeted.</p><p>The code controlling the QEmu process is available in the
|
||||
<code>qemud/</code> directory.</p><h3><a name="drivers" id="drivers">the driver based architecture</a></h3><p>As the previous section explains, libvirt can communicate using different
|
||||
channels with the current hypervisor, and should also be able to use
|
||||
different kind of hypervisor. To simplify the internal design, code, ease
|
||||
maintenance and simplify the support of other virtualization engine the
|
||||
internals have been structured as one core component, the libvirt.c module
|
||||
acting as a front-end for the library API and a set of hypervisor drivers
|
||||
defining a common set of routines. That way the Xen Daemon accces, the Xen
|
||||
defining a common set of routines. That way the Xen Daemon access, the Xen
|
||||
Store one, the Hypervisor hypercall are all isolated in separate C modules
|
||||
implementing at least a subset of the common operations defined by the
|
||||
drivers present in driver.h:</p><ul><li>xend_internal: implements the driver functions though the Xen
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="stylesheet" type="text/css" href="libvirt.css" /><link rel="SHORTCUT ICON" href="/32favicon.png" /><title>Access control</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Access control</h1><p>
|
||||
When connecting to libvirt, some connections may require client
|
||||
authentication before allowing use of the APIs. The set of possible
|
||||
authentication mechanisms is administrator controlled, independant
|
||||
authentication mechanisms is administrator controlled, independent
|
||||
of applications using libvirt.
|
||||
</p><ul><li><a href="#ACL_server_config">Server configuration</a></li>
|
||||
<li><a href="#ACL_server_unix_perms">UNIX socket permissions/group</a></li>
|
||||
@ -44,7 +44,7 @@ session to authenticate using the user's password. This is akin to <code>sudo</c
|
||||
auth, but does not require that the client application ultimately run as root.
|
||||
Default policy will still allow any application to connect to the RO socket.
|
||||
</p><p>
|
||||
The default policy can be overriden by the administrator using the PolicyKit
|
||||
The default policy can be overridden by the administrator using the PolicyKit
|
||||
master configuration file in <code>/etc/PolicyKit/PolicyKit.conf</code>. The
|
||||
<code>PolicyKit.conf(5)</code> manual page provides details on the syntax
|
||||
available. The two libvirt daemon actions available are named <code>org.libvirt.unix.monitor</code>
|
||||
@ -111,7 +111,7 @@ Plugin "gssapiv2" [loaded], API version: 4
|
||||
security flags: NO_ANONYMOUS|NO_PLAINTEXT|NO_ACTIVE|PASS_CREDENTIALS|MUTUAL_AUTH
|
||||
features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION|NEED_SERVER_FQDN
|
||||
</pre><p>
|
||||
Next is is necessary for the adminsitrator of the Kerberos realm to issue a principle
|
||||
Next is is necessary for the administrator of the Kerberos realm to issue a principle
|
||||
for the libvirt server. There needs to be one principle per host running the libvirt
|
||||
daemon. The principle should be named <code>libvirt/full.hostname@KERBEROS.REALM</code>.
|
||||
This is typically done by running the <code>kadmin.local</code> command on the Kerberos
|
||||
|
@ -9,7 +9,7 @@ If possible generate the patches by using cvs diff -u in a CVS checkout.</p><p>W
|
||||
If you want to report a bug or ask for a feature, please check <a href="http://bugzilla.redhat.com/bugzilla/buglist.cgi?component=libvirt&component=libvirt-devel&component=libvirt-python&bug_status=ASSIGNED&bug_status=INVESTIGATE&bug_status=NEW&bug_status=REOPENED&bug_status=VERIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc=&Search=Search">the existing open bugs</a>, then if yours isn't a duplicate of
|
||||
an existing bug, <a href="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Core&component=libvirt">log a new bug</a> and attach any patch or extra data that you may have available. It is always a good idea to also
|
||||
to post to the <a href="mailto:libvir-list@redhat.com">mailing-list</a>
|
||||
too, so that everybody working on the project can see it, thanks !</p><p>Some of the libvirt developpers may be found on IRC on the OFTC
|
||||
too, so that everybody working on the project can see it, thanks !</p><p>Some of the libvirt developers may be found on IRC on the OFTC
|
||||
network. Use the settings:</p><ul><li>server: irc.oftc.net</li>
|
||||
<li>port: 6667 (the usual IRC port)</li>
|
||||
<li>channel: #virt</li>
|
||||
|
@ -104,7 +104,7 @@ The content of this structure is not made public by the API.
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConfReadMem"/>virConfReadMem ()</h3><pre class="programlisting"><a href="libvirt-conf.html#virConfPtr">virConfPtr</a> virConfReadMem (const char * memory, <br/> int len)<br/>
|
||||
</pre><p>Reads a configuration file loaded in memory. The string can be zero terminated in which case @len can be 0</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the content of the configuration file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>lenght in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an handle to lookup settings or NULL if it failed to parse the content, use virConfFree() to free the data.</td></tr></tbody></table></div></div>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the content of the configuration file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>length in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an handle to lookup settings or NULL if it failed to parse the content, use virConfFree() to free the data.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConfWriteFile"/>virConfWriteFile ()</h3><pre class="programlisting">int virConfWriteFile (const char * filename, <br/> <a href="libvirt-conf.html#virConfPtr">virConfPtr</a> conf)<br/>
|
||||
</pre><p>Writes a configuration file back to a file.</p>
|
||||
@ -112,7 +112,7 @@ The content of this structure is not made public by the API.
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConfWriteMem"/>virConfWriteMem ()</h3><pre class="programlisting">int virConfWriteMem (char * memory, <br/> int * len, <br/> <a href="libvirt-conf.html#virConfPtr">virConfPtr</a> conf)<br/>
|
||||
</pre><p>Writes a configuration file back to a memory area. @len is an IN/OUT parameter, it indicates the size available in bytes, and on output the size required for the configuration file (even if the call fails due to insufficient space).</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the memory to store the config file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the lenght in byte of the store, on output the size</td></tr><tr><td><span class="term"><i><tt>conf</tt></i>:</span></td><td>the conf</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error.</td></tr></tbody></table></div></div>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the memory to store the config file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length in byte of the store, on output the size</td></tr><tr><td><span class="term"><i><tt>conf</tt></i>:</span></td><td>the conf</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -656,7 +656,7 @@ The content of this structure is not made public by the API.
|
||||
<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>auth</tt></i>:</span></td><td>Authenticate callback parameters</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>Open flags</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></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectOpenReadOnly"/>virConnectOpenReadOnly ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br/>
|
||||
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>
|
||||
</pre><p>This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</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></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainAttachDevice"/>virDomainAttachDevice ()</h3><pre class="programlisting">int virDomainAttachDevice (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> const char * xml)<br/>
|
||||
@ -745,7 +745,7 @@ The content of this structure is not made public by the API.
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetVcpus"/>virDomainGetVcpus ()</h3><pre class="programlisting">int virDomainGetVcpus (<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)<br/>
|
||||
</pre><p>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is'nt NULL.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cpumap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetXMLDesc"/>virDomainGetXMLDesc ()</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> int flags)<br/>
|
||||
</pre><p>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</p>
|
||||
@ -828,7 +828,7 @@ The content of this structure is not made public by the API.
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</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="virGetVersion"/>virGetVersion ()</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 availble, an error code will be returned and @typeVer will be 0.</p>
|
||||
</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></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virInitialize"/>virInitialize ()</h3><pre class="programlisting">int virInitialize (void)<br/>
|
||||
@ -908,7 +908,7 @@ The content of this structure is not made public by the API.
|
||||
<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>freeMems</tt></i>:</span></td><td>pointer to the array of unsigned long long</td></tr><tr><td><span class="term"><i><tt>startCell</tt></i>:</span></td><td>index of first cell to return freeMems info on.</td></tr><tr><td><span class="term"><i><tt>maxCells</tt></i>:</span></td><td>Maximum number of cells for which freeMems information can be returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries filled in freeMems, or -1 in case of error.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeGetFreeMemory"/>virNodeGetFreeMemory ()</h3><pre class="programlisting">unsigned long long virNodeGetFreeMemory (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
|
||||
</pre><p>provides the free memory availble on the Node</p>
|
||||
</pre><p>provides the free memory available on the Node</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 available free memory in kilobytes or 0 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeGetInfo"/>virNodeGetInfo ()</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br/>
|
||||
@ -924,11 +924,11 @@ The content of this structure is not made public by the API.
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pool</tt></i>:</span></td><td>pointer to storage pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, or -1 if it could not be started</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virStoragePoolCreateXML"/>virStoragePoolCreateXML ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> virStoragePoolCreateXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc, <br/> unsigned int flags)<br/>
|
||||
</pre><p>Create a new storage based on its XML description. The pool is not persitent, so its definition will disappear when it is destroyed, or if the host is restarted</p>
|
||||
</pre><p>Create a new storage based on its XML description. The pool is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted</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>xmlDesc</tt></i>:</span></td><td>XML description for new pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> object, or NULL if creation failed</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virStoragePoolDefineXML"/>virStoragePoolDefineXML ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> virStoragePoolDefineXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xml, <br/> unsigned int flags)<br/>
|
||||
</pre><p>Define a new inactive storage pool based on its XML description. The pool is persitent, until explicitly undefined.</p>
|
||||
</pre><p>Define a new inactive storage pool based on its XML description. The pool is persistent, until explicitly undefined.</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>xml</tt></i>:</span></td><td>XML description for new pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> object, or NULL if creation failed</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virStoragePoolDelete"/>virStoragePoolDelete ()</h3><pre class="programlisting">int virStoragePoolDelete (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br/> unsigned int flags)<br/>
|
||||
|
@ -8,7 +8,7 @@ asynchronous error reporting. When an error happens in the library code the
|
||||
error is logged, allowing to retrieve it later and if the user registered an
|
||||
error callback it will be called synchronously. Once the call to libvirt ends
|
||||
the error can be detected by the return value and the full information for
|
||||
the last logged error can be retrieved.</p><p>To avoid as much as prossible troubles with a global variable in a
|
||||
the last logged error can be retrieved.</p><p>To avoid as much as possible troubles with a global variable in a
|
||||
multithreaded environment, libvirt will associate when possible the errors to
|
||||
the current connection they are related to, that way the error is stored in a
|
||||
dynamic structure which can be made thread specific. Error callback can be
|
||||
@ -43,7 +43,7 @@ following fields:</p><ul><li>code: an error number from the <a href="html/libvir
|
||||
<li>conn: if available a pointer to the <a href="html/libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>
|
||||
connection to the hypervisor where this happened</li>
|
||||
<li>dom: if available a pointer to the <a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain
|
||||
targetted in the operation</li>
|
||||
targeted in the operation</li>
|
||||
</ul><p>and then extra raw information about the error which may be initialized
|
||||
to 0 or NULL if unused</p><ul><li>str1, str2, str3: string information, usually str1 is the error
|
||||
message format</li>
|
||||
@ -51,7 +51,7 @@ to 0 or NULL if unused</p><ul><li>str1, str2, str3: string information, usually
|
||||
</ul><p>So usually, setting up specific error handling with libvirt consist of
|
||||
registering an handler with with <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a> or
|
||||
with <a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
chech the value of the code value, take appropriate action, if needed let
|
||||
check the value of the code value, take appropriate action, if needed let
|
||||
libvirt print the error on stderr by calling <a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.
|
||||
For asynchronous error handing, set such a function doing nothing to avoid
|
||||
the error being reported on stderr, and call virConnGetLastError or
|
||||
|
@ -45,7 +45,7 @@ significant:</p><ul><li>name: the domain name, preferably ASCII based</li>
|
||||
<li>memory: the maximum memory allocated to the domain in kilobytes</li>
|
||||
<li>vcpu: the number of virtual cpu configured for the domain</li>
|
||||
<li>os: a block describing the Operating System, its content will be
|
||||
dependant on the OS type
|
||||
dependent on the OS type
|
||||
<ul><li>type: indicate the OS type, always linux at this point</li>
|
||||
<li>kernel: path to the kernel on the Domain 0 filesystem</li>
|
||||
<li>initrd: an optional path for the init ramdisk on the Domain 0
|
||||
@ -168,7 +168,7 @@ systems:</p><pre><domain type='xen' id='3'>
|
||||
pointing to an additional program in charge of emulating the devices</li>
|
||||
<li>the disk entry indicates in the dev target section that the emulation
|
||||
for the drive is the first IDE disk device hda. The list of device names
|
||||
supported is dependant on the Hypervisor, but for Xen it can be any IDE
|
||||
supported is dependent on the Hypervisor, but for Xen it can be any IDE
|
||||
device <code>hda</code>-<code>hdd</code>, or a floppy device
|
||||
<code>fda</code>, <code>fdb</code>. The <code><disk></code> element
|
||||
also supports a 'device' attribute to indicate what kinda of hardware to
|
||||
@ -247,7 +247,7 @@ support a variety of options:</p><ol><li>Userspace SLIRP stack
|
||||
of the box which does NAT'ing to the default route and has an IP range of
|
||||
<code>192.168.22.0/255.255.255.0</code>. Each guest will have an
|
||||
associated tun device created with a name of vnetN, which can also be
|
||||
overriden with the <target> element. Example configs are:</p>
|
||||
overridden with the <target> element. Example configs are:</p>
|
||||
<pre><interface type='network'>
|
||||
<source network='default'/>
|
||||
</interface>
|
||||
@ -263,7 +263,7 @@ support a variety of options:</p><ol><li>Userspace SLIRP stack
|
||||
<p>Provides a bridge from the VM directly onto the LAN. This assumes
|
||||
there is a bridge device on the host which has one or more of the hosts
|
||||
physical NICs enslaved. The guest VM will have an associated tun device
|
||||
created with a name of vnetN, which can also be overriden with the
|
||||
created with a name of vnetN, which can also be overridden with the
|
||||
<target> element. The tun device will be enslaved to the bridge.
|
||||
The IP range / network configuration is whatever is used on the LAN. This
|
||||
provides the guest VM full incoming & outgoing net access just like a
|
||||
@ -281,11 +281,11 @@ support a variety of options:</p><ol><li>Userspace SLIRP stack
|
||||
<li>Generic connection to LAN
|
||||
<p>Provides a means for the administrator to execute an arbitrary script
|
||||
to connect the guest's network to the LAN. The guest will have a tun
|
||||
device created with a name of vnetN, which can also be overriden with the
|
||||
device created with a name of vnetN, which can also be overridden with the
|
||||
<target> element. After creating the tun device a shell script will
|
||||
be run which is expected to do whatever host network integration is
|
||||
required. By default this script is called /etc/qemu-ifup but can be
|
||||
overriden.</p>
|
||||
overridden.</p>
|
||||
<pre><interface type='ethernet'/>
|
||||
|
||||
<interface type='ethernet'>
|
||||
@ -409,7 +409,7 @@ BIOS you will see</p><pre><capabilities>
|
||||
</features>
|
||||
</guest></span>
|
||||
...
|
||||
</capabilities></pre><p>The first block (in red) indicates the host hardware capbilities, currently
|
||||
</capabilities></pre><p>The first block (in red) indicates the host hardware capabilities, currently
|
||||
it is limited to the CPU properties but other information may be available,
|
||||
it shows the CPU architecture, and the features of the chip (the feature
|
||||
block is similar to what you will find in a Xen fully virtualized domain
|
||||
|
@ -37,8 +37,8 @@ The content of this structure is not made public by the API.
|
||||
</pre><p>Reads a configuration file.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the path to the configuration file.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an handle to lookup settings or NULL if it failed to read or parse the file, use virConfFree() to free the data.</td></tr></tbody></table></div><h3><a name="virConfReadMem" id="virConfReadMem"></a>Function: virConfReadMem</h3><pre class="programlisting"><a href="libvirt-conf.html#virConfPtr">virConfPtr</a> virConfReadMem (const char * memory, <br /> int len)<br />
|
||||
</pre><p>Reads a configuration file loaded in memory. The string can be zero terminated in which case @len can be 0</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the content of the configuration file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>lenght in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an handle to lookup settings or NULL if it failed to parse the content, use virConfFree() to free the data.</td></tr></tbody></table></div><h3><a name="virConfWriteFile" id="virConfWriteFile"></a>Function: virConfWriteFile</h3><pre class="programlisting">int virConfWriteFile (const char * filename, <br /> <a href="libvirt-conf.html#virConfPtr">virConfPtr</a> conf)<br />
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the content of the configuration file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>length in byte</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an handle to lookup settings or NULL if it failed to parse the content, use virConfFree() to free the data.</td></tr></tbody></table></div><h3><a name="virConfWriteFile" id="virConfWriteFile"></a>Function: virConfWriteFile</h3><pre class="programlisting">int virConfWriteFile (const char * filename, <br /> <a href="libvirt-conf.html#virConfPtr">virConfPtr</a> conf)<br />
|
||||
</pre><p>Writes a configuration file back to a file.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the path to the configuration file.</td></tr><tr><td><span class="term"><i><tt>conf</tt></i>:</span></td><td>the conf</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virConfWriteMem" id="virConfWriteMem"></a>Function: virConfWriteMem</h3><pre class="programlisting">int virConfWriteMem (char * memory, <br /> int * len, <br /> <a href="libvirt-conf.html#virConfPtr">virConfPtr</a> conf)<br />
|
||||
</pre><p>Writes a configuration file back to a memory area. @len is an IN/OUT parameter, it indicates the size available in bytes, and on output the size required for the configuration file (even if the call fails due to insufficient space).</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the memory to store the config file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the lenght in byte of the store, on output the size</td></tr><tr><td><span class="term"><i><tt>conf</tt></i>:</span></td><td>the conf</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error.</td></tr></tbody></table></div></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>pointer to the memory to store the config file</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>pointer to the length in byte of the store, on output the size</td></tr><tr><td><span class="term"><i><tt>conf</tt></i>:</span></td><td>the conf</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error.</td></tr></tbody></table></div></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
@ -388,7 +388,7 @@ int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentia
|
||||
<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"></a>Function: virConnectOpenAuth</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 />
|
||||
</pre><p>This function should be called first to get a connection to the Hypervisor. If necessary, authentication will be performed fetching credentials via the callback</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>auth</tt></i>:</span></td><td>Authenticate callback parameters</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>Open flags</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="virConnectOpenReadOnly" id="virConnectOpenReadOnly"></a>Function: virConnectOpenReadOnly</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br />
|
||||
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>
|
||||
</pre><p>This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</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="virDomainAttachDevice" id="virDomainAttachDevice"></a>Function: virDomainAttachDevice</h3><pre class="programlisting">int virDomainAttachDevice (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> const char * xml)<br />
|
||||
</pre><p>Create a virtual device attachment to backend.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>pointer to XML description of one device</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="virDomainBlockStats" id="virDomainBlockStats"></a>Function: virDomainBlockStats</h3><pre class="programlisting">int virDomainBlockStats (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br /> const char * path, <br /> <a href="libvirt-libvirt.html#virDomainBlockStatsPtr">virDomainBlockStatsPtr</a> stats, <br /> size_t size)<br />
|
||||
@ -432,8 +432,8 @@ int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentia
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>uuid</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#VIR_UUID_BUFLEN">VIR_UUID_BUFLEN</a> bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div><h3><a name="virDomainGetUUIDString" id="virDomainGetUUIDString"></a>Function: virDomainGetUUIDString</h3><pre class="programlisting">int virDomainGetUUIDString (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> char * buf)<br />
|
||||
</pre><p>Get the UUID for a domain as string. For more information about UUID see RFC4122.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#VIR_UUID_STRING_BUFLEN">VIR_UUID_STRING_BUFLEN</a> bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div><h3><a name="virDomainGetVcpus" id="virDomainGetVcpus"></a>Function: virDomainGetVcpus</h3><pre class="programlisting">int virDomainGetVcpus (<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)<br />
|
||||
</pre><p>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is'nt NULL.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetXMLDesc" id="virDomainGetXMLDesc"></a>Function: virDomainGetXMLDesc</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)<br />
|
||||
</pre><p>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer isn't NULL.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cpumap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetXMLDesc" id="virDomainGetXMLDesc"></a>Function: virDomainGetXMLDesc</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)<br />
|
||||
</pre><p>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>an OR'ed set of <a href="libvirt-libvirt.html#virDomainXMLFlags">virDomainXMLFlags</a></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="virDomainInterfaceStats" id="virDomainInterfaceStats"></a>Function: virDomainInterfaceStats</h3><pre class="programlisting">int virDomainInterfaceStats (<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)<br />
|
||||
</pre><p>This function returns network interface stats for interfaces attached to the domain. The path parameter is the name of the network interface. Domains may have more than network interface. To get stats for each you should make multiple calls to this function. Individual fields within the stats structure may be returned as -1, which indicates that the hypervisor does not support that particular statistic.</p>
|
||||
@ -474,7 +474,7 @@ int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentia
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain 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="virDomainUndefine" id="virDomainUndefine"></a>Function: virDomainUndefine</h3><pre class="programlisting">int virDomainUndefine (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>undefine a domain but does not stop it if it is running</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</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="virGetVersion" id="virGetVersion"></a>Function: virGetVersion</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 availble, an error code will be returned and @typeVer will be 0.</p>
|
||||
</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"></a>Function: 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><h3><a name="virNetworkCreate" id="virNetworkCreate"></a>Function: virNetworkCreate</h3><pre class="programlisting">int virNetworkCreate (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br />
|
||||
@ -514,7 +514,7 @@ int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentia
|
||||
<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="virNodeGetCellsFreeMemory" id="virNodeGetCellsFreeMemory"></a>Function: virNodeGetCellsFreeMemory</h3><pre class="programlisting">int virNodeGetCellsFreeMemory (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long long * freeMems, <br /> int startCell, <br /> int maxCells)<br />
|
||||
</pre><p>This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.</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>freeMems</tt></i>:</span></td><td>pointer to the array of unsigned long long</td></tr><tr><td><span class="term"><i><tt>startCell</tt></i>:</span></td><td>index of first cell to return freeMems info on.</td></tr><tr><td><span class="term"><i><tt>maxCells</tt></i>:</span></td><td>Maximum number of cells for which freeMems information can be returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries filled in freeMems, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virNodeGetFreeMemory" id="virNodeGetFreeMemory"></a>Function: virNodeGetFreeMemory</h3><pre class="programlisting">unsigned long long virNodeGetFreeMemory (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>provides the free memory availble on the Node</p>
|
||||
</pre><p>provides the free memory available on the Node</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 available free memory in kilobytes or 0 in case of error</td></tr></tbody></table></div><h3><a name="virNodeGetInfo" id="virNodeGetInfo"></a>Function: virNodeGetInfo</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br />
|
||||
</pre><p>Extract hardware information about the node.</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>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> structure allocated by the user</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="virStoragePoolBuild" id="virStoragePoolBuild"></a>Function: virStoragePoolBuild</h3><pre class="programlisting">int virStoragePoolBuild (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br /> unsigned int flags)<br />
|
||||
@ -522,9 +522,9 @@ int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentia
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pool</tt></i>:</span></td><td>pointer to storage pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, or -1 upon failure</td></tr></tbody></table></div><h3><a name="virStoragePoolCreate" id="virStoragePoolCreate"></a>Function: virStoragePoolCreate</h3><pre class="programlisting">int virStoragePoolCreate (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br /> unsigned int flags)<br />
|
||||
</pre><p>Starts an inactive storage pool</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pool</tt></i>:</span></td><td>pointer to storage pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, or -1 if it could not be started</td></tr></tbody></table></div><h3><a name="virStoragePoolCreateXML" id="virStoragePoolCreateXML"></a>Function: virStoragePoolCreateXML</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> virStoragePoolCreateXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xmlDesc, <br /> unsigned int flags)<br />
|
||||
</pre><p>Create a new storage based on its XML description. The pool is not persitent, so its definition will disappear when it is destroyed, or if the host is restarted</p>
|
||||
</pre><p>Create a new storage based on its XML description. The pool is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted</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>xmlDesc</tt></i>:</span></td><td>XML description for new pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> object, or NULL if creation failed</td></tr></tbody></table></div><h3><a name="virStoragePoolDefineXML" id="virStoragePoolDefineXML"></a>Function: virStoragePoolDefineXML</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> virStoragePoolDefineXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xml, <br /> unsigned int flags)<br />
|
||||
</pre><p>Define a new inactive storage pool based on its XML description. The pool is persitent, until explicitly undefined.</p>
|
||||
</pre><p>Define a new inactive storage pool based on its XML description. The pool is persistent, until explicitly undefined.</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>xml</tt></i>:</span></td><td>XML description for new pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>future flags, use 0 for now</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> object, or NULL if creation failed</td></tr></tbody></table></div><h3><a name="virStoragePoolDelete" id="virStoragePoolDelete"></a>Function: virStoragePoolDelete</h3><pre class="programlisting">int virStoragePoolDelete (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool, <br /> unsigned int flags)<br />
|
||||
</pre><p>Delete the underlying pool resources. This is a non-recoverable operation. The <a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> object itself is not free'd.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pool</tt></i>:</span></td><td>pointer to storage pool</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>flags for obliteration process</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, or -1 if it could not be obliterate</td></tr></tbody></table></div><h3><a name="virStoragePoolDestroy" id="virStoragePoolDestroy"></a>Function: virStoragePoolDestroy</h3><pre class="programlisting">int virStoragePoolDestroy (<a href="libvirt-libvirt.html#virStoragePoolPtr">virStoragePoolPtr</a> pool)<br />
|
||||
|
@ -20,7 +20,7 @@ of recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
concurently on a single hardware system where the basic resources are driven
|
||||
concurrently on a single hardware system where the basic resources are driven
|
||||
by a Linux (or Solaris) instance. The library aims at providing a long term
|
||||
stable C API initially for <a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
|
||||
paravirtualization</a> but it can also integrate with other
|
||||
|
@ -10,7 +10,7 @@ some of the specific concepts used in libvirt documentation:</p><ul><li>a <stron
|
||||
<li>a <strong>domain</strong> is an instance of an operating system running
|
||||
on a virtualized machine provided by the hypervisor</li>
|
||||
</ul><p style="text-align: center"><img alt="Hypervisor and domains running on a node" src="node.gif" /></p><p>Now we can define the goal of libvirt: to provide the lowest possible
|
||||
generic and stable layer to manage domains on a node.</p><p>This implies the following:</p><ul><li>the API should not be targetted to a single virtualization environment
|
||||
generic and stable layer to manage domains on a node.</p><p>This implies the following:</p><ul><li>the API should not be targeted to a single virtualization environment
|
||||
though Xen is the current default, which also means that some very
|
||||
specific capabilities which are not generic enough may not be provided as
|
||||
libvirt APIs</li>
|
||||
|
@ -19,7 +19,7 @@ of recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
concurently on a single hardware system where the basic resources are driven
|
||||
concurrently on a single hardware system where the basic resources are driven
|
||||
by a Linux (or Solaris) instance. The library aims at providing a long term
|
||||
stable C API initially for <a
|
||||
href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
|
||||
@ -638,7 +638,7 @@ generic and stable layer to manage domains on a node.</p>
|
||||
|
||||
<p>This implies the following:</p>
|
||||
<ul>
|
||||
<li>the API should not be targetted to a single virtualization environment
|
||||
<li>the API should not be targeted to a single virtualization environment
|
||||
though Xen is the current default, which also means that some very
|
||||
specific capabilities which are not generic enough may not be provided as
|
||||
libvirt APIs</li>
|
||||
@ -687,7 +687,7 @@ this environment:</p>
|
||||
<img src="architecture.gif" alt="The Xen architecture">
|
||||
|
||||
<p>The library can be initialized in 2 ways depending on the level of
|
||||
priviledge of the embedding program. If it runs with root access,
|
||||
privilege of the embedding program. If it runs with root access,
|
||||
virConnectOpen() can be used, it will use three different ways to connect to
|
||||
the Xen infrastructure:</p>
|
||||
<ul>
|
||||
@ -702,7 +702,7 @@ the Xen infrastructure:</p>
|
||||
changing the state of the system, but for performance and accuracy reasons
|
||||
may talk directly to the hypervisor when gathering state information at
|
||||
least when possible (i.e. when the running program using libvirt has root
|
||||
priviledge access).</p>
|
||||
privilege access).</p>
|
||||
|
||||
<p>If it runs without root access virConnectOpenReadOnly() should be used to
|
||||
connect to initialize the library. It will then fork a libvirt_proxy
|
||||
@ -719,7 +719,7 @@ QEmu or KVM process. That program called libvirt_qemud talks though a specific
|
||||
protocol to the library, and connects to the console of the QEmu process in
|
||||
order to control and report on its status. Libvirt tries to expose all the
|
||||
emulations models of QEmu, the selection is done when creating the new
|
||||
domain, by specifying the architecture and machine type targetted.</p>
|
||||
domain, by specifying the architecture and machine type targeted.</p>
|
||||
|
||||
<p>The code controlling the QEmu process is available in the
|
||||
<code>qemud/</code> directory.</p>
|
||||
@ -732,7 +732,7 @@ different kind of hypervisor. To simplify the internal design, code, ease
|
||||
maintenance and simplify the support of other virtualization engine the
|
||||
internals have been structured as one core component, the libvirt.c module
|
||||
acting as a front-end for the library API and a set of hypervisor drivers
|
||||
defining a common set of routines. That way the Xen Daemon accces, the Xen
|
||||
defining a common set of routines. That way the Xen Daemon access, the Xen
|
||||
Store one, the Hypervisor hypercall are all isolated in separate C modules
|
||||
implementing at least a subset of the common operations defined by the
|
||||
drivers present in driver.h:</p>
|
||||
@ -849,7 +849,7 @@ significant:</p>
|
||||
<li>memory: the maximum memory allocated to the domain in kilobytes</li>
|
||||
<li>vcpu: the number of virtual cpu configured for the domain</li>
|
||||
<li>os: a block describing the Operating System, its content will be
|
||||
dependant on the OS type
|
||||
dependent on the OS type
|
||||
<ul>
|
||||
<li>type: indicate the OS type, always linux at this point</li>
|
||||
<li>kernel: path to the kernel on the Domain 0 filesystem</li>
|
||||
@ -1008,7 +1008,7 @@ systems:</p>
|
||||
pointing to an additional program in charge of emulating the devices</li>
|
||||
<li>the disk entry indicates in the dev target section that the emulation
|
||||
for the drive is the first IDE disk device hda. The list of device names
|
||||
supported is dependant on the Hypervisor, but for Xen it can be any IDE
|
||||
supported is dependent on the Hypervisor, but for Xen it can be any IDE
|
||||
device <code>hda</code>-<code>hdd</code>, or a floppy device
|
||||
<code>fda</code>, <code>fdb</code>. The <code><disk></code> element
|
||||
also supports a 'device' attribute to indicate what kinda of hardware to
|
||||
@ -1108,7 +1108,7 @@ support a variety of options:</p>
|
||||
of the box which does NAT'ing to the default route and has an IP range of
|
||||
<code>192.168.22.0/255.255.255.0</code>. Each guest will have an
|
||||
associated tun device created with a name of vnetN, which can also be
|
||||
overriden with the <target> element. Example configs are:</p>
|
||||
overridden with the <target> element. Example configs are:</p>
|
||||
<pre><interface type='network'>
|
||||
<source network='default'/>
|
||||
</interface>
|
||||
@ -1124,7 +1124,7 @@ support a variety of options:</p>
|
||||
<p>Provides a bridge from the VM directly onto the LAN. This assumes
|
||||
there is a bridge device on the host which has one or more of the hosts
|
||||
physical NICs enslaved. The guest VM will have an associated tun device
|
||||
created with a name of vnetN, which can also be overriden with the
|
||||
created with a name of vnetN, which can also be overridden with the
|
||||
<target> element. The tun device will be enslaved to the bridge.
|
||||
The IP range / network configuration is whatever is used on the LAN. This
|
||||
provides the guest VM full incoming & outgoing net access just like a
|
||||
@ -1142,11 +1142,11 @@ support a variety of options:</p>
|
||||
<li>Generic connection to LAN
|
||||
<p>Provides a means for the administrator to execute an arbitrary script
|
||||
to connect the guest's network to the LAN. The guest will have a tun
|
||||
device created with a name of vnetN, which can also be overriden with the
|
||||
device created with a name of vnetN, which can also be overridden with the
|
||||
<target> element. After creating the tun device a shell script will
|
||||
be run which is expected to do whatever host network integration is
|
||||
required. By default this script is called /etc/qemu-ifup but can be
|
||||
overriden.</p>
|
||||
overridden.</p>
|
||||
<pre><interface type='ethernet'/>
|
||||
|
||||
<interface type='ethernet'>
|
||||
@ -1292,7 +1292,7 @@ BIOS you will see</p>
|
||||
...
|
||||
</capabilities></pre>
|
||||
|
||||
<p>The first block (in red) indicates the host hardware capbilities, currently
|
||||
<p>The first block (in red) indicates the host hardware capabilities, currently
|
||||
it is limited to the CPU properties but other information may be available,
|
||||
it shows the CPU architecture, and the features of the chip (the feature
|
||||
block is similar to what you will find in a Xen fully virtualized domain
|
||||
@ -1433,7 +1433,7 @@ error callback it will be called synchronously. Once the call to libvirt ends
|
||||
the error can be detected by the return value and the full information for
|
||||
the last logged error can be retrieved.</p>
|
||||
|
||||
<p>To avoid as much as prossible troubles with a global variable in a
|
||||
<p>To avoid as much as possible troubles with a global variable in a
|
||||
multithreaded environment, libvirt will associate when possible the errors to
|
||||
the current connection they are related to, that way the error is stored in a
|
||||
dynamic structure which can be made thread specific. Error callback can be
|
||||
@ -1493,7 +1493,7 @@ following fields:</p>
|
||||
connection to the hypervisor where this happened</li>
|
||||
<li>dom: if available a pointer to the <a
|
||||
href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain
|
||||
targetted in the operation</li>
|
||||
targeted in the operation</li>
|
||||
</ul>
|
||||
|
||||
<p>and then extra raw information about the error which may be initialized
|
||||
@ -1509,7 +1509,7 @@ registering an handler with with <a
|
||||
href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a> or
|
||||
with <a
|
||||
href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
chech the value of the code value, take appropriate action, if needed let
|
||||
check the value of the code value, take appropriate action, if needed let
|
||||
libvirt print the error on stderr by calling <a
|
||||
href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.
|
||||
For asynchronous error handing, set such a function doing nothing to avoid
|
||||
@ -1582,7 +1582,7 @@ containing the same field as a virError in C, but cast to Python.</p>
|
||||
<p><code>make rpm</code></p>
|
||||
</li>
|
||||
<li><em>Failure to use the API for non-root users</em>
|
||||
<p>Large parts of the API may only be accessible with root priviledges,
|
||||
<p>Large parts of the API may only be accessible with root privileges,
|
||||
however the read only access to the xenstore data doesnot have to be
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dominfo"
|
||||
fails to run as an user, change the mode of the xenstore read-only socket
|
||||
@ -1652,7 +1652,7 @@ an existing bug, <a href="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?prod
|
||||
to post to the <a href="mailto:libvir-list@redhat.com">mailing-list</a>
|
||||
too, so that everybody working on the project can see it, thanks !</p>
|
||||
|
||||
<p>Some of the libvirt developpers may be found on IRC on the OFTC
|
||||
<p>Some of the libvirt developers may be found on IRC on the OFTC
|
||||
network. Use the settings:</p>
|
||||
<ul>
|
||||
<li>server: irc.oftc.net</li>
|
||||
@ -2897,7 +2897,7 @@ versioning, modelled after SunRPC.
|
||||
<p>
|
||||
When connecting to libvirt, some connections may require client
|
||||
authentication before allowing use of the APIs. The set of possible
|
||||
authentication mechanisms is administrator controlled, independant
|
||||
authentication mechanisms is administrator controlled, independent
|
||||
of applications using libvirt.
|
||||
</p>
|
||||
|
||||
@ -2957,7 +2957,7 @@ Default policy will still allow any application to connect to the RO socket.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The default policy can be overriden by the administrator using the PolicyKit
|
||||
The default policy can be overridden by the administrator using the PolicyKit
|
||||
master configuration file in <code>/etc/PolicyKit/PolicyKit.conf</code>. The
|
||||
<code>PolicyKit.conf(5)</code> manual page provides details on the syntax
|
||||
available. The two libvirt daemon actions available are named <code>org.libvirt.unix.monitor</code>
|
||||
@ -3055,7 +3055,7 @@ Plugin "gssapiv2" [loaded], API version: 4
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Next is is necessary for the adminsitrator of the Kerberos realm to issue a principle
|
||||
Next is is necessary for the administrator of the Kerberos realm to issue a principle
|
||||
for the libvirt server. There needs to be one principle per host running the libvirt
|
||||
daemon. The principle should be named <code>libvirt/full.hostname@KERBEROS.REALM</code>.
|
||||
This is typically done by running the <code>kadmin.local</code> command on the Kerberos
|
||||
|
@ -790,7 +790,7 @@
|
||||
<arg name='flags' type='int' info='Open flags'/>
|
||||
</function>
|
||||
<function name='virConnectOpenReadOnly' file='libvirt' module='libvirt'>
|
||||
<info>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</info>
|
||||
<info>This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</info>
|
||||
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html'/>
|
||||
<arg name='name' type='const char *' info='URI of the hypervisor'/>
|
||||
</function>
|
||||
@ -932,7 +932,7 @@
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to domain object, or NULL for Domain0'/>
|
||||
<arg name='info' type='virVcpuInfoPtr' info='pointer to an array of virVcpuInfo structures (OUT)'/>
|
||||
<arg name='maxinfo' type='int' info='number of structures in info array'/>
|
||||
<arg name='cpumaps' type='unsigned char *' info='pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.'/>
|
||||
<arg name='cpumaps' type='unsigned char *' info='pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cpumap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.'/>
|
||||
<arg name='maplen' type='int' info='number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).'/>
|
||||
</function>
|
||||
<function name='virDomainGetXMLDesc' file='libvirt' module='libvirt'>
|
||||
@ -1071,7 +1071,7 @@
|
||||
<return type='virErrorPtr' info='a pointer to the last error or NULL if none occurred.'/>
|
||||
</function>
|
||||
<function name='virGetVersion' file='libvirt' module='libvirt'>
|
||||
<info>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 availble, an error code will be returned and @typeVer will be 0.</info>
|
||||
<info>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.</info>
|
||||
<return type='int' info='-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.'/>
|
||||
<arg name='libVer' type='unsigned long *' info='return value for the library version (OUT)'/>
|
||||
<arg name='type' type='const char *' info='the type of connection/driver looked at'/>
|
||||
@ -1185,7 +1185,7 @@
|
||||
<arg name='maxCells' type='int' info='Maximum number of cells for which freeMems information can be returned.'/>
|
||||
</function>
|
||||
<function name='virNodeGetFreeMemory' file='libvirt' module='libvirt'>
|
||||
<info>provides the free memory availble on the Node</info>
|
||||
<info>provides the free memory available on the Node</info>
|
||||
<return type='unsigned long long' info='the available free memory in kilobytes or 0 in case of error'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
</function>
|
||||
@ -1223,14 +1223,14 @@
|
||||
<arg name='flags' type='unsigned int' info='future flags, use 0 for now'/>
|
||||
</function>
|
||||
<function name='virStoragePoolCreateXML' file='libvirt' module='libvirt'>
|
||||
<info>Create a new storage based on its XML description. The pool is not persitent, so its definition will disappear when it is destroyed, or if the host is restarted</info>
|
||||
<info>Create a new storage based on its XML description. The pool is not persistent, so its definition will disappear when it is destroyed, or if the host is restarted</info>
|
||||
<return type='virStoragePoolPtr' info='a virStoragePoolPtr object, or NULL if creation failed'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to hypervisor connection'/>
|
||||
<arg name='xmlDesc' type='const char *' info='XML description for new pool'/>
|
||||
<arg name='flags' type='unsigned int' info='future flags, use 0 for now'/>
|
||||
</function>
|
||||
<function name='virStoragePoolDefineXML' file='libvirt' module='libvirt'>
|
||||
<info>Define a new inactive storage pool based on its XML description. The pool is persitent, until explicitly undefined.</info>
|
||||
<info>Define a new inactive storage pool based on its XML description. The pool is persistent, until explicitly undefined.</info>
|
||||
<return type='virStoragePoolPtr' info='a virStoragePoolPtr object, or NULL if creation failed'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to hypervisor connection'/>
|
||||
<arg name='xml' type='const char *' info='XML description for new pool'/>
|
||||
|
@ -2065,7 +2065,7 @@
|
||||
<ref name='virConnectOpenReadOnly'/>
|
||||
<ref name='virNodeGetFreeMemory'/>
|
||||
</word>
|
||||
<word name='availble'>
|
||||
<word name='available'>
|
||||
<ref name='virGetVersion'/>
|
||||
<ref name='virNodeGetFreeMemory'/>
|
||||
</word>
|
||||
@ -2473,7 +2473,7 @@
|
||||
<ref name='_virConnectAuth'/>
|
||||
<ref name='virConnectOpenAuth'/>
|
||||
</word>
|
||||
<word name='cupmap'>
|
||||
<word name='cpumap'>
|
||||
<ref name='virDomainGetVcpus'/>
|
||||
</word>
|
||||
<word name='current'>
|
||||
@ -3282,7 +3282,7 @@
|
||||
<ref name='virResetLastError'/>
|
||||
<ref name='virSetErrorFunc'/>
|
||||
</word>
|
||||
<word name='libbrary'>
|
||||
<word name='library'>
|
||||
<ref name='virConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='library'>
|
||||
@ -3824,7 +3824,7 @@
|
||||
<ref name='virStoragePoolDestroy'/>
|
||||
<ref name='virStorageVolGetPath'/>
|
||||
</word>
|
||||
<word name='persitent'>
|
||||
<word name='persistent'>
|
||||
<ref name='virStoragePoolCreateXML'/>
|
||||
<ref name='virStoragePoolDefineXML'/>
|
||||
</word>
|
||||
|
@ -246,7 +246,7 @@
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
the menu box for developper's pages
|
||||
the menu box for developer's pages
|
||||
-->
|
||||
<!--
|
||||
the page title
|
||||
|
@ -173,7 +173,7 @@ proxyListenUnixSocket(const char *path) {
|
||||
|
||||
/*
|
||||
* Abstract socket do not hit the filesystem, way more secure and
|
||||
* garanteed to be atomic
|
||||
* guaranteed to be atomic
|
||||
*/
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sun_family = AF_UNIX;
|
||||
@ -782,7 +782,7 @@ usage(const char *progname) {
|
||||
/**
|
||||
* main:
|
||||
*
|
||||
* Check that we are running with root priviledges, initialize the
|
||||
* Check that we are running with root privileges, initialize the
|
||||
* connections to the daemon and or hypervisor, and then run the main loop
|
||||
*/
|
||||
int main(int argc, char **argv) {
|
||||
|
@ -731,7 +731,7 @@ __virConfReadFile(const char *filename)
|
||||
/**
|
||||
* __virConfReadMem:
|
||||
* @memory: pointer to the content of the configuration file
|
||||
* @len: lenght in byte
|
||||
* @len: length in byte
|
||||
*
|
||||
* Reads a configuration file loaded in memory. The string can be
|
||||
* zero terminated in which case @len can be 0
|
||||
|
@ -604,7 +604,7 @@ void *virHashSearch(virHashTablePtr table, virHashSearcher iter, const void *dat
|
||||
/**
|
||||
* virHashError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the connection level
|
||||
|
@ -52,7 +52,7 @@
|
||||
/*
|
||||
* TODO:
|
||||
* - use lock to protect against concurrent accesses ?
|
||||
* - use reference counting to garantee coherent pointer state ?
|
||||
* - use reference counting to guarantee coherent pointer state ?
|
||||
*/
|
||||
|
||||
static virDriverPtr virDriverTab[MAX_DRIVERS];
|
||||
@ -359,7 +359,7 @@ virLibDomainError(virDomainPtr domain, virErrorNumber error,
|
||||
/**
|
||||
* virLibNetworkError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the connection level
|
||||
@ -385,7 +385,7 @@ virLibNetworkError(virNetworkPtr network, virErrorNumber error,
|
||||
/**
|
||||
* virLibStoragePoolError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the connection level
|
||||
@ -411,7 +411,7 @@ virLibStoragePoolError(virStoragePoolPtr pool, virErrorNumber error,
|
||||
/**
|
||||
* virLibStorageVolError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the connection level
|
||||
@ -614,7 +614,7 @@ int __virStateActive(void) {
|
||||
* 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 availble, an error code will be returned and
|
||||
* @type is unknown or not available, an error code will be returned and
|
||||
* @typeVer will be 0.
|
||||
*
|
||||
* Returns -1 in case of failure, 0 otherwise, and values for @libVer and
|
||||
@ -685,7 +685,7 @@ do_open (const char *name,
|
||||
DEBUG("Probed %s", latest);
|
||||
/*
|
||||
* if running a xen kernel, give it priority over
|
||||
* QEmu emultation
|
||||
* QEmu emulation
|
||||
*/
|
||||
if (STREQ(latest, "xen:///"))
|
||||
use = latest;
|
||||
@ -851,7 +851,7 @@ virConnectOpen (const char *name)
|
||||
* @name: URI of the hypervisor
|
||||
*
|
||||
* This function should be called first to get a restricted connection to the
|
||||
* libbrary functionalities. The set of APIs usable are then restricted
|
||||
* library functionalities. The set of APIs usable are then restricted
|
||||
* on the available methods to control the domains.
|
||||
*
|
||||
* Returns a pointer to the hypervisor connection or NULL in case of error
|
||||
@ -2343,7 +2343,7 @@ virConnectGetCapabilities (virConnectPtr conn)
|
||||
* virNodeGetFreeMemory:
|
||||
* @conn: pointer to the hypervisor connection
|
||||
*
|
||||
* provides the free memory availble on the Node
|
||||
* provides the free memory available on the Node
|
||||
*
|
||||
* Returns the available free memory in kilobytes or 0 in case of error
|
||||
*/
|
||||
@ -2908,7 +2908,7 @@ virDomainPinVcpu(virDomainPtr domain, unsigned int vcpu,
|
||||
* @maxinfo: number of structures in info array
|
||||
* @cpumaps: pointer to an bit map of real CPUs for all vcpus of this
|
||||
* domain (in 8-bit bytes) (OUT)
|
||||
* If cpumaps is NULL, then no cupmap information is returned by the API.
|
||||
* If cpumaps is NULL, then no cpumap information is returned by the API.
|
||||
* It's assumed there is <maxinfo> cpumap in cpumaps array.
|
||||
* The memory allocated to cpumaps must be (maxinfo * maplen) bytes
|
||||
* (ie: calloc(maxinfo, maplen)).
|
||||
@ -2918,7 +2918,7 @@ virDomainPinVcpu(virDomainPtr domain, unsigned int vcpu,
|
||||
* underlying virtualization system (Xen...).
|
||||
*
|
||||
* Extract information about virtual CPUs of domain, store it in info array
|
||||
* and also in cpumaps if this pointer is'nt NULL.
|
||||
* and also in cpumaps if this pointer isn't NULL.
|
||||
*
|
||||
* Returns the number of info filled in case of success, -1 in case of failure.
|
||||
*/
|
||||
@ -4042,7 +4042,7 @@ virStoragePoolLookupByVolume(virStorageVolPtr vol)
|
||||
* @flags: future flags, use 0 for now
|
||||
*
|
||||
* Create a new storage based on its XML description. The
|
||||
* pool is not persitent, so its definition will disappear
|
||||
* pool is not persistent, so its definition will disappear
|
||||
* when it is destroyed, or if the host is restarted
|
||||
*
|
||||
* Returns a virStoragePoolPtr object, or NULL if creation failed
|
||||
@ -4081,7 +4081,7 @@ virStoragePoolCreateXML(virConnectPtr conn,
|
||||
* @flags: future flags, use 0 for now
|
||||
*
|
||||
* Define a new inactive storage pool based on its XML description. The
|
||||
* pool is persitent, until explicitly undefined.
|
||||
* pool is persistent, until explicitly undefined.
|
||||
*
|
||||
* Returns a virStoragePoolPtr object, or NULL if creation failed
|
||||
*/
|
||||
|
@ -106,7 +106,7 @@ xenProxyInit (void)
|
||||
/**
|
||||
* virProxyError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the xend daemon interface
|
||||
@ -243,7 +243,7 @@ retry:
|
||||
|
||||
/*
|
||||
* Abstract socket do not hit the filesystem, way more secure and
|
||||
* garanteed to be atomic
|
||||
* guaranteed to be atomic
|
||||
*/
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sun_family = AF_UNIX;
|
||||
@ -298,7 +298,7 @@ virProxyCloseClientSocket(int fd) {
|
||||
* virProxyReadClientSocket:
|
||||
* @fd: the socket
|
||||
* @buffer: the target memory area
|
||||
* @len: the lenght in bytes
|
||||
* @len: the length in bytes
|
||||
* @quiet: quiet access
|
||||
*
|
||||
* Process a read from a client socket
|
||||
@ -335,7 +335,7 @@ retry:
|
||||
* virProxyWriteClientSocket:
|
||||
* @fd: the socket
|
||||
* @data: the data
|
||||
* @len: the lenght of data in bytes
|
||||
* @len: the length of data in bytes
|
||||
*
|
||||
* Process a read from a client socket
|
||||
*/
|
||||
|
@ -3980,7 +3980,7 @@ remoteAuthSASL (virConnectPtr conn, struct private_data *priv, int in_open,
|
||||
|
||||
/* Loop-the-loop...
|
||||
* Even if the server has completed, the client must *always* do at least one step
|
||||
* in this loop to verify the server isn't lieing about something. Mutual auth */
|
||||
* in this loop to verify the server isn't lying about something. Mutual auth */
|
||||
for (;;) {
|
||||
restep:
|
||||
err = sasl_client_step(saslconn,
|
||||
|
16
src/virsh.c
16
src/virsh.c
@ -96,7 +96,7 @@ typedef enum {
|
||||
} vshErrorLevel;
|
||||
|
||||
/*
|
||||
* The error handler for virtsh
|
||||
* The error handler for virsh
|
||||
*/
|
||||
static void
|
||||
virshErrorHandler(void *unused, virErrorPtr error)
|
||||
@ -3615,7 +3615,7 @@ static int cmdVolSize(const char *data, unsigned long long *val)
|
||||
return -1;
|
||||
|
||||
if (end && *end) {
|
||||
/* Delibrate fallthrough cases here :-) */
|
||||
/* Deliberate fallthrough cases here :-) */
|
||||
switch (*end) {
|
||||
case 'T':
|
||||
*val *= 1024;
|
||||
@ -5464,13 +5464,13 @@ vshCommandOptDomainBy(vshControl * ctl, vshCmd * cmd, const char *optname,
|
||||
}
|
||||
/* try it by UUID */
|
||||
if (dom==NULL && (flag & VSH_BYUUID) && strlen(n)==VIR_UUID_STRING_BUFLEN-1) {
|
||||
vshDebug(ctl, 5, "%s: <%s> tring as domain UUID\n",
|
||||
vshDebug(ctl, 5, "%s: <%s> trying as domain UUID\n",
|
||||
cmd->def->name, optname);
|
||||
dom = virDomainLookupByUUIDString(ctl->conn, n);
|
||||
}
|
||||
/* try it by NAME */
|
||||
if (dom==NULL && (flag & VSH_BYNAME)) {
|
||||
vshDebug(ctl, 5, "%s: <%s> tring as domain NAME\n",
|
||||
vshDebug(ctl, 5, "%s: <%s> trying as domain NAME\n",
|
||||
cmd->def->name, optname);
|
||||
dom = virDomainLookupByName(ctl->conn, n);
|
||||
}
|
||||
@ -5501,13 +5501,13 @@ vshCommandOptNetworkBy(vshControl * ctl, vshCmd * cmd, const char *optname,
|
||||
|
||||
/* try it by UUID */
|
||||
if (network==NULL && (flag & VSH_BYUUID) && strlen(n)==VIR_UUID_STRING_BUFLEN-1) {
|
||||
vshDebug(ctl, 5, "%s: <%s> tring as network UUID\n",
|
||||
vshDebug(ctl, 5, "%s: <%s> trying as network UUID\n",
|
||||
cmd->def->name, optname);
|
||||
network = virNetworkLookupByUUIDString(ctl->conn, n);
|
||||
}
|
||||
/* try it by NAME */
|
||||
if (network==NULL && (flag & VSH_BYNAME)) {
|
||||
vshDebug(ctl, 5, "%s: <%s> tring as network NAME\n",
|
||||
vshDebug(ctl, 5, "%s: <%s> trying as network NAME\n",
|
||||
cmd->def->name, optname);
|
||||
network = virNetworkLookupByName(ctl->conn, n);
|
||||
}
|
||||
@ -5670,7 +5670,7 @@ vshCommandGetToken(vshControl * ctl, char *str, char **end, char **res)
|
||||
if (p == NULL || *p == '\0')
|
||||
return VSH_TK_END;
|
||||
if (*p == ';') {
|
||||
*end = ++p; /* = \0 or begi of next command */
|
||||
*end = ++p; /* = \0 or begin of next command */
|
||||
return VSH_TK_END;
|
||||
}
|
||||
while (*p) {
|
||||
@ -5834,7 +5834,7 @@ vshCommandParse(vshControl * ctl, char *cmdstr)
|
||||
break;
|
||||
}
|
||||
|
||||
/* commad parsed -- allocate new struct for the command */
|
||||
/* command parsed -- allocate new struct for the command */
|
||||
if (cmd) {
|
||||
vshCmd *c = vshMalloc(ctl, sizeof(vshCmd));
|
||||
|
||||
|
@ -3171,7 +3171,7 @@ xenHypervisorPinVcpu(virDomainPtr domain, unsigned int vcpu,
|
||||
* @info: pointer to an array of virVcpuInfo structures (OUT)
|
||||
* @maxinfo: number of structures in info array
|
||||
* @cpumaps: pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT)
|
||||
* If cpumaps is NULL, then no cupmap information is returned by the API.
|
||||
* If cpumaps is NULL, then no cpumap information is returned by the API.
|
||||
* It's assumed there is <maxinfo> cpumap in cpumaps array.
|
||||
* The memory allocated to cpumaps must be (maxinfo * maplen) bytes
|
||||
* (ie: calloc(maxinfo, maplen)).
|
||||
|
@ -162,7 +162,7 @@ struct xend {
|
||||
/**
|
||||
* virXendError:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @info: extra information string
|
||||
*
|
||||
* Handle an error at the xend daemon interface
|
||||
@ -183,7 +183,7 @@ virXendError(virConnectPtr conn, virErrorNumber error, const char *info)
|
||||
/**
|
||||
* virXendErrorInt:
|
||||
* @conn: the connection if available
|
||||
* @error: the error noumber
|
||||
* @error: the error number
|
||||
* @val: extra integer information
|
||||
*
|
||||
* Handle an error at the xend daemon interface
|
||||
@ -3035,7 +3035,7 @@ xenDaemonDomainPinVcpu(virDomainPtr domain, unsigned int vcpu,
|
||||
* @info: pointer to an array of virVcpuInfo structures (OUT)
|
||||
* @maxinfo: number of structures in info array
|
||||
* @cpumaps: pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT)
|
||||
* If cpumaps is NULL, then no cupmap information is returned by the API.
|
||||
* If cpumaps is NULL, then no cpumap information is returned by the API.
|
||||
* It's assumed there is <maxinfo> cpumap in cpumaps array.
|
||||
* The memory allocated to cpumaps must be (maxinfo * maplen) bytes
|
||||
* (ie: calloc(maxinfo, maplen)).
|
||||
@ -3044,7 +3044,7 @@ xenDaemonDomainPinVcpu(virDomainPtr domain, unsigned int vcpu,
|
||||
* underlying virtualization system (Xen...).
|
||||
*
|
||||
* Extract information about virtual CPUs of domain, store it in info array
|
||||
* and also in cpumaps if this pointer is'nt NULL.
|
||||
* and also in cpumaps if this pointer isn't NULL.
|
||||
*
|
||||
* Returns the number of info filled in case of success, -1 in case of failure.
|
||||
*/
|
||||
|
@ -1294,7 +1294,7 @@ virDomainParseXMLIfDesc(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
* @xendConfigVersion: xend configuration file format
|
||||
*
|
||||
* Parse the XML description and turn it into the xend sexp needed to
|
||||
* create the comain. This is a temporary interface as the S-Expr interface
|
||||
* create the domain. This is a temporary interface as the S-Expr interface
|
||||
* will be replaced by XML-RPC in the future. However the XML format should
|
||||
* stay valid over time.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user