提交 42fea976 编写于 作者: D Daniel Veillard

* docs/news.html*: update with infos for 0.6.0

* docs/*: regenerated some data too
daniel
上级 cf1b0f86
Sat Jan 31 10:09:08 CET 2009 Daniel Veillard <veillard@redhat.com>
* docs/news.html*: update with infos for 0.6.0
* docs/*: regenerated some data too
Fri Jan 30 22:57:34 +0100 2009 Jim Meyering <meyering@redhat.com>
tests: diagnose open failure
......
......@@ -5,6 +5,83 @@
http://libvirt.org/news.html
0.6.0: Jan 31 2009:
- New features: thread safety of the API and event handling (Daniel
Berrange), allow QEmu domains to survive daemon restart (Guido
Gnther), extended logging capabilities, support copy-on-write
storage volumes (Daniel Berrange), support of storage cache
control options for QEmu/KVM (Daniel Berrange)
- Portability: fix old DBus API problem, Debian portability fix
(Daniel Berrange), fix distcheck (Jim Meyering), build in
debug mode (Jim Meyering), libnuma API portability (Jim Meyering),
many portability fixes pointed by Solaris (John Levon), non-gcc
portability fixes (John Levon), various include fixes (Jim Meyering),
various Windows and Mingw portability fixes (Daniel Berrange),
solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel
Berrange)
- Documentation: typo fixes (Richard Jones), logging support,
vnc keymap attributes (Guido Gnther), HACKING file updates
(Jim Meyering), new PCI passthrough format, libvirt-qpid and
UML driver documentation (Daniel Berrange), provide RNG schemas
for all XML formats used in libvirt APIs (Daniel Berrange),
- Bug fixes: segfault on virtual network without bridge name (Cole
Robinson), various locking fixes (Cole Robinson), fix serial
and parallel devices on tcp/unix/telnet (Guido Gnther), leak
in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC),
missing check in read-only connections (Daniel Berrange),
OpenVZ crash and mutex fixes (Anton Protopopov), couple of
daemon bug fixes (John Levon), OpenVZ MAC addresses generation
(Evgeniy Sokolov), poll call initialization fix (Daniel Berrange),
various Xen driver fixes (John Levon), segfault on device
back compat (Cole Robinson), couple Xen bug fixes coming from
RHEL (Markus Armbruster), buffer overflow in libvirt proxy
(rasputin@email.ru), vnc port report (John Levon), repair save
and restore on recent KVM versions (Daniel Berrange), Xen
cpu pinning XML fix (John Levon), various xen driver fixes
(Daniel Berrange), some memory leak fixes (Daniel Berrange)
- Improvements: driver infrastructure and locking (Daniel Berrange),
Test driver infrastructure (Daniel Berrange), parallelism in the
daemon and associated config (Daniel Berrange), virsh help cleanups
(Jim Meyering), logrotate daemon logs (Guido Gnther), more
regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim),
add --version flag to daemon (Dave Allan), memory consumption
cleanup (Dave Allan), QEmu pid file and XML states for daemon
restart (Guido Gnther), gnulib updates (Jim Meyering and
Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic
internal thread API (Daniel Berrange), RHEL-5 specific Xen
configure option and code (Markus Armbruster), save domain
state as string in status file (Guido Gnther), add locking
to all API entry points (Daniel Berrange), new ref counting APIs
(Daniel Berrange), IP address for Xen bridges (John Levon),
driver format for disk file types (Daniel Berrange), improve
QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies
for Xen fully virt (John Levon), support VNC password settings
for QEmu/KVM (Daniel Berrange), qemu driver version reporting
(Daniel Berrange)
- Cleanups: converting linked lists to arrays (Daniel Berrange),
daemon RPC handling refactoring (Daniel Berrange), strings cleanups
(Jim Meyering), gethostby* cleanup and test (Jim Meyering), some
code fixes (Dave Allan), various code cleanup (Jim Meyering),
virsh argument handling cleanup (Jim Meyering), virAsprintf
cleanup replacement (Guido Gnther), QEmu monitor reads (Cole
Robinson), Makefile cleanups (Guido Gnther), Xen code cleanups
(John Levon), revamp of ELF export scripts (John Levon), domain
event callback args (John Levon), enforce use of pid_t (John Levon),
virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings
(Jim Meyering), add virKillProcess (Guido Gnther), add
virGetHostname (David Lutterkort), add flags argument to the full
XML parsing stack (Guido Gnther), various daemon code cleanups
(Guido Gnther), handling of daemon missing config file (Jim
Meyering), rpcgen invocation cleanup (Richard Jones), devhelp
builkd makefile cleanups (John Levon), update error handling for
threading (Daniel Berrange), remove all non-rentrant POSIX calls
usage (Daniel Berrange), many small cleanups (Jim Meyering and
Daniel Berrange), examples Makefile generator (John Levon),
mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM
error paths (Jim Meyering), temporary fix fro valgrind on lxc
(Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)
0.5.1: Dec 4 2008:
- Portability: fix missing dep in spec file, fix compilation with new
NUMA libraries (Daniel Berrange), udev compatibility for RHEL (Chris
......
此差异已折叠。
......@@ -184,15 +184,15 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>user provided data for the error callback</td></tr><tr><td><span class="term"><i><tt>error</tt></i>:</span></td><td>the error being raised.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnCopyLastError"/>virConnCopyLastError ()</h3><pre class="programlisting">int virConnCopyLastError (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to)<br/>
</pre><p>Copy the content of the last error caught on that connection One will need to free the result with virResetError()</p>
</pre><p>Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError()</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>target to receive the copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no error was found and the error code otherwise and -1 in case of parameter error.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnGetLastError"/>virConnGetLastError ()</h3><pre class="programlisting"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> virConnGetLastError (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
</pre><p>Provide a pointer to the last error caught on that connection Simpler but may not be suitable for multithreaded accesses, in which case use virConnCopyLastError()</p>
</pre><p>Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the last error or NULL if none occurred.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnResetLastError"/>virConnResetLastError ()</h3><pre class="programlisting">void virConnResetLastError (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
</pre><p>Reset the last error caught on that connection</p>
</pre><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently. Reset the last error caught on that connection</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></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnSetErrorFunc"/>virConnSetErrorFunc ()</h3><pre class="programlisting">void virConnSetErrorFunc (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> void * userData, <br/> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler)<br/>
......@@ -200,7 +200,7 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<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>userData</tt></i>:</span></td><td>pointer to the user data provided in the handler callback</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the function to get called in case of error or NULL</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virCopyLastError"/>virCopyLastError ()</h3><pre class="programlisting">int virCopyLastError (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to)<br/>
</pre><p>Copy the content of the last error caught at the library level One will need to free the result with virResetError()</p>
</pre><p>Copy the content of the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. One will need to free the result with virResetError()</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>target to receive the copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no error was found and the error code otherwise and -1 in case of parameter error.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virDefaultErrorFunc"/>virDefaultErrorFunc ()</h3><pre class="programlisting">void virDefaultErrorFunc (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)<br/>
......@@ -208,7 +208,7 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>pointer to the error.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virGetLastError"/>virGetLastError ()</h3><pre class="programlisting"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> virGetLastError (void)<br/>
</pre><p>Provide a pointer to the last error caught at the library level Simpler but may not be suitable for multithreaded accesses, in which case use virCopyLastError()</p>
</pre><p>Provide a pointer to the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the last error or NULL if none occurred.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virResetError"/>virResetError ()</h3><pre class="programlisting">void virResetError (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)<br/>
......@@ -216,7 +216,7 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>err</tt></i>:</span></td><td>pointer to the <a href="libvirt-virterror.html#virError">virError</a> to clean up</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virResetLastError"/>virResetLastError ()</h3><pre class="programlisting">void virResetLastError (void)<br/>
</pre><p>Reset the last error caught at the library level.</p>
</pre><p>Reset the last error caught at the library level. The error object is kept in thread local storage, so separate threads can safely access this concurrently, only resetting their own error object.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virSetErrorFunc"/>virSetErrorFunc ()</h3><pre class="programlisting">void virSetErrorFunc (void * userData, <br/> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler)<br/>
......
此差异已折叠。
此差异已折叠。
......@@ -173,17 +173,18 @@
<exports symbol='virStoragePoolGetConnect' type='function'/>
<exports symbol='virConnectGetVersion' type='function'/>
<exports symbol='virDomainFree' type='function'/>
<exports symbol='virStorageVolRef' type='function'/>
<exports symbol='virStoragePoolGetName' type='function'/>
<exports symbol='virDomainSetAutostart' type='function'/>
<exports symbol='virStoragePoolDefineXML' type='function'/>
<exports symbol='virStorageVolLookupByPath' type='function'/>
<exports symbol='virStorageVolLookupByName' type='function'/>
<exports symbol='virDomainCreateLinux' type='function'/>
<exports symbol='virNetworkCreate' type='function'/>
<exports symbol='virDomainSetMaxMemory' type='function'/>
<exports symbol='virEventRegisterImpl' type='function'/>
<exports symbol='virDomainMigrate' type='function'/>
<exports symbol='virDomainSuspend' type='function'/>
<exports symbol='virNetworkCreate' type='function'/>
<exports symbol='virDomainCreateLinux' type='function'/>
<exports symbol='virNodeDeviceGetXMLDesc' type='function'/>
<exports symbol='virEventUpdateHandleFunc' type='function'/>
<exports symbol='virDomainDestroy' type='function'/>
......@@ -226,6 +227,7 @@
<exports symbol='virConnectGetHostname' type='function'/>
<exports symbol='virEventRemoveTimeoutFunc' type='function'/>
<exports symbol='virDomainGetName' type='function'/>
<exports symbol='virStoragePoolRef' type='function'/>
<exports symbol='virNetworkGetXMLDesc' type='function'/>
<exports symbol='virConnectNumOfStoragePools' type='function'/>
<exports symbol='virNetworkGetName' type='function'/>
......@@ -244,6 +246,7 @@
<exports symbol='virDomainMemoryPeek' type='function'/>
<exports symbol='virNetworkLookupByUUID' type='function'/>
<exports symbol='virConnectListDefinedNetworks' type='function'/>
<exports symbol='virConnectRef' type='function'/>
<exports symbol='virDomainGetUUID' type='function'/>
<exports symbol='virNetworkCreateXML' type='function'/>
<exports symbol='virDomainGetVcpus' type='function'/>
......@@ -251,6 +254,7 @@
<exports symbol='virStoragePoolGetInfo' type='function'/>
<exports symbol='virDomainResume' type='function'/>
<exports symbol='virNodeListDevices' type='function'/>
<exports symbol='virNetworkRef' type='function'/>
<exports symbol='virStoragePoolRefresh' type='function'/>
<exports symbol='virConnectNumOfDefinedDomains' type='function'/>
<exports symbol='virStorageVolLookupByKey' type='function'/>
......@@ -292,7 +296,9 @@
<exports symbol='virNodeDeviceGetParent' type='function'/>
<exports symbol='virConnectOpen' type='function'/>
<exports symbol='virDomainCreateXML' type='function'/>
<exports symbol='virNodeDeviceRef' type='function'/>
<exports symbol='virDomainSetVcpus' type='function'/>
<exports symbol='virDomainRef' type='function'/>
<exports symbol='virConnectDomainEventRegister' type='function'/>
<exports symbol='virDomainGetID' type='function'/>
<exports symbol='virDomainBlockPeek' type='function'/>
......@@ -764,18 +770,18 @@ see note above'/>
<typedef name='virVcpuState' file='libvirt' type='enum'/>
<variable name='virConnectAuthPtrDefault' file='libvirt' type='virConnectAuthPtr'/>
<function name='virConnCopyLastError' file='virterror' module='virterror'>
<info>Copy the content of the last error caught on that connection One will need to free the result with virResetError()</info>
<info>Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError()</info>
<return type='int' info='0 if no error was found and the error code otherwise and -1 in case of parameter error.'/>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
<arg name='to' type='virErrorPtr' info='target to receive the copy'/>
</function>
<function name='virConnGetLastError' file='virterror' module='virterror'>
<info>Provide a pointer to the last error caught on that connection Simpler but may not be suitable for multithreaded accesses, in which case use virConnCopyLastError()</info>
<info>Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability.</info>
<return type='virErrorPtr' info='a pointer to the last error or NULL if none occurred.'/>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
</function>
<function name='virConnResetLastError' file='virterror' module='virterror'>
<info>Reset the last error caught on that connection</info>
<info>The error object is kept in thread local storage, so separate threads can safely access this concurrently. Reset the last error caught on that connection</info>
<return type='void'/>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
</function>
......@@ -814,8 +820,8 @@ see note above'/>
<arg name='cb' type='virConnectDomainEventCallback' info='callback to the function handling domain events'/>
</function>
<function name='virConnectDomainEventRegister' file='libvirt' module='libvirt'>
<info>Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events</info>
<return type='int' info='0 on success, -1 on failure'/>
<info>Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The virDomainPtr object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback</info>
<return type='int' info='it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure'/>
<arg name='conn' type='virConnectPtr' info='pointer to the connection'/>
<arg name='cb' type='virConnectDomainEventCallback' info='callback to the function handling domain events'/>
<arg name='opaque' type='void *' info='opaque data to pass on to the callback'/>
......@@ -950,8 +956,13 @@ see note above'/>
<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>
<function name='virConnectRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the connection. For each additional call to this method, there shall be a corresponding call to virConnectClose to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a connection would increment the reference count.</info>
<return type='int' info=''/>
<arg name='conn' type='virConnectPtr' info='the connection to hold a reference on'/>
</function>
<function name='virCopyLastError' file='virterror' module='virterror'>
<info>Copy the content of the last error caught at the library level One will need to free the result with virResetError()</info>
<info>Copy the content of the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. One will need to free the result with virResetError()</info>
<return type='int' info='0 if no error was found and the error code otherwise and -1 in case of parameter error.'/>
<arg name='to' type='virErrorPtr' info='target to receive the copy'/>
</function>
......@@ -1179,6 +1190,11 @@ see note above'/>
<arg name='domain' type='virDomainPtr' info='a domain object'/>
<arg name='flags' type='unsigned int' info='extra flags for the reboot operation, not used yet'/>
</function>
<function name='virDomainRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the domain. For each additional call to this method, there shall be a corresponding call to virDomainFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a domain would increment the reference count.</info>
<return type='int' info=''/>
<arg name='domain' type='virDomainPtr' info=''/>
</function>
<function name='virDomainRestore' file='libvirt' module='libvirt'>
<info>This method will restore a domain saved to disk by virDomainSave().</info>
<return type='int' info='0 in case of success and -1 in case of failure.'/>
......@@ -1317,7 +1333,7 @@ see note above'/>
<arg name='opaque' type='void *' info=''/>
</functype>
<function name='virGetLastError' file='virterror' module='virterror'>
<info>Provide a pointer to the last error caught at the library level Simpler but may not be suitable for multithreaded accesses, in which case use virCopyLastError()</info>
<info>Provide a pointer to the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently.</info>
<return type='virErrorPtr' info='a pointer to the last error or NULL if none occurred.'/>
</function>
<function name='virGetVersion' file='libvirt' module='libvirt'>
......@@ -1415,6 +1431,11 @@ see note above'/>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
<arg name='uuidstr' type='const char *' info='the string UUID for the network'/>
</function>
<function name='virNetworkRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the network. For each additional call to this method, there shall be a corresponding call to virNetworkFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a network would increment the reference count.</info>
<return type='int' info=''/>
<arg name='network' type='virNetworkPtr' info=''/>
</function>
<function name='virNetworkSetAutostart' file='libvirt' module='libvirt'>
<info>Configure the network to be automatically started when the host machine boots.</info>
<return type='int' info='-1 in case of error, 0 in case of success'/>
......@@ -1465,6 +1486,11 @@ see note above'/>
<return type='int' info='the number of capabilities supported by the device.'/>
<arg name='dev' type='virNodeDevicePtr' info='the device'/>
</function>
<function name='virNodeDeviceRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the dev. For each additional call to this method, there shall be a corresponding call to virNodeDeviceFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a dev would increment the reference count.</info>
<return type='int' info=''/>
<arg name='dev' type='virNodeDevicePtr' info=''/>
</function>
<function name='virNodeGetCellsFreeMemory' file='libvirt' module='libvirt'>
<info>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.</info>
<return type='int' info='the number of entries filled in freeMems, or -1 in case of error.'/>
......@@ -1506,7 +1532,7 @@ see note above'/>
<arg name='err' type='virErrorPtr' info='pointer to the virError to clean up'/>
</function>
<function name='virResetLastError' file='virterror' module='virterror'>
<info>Reset the last error caught at the library level.</info>
<info>Reset the last error caught at the library level. The error object is kept in thread local storage, so separate threads can safely access this concurrently, only resetting their own error object.</info>
<return type='void'/>
</function>
<function name='virSetErrorFunc' file='virterror' module='virterror'>
......@@ -1632,6 +1658,11 @@ see note above'/>
<return type='int' info='the number of storage pools, or -1 on failure'/>
<arg name='pool' type='virStoragePoolPtr' info='pointer to storage pool'/>
</function>
<function name='virStoragePoolRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the pool. For each additional call to this method, there shall be a corresponding call to virStoragePoolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a pool would increment the reference count.</info>
<return type='int' info=''/>
<arg name='pool' type='virStoragePoolPtr' info=''/>
</function>
<function name='virStoragePoolRefresh' file='libvirt' module='libvirt'>
<info>Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer</info>
<return type='int' info='0 if the volume list was refreshed, -1 on failure'/>
......@@ -1717,5 +1748,10 @@ see note above'/>
<arg name='conn' type='virConnectPtr' info='pointer to hypervisor connection'/>
<arg name='path' type='const char *' info='locally unique path'/>
</function>
<function name='virStorageVolRef' file='libvirt' module='libvirt'>
<info>Increment the reference count on the vol. For each additional call to this method, there shall be a corresponding call to virStorageVolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a vol would increment the reference count.</info>
<return type='int' info=''/>
<arg name='vol' type='virStorageVolPtr' info=''/>
</function>
</symbols>
</api>
此差异已折叠。
......@@ -76,6 +76,76 @@
<p>Here is the list of official releases, however since it is early on in the
development of libvirt, it is preferable when possible to just use the <a href="downloads.html">CVS version or snapshot</a>, contact the mailing list
and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progress.</p>
<h3>0.6.0: Jan 31 2009</h3>
<ul><li>New features: thread safety of the API and event handling (Daniel
Berrange), allow QEmu domains to survive daemon restart (Guido
Gnther), extended logging capabilities, support copy-on-write
storage volumes (Daniel Berrange), support of storage cache
control options for QEmu/KVM (Daniel Berrange)</li><li>Portability: fix old DBus API problem, Debian portability fix
(Daniel Berrange), fix distcheck (Jim Meyering), build in
debug mode (Jim Meyering), libnuma API portability (Jim Meyering),
many portability fixes pointed by Solaris (John Levon), non-gcc
portability fixes (John Levon), various include fixes (Jim Meyering),
various Windows and Mingw portability fixes (Daniel Berrange),
solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel
Berrange)</li><li>Documentation: typo fixes (Richard Jones), logging support,
vnc keymap attributes (Guido Gnther), HACKING file updates
(Jim Meyering), new PCI passthrough format, libvirt-qpid and
UML driver documentation (Daniel Berrange), provide RNG schemas
for all XML formats used in libvirt APIs (Daniel Berrange), </li><li>Bug fixes: segfault on virtual network without bridge name (Cole
Robinson), various locking fixes (Cole Robinson), fix serial
and parallel devices on tcp/unix/telnet (Guido Gnther), leak
in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC),
missing check in read-only connections (Daniel Berrange),
OpenVZ crash and mutex fixes (Anton Protopopov), couple of
daemon bug fixes (John Levon), OpenVZ MAC addresses generation
(Evgeniy Sokolov), poll call initialization fix (Daniel Berrange),
various Xen driver fixes (John Levon), segfault on device
back compat (Cole Robinson), couple Xen bug fixes coming from
RHEL (Markus Armbruster), buffer overflow in libvirt proxy
(rasputin@email.ru), vnc port report (John Levon), repair save
and restore on recent KVM versions (Daniel Berrange), Xen
cpu pinning XML fix (John Levon), various xen driver fixes
(Daniel Berrange), some memory leak fixes (Daniel Berrange)</li><li>Improvements: driver infrastructure and locking (Daniel Berrange),
Test driver infrastructure (Daniel Berrange), parallelism in the
daemon and associated config (Daniel Berrange), virsh help cleanups
(Jim Meyering), logrotate daemon logs (Guido Gnther), more
regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim),
add --version flag to daemon (Dave Allan), memory consumption
cleanup (Dave Allan), QEmu pid file and XML states for daemon
restart (Guido Gnther), gnulib updates (Jim Meyering and
Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic
internal thread API (Daniel Berrange), RHEL-5 specific Xen
configure option and code (Markus Armbruster), save domain
state as string in status file (Guido Gnther), add locking
to all API entry points (Daniel Berrange), new ref counting APIs
(Daniel Berrange), IP address for Xen bridges (John Levon),
driver format for disk file types (Daniel Berrange), improve
QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies
for Xen fully virt (John Levon), support VNC password settings
for QEmu/KVM (Daniel Berrange), qemu driver version reporting
(Daniel Berrange) </li><li>Cleanups: converting linked lists to arrays (Daniel Berrange),
daemon RPC handling refactoring (Daniel Berrange), strings cleanups
(Jim Meyering), gethostby* cleanup and test (Jim Meyering), some
code fixes (Dave Allan), various code cleanup (Jim Meyering),
virsh argument handling cleanup (Jim Meyering), virAsprintf
cleanup replacement (Guido Gnther), QEmu monitor reads (Cole
Robinson), Makefile cleanups (Guido Gnther), Xen code cleanups
(John Levon), revamp of ELF export scripts (John Levon), domain
event callback args (John Levon), enforce use of pid_t (John Levon),
virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings
(Jim Meyering), add virKillProcess (Guido Gnther), add
virGetHostname (David Lutterkort), add flags argument to the full
XML parsing stack (Guido Gnther), various daemon code cleanups
(Guido Gnther), handling of daemon missing config file (Jim
Meyering), rpcgen invocation cleanup (Richard Jones), devhelp
builkd makefile cleanups (John Levon), update error handling for
threading (Daniel Berrange), remove all non-rentrant POSIX calls
usage (Daniel Berrange), many small cleanups (Jim Meyering and
Daniel Berrange), examples Makefile generator (John Levon),
mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM
error paths (Jim Meyering), temporary fix fro valgrind on lxc
(Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)</li></ul>
<h3>0.5.1: Dec 4 2008</h3>
<ul><li>Portability: fix missing dep in spec file, fix compilation with new
NUMA libraries (Daniel Berrange), udev compatibility for RHEL (Chris
......
......@@ -5,6 +5,83 @@
<p>Here is the list of official releases, however since it is early on in the
development of libvirt, it is preferable when possible to just use the <a href="downloads.html">CVS version or snapshot</a>, contact the mailing list
and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progress.</p>
<h3>0.6.0: Jan 31 2009</h3>
<ul>
<li>New features: thread safety of the API and event handling (Daniel
Berrange), allow QEmu domains to survive daemon restart (Guido
Günther), extended logging capabilities, support copy-on-write
storage volumes (Daniel Berrange), support of storage cache
control options for QEmu/KVM (Daniel Berrange)</li>
<li>Portability: fix old DBus API problem, Debian portability fix
(Daniel Berrange), fix distcheck (Jim Meyering), build in
debug mode (Jim Meyering), libnuma API portability (Jim Meyering),
many portability fixes pointed by Solaris (John Levon), non-gcc
portability fixes (John Levon), various include fixes (Jim Meyering),
various Windows and Mingw portability fixes (Daniel Berrange),
solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel
Berrange)</li>
<li>Documentation: typo fixes (Richard Jones), logging support,
vnc keymap attributes (Guido Günther), HACKING file updates
(Jim Meyering), new PCI passthrough format, libvirt-qpid and
UML driver documentation (Daniel Berrange), provide RNG schemas
for all XML formats used in libvirt APIs (Daniel Berrange), </li>
<li>Bug fixes: segfault on virtual network without bridge name (Cole
Robinson), various locking fixes (Cole Robinson), fix serial
and parallel devices on tcp/unix/telnet (Guido Günther), leak
in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC),
missing check in read-only connections (Daniel Berrange),
OpenVZ crash and mutex fixes (Anton Protopopov), couple of
daemon bug fixes (John Levon), OpenVZ MAC addresses generation
(Evgeniy Sokolov), poll call initialization fix (Daniel Berrange),
various Xen driver fixes (John Levon), segfault on device
back compat (Cole Robinson), couple Xen bug fixes coming from
RHEL (Markus Armbruster), buffer overflow in libvirt proxy
(rasputin@email.ru), vnc port report (John Levon), repair save
and restore on recent KVM versions (Daniel Berrange), Xen
cpu pinning XML fix (John Levon), various xen driver fixes
(Daniel Berrange), some memory leak fixes (Daniel Berrange)</li>
<li>Improvements: driver infrastructure and locking (Daniel Berrange),
Test driver infrastructure (Daniel Berrange), parallelism in the
daemon and associated config (Daniel Berrange), virsh help cleanups
(Jim Meyering), logrotate daemon logs (Guido Günther), more
regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim),
add --version flag to daemon (Dave Allan), memory consumption
cleanup (Dave Allan), QEmu pid file and XML states for daemon
restart (Guido Günther), gnulib updates (Jim Meyering and
Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic
internal thread API (Daniel Berrange), RHEL-5 specific Xen
configure option and code (Markus Armbruster), save domain
state as string in status file (Guido Günther), add locking
to all API entry points (Daniel Berrange), new ref counting APIs
(Daniel Berrange), IP address for Xen bridges (John Levon),
driver format for disk file types (Daniel Berrange), improve
QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies
for Xen fully virt (John Levon), support VNC password settings
for QEmu/KVM (Daniel Berrange), qemu driver version reporting
(Daniel Berrange) </li>
<li>Cleanups: converting linked lists to arrays (Daniel Berrange),
daemon RPC handling refactoring (Daniel Berrange), strings cleanups
(Jim Meyering), gethostby* cleanup and test (Jim Meyering), some
code fixes (Dave Allan), various code cleanup (Jim Meyering),
virsh argument handling cleanup (Jim Meyering), virAsprintf
cleanup replacement (Guido Günther), QEmu monitor reads (Cole
Robinson), Makefile cleanups (Guido Günther), Xen code cleanups
(John Levon), revamp of ELF export scripts (John Levon), domain
event callback args (John Levon), enforce use of pid_t (John Levon),
virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings
(Jim Meyering), add virKillProcess (Guido Günther), add
virGetHostname (David Lutterkort), add flags argument to the full
XML parsing stack (Guido Günther), various daemon code cleanups
(Guido Günther), handling of daemon missing config file (Jim
Meyering), rpcgen invocation cleanup (Richard Jones), devhelp
builkd makefile cleanups (John Levon), update error handling for
threading (Daniel Berrange), remove all non-rentrant POSIX calls
usage (Daniel Berrange), many small cleanups (Jim Meyering and
Daniel Berrange), examples Makefile generator (John Levon),
mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM
error paths (Jim Meyering), temporary fix fro valgrind on lxc
(Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)</li>
</ul>
<h3>0.5.1: Dec 4 2008</h3>
<ul>
<li>Portability: fix missing dep in spec file, fix compilation with new
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册