提交 6d1ef709 编写于 作者: D Daniel Veillard

* NEWS configure.in doc//* include/libvirt/libvirt.h

  include/libvirt/libvirt.h.in: preparing release of 0.1.4,
  regenerated docs, fixed a few things
* src/proxy_internal.c src/test.c src/xend_internal.c:
  a few trivial fixes
Daniel
上级 9425a3e6
Wed Aug 16 19:07:52 CEST 2006 Daniel Veillard <veillard@redhat.com>
* NEWS configure.in doc//* include/libvirt/libvirt.h
include/libvirt/libvirt.h.in: preparing release of 0.1.4,
regenerated docs, fixed a few things
* src/proxy_internal.c src/test.c src/xend_internal.c:
a few trivial fixes
Wed Aug 16 12:33:02 EDT 2006 Daniel Berrange <berrange@redhat.com> Wed Aug 16 12:33:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
* src/virsh.c: Added 'setvcpus', 'setmem', 'setmaxmem' * src/virsh.c: Added 'setvcpus', 'setmem', 'setmaxmem'
......
...@@ -5,11 +5,29 @@ ...@@ -5,11 +5,29 @@
http://libvirt.org/news.html http://libvirt.org/news.html
Releases Releases
0.1.4: Aug 16 2006:
- bug fixes: spec file fix (Mark McLoughlin), error report problem (with
Hugh Brock), long integer in Python bindings (with Daniel Berrange), XML
generation bug for CDRom (Daniel Berrange), bug whem using number() XPath
function (Mark McLoughlin), fix python detection code, remove duplicate
initialization errors (Daniel Berrange)
- improvements: UUID in XML description (Peter Vetere), proxy code
cleanup, virtual CPU and affinity support + virsh support (Michel
Ponceau, Philippe Berthault, Daniel Berrange), port and tty informations
for console in XML (Daniel Berrange), added XML dump to driver and proxy
support (Daniel Berrange), extention of boot options with support for
floppy and cdrom (Daniel Berrange), features block in XML to report/ask
PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect
operations when using read-only connection, large improvements to test
driver (Daniel Berrange)
- documentation: spelling (Daniel Berrange), test driver examples.
0.1.3: Jul 11 2006: 0.1.3: Jul 11 2006:
- bugfixes: build as non-root, fix xend access when root, handling of - bugfixes: build as non-root, fix xend access when root, handling of
empty XML elements (Mark McLoughlin), XML serialization and parsing fixes empty XML elements (Mark McLoughlin), XML serialization and parsing fixes
(Mark McLoughlin), allow to create domains without disk (Mark (Mark McLoughlin), allow to create domains without disk (Mark
McLoughlin), McLoughlin),
- improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange), - improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin) support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)
- documentation: augmented to cover hvm domains - documentation: augmented to cover hvm domains
......
...@@ -5,7 +5,7 @@ AC_CANONICAL_HOST ...@@ -5,7 +5,7 @@ AC_CANONICAL_HOST
LIBVIRT_MAJOR_VERSION=0 LIBVIRT_MAJOR_VERSION=0
LIBVIRT_MINOR_VERSION=1 LIBVIRT_MINOR_VERSION=1
LIBVIRT_MICRO_VERSION=3 LIBVIRT_MICRO_VERSION=4
LIBVIRT_MICRO_VERSION_SUFFIX= LIBVIRT_MICRO_VERSION_SUFFIX=
LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX
LIBVIRT_VERSION_INFO=`expr $LIBVIRT_MAJOR_VERSION + $LIBVIRT_MINOR_VERSION`:$LIBVIRT_MICRO_VERSION:$LIBVIRT_MINOR_VERSION LIBVIRT_VERSION_INFO=`expr $LIBVIRT_MAJOR_VERSION + $LIBVIRT_MINOR_VERSION`:$LIBVIRT_MICRO_VERSION:$LIBVIRT_MINOR_VERSION
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<a href="APIchunk3.html">o-s</a> <a href="APIchunk3.html">o-s</a>
<a href="APIchunk4.html">t-z</a> <a href="APIchunk4.html">t-z</a>
</h2><h2>Letter A:</h2><dl><dt>API</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br /> </h2><h2>Letter A:</h2><dl><dt>API</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br /> <a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
<a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br /> <a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br /> <a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
...@@ -15,7 +16,8 @@ ...@@ -15,7 +16,8 @@
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br /> <a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
</dd><dt>After</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br /> </dd><dt>After</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
</dd></dl><h2>Letter B:</h2><dl><dt>Bytes</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd></dl><h2>Letter B:</h2><dl><dt>Bytes</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd></dl><h2>Letter C:</h2><dl><dt>CPU</dt><dd><a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br /> </dd></dl><h2>Letter C:</h2><dl><dt>CPU</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br /> <a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
<a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br /> <a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br /> <a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
...@@ -26,9 +28,11 @@ ...@@ -26,9 +28,11 @@
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> <a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br /> <a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
</dd><dt>CPU0-7</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd><dt>CPU0-7</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd><dt>CPUs</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br /> </dd><dt>CPUs</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
<a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br /> <a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br /> <a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
<a href="">cpu</a><br />
<a href="">cpumap</a><br /> <a href="">cpumap</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> <a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
...@@ -105,6 +109,7 @@ ...@@ -105,6 +109,7 @@
</dd><dt>Suspends</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br /> </dd><dt>Suspends</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
</dd></dl><h2>Letter T:</h2><dl><dt>TODO:</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br /> </dd></dl><h2>Letter T:</h2><dl><dt>TODO:</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
</dd><dt>This</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br /> </dd><dt>This</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br /> <a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br /> <a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br /> <a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
...@@ -176,7 +181,8 @@ ...@@ -176,7 +181,8 @@
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br /> <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
</dd><dt>against</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br /> </dd><dt>against</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
</dd><dt>alive</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br /> </dd><dt>alive</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
</dd><dt>all</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br /> </dd><dt>all</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
</dd><dt>allocated</dt><dd><a href="">cpumap</a><br /> </dd><dt>allocated</dt><dd><a href="">cpumap</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br /> <a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br /> <a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
</dd><dt>better</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br /> </dd><dt>better</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
</dd><dt>between</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
</dd><dt>bit</dt><dd><a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br /> </dd><dt>bit</dt><dd><a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br /> <a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
<a href="">cpumap</a><br /> <a href="">cpumap</a><br />
...@@ -33,7 +34,8 @@ ...@@ -33,7 +34,8 @@
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br /> <a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br /> <a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
</dd><dt>byte</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd><dt>byte</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd><dt>bytes</dt><dd><a href="">cpumap</a><br /> </dd><dt>bytes</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="">cpumap</a><br />
<a href="">cpumaps</a><br /> <a href="">cpumaps</a><br />
<a href="">maplen</a><br /> <a href="">maplen</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
...@@ -86,7 +88,9 @@ ...@@ -86,7 +88,9 @@
</dd><dt>collect</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br /> </dd><dt>collect</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
</dd><dt>command</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br /> </dd><dt>command</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
</dd><dt>compiled</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br /> </dd><dt>compiled</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
</dd><dt>complete</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
</dd><dt>conjonction</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br /> </dd><dt>conjonction</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br /> <a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br /> <a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br /> <a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
......
...@@ -79,7 +79,8 @@ ...@@ -79,7 +79,8 @@
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
</dd><dt>launch</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br /> </dd><dt>launch</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
</dd><dt>least</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd><dt>least</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd><dt>length</dt><dd><a href="">maplen</a><br /> </dd><dt>length</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="">maplen</a><br />
</dd><dt>level</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br /> </dd><dt>level</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br /> <a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br /> <a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
...@@ -111,6 +112,7 @@ ...@@ -111,6 +112,7 @@
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br /> <a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
</dd><dt>lowest</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd><dt>lowest</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd></dl><h2>Letter m:</h2><dl><dt>macro</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br /> </dd></dl><h2>Letter m:</h2><dl><dt>macro</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br /> <a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br /> <a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br /> <a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
...@@ -119,7 +121,8 @@ ...@@ -119,7 +121,8 @@
</dd><dt>major</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br /> </dd><dt>major</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br /> <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
</dd><dt>malloc</dt><dd><a href="">cpumap</a><br /> </dd><dt>malloc</dt><dd><a href="">cpumap</a><br />
</dd><dt>map</dt><dd><a href="">cpumap</a><br /> </dd><dt>map</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="">cpumap</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> <a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd><dt>maplen</dt><dd><a href="">cpumap</a><br /> </dd><dt>maplen</dt><dd><a href="">cpumap</a><br />
......
...@@ -66,7 +66,8 @@ ...@@ -66,7 +66,8 @@
</dd><dt>path</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br /> </dd><dt>path</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br /> <a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
</dd><dt>per</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br /> </dd><dt>per</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
</dd><dt>physical</dt><dd><a href="">cpu</a><br /> </dd><dt>physical</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="">cpu</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br /> <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br /> <a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
...@@ -119,6 +120,7 @@ ...@@ -119,6 +120,7 @@
</dd><dt>reporting</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br /> </dd><dt>reporting</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
</dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br /> </dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br /> <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
</dd><dt>required</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
</dd><dt>requires</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br /> </dd><dt>requires</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br /> <a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> <a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
...@@ -150,7 +152,8 @@ ...@@ -150,7 +152,8 @@
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> <a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br /> <a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
</dd><dt>returns</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br /> </dd><dt>returns</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br /> <a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br /> <a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
</dd><dt>reused</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br /> </dd><dt>reused</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
...@@ -188,6 +191,7 @@ ...@@ -188,6 +191,7 @@
</dd><dt>shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br /> </dd><dt>shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
</dd><dt>significant</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br /> </dd><dt>significant</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
</dd><dt>similar</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br /> </dd><dt>similar</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
</dd><dt>single</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
</dd><dt>size</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br /> </dd><dt>size</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
<a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br /> <a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br /> <a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
...@@ -213,7 +217,8 @@ ...@@ -213,7 +217,8 @@
</dd><dt>stop</dt><dd><a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br /> </dd><dt>stop</dt><dd><a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
</dd><dt>stopped</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br /> </dd><dt>stopped</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br /> <a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
</dd><dt>store</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br /> </dd><dt>store</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
<a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br /> <a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br /> <a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br /> <a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
......
...@@ -112,6 +112,7 @@ ...@@ -112,6 +112,7 @@
<a href="html/libvirt-virterror.html#VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OK">VIR_ERR_OK</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OK">VIR_ERR_OK</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a><br />
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<a href="html/libvirt-virterror.html#VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OK">VIR_ERR_OK</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OK">VIR_ERR_OK</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a><br />
<a href="html/libvirt-virterror.html#VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a><br /> <a href="html/libvirt-virterror.html#VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a><br />
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<pre class="synopsis">#define <a href="#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a>(nodeinfo); <pre class="synopsis">#define <a href="#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a>(nodeinfo);
#define <a href="#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a>; #define <a href="#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a>;
#define <a href="#VIR_USE_CPU">VIR_USE_CPU</a>(cpumap, cpu); #define <a href="#VIR_USE_CPU">VIR_USE_CPU</a>(cpumap, cpu);
#define <a href="#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a>; #define <a href="#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a>(cpu);
#define <a href="#VIR_CPU_USABLE">VIR_CPU_USABLE</a>(cpumaps, maplen, vcpu, cpu); #define <a href="#VIR_CPU_USABLE">VIR_CPU_USABLE</a>(cpumaps, maplen, vcpu, cpu);
#define <a href="#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a>(cpumaps, maplen, vcpu, cpumap); #define <a href="#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a>(cpumaps, maplen, vcpu, cpumap);
#define <a href="#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a>(cpumaps, maplen, vcpu); #define <a href="#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a>(cpumaps, maplen, vcpu);
...@@ -119,8 +119,8 @@ const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvirt- ...@@ -119,8 +119,8 @@ const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvirt-
</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a> macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an array of cpumap (in 8-bit bytes) (IN)</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>the length (in bytes) of one cpumap</td></tr><tr><td><span class="term"><i><tt>vcpu</tt></i>:</span></td><td>the virtual CPU number</td></tr><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a cpumap (in 8-bit bytes) (OUT) This cpumap must be previously allocated by the caller (ie: malloc(maplen))</td></tr></tbody></table></div> </pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a> macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an array of cpumap (in 8-bit bytes) (IN)</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>the length (in bytes) of one cpumap</td></tr><tr><td><span class="term"><i><tt>vcpu</tt></i>:</span></td><td>the virtual CPU number</td></tr><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a cpumap (in 8-bit bytes) (OUT) This cpumap must be previously allocated by the caller (ie: malloc(maplen))</td></tr></tbody></table></div>
</div> </div>
<hr/> <hr/>
<div class="refsect2" lang="en"><h3><a name="VIR_CPU_MAPLEN">Macro </a>VIR_CPU_MAPLEN</h3><pre class="programlisting">#define <a href="#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a>; <div class="refsect2" lang="en"><h3><a name="VIR_CPU_MAPLEN">Macro </a>VIR_CPU_MAPLEN</h3><pre class="programlisting">#define <a href="#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a>(cpu);
</pre><p/> </pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. It returns the length (in bytes) required to store the complete CPU map between a single virtual &amp; all physical CPUs of a domain.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cpu</tt></i>:</span></td><td>number of physical CPUs</td></tr></tbody></table></div>
</div> </div>
<hr/> <hr/>
<div class="refsect2" lang="en"><h3><a name="VIR_CPU_USABLE">Macro </a>VIR_CPU_USABLE</h3><pre class="programlisting">#define <a href="#VIR_CPU_USABLE">VIR_CPU_USABLE</a>(cpumaps, maplen, vcpu, cpu); <div class="refsect2" lang="en"><h3><a name="VIR_CPU_USABLE">Macro </a>VIR_CPU_USABLE</h3><pre class="programlisting">#define <a href="#VIR_CPU_USABLE">VIR_CPU_USABLE</a>(cpumaps, maplen, vcpu, cpu);
......
...@@ -129,7 +129,8 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi ...@@ -129,7 +129,8 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<a name="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a> = 25 /* too many drivers registered */ <a name="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a> = 25 /* too many drivers registered */
<a name="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a> = 26 /* not supported by the drivers */ <a name="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a> = 26 /* not supported by the drivers */
<a name="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a> = 27 /* an XML description is not well formed or broken */ <a name="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a> = 27 /* an XML description is not well formed or broken */
<a name="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a> = 28 /* the domain already exist */ <a name="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a> = 28 /* the domain already exist */
<a name="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a> = 29 /* operation forbidden on read-only connections */
}; };
</pre><p/> </pre><p/>
</div> </div>
......
...@@ -48,30 +48,30 @@ significant:</p><ul><li>name: the domain name, preferably ASCII based</li> ...@@ -48,30 +48,30 @@ significant:</p><ul><li>name: the domain name, preferably ASCII based</li>
<li>root: the root filesystem from the guest viewpoint, it may be <li>root: the root filesystem from the guest viewpoint, it may be
passed as part of the cmdline content too</li> passed as part of the cmdline content too</li>
</ul></li> </ul></li>
<li>devices: a list of <code>disk</code>, <code>interface</code> <li>devices: a list of <code>disk</code>, <code>interface</code> and
and <code>console</code> descriptions in no special order</li> <code>console</code> descriptions in no special order</li>
</ul><p>The format of the devices and their type may grow over time, but the </ul><p>The format of the devices and their type may grow over time, but the
following should be sufficient for basic use:</p><p>A <code>disk</code> device indicates a block device, it can have two values for the following should be sufficient for basic use:</p><p>A <code>disk</code> device indicates a block device, it can have two
type attribute either 'file' or 'block' corresponding to the 2 options values for the type attribute either 'file' or 'block' corresponding to the 2
availble at the Xen layer. It has two mandatory children, and one optional options availble at the Xen layer. It has two mandatory children, and one
one in no specific order:</p><ul><li>source with a file attribute containing the path in Domain 0 to the optional one in no specific order:</p><ul><li>source with a file attribute containing the path in Domain 0 to the
file or a dev attribute if using a block device, containing the device file or a dev attribute if using a block device, containing the device
name ('hda5' or '/dev/hda5')</li> name ('hda5' or '/dev/hda5')</li>
<li>target indicates in a dev attribute the device where it is mapped in <li>target indicates in a dev attribute the device where it is mapped in
the guest</li> the guest</li>
<li>readonly an optional empty element indicating the device is <li>readonly an optional empty element indicating the device is
read-only</li> read-only</li>
</ul><p>An <code>interface</code> element describes a network device mapped on the guest, it </ul><p>An <code>interface</code> element describes a network device mapped on the
also has a type whose value is currently 'bridge', it also have a number of guest, it also has a type whose value is currently 'bridge', it also have a
children in no specific order:</p><ul><li>source: indicating the bridge name</li> number of children in no specific order:</p><ul><li>source: indicating the bridge name</li>
<li>mac: the optional mac address provided in the address attribute</li> <li>mac: the optional mac address provided in the address attribute</li>
<li>ip: the optional IP address provided in the address attribute</li> <li>ip: the optional IP address provided in the address attribute</li>
<li>script: the script used to bridge the interfcae in the Domain 0</li> <li>script: the script used to bridge the interfcae in the Domain 0</li>
<li>target: and optional target indicating the device name.</li> <li>target: and optional target indicating the device name.</li>
</ul><p>A <code>console</code> element describes a serial console connection to the </ul><p>A <code>console</code> element describes a serial console connection to
guest. It has no children, and a single attribute <code>tty</code> which provides the guest. It has no children, and a single attribute <code>tty</code> which
the path to the Pseudo TTY on which the guest console can be accessed provides the path to the Pseudo TTY on which the guest console can be
</p><p>Life cycle actions for the domain can also be expressed in the XML format, accessed</p><p>Life cycle actions for the domain can also be expressed in the XML format,
they drive what should be happening if the domain crashes, is rebooted or is they drive what should be happening if the domain crashes, is rebooted or is
poweroff. There is various actions possible when this happen:</p><ul><li>destroy: The domain is cleaned up (that's the default normal processing poweroff. There is various actions possible when this happen:</p><ul><li>destroy: The domain is cleaned up (that's the default normal processing
in Xen)</li> in Xen)</li>
...@@ -133,43 +133,45 @@ systems:</p><pre>&lt;domain type='xen' id='3'&gt; ...@@ -133,43 +133,45 @@ systems:</p><pre>&lt;domain type='xen' id='3'&gt;
&lt;/disk&gt; &lt;/disk&gt;
<span style="color: #0000E5; background-color: #FFFFFF">&lt;graphics type='vnc' port='5904'/&gt;</span> <span style="color: #0000E5; background-color: #FFFFFF">&lt;graphics type='vnc' port='5904'/&gt;</span>
&lt;/devices&gt; &lt;/devices&gt;
&lt;/domain&gt;</pre><p>There is a few things to notice specifically for HVM domains:</p><ul><li>the optional <code>&lt;features&gt;</code> block is used to enable certain &lt;/domain&gt;</pre><p>There is a few things to notice specifically for HVM domains:</p><ul><li>the optional <code>&lt;features&gt;</code> block is used to enable
guest CPU / system features. For HVM guests the following features are defined: certain guest CPU / system features. For HVM guests the following
features are defined:
<ul><li><code>pae</code> - enable PAE memory addressing</li> <ul><li><code>pae</code> - enable PAE memory addressing</li>
<li><code>apic</code> - enable IO APIC</li> <li><code>apic</code> - enable IO APIC</li>
<li><code>acpi</code> - enable ACPI bios</li> <li><code>acpi</code> - enable ACPI bios</li>
</ul></li> </ul></li>
<li>the <code>&lt;os&gt;</code> block description is very different, first it indicates <li>the <code>&lt;os&gt;</code> block description is very different, first
that the type is 'hvm' for hardware virtualization, then instead of a it indicates that the type is 'hvm' for hardware virtualization, then
kernel, boot and command line arguments, it points to an os boot loader instead of a kernel, boot and command line arguments, it points to an os
which will extract the boot informations from the boot device specified boot loader which will extract the boot informations from the boot device
in a separate boot element. The <code>dev</code> attribute on the <code>boot</code> specified in a separate boot element. The <code>dev</code> attribute on
tag can be one of: the <code>boot</code> tag can be one of:
<ul><li><code>fd</code> - boot from first floppy device</li> <ul><li><code>fd</code> - boot from first floppy device</li>
<li><code>hd</code> - boot from first harddisk device</li> <li><code>hd</code> - boot from first harddisk device</li>
<li><code>cdrom</code> - boot from first cdrom device</li> <li><code>cdrom</code> - boot from first cdrom device</li>
</ul></li> </ul></li>
<li>the <code>&lt;devices&gt;</code> section includes an emulator entry pointing to an <li>the <code>&lt;devices&gt;</code> section includes an emulator entry
additional program in charge of emulating the devices</li> 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 <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 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 dependant 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>, device <code>hda</code>-<code>hdd</code>, or a floppy device
<code>fdb</code>. The <code>&lt;disk&gt;</code> element also supports a 'device' <code>fda</code>, <code>fdb</code>. The <code>&lt;disk&gt;</code> element
attribute to indicate what kinda of hardware to emulate. The following values are also supports a 'device' attribute to indicate what kinda of hardware to
supported: emulate. The following values are supported:
<ul><li><code>floppy</code> - a floppy disk controller</li> <ul><li><code>floppy</code> - a floppy disk controller</li>
<li><code>disk</code> - a generic hard drive (the default it omitted)</li> <li><code>disk</code> - a generic hard drive (the default it
<li><code>cdrom</code> - a CDROM device</li> omitted)</li>
<li><code>cdrom</code> - a CDROM device</li>
</ul> </ul>
For Xen 3.0.2 and earlier a CDROM device can only be emulated on the For Xen 3.0.2 and earlier a CDROM device can only be emulated on the
<code>hdc</code> channel, while for 3.0.3 and later, it can be emulated on <code>hdc</code> channel, while for 3.0.3 and later, it can be emulated
any IDE channel.</li> on any IDE channel.</li>
<li>the <code>&lt;devices&gt;</code> section also include at least one entry for the <li>the <code>&lt;devices&gt;</code> section also include at least one
graphic device used to render the os. Currently there is just 2 types entry for the graphic device used to render the os. Currently there is
possible 'vnc' or 'sdl'. If the type is 'vnc', then an additional <code>port</code> just 2 types possible 'vnc' or 'sdl'. If the type is 'vnc', then an
attribute will be present indicating the TCP port on which the VNC server is additional <code>port</code> attribute will be present indicating the TCP
accepting client connections.</li> port on which the VNC server is accepting client connections.</li>
</ul><p>It is likely that the HVM description gets additional optional elements </ul><p>It is likely that the HVM description gets additional optional elements
and attributes as the support for fully virtualized domain expands, and attributes as the support for fully virtualized domain expands,
especially for the variety of devices emulated and the graphic support especially for the variety of devices emulated and the graphic support
......
...@@ -62,7 +62,7 @@ The content of this structure is not made public by the API. ...@@ -62,7 +62,7 @@ The content of this structure is not made public by the API.
<h2>Description</h2> <h2>Description</h2>
<h3><a name="LIBVIR_VERSION_NUMBER" id="LIBVIR_VERSION_NUMBER"></a>Macro: LIBVIR_VERSION_NUMBER</h3><pre>#define LIBVIR_VERSION_NUMBER</pre><p>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</p> <h3><a name="LIBVIR_VERSION_NUMBER" id="LIBVIR_VERSION_NUMBER"></a>Macro: LIBVIR_VERSION_NUMBER</h3><pre>#define LIBVIR_VERSION_NUMBER</pre><p>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</p>
<h3><a name="VIR_COPY_CPUMAP" id="VIR_COPY_CPUMAP"></a>Macro: VIR_COPY_CPUMAP</h3><pre>#define VIR_COPY_CPUMAP</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a> macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.</p> <h3><a name="VIR_COPY_CPUMAP" id="VIR_COPY_CPUMAP"></a>Macro: VIR_COPY_CPUMAP</h3><pre>#define VIR_COPY_CPUMAP</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a> macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.</p>
<h3><a name="VIR_CPU_MAPLEN" id="VIR_CPU_MAPLEN"></a>Macro: VIR_CPU_MAPLEN</h3><pre>#define VIR_CPU_MAPLEN</pre><p></p> <h3><a name="VIR_CPU_MAPLEN" id="VIR_CPU_MAPLEN"></a>Macro: VIR_CPU_MAPLEN</h3><pre>#define VIR_CPU_MAPLEN</pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. It returns the length (in bytes) required to store the complete CPU map between a single virtual &amp; all physical CPUs of a domain.</p>
<h3><a name="VIR_CPU_USABLE" id="VIR_CPU_USABLE"></a>Macro: VIR_CPU_USABLE</h3><pre>#define VIR_CPU_USABLE</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() API. <a href="libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a> macro returns a non zero value (true) if the cpu is usable by the vcpu, and 0 otherwise.</p> <h3><a name="VIR_CPU_USABLE" id="VIR_CPU_USABLE"></a>Macro: VIR_CPU_USABLE</h3><pre>#define VIR_CPU_USABLE</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() API. <a href="libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a> macro returns a non zero value (true) if the cpu is usable by the vcpu, and 0 otherwise.</p>
<h3><a name="VIR_GET_CPUMAP" id="VIR_GET_CPUMAP"></a>Macro: VIR_GET_CPUMAP</h3><pre>#define VIR_GET_CPUMAP</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a> macro returns a pointer to the cpumap of the specified vcpu from cpumaps array.</p> <h3><a name="VIR_GET_CPUMAP" id="VIR_GET_CPUMAP"></a>Macro: VIR_GET_CPUMAP</h3><pre>#define VIR_GET_CPUMAP</pre><p>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. <a href="libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a> macro returns a pointer to the cpumap of the specified vcpu from cpumaps array.</p>
<h3><a name="VIR_NODEINFO_MAXCPUS" id="VIR_NODEINFO_MAXCPUS"></a>Macro: VIR_NODEINFO_MAXCPUS</h3><pre>#define VIR_NODEINFO_MAXCPUS</pre><p>This macro is to calculate the total number of CPUs supported but not neccessarily active in the host.</p> <h3><a name="VIR_NODEINFO_MAXCPUS" id="VIR_NODEINFO_MAXCPUS"></a>Macro: VIR_NODEINFO_MAXCPUS</h3><pre>#define VIR_NODEINFO_MAXCPUS</pre><p>This macro is to calculate the total number of CPUs supported but not neccessarily active in the host.</p>
......
...@@ -77,6 +77,7 @@ void <a href="#virErrorFunc">virErrorFunc</a> (void * userData, <br /> <a ...@@ -77,6 +77,7 @@ void <a href="#virErrorFunc">virErrorFunc</a> (void * userData, <br /> <a
<a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a> = 26 : not supported by the drivers <a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a> = 26 : not supported by the drivers
<a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a> = 27 : an XML description is not well formed or broken <a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a> = 27 : an XML description is not well formed or broken
<a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a> = 28 : the domain already exist <a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a> = 28 : the domain already exist
<a name="VIR_ERR_OPERATION_DENIED" id="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a> = 29 : operation forbidden on read-only connections
} }
</pre><h3><a name="virConnCopyLastError" id="virConnCopyLastError"></a>Function: 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><h3><a name="virConnCopyLastError" id="virConnCopyLastError"></a>Function: 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 One will need to free the result with virResetError()</p>
......
...@@ -33,12 +33,31 @@ development of libvirt, it is preferable when possible to just use the <a ...@@ -33,12 +33,31 @@ 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 href="downloads.html">CVS version or snapshot</a>, contact the mailing list
and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p> and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p>
<h3>0.1.4: Aug 16 2006</h3>
<ul>
<li>bug fixes: spec file fix (Mark McLoughlin), error report problem (with
Hugh Brock), long integer in Python bindings (with Daniel Berrange), XML
generation bug for CDRom (Daniel Berrange), bug whem using number() XPath
function (Mark McLoughlin), fix python detection code, remove duplicate
initialization errors (Daniel Berrange)</li>
<li>improvements: UUID in XML description (Peter Vetere), proxy code
cleanup, virtual CPU and affinity support + virsh support (Michel
Ponceau, Philippe Berthault, Daniel Berrange), port and tty informations
for console in XML (Daniel Berrange), added XML dump to driver and proxy
support (Daniel Berrange), extention of boot options with support for
floppy and cdrom (Daniel Berrange), features block in XML to report/ask
PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect
operations when using read-only connection, large improvements to test
driver (Daniel Berrange) </li>
<li>documentation: spelling (Daniel Berrange), test driver examples.</li>
</ul>
<h3>0.1.3: Jul 11 2006</h3> <h3>0.1.3: Jul 11 2006</h3>
<ul> <ul>
<li>bugfixes: build as non-root, fix xend access when root, handling of <li>bugfixes: build as non-root, fix xend access when root, handling of
empty XML elements (Mark McLoughlin), XML serialization and parsing fixes empty XML elements (Mark McLoughlin), XML serialization and parsing fixes
(Mark McLoughlin), allow to create domains without disk (Mark (Mark McLoughlin), allow to create domains without disk (Mark
McLoughlin), </li> McLoughlin),</li>
<li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange), <li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li> support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li>
<li>documentation: augmented to cover hvm domains</li> <li>documentation: augmented to cover hvm domains</li>
...@@ -346,17 +365,17 @@ significant:</p> ...@@ -346,17 +365,17 @@ significant:</p>
passed as part of the cmdline content too</li> passed as part of the cmdline content too</li>
</ul> </ul>
</li> </li>
<li>devices: a list of <code>disk</code>, <code>interface</code> <li>devices: a list of <code>disk</code>, <code>interface</code> and
and <code>console</code> descriptions in no special order</li> <code>console</code> descriptions in no special order</li>
</ul> </ul>
<p>The format of the devices and their type may grow over time, but the <p>The format of the devices and their type may grow over time, but the
following should be sufficient for basic use:</p> following should be sufficient for basic use:</p>
<p>A <code>disk</code> device indicates a block device, it can have two values for the <p>A <code>disk</code> device indicates a block device, it can have two
type attribute either 'file' or 'block' corresponding to the 2 options values for the type attribute either 'file' or 'block' corresponding to the 2
availble at the Xen layer. It has two mandatory children, and one optional options availble at the Xen layer. It has two mandatory children, and one
one in no specific order:</p> optional one in no specific order:</p>
<ul> <ul>
<li>source with a file attribute containing the path in Domain 0 to the <li>source with a file attribute containing the path in Domain 0 to the
file or a dev attribute if using a block device, containing the device file or a dev attribute if using a block device, containing the device
...@@ -367,9 +386,9 @@ one in no specific order:</p> ...@@ -367,9 +386,9 @@ one in no specific order:</p>
read-only</li> read-only</li>
</ul> </ul>
<p>An <code>interface</code> element describes a network device mapped on the guest, it <p>An <code>interface</code> element describes a network device mapped on the
also has a type whose value is currently 'bridge', it also have a number of guest, it also has a type whose value is currently 'bridge', it also have a
children in no specific order:</p> number of children in no specific order:</p>
<ul> <ul>
<li>source: indicating the bridge name</li> <li>source: indicating the bridge name</li>
<li>mac: the optional mac address provided in the address attribute</li> <li>mac: the optional mac address provided in the address attribute</li>
...@@ -378,10 +397,10 @@ children in no specific order:</p> ...@@ -378,10 +397,10 @@ children in no specific order:</p>
<li>target: and optional target indicating the device name.</li> <li>target: and optional target indicating the device name.</li>
</ul> </ul>
<p>A <code>console</code> element describes a serial console connection to the <p>A <code>console</code> element describes a serial console connection to
guest. It has no children, and a single attribute <code>tty</code> which provides the guest. It has no children, and a single attribute <code>tty</code> which
the path to the Pseudo TTY on which the guest console can be accessed provides the path to the Pseudo TTY on which the guest console can be
</p> accessed</p>
<p>Life cycle actions for the domain can also be expressed in the XML format, <p>Life cycle actions for the domain can also be expressed in the XML format,
they drive what should be happening if the domain crashes, is rebooted or is they drive what should be happening if the domain crashes, is rebooted or is
...@@ -461,48 +480,50 @@ systems:</p> ...@@ -461,48 +480,50 @@ systems:</p>
<p>There is a few things to notice specifically for HVM domains:</p> <p>There is a few things to notice specifically for HVM domains:</p>
<ul> <ul>
<li>the optional <code>&lt;features&gt;</code> block is used to enable certain <li>the optional <code>&lt;features&gt;</code> block is used to enable
guest CPU / system features. For HVM guests the following features are defined: certain guest CPU / system features. For HVM guests the following
features are defined:
<ul> <ul>
<li><code>pae</code> - enable PAE memory addressing</li> <li><code>pae</code> - enable PAE memory addressing</li>
<li><code>apic</code> - enable IO APIC</li> <li><code>apic</code> - enable IO APIC</li>
<li><code>acpi</code> - enable ACPI bios</li> <li><code>acpi</code> - enable ACPI bios</li>
</ul> </ul>
</li> </li>
<li>the <code>&lt;os&gt;</code> block description is very different, first it indicates <li>the <code>&lt;os&gt;</code> block description is very different, first
that the type is 'hvm' for hardware virtualization, then instead of a it indicates that the type is 'hvm' for hardware virtualization, then
kernel, boot and command line arguments, it points to an os boot loader instead of a kernel, boot and command line arguments, it points to an os
which will extract the boot informations from the boot device specified boot loader which will extract the boot informations from the boot device
in a separate boot element. The <code>dev</code> attribute on the <code>boot</code> specified in a separate boot element. The <code>dev</code> attribute on
tag can be one of: the <code>boot</code> tag can be one of:
<ul> <ul>
<li><code>fd</code> - boot from first floppy device</li> <li><code>fd</code> - boot from first floppy device</li>
<li><code>hd</code> - boot from first harddisk device</li> <li><code>hd</code> - boot from first harddisk device</li>
<li><code>cdrom</code> - boot from first cdrom device</li> <li><code>cdrom</code> - boot from first cdrom device</li>
</ul> </ul>
</li> </li>
<li>the <code>&lt;devices&gt;</code> section includes an emulator entry pointing to an <li>the <code>&lt;devices&gt;</code> section includes an emulator entry
additional program in charge of emulating the devices</li> 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 <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 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 dependant 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>, device <code>hda</code>-<code>hdd</code>, or a floppy device
<code>fdb</code>. The <code>&lt;disk&gt;</code> element also supports a 'device' <code>fda</code>, <code>fdb</code>. The <code>&lt;disk&gt;</code> element
attribute to indicate what kinda of hardware to emulate. The following values are also supports a 'device' attribute to indicate what kinda of hardware to
supported: emulate. The following values are supported:
<ul> <ul>
<li><code>floppy</code> - a floppy disk controller</li> <li><code>floppy</code> - a floppy disk controller</li>
<li><code>disk</code> - a generic hard drive (the default it omitted)</li> <li><code>disk</code> - a generic hard drive (the default it
<li><code>cdrom</code> - a CDROM device</li> omitted)</li>
<li><code>cdrom</code> - a CDROM device</li>
</ul> </ul>
For Xen 3.0.2 and earlier a CDROM device can only be emulated on the For Xen 3.0.2 and earlier a CDROM device can only be emulated on the
<code>hdc</code> channel, while for 3.0.3 and later, it can be emulated on <code>hdc</code> channel, while for 3.0.3 and later, it can be emulated
any IDE channel.</li> on any IDE channel.</li>
<li>the <code>&lt;devices&gt;</code> section also include at least one entry for the <li>the <code>&lt;devices&gt;</code> section also include at least one
graphic device used to render the os. Currently there is just 2 types entry for the graphic device used to render the os. Currently there is
possible 'vnc' or 'sdl'. If the type is 'vnc', then an additional <code>port</code> just 2 types possible 'vnc' or 'sdl'. If the type is 'vnc', then an
attribute will be present indicating the TCP port on which the VNC server is additional <code>port</code> attribute will be present indicating the TCP
accepting client connections.</li> port on which the VNC server is accepting client connections.</li>
</ul> </ul>
<p>It is likely that the HVM description gets additional optional elements <p>It is likely that the HVM description gets additional optional elements
......
...@@ -128,6 +128,7 @@ ...@@ -128,6 +128,7 @@
<exports symbol='VIR_ERR_DOM_EXIST' type='enum'/> <exports symbol='VIR_ERR_DOM_EXIST' type='enum'/>
<exports symbol='VIR_ERR_NO_SOURCE' type='enum'/> <exports symbol='VIR_ERR_NO_SOURCE' type='enum'/>
<exports symbol='VIR_ERR_NO_TARGET' type='enum'/> <exports symbol='VIR_ERR_NO_TARGET' type='enum'/>
<exports symbol='VIR_ERR_OPERATION_DENIED' type='enum'/>
<exports symbol='VIR_ERR_INTERNAL_ERROR' type='enum'/> <exports symbol='VIR_ERR_INTERNAL_ERROR' type='enum'/>
<exports symbol='VIR_ERR_NO_SUPPORT' type='enum'/> <exports symbol='VIR_ERR_NO_SUPPORT' type='enum'/>
<exports symbol='VIR_FROM_XEND' type='enum'/> <exports symbol='VIR_FROM_XEND' type='enum'/>
...@@ -170,6 +171,8 @@ ...@@ -170,6 +171,8 @@
<arg name='cpumap' info='pointer to a cpumap (in 8-bit bytes) (OUT) This cpumap must be previously allocated by the caller (ie: malloc(maplen))'/> <arg name='cpumap' info='pointer to a cpumap (in 8-bit bytes) (OUT) This cpumap must be previously allocated by the caller (ie: malloc(maplen))'/>
</macro> </macro>
<macro name='VIR_CPU_MAPLEN' file='libvirt'> <macro name='VIR_CPU_MAPLEN' file='libvirt'>
<info>This macro is to be used in conjonction with virDomainPinVcpu() API. It returns the length (in bytes) required to store the complete CPU map between a single virtual &amp; all physical CPUs of a domain.</info>
<arg name='cpu' info='number of physical CPUs'/>
</macro> </macro>
<macro name='VIR_CPU_USABLE' file='libvirt'> <macro name='VIR_CPU_USABLE' file='libvirt'>
<info>This macro is to be used in conjonction with virDomainGetVcpus() API. VIR_CPU_USABLE macro returns a non zero value (true) if the cpu is usable by the vcpu, and 0 otherwise.</info> <info>This macro is to be used in conjonction with virDomainGetVcpus() API. VIR_CPU_USABLE macro returns a non zero value (true) if the cpu is usable by the vcpu, and 0 otherwise.</info>
...@@ -215,7 +218,7 @@ ...@@ -215,7 +218,7 @@
<enum name='VIR_DOMAIN_SHUTDOWN' file='libvirt' value='4' type='virDomainState' info='the domain is being shut down'/> <enum name='VIR_DOMAIN_SHUTDOWN' file='libvirt' value='4' type='virDomainState' info='the domain is being shut down'/>
<enum name='VIR_DOMAIN_SHUTOFF' file='libvirt' value='5' type='virDomainState' info='the domain is shut off'/> <enum name='VIR_DOMAIN_SHUTOFF' file='libvirt' value='5' type='virDomainState' info='the domain is shut off'/>
<enum name='VIR_ERR_CALL_FAILED' file='virterror' value='26' type='virErrorNumber' info='not supported by the drivers'/> <enum name='VIR_ERR_CALL_FAILED' file='virterror' value='26' type='virErrorNumber' info='not supported by the drivers'/>
<enum name='VIR_ERR_DOM_EXIST' file='virterror' value='28' type='virErrorNumber' info=' the domain already exist'/> <enum name='VIR_ERR_DOM_EXIST' file='virterror' value='28' type='virErrorNumber' info='the domain already exist'/>
<enum name='VIR_ERR_DRIVER_FULL' file='virterror' value='25' type='virErrorNumber' info='too many drivers registered'/> <enum name='VIR_ERR_DRIVER_FULL' file='virterror' value='25' type='virErrorNumber' info='too many drivers registered'/>
<enum name='VIR_ERR_ERROR' file='virterror' value='2' type='virErrorLevel' info=' An error'/> <enum name='VIR_ERR_ERROR' file='virterror' value='2' type='virErrorLevel' info=' An error'/>
<enum name='VIR_ERR_GET_FAILED' file='virterror' value='10' type='virErrorNumber' info='a HTTP GET command to failed'/> <enum name='VIR_ERR_GET_FAILED' file='virterror' value='10' type='virErrorNumber' info='a HTTP GET command to failed'/>
...@@ -238,6 +241,7 @@ ...@@ -238,6 +241,7 @@
<enum name='VIR_ERR_NO_XEN' file='virterror' value='14' type='virErrorNumber' info='could not open Xen hypervisor control'/> <enum name='VIR_ERR_NO_XEN' file='virterror' value='14' type='virErrorNumber' info='could not open Xen hypervisor control'/>
<enum name='VIR_ERR_NO_XENSTORE' file='virterror' value='24' type='virErrorNumber' info='could not open Xen Store control'/> <enum name='VIR_ERR_NO_XENSTORE' file='virterror' value='24' type='virErrorNumber' info='could not open Xen Store control'/>
<enum name='VIR_ERR_OK' file='virterror' value='0' type='virErrorNumber'/> <enum name='VIR_ERR_OK' file='virterror' value='0' type='virErrorNumber'/>
<enum name='VIR_ERR_OPERATION_DENIED' file='virterror' value='29' type='virErrorNumber' info=' operation forbidden on read-only connections'/>
<enum name='VIR_ERR_OPERATION_FAILED' file='virterror' value='9' type='virErrorNumber' info='a command to hypervisor failed'/> <enum name='VIR_ERR_OPERATION_FAILED' file='virterror' value='9' type='virErrorNumber' info='a command to hypervisor failed'/>
<enum name='VIR_ERR_OS_TYPE' file='virterror' value='16' type='virErrorNumber' info='unknown OS type'/> <enum name='VIR_ERR_OS_TYPE' file='virterror' value='16' type='virErrorNumber' info='unknown OS type'/>
<enum name='VIR_ERR_POST_FAILED' file='virterror' value='11' type='virErrorNumber' info='a HTTP POST command to failed'/> <enum name='VIR_ERR_POST_FAILED' file='virterror' value='11' type='virErrorNumber' info='a HTTP POST command to failed'/>
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<reference name='VIR_ERR_NO_XEN' href='html/libvirt-virterror.html#VIR_ERR_NO_XEN'/> <reference name='VIR_ERR_NO_XEN' href='html/libvirt-virterror.html#VIR_ERR_NO_XEN'/>
<reference name='VIR_ERR_NO_XENSTORE' href='html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE'/> <reference name='VIR_ERR_NO_XENSTORE' href='html/libvirt-virterror.html#VIR_ERR_NO_XENSTORE'/>
<reference name='VIR_ERR_OK' href='html/libvirt-virterror.html#VIR_ERR_OK'/> <reference name='VIR_ERR_OK' href='html/libvirt-virterror.html#VIR_ERR_OK'/>
<reference name='VIR_ERR_OPERATION_DENIED' href='html/libvirt-virterror.html#VIR_ERR_OPERATION_DENIED'/>
<reference name='VIR_ERR_OPERATION_FAILED' href='html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED'/> <reference name='VIR_ERR_OPERATION_FAILED' href='html/libvirt-virterror.html#VIR_ERR_OPERATION_FAILED'/>
<reference name='VIR_ERR_OS_TYPE' href='html/libvirt-virterror.html#VIR_ERR_OS_TYPE'/> <reference name='VIR_ERR_OS_TYPE' href='html/libvirt-virterror.html#VIR_ERR_OS_TYPE'/>
<reference name='VIR_ERR_POST_FAILED' href='html/libvirt-virterror.html#VIR_ERR_POST_FAILED'/> <reference name='VIR_ERR_POST_FAILED' href='html/libvirt-virterror.html#VIR_ERR_POST_FAILED'/>
...@@ -196,6 +197,7 @@ ...@@ -196,6 +197,7 @@
<ref name='VIR_ERR_NO_XEN'/> <ref name='VIR_ERR_NO_XEN'/>
<ref name='VIR_ERR_NO_XENSTORE'/> <ref name='VIR_ERR_NO_XENSTORE'/>
<ref name='VIR_ERR_OK'/> <ref name='VIR_ERR_OK'/>
<ref name='VIR_ERR_OPERATION_DENIED'/>
<ref name='VIR_ERR_OPERATION_FAILED'/> <ref name='VIR_ERR_OPERATION_FAILED'/>
<ref name='VIR_ERR_OS_TYPE'/> <ref name='VIR_ERR_OS_TYPE'/>
<ref name='VIR_ERR_POST_FAILED'/> <ref name='VIR_ERR_POST_FAILED'/>
...@@ -543,6 +545,7 @@ ...@@ -543,6 +545,7 @@
<ref name='VIR_ERR_NO_XEN'/> <ref name='VIR_ERR_NO_XEN'/>
<ref name='VIR_ERR_NO_XENSTORE'/> <ref name='VIR_ERR_NO_XENSTORE'/>
<ref name='VIR_ERR_OK'/> <ref name='VIR_ERR_OK'/>
<ref name='VIR_ERR_OPERATION_DENIED'/>
<ref name='VIR_ERR_OPERATION_FAILED'/> <ref name='VIR_ERR_OPERATION_FAILED'/>
<ref name='VIR_ERR_OS_TYPE'/> <ref name='VIR_ERR_OS_TYPE'/>
<ref name='VIR_ERR_POST_FAILED'/> <ref name='VIR_ERR_POST_FAILED'/>
...@@ -584,6 +587,7 @@ ...@@ -584,6 +587,7 @@
<letter name='A'> <letter name='A'>
<word name='API'> <word name='API'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/> <ref name='VIR_USE_CPU'/>
...@@ -605,6 +609,7 @@ ...@@ -605,6 +609,7 @@
</letter> </letter>
<letter name='C'> <letter name='C'>
<word name='CPU'> <word name='CPU'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/> <ref name='VIR_USE_CPU'/>
<ref name='_virDomainInfo'/> <ref name='_virDomainInfo'/>
...@@ -620,9 +625,11 @@ ...@@ -620,9 +625,11 @@
<ref name='virDomainPinVcpu'/> <ref name='virDomainPinVcpu'/>
</word> </word>
<word name='CPUs'> <word name='CPUs'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_NODEINFO_MAXCPUS'/> <ref name='VIR_NODEINFO_MAXCPUS'/>
<ref name='_virDomainInfo'/> <ref name='_virDomainInfo'/>
<ref name='_virNodeInfo'/> <ref name='_virNodeInfo'/>
<ref name='cpu'/>
<ref name='cpumap'/> <ref name='cpumap'/>
<ref name='virDomainGetVcpus'/> <ref name='virDomainGetVcpus'/>
<ref name='virDomainPinVcpu'/> <ref name='virDomainPinVcpu'/>
...@@ -803,6 +810,7 @@ ...@@ -803,6 +810,7 @@
</word> </word>
<word name='This'> <word name='This'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_NODEINFO_MAXCPUS'/> <ref name='VIR_NODEINFO_MAXCPUS'/>
...@@ -924,6 +932,7 @@ ...@@ -924,6 +932,7 @@
<ref name='virDomainFree'/> <ref name='virDomainFree'/>
</word> </word>
<word name='all'> <word name='all'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='virDomainDestroy'/> <ref name='virDomainDestroy'/>
<ref name='virDomainGetVcpus'/> <ref name='virDomainGetVcpus'/>
</word> </word>
...@@ -1027,6 +1036,9 @@ ...@@ -1027,6 +1036,9 @@
<word name='better'> <word name='better'>
<ref name='virInitialize'/> <ref name='virInitialize'/>
</word> </word>
<word name='between'>
<ref name='VIR_CPU_MAPLEN'/>
</word>
<word name='bit'> <word name='bit'>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/> <ref name='VIR_USE_CPU'/>
...@@ -1051,6 +1063,7 @@ ...@@ -1051,6 +1063,7 @@
<ref name='virDomainPinVcpu'/> <ref name='virDomainPinVcpu'/>
</word> </word>
<word name='bytes'> <word name='bytes'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='cpumap'/> <ref name='cpumap'/>
<ref name='cpumaps'/> <ref name='cpumaps'/>
<ref name='maplen'/> <ref name='maplen'/>
...@@ -1143,8 +1156,12 @@ ...@@ -1143,8 +1156,12 @@
<word name='compiled'> <word name='compiled'>
<ref name='virGetVersion'/> <ref name='virGetVersion'/>
</word> </word>
<word name='complete'>
<ref name='VIR_CPU_MAPLEN'/>
</word>
<word name='conjonction'> <word name='conjonction'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
...@@ -1588,6 +1605,7 @@ ...@@ -1588,6 +1605,7 @@
<ref name='virDomainPinVcpu'/> <ref name='virDomainPinVcpu'/>
</word> </word>
<word name='length'> <word name='length'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='maplen'/> <ref name='maplen'/>
</word> </word>
<word name='level'> <word name='level'>
...@@ -1648,6 +1666,7 @@ ...@@ -1648,6 +1666,7 @@
<letter name='m'> <letter name='m'>
<word name='macro'> <word name='macro'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_NODEINFO_MAXCPUS'/> <ref name='VIR_NODEINFO_MAXCPUS'/>
...@@ -1662,6 +1681,7 @@ ...@@ -1662,6 +1681,7 @@
<ref name='cpumap'/> <ref name='cpumap'/>
</word> </word>
<word name='map'> <word name='map'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='cpumap'/> <ref name='cpumap'/>
<ref name='virDomainGetVcpus'/> <ref name='virDomainGetVcpus'/>
<ref name='virDomainPinVcpu'/> <ref name='virDomainPinVcpu'/>
...@@ -1923,6 +1943,7 @@ ...@@ -1923,6 +1943,7 @@
<ref name='_virNodeInfo'/> <ref name='_virNodeInfo'/>
</word> </word>
<word name='physical'> <word name='physical'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='cpu'/> <ref name='cpu'/>
<ref name='virDomainGetMaxMemory'/> <ref name='virDomainGetMaxMemory'/>
<ref name='virDomainSetMaxMemory'/> <ref name='virDomainSetMaxMemory'/>
...@@ -2033,6 +2054,9 @@ ...@@ -2033,6 +2054,9 @@
<ref name='virDomainReboot'/> <ref name='virDomainReboot'/>
<ref name='virDomainShutdown'/> <ref name='virDomainShutdown'/>
</word> </word>
<word name='required'>
<ref name='VIR_CPU_MAPLEN'/>
</word>
<word name='requires'> <word name='requires'>
<ref name='virDomainCreateLinux'/> <ref name='virDomainCreateLinux'/>
<ref name='virDomainDestroy'/> <ref name='virDomainDestroy'/>
...@@ -2087,6 +2111,7 @@ ...@@ -2087,6 +2111,7 @@
<ref name='virGetVersion'/> <ref name='virGetVersion'/>
</word> </word>
<word name='returns'> <word name='returns'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='virConnectGetVersion'/> <ref name='virConnectGetVersion'/>
...@@ -2158,6 +2183,9 @@ ...@@ -2158,6 +2183,9 @@
<word name='similar'> <word name='similar'>
<ref name='virDomainCreateLinux'/> <ref name='virDomainCreateLinux'/>
</word> </word>
<word name='single'>
<ref name='VIR_CPU_MAPLEN'/>
</word>
<word name='size'> <word name='size'>
<ref name='_virNodeInfo'/> <ref name='_virNodeInfo'/>
<ref name='virConnectListDefinedDomains'/> <ref name='virConnectListDefinedDomains'/>
...@@ -2210,6 +2238,7 @@ ...@@ -2210,6 +2238,7 @@
<ref name='virDomainShutdown'/> <ref name='virDomainShutdown'/>
</word> </word>
<word name='store'> <word name='store'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='virConnectListDefinedDomains'/> <ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/> <ref name='virConnectListDomains'/>
<ref name='virConnectOpen'/> <ref name='virConnectOpen'/>
...@@ -2407,6 +2436,7 @@ ...@@ -2407,6 +2436,7 @@
</word> </word>
<word name='used'> <word name='used'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
...@@ -2480,6 +2510,7 @@ ...@@ -2480,6 +2510,7 @@
</word> </word>
<word name='virDomainPinVcpu'> <word name='virDomainPinVcpu'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/> <ref name='VIR_USE_CPU'/>
...@@ -2518,6 +2549,7 @@ ...@@ -2518,6 +2549,7 @@
<ref name='_virVcpuInfo'/> <ref name='_virVcpuInfo'/>
</word> </word>
<word name='virtual'> <word name='virtual'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='_virDomainInfo'/> <ref name='_virDomainInfo'/>
<ref name='_virVcpuInfo'/> <ref name='_virVcpuInfo'/>
<ref name='vcpu'/> <ref name='vcpu'/>
...@@ -2573,6 +2605,7 @@ ...@@ -2573,6 +2605,7 @@
</word> </word>
<word name='with'> <word name='with'>
<ref name='VIR_COPY_CPUMAP'/> <ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/> <ref name='VIR_CPU_USABLE'/>
<ref name='VIR_GET_CPUMAP'/> <ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/> <ref name='VIR_UNUSE_CPU'/>
......
...@@ -2,10 +2,25 @@ ...@@ -2,10 +2,25 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><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>Releases</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Releases</h1><p>Here is the list of official releases, however since it is early on in the <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>Releases</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Releases</h1><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 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 progresses.</p><h3>0.1.3: Jul 11 2006</h3><ul><li>bugfixes: build as non-root, fix xend access when root, handling of and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p><h3>0.1.4: Aug 16 2006</h3><ul><li>bug fixes: spec file fix (Mark McLoughlin), error report problem (with
Hugh Brock), long integer in Python bindings (with Daniel Berrange), XML
generation bug for CDRom (Daniel Berrange), bug whem using number() XPath
function (Mark McLoughlin), fix python detection code, remove duplicate
initialization errors (Daniel Berrange)</li>
<li>improvements: UUID in XML description (Peter Vetere), proxy code
cleanup, virtual CPU and affinity support + virsh support (Michel
Ponceau, Philippe Berthault, Daniel Berrange), port and tty informations
for console in XML (Daniel Berrange), added XML dump to driver and proxy
support (Daniel Berrange), extention of boot options with support for
floppy and cdrom (Daniel Berrange), features block in XML to report/ask
PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect
operations when using read-only connection, large improvements to test
driver (Daniel Berrange) </li>
<li>documentation: spelling (Daniel Berrange), test driver examples.</li>
</ul><h3>0.1.3: Jul 11 2006</h3><ul><li>bugfixes: build as non-root, fix xend access when root, handling of
empty XML elements (Mark McLoughlin), XML serialization and parsing fixes empty XML elements (Mark McLoughlin), XML serialization and parsing fixes
(Mark McLoughlin), allow to create domains without disk (Mark (Mark McLoughlin), allow to create domains without disk (Mark
McLoughlin), </li> McLoughlin),</li>
<li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange), <li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li> support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li>
<li>documentation: augmented to cover hvm domains</li> <li>documentation: augmented to cover hvm domains</li>
......
...@@ -196,7 +196,7 @@ typedef virNodeInfo *virNodeInfoPtr; ...@@ -196,7 +196,7 @@ typedef virNodeInfo *virNodeInfoPtr;
* version * 1,000,000 + minor * 1000 + micro * version * 1,000,000 + minor * 1000 + micro
*/ */
#define LIBVIR_VERSION_NUMBER 1003 #define LIBVIR_VERSION_NUMBER 1004
int virGetVersion (unsigned long *libVer, int virGetVersion (unsigned long *libVer,
const char *type, const char *type,
...@@ -352,7 +352,7 @@ int virDomainPinVcpu (virDomainPtr domain, ...@@ -352,7 +352,7 @@ int virDomainPinVcpu (virDomainPtr domain,
#define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8))) #define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
/** /**
* VIR_CPU_MAPLEN * VIR_CPU_MAPLEN:
* @cpu: number of physical CPUs * @cpu: number of physical CPUs
* *
* This macro is to be used in conjonction with virDomainPinVcpu() API. * This macro is to be used in conjonction with virDomainPinVcpu() API.
......
...@@ -352,7 +352,7 @@ int virDomainPinVcpu (virDomainPtr domain, ...@@ -352,7 +352,7 @@ int virDomainPinVcpu (virDomainPtr domain,
#define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8))) #define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
/** /**
* VIR_CPU_MAPLEN * VIR_CPU_MAPLEN:
* @cpu: number of physical CPUs * @cpu: number of physical CPUs
* *
* This macro is to be used in conjonction with virDomainPinVcpu() API. * This macro is to be used in conjonction with virDomainPinVcpu() API.
......
...@@ -939,7 +939,7 @@ xenProxyNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) { ...@@ -939,7 +939,7 @@ xenProxyNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) {
* Returns the XML document on success, NULL otherwise. * Returns the XML document on success, NULL otherwise.
*/ */
static char * static char *
xenProxyDomainDumpXML(virDomainPtr domain, int flags) xenProxyDomainDumpXML(virDomainPtr domain, int flags ATTRIBUTE_UNUSED)
{ {
virProxyPacket req; virProxyPacket req;
virProxyFullPacket ans; virProxyFullPacket ans;
......
...@@ -705,7 +705,7 @@ testDomainCreateLinux(virConnectPtr conn, const char *xmlDesc, ...@@ -705,7 +705,7 @@ testDomainCreateLinux(virConnectPtr conn, const char *xmlDesc,
return (NULL); return (NULL);
} }
if (conn->flags & VIR_CONNECT_RO) { if (conn->flags & VIR_CONNECT_RO) {
testError(conn, NULL, VIR_ERR_READ_ONLY, __FUNCTION__); testError(conn, NULL, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (NULL); return (NULL);
} }
...@@ -821,7 +821,7 @@ int testDestroyDomain (virDomainPtr domain) ...@@ -821,7 +821,7 @@ int testDestroyDomain (virDomainPtr domain)
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -839,7 +839,7 @@ int testResumeDomain (virDomainPtr domain) ...@@ -839,7 +839,7 @@ int testResumeDomain (virDomainPtr domain)
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -857,7 +857,7 @@ int testPauseDomain (virDomainPtr domain) ...@@ -857,7 +857,7 @@ int testPauseDomain (virDomainPtr domain)
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -880,7 +880,7 @@ int testShutdownDomain (virDomainPtr domain) ...@@ -880,7 +880,7 @@ int testShutdownDomain (virDomainPtr domain)
return (-1); return (-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -908,7 +908,7 @@ int testRebootDomain (virDomainPtr domain, virDomainRestart action) ...@@ -908,7 +908,7 @@ int testRebootDomain (virDomainPtr domain, virDomainRestart action)
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -1006,7 +1006,7 @@ int testSetMaxMemory (virDomainPtr domain, ...@@ -1006,7 +1006,7 @@ int testSetMaxMemory (virDomainPtr domain,
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -1026,7 +1026,7 @@ int testSetMemory (virDomainPtr domain, ...@@ -1026,7 +1026,7 @@ int testSetMemory (virDomainPtr domain,
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
...@@ -1051,7 +1051,7 @@ int testSetVcpus(virDomainPtr domain, ...@@ -1051,7 +1051,7 @@ int testSetVcpus(virDomainPtr domain,
return(-1); return(-1);
} }
if (domain->conn->flags & VIR_CONNECT_RO) { if (domain->conn->flags & VIR_CONNECT_RO) {
testError(domain->conn, domain, VIR_ERR_READ_ONLY, __FUNCTION__); testError(domain->conn, domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return (-1); return (-1);
} }
......
...@@ -2176,7 +2176,7 @@ xenDaemonDomainDumpXMLByID(virConnectPtr conn, int domid) ...@@ -2176,7 +2176,7 @@ xenDaemonDomainDumpXMLByID(virConnectPtr conn, int domid)
* the caller must free() the returned value. * the caller must free() the returned value.
*/ */
char * char *
xenDaemonDomainDumpXML(virDomainPtr domain, int flags) xenDaemonDomainDumpXML(virDomainPtr domain, int flags ATTRIBUTE_UNUSED)
{ {
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册