mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-09-22 13:45:17 +03:00
Compare commits
156 Commits
v0.0.3
...
LIBVIRT_0_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d1ef709cc | ||
|
|
9425a3e617 | ||
|
|
5c2831b30b | ||
|
|
64d25e8de5 | ||
|
|
bfd5060347 | ||
|
|
b084f43f71 | ||
|
|
075337182c | ||
|
|
86a22bd660 | ||
|
|
e1ec9651a2 | ||
|
|
f87c6d4734 | ||
|
|
d42014f108 | ||
|
|
098e0a4bdc | ||
|
|
0342994a8d | ||
|
|
3c43212307 | ||
|
|
56e0d5b33d | ||
|
|
4dfbf940a4 | ||
|
|
a9fd476848 | ||
|
|
345c959db9 | ||
|
|
f7e0594f87 | ||
|
|
d7815361f8 | ||
|
|
7a8a63380f | ||
|
|
417e06a40e | ||
|
|
6e7ec1f704 | ||
|
|
56c02f2016 | ||
|
|
c3415fbd3a | ||
|
|
53161d7cb2 | ||
|
|
16e2cc5174 | ||
|
|
0798941a85 | ||
|
|
0cf5ee2325 | ||
|
|
3d90a9c86d | ||
|
|
3ffac4a188 | ||
|
|
4d56d3c638 | ||
|
|
e2bd543163 | ||
|
|
5004bee519 | ||
|
|
1addb9b1c0 | ||
|
|
48030121a1 | ||
|
|
4fcc208fa4 | ||
|
|
567b42ce6a | ||
|
|
c74976f139 | ||
|
|
5995e2428c | ||
|
|
f14093e509 | ||
|
|
ec48593fdc | ||
|
|
337211e731 | ||
|
|
c386d9747b | ||
|
|
27b7a8be52 | ||
|
|
b62cdc1405 | ||
|
|
17af6e0a9b | ||
|
|
ac4818d05a | ||
|
|
a2e2e4652f | ||
|
|
801bfd2ec9 | ||
|
|
d455b40712 | ||
|
|
15b40d295d | ||
|
|
442b733e6c | ||
|
|
4ab2646127 | ||
|
|
5cc5f540f0 | ||
|
|
037f413e4e | ||
|
|
ef61dba0dc | ||
|
|
e85fa600e7 | ||
|
|
2bfd45c942 | ||
|
|
7efa1c11b5 | ||
|
|
d9bfbfa949 | ||
|
|
1213bedf6d | ||
|
|
e5bb0cb052 | ||
|
|
88e6f39ae6 | ||
|
|
d0f2c663be | ||
|
|
d47ddf5b67 | ||
|
|
624505349d | ||
|
|
fd6d06b49d | ||
|
|
0d8e15fa75 | ||
|
|
0f579f785c | ||
|
|
bfee5cd2cd | ||
|
|
7b38f418cb | ||
|
|
1e01848396 | ||
|
|
aa13b2aa79 | ||
|
|
0ea21e5cbd | ||
|
|
f7a48c19f1 | ||
|
|
be54328be3 | ||
|
|
91b0ae89dd | ||
|
|
b68bd23d9b | ||
|
|
e081236077 | ||
|
|
cb8f47047b | ||
|
|
7293407295 | ||
|
|
572806a99b | ||
|
|
1ea832d65b | ||
|
|
6bd95bf2a3 | ||
|
|
48e85b5c41 | ||
|
|
f7e40ae879 | ||
|
|
831f910e50 | ||
|
|
5fff4b0bed | ||
|
|
2b4566b5b5 | ||
|
|
c9a8f27380 | ||
|
|
85c23ead9e | ||
|
|
880f4e9ae2 | ||
|
|
212eaea323 | ||
|
|
78de9baafc | ||
|
|
538686f9c0 | ||
|
|
7743c7a7b1 | ||
|
|
4faeeb1041 | ||
|
|
a5990ba624 | ||
|
|
37a91cb049 | ||
|
|
49359cfe63 | ||
|
|
978115dc04 | ||
|
|
a453b65e09 | ||
|
|
561377ab8a | ||
|
|
a21472c0fd | ||
|
|
faf61d94c1 | ||
|
|
44c2c10ea5 | ||
|
|
c54ae3f023 | ||
|
|
de5a1d1dd5 | ||
|
|
247cf7a3b2 | ||
|
|
cda69700a0 | ||
|
|
72b838fffc | ||
|
|
0742c9313e | ||
|
|
a720116103 | ||
|
|
714532355f | ||
|
|
6c5a225725 | ||
|
|
97e7e798b2 | ||
|
|
65bace1765 | ||
|
|
9aba17bd6c | ||
|
|
8bc437e412 | ||
|
|
5548938d62 | ||
|
|
87d338374a | ||
|
|
739dfb531d | ||
|
|
596b601021 | ||
|
|
4d9187a696 | ||
|
|
7d28bba98d | ||
|
|
ac6eb960cf | ||
|
|
8557bc67a4 | ||
|
|
868f93ba8e | ||
|
|
4750942abe | ||
|
|
5800109158 | ||
|
|
fd21f1b3ec | ||
|
|
20cfd0c818 | ||
|
|
97f9566687 | ||
|
|
6eaf35d077 | ||
|
|
6ce04643d0 | ||
|
|
6536c00f25 | ||
|
|
21df1e503b | ||
|
|
a3512b01f9 | ||
|
|
d02fa086ff | ||
|
|
c509b5cd0b | ||
|
|
d3a15eb303 | ||
|
|
9a2ec00a05 | ||
|
|
9c5111b9c9 | ||
|
|
144141872b | ||
|
|
82402982c8 | ||
|
|
77e8b6c62c | ||
|
|
2985f0acdb | ||
|
|
f32eee58b0 | ||
|
|
a5f9391541 | ||
|
|
04142f1c5e | ||
|
|
2a9660e425 | ||
|
|
7191077439 | ||
|
|
60c5aabc5a | ||
|
|
f2fec34604 | ||
|
|
0b2869fb84 |
@@ -17,6 +17,5 @@ libtool
|
||||
ltconfig
|
||||
ltmain.sh
|
||||
update.log
|
||||
libxen.pc
|
||||
libxen.spec
|
||||
|
||||
libvirt.pc
|
||||
libvirt.spec
|
||||
|
||||
929
ChangeLog
929
ChangeLog
@@ -1,3 +1,932 @@
|
||||
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>
|
||||
|
||||
* src/virsh.c: Added 'setvcpus', 'setmem', 'setmaxmem'
|
||||
commands to virsh shell. Allow full read-write connection
|
||||
to non-Xen test hypervisor.
|
||||
|
||||
Wed Aug 16 11:38:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/test.c, src/test.h: Allow a hypervisor config to be
|
||||
loaded from an external XML file. Implement drivers for
|
||||
setMemory, setMaxMemory, createLinux, dumpXML, setVcpus.
|
||||
* docs/testnode.xml, docs/testfc4.xml, docs/testfv0.xml:
|
||||
Example config for using with test driver
|
||||
|
||||
Wed Aug 16 11:36:21 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c, src/xml.c, src/xml.h: Refactored the
|
||||
sexpr_uuid method into a re-usable virParseUUID method which
|
||||
can be used by any backend
|
||||
|
||||
Wed Aug 16 11:31:59 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/libvirt.c: Remove some duplicated changes for VIR_DOMAIN_RO
|
||||
accidentally left in place from last checkin. Tell the drivers to
|
||||
be 'quiet' when opening a RW connection, to stop XenD driver
|
||||
complaining when we open the test driver.
|
||||
|
||||
Wed Aug 16 17:24:59 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt/virterror.h src/libvirt.c src/virterror.c: enforce
|
||||
blocking operations with side effect on read-only connections. Adds
|
||||
a new error code and message.
|
||||
|
||||
Tue Aug 15 11:55:15 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xml.c, src/xend_internal.c: Added a <features> block
|
||||
to XML allowing enablement of guest CPU / system features.
|
||||
Currently support PAE, ACPI, APIC for HVM domains.
|
||||
* docs/libvir.html: Documented new <features> block and those
|
||||
features enabled for HVM guests
|
||||
|
||||
Mon Aug 14 10:55:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* docs/libvir.html, docs/format.html: Updated description of
|
||||
HVM boot device, and disk device configuration to match up
|
||||
new new behaviour from previous changes
|
||||
|
||||
Fri Aug 11 09:37:02 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/libvirt.c: Avoid duplicated attempts to shutdown or
|
||||
pause a domain if the first attempt succeeded.
|
||||
* src/xend_internal.c, src/xml.c: When parsing UUID from
|
||||
SEXPR also allow for format without any embedded '-'. The
|
||||
ioemu: prefix is no longer required for HVM domains. It is
|
||||
added when generating SEXPR, and removing when parsing SEXPR
|
||||
never appearing in XML. CDROM & floppy devices for HVM domains
|
||||
are now included in XML under <devices><disk> tag. The <disk>
|
||||
tag now has a 'device' attribute allowing one of 'floppy',
|
||||
'cdrom', 'disk' to be specified. If the <console> tag is present
|
||||
in XML, HVM domains get a serial console activated. <boot>
|
||||
tag now expects one of 'fd' 'hd' or 'cdrom' when specifying
|
||||
boot device preference. Increased size of XML doc buffer from
|
||||
1k to 4k to deal with large numbers of devices
|
||||
|
||||
Fri Aug 11 13:08:01 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in: updated python detection code from latest libxml2 one
|
||||
* docs//*: rebuilt the docs
|
||||
|
||||
Thu Aug 10 15:28:52 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xml.c: markmc pointed out that using number(xpath) could lead
|
||||
to NaN and following comparison would be wrong in a couple of places
|
||||
if the element looked at was missing.
|
||||
|
||||
Wed Aug 9 10:17:03 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/driver.h, src/libvirt.c: Made the virDomainGetXMLDesc
|
||||
method use the driver backends.
|
||||
* src/xend_internal.c: Surround all functions which are not
|
||||
needed for proxy with #ifndef PROXY. Refactor XML generator
|
||||
functions to allow calling from proxy based on domain id
|
||||
instead of virDomainPtr object
|
||||
* src/xs_internal.c, src/xs_internal.h: Change signature
|
||||
of method for extracting VNC port & console TTY to use domain
|
||||
id instead of virDomainPtr. Surround functions not used by
|
||||
proxy in #ifndef PROXY
|
||||
* src/xml.c:Surround functions not used by proxy in #ifndef PROXY
|
||||
* src/test.c, src/xen_internal.c: Added NULL entry for new
|
||||
driver method for fetching XML
|
||||
* src/proxy_internal.c, src/proxy_internal.h, proxy/libvirt_proxy.c:
|
||||
Added implmentation of virDomainGetXMLDesc driver method which
|
||||
goes via proxy.
|
||||
|
||||
Tue Aug 8 23:24:51 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/driver.h src/libvirt.c src/proxy_internal.c src/test.c
|
||||
src/xen_internal.c src/xend_internal.c src/xend_internal.h
|
||||
src/xml.c src/xs_internal.c: cleanups, force the new vCPU
|
||||
and affinity entry point to go though the driver framework,
|
||||
and fix a few warning showing up in my pedantic environment.
|
||||
|
||||
Mon Aug 7 18:33:45 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: Added details of serial console TTY to XML
|
||||
representation of domain. Fetch VNC port from xenstore if it is
|
||||
available (only in xen 3.0.3 or later).
|
||||
* src/xs_internal.c, src/xs_internal.h: Added APIs for retrieving
|
||||
the serial console TTY and VNC server port from xenstore.
|
||||
* docs/libvir.html: Document 'port' attribute for VNC graphics,
|
||||
and '<console>' element for serial console.
|
||||
|
||||
Mon Aug 7 21:57:41 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated with new items
|
||||
|
||||
Mon Aug 7 14:57:12 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: Corrected string length calculation when
|
||||
appending a CDROM boot device element. Fixes corrupt XML structure.
|
||||
|
||||
Mon Aug 7 11:06:20 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: Added a 'port' attribute to the '<graphics>'
|
||||
tag when display type is VNC, providing the port number on which
|
||||
the VNC server is listening.
|
||||
|
||||
Mon Aug 7 18:47:48 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt/libvirt.h.in: previous change to libvirt.h should
|
||||
have gone on .in too
|
||||
|
||||
Fri Aug 4 20:19:23 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/libvirt.c: Fix off-by-one in validated VCPU number (it is
|
||||
zero based, not one based).
|
||||
* include/libvirt/libvirt.h: Add some convenience macros for
|
||||
calculating neccessary CPU map lengths & total host CPUs
|
||||
* src/virsh.c: Add 'vcpuinfo' and 'vcpumap' commands
|
||||
|
||||
Fri Aug 4 14:45:25 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/generator.py: fix the generator when handling long integers
|
||||
Dan Berrange reported problems due to this when using
|
||||
virDomainSetMemory bindings
|
||||
|
||||
Fri Aug 4 11:49:44 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt/libvirt.h include/libvirt/libvirt.h.in
|
||||
src/libvirt.c src/libvirt_sym.version src/xen_internal.c
|
||||
src/xen_internal.h src/xend_internal.c src/xend_internal.h:
|
||||
applied patch from Michel Ponceau and Philippe Berthault for
|
||||
virtual CPU and affinity support plus a bit of cleanup.
|
||||
|
||||
Tue Aug 1 16:22:52 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.spec.in: xen is now built for ia64, c.f. RH#199685
|
||||
|
||||
Fri Jul 28 16:18:30 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/virterror.c: Hugh Brock pointed out that error message
|
||||
for bad argument were wrong and incomplete, this should fix it and
|
||||
a few other problems in error reporting
|
||||
|
||||
Mon Jul 24 14:34:15 IST 2006 Mark McLoughlin <markmc@redhat.com>
|
||||
|
||||
* libvirt.spec.in: sync changes from fedora CVS
|
||||
|
||||
Thu Jul 20 09:05:15 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* proxy/Makefile.am src/xen_internal.c src/xend_internal.c: cleanup
|
||||
code when compiled for the proxy, changed the command line macro and
|
||||
remove warnings.
|
||||
|
||||
Wed Jul 19 17:26:48 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/*.c: Bulk replace 'informations' with 'information' to
|
||||
correct English spelling
|
||||
|
||||
Thu Jul 13 23:33:48 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xml.c: applied patch from Peter Vetere to pass down the
|
||||
UUID from the XML description if present when creating the domain.
|
||||
|
||||
Tue Jul 11 18:03:51 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in libvirt.spec.in docs/* NEWS: preparing release of
|
||||
libvirt-0.1.3
|
||||
* src/xend_internal.c: uninitialized var and disable TCP slow start
|
||||
|
||||
Mon Jul 10 14:19:52 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs/format.html docs/libvir.html docs/news.html: updated the XML
|
||||
format documentation to cover the new HVM domains.
|
||||
|
||||
Mon Jul 10 12:27:17 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c src/xml.c: patches from Jim Fehlig for HVM
|
||||
guests, plus XML format changes and merge from Mark McLoughlin
|
||||
|
||||
Fri Jul 7 09:47:14 EDT 2006 Daniel Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: changed xenDaemonLookupByID to simply do
|
||||
an sexpr GET on /xend/domain/[ID] instead of listing all names
|
||||
and iterating over /xend/domain/[NAME]. Reduces the running time
|
||||
and number of GETs from O(n^2) to O(n).
|
||||
|
||||
Wed Jul 5 17:11:32 IST 2006 Mark McLoughlin <markmc@redhat.com>
|
||||
|
||||
* xml.c: allow a <domain> to not have any <disk> devices - e.g.
|
||||
when using an NFS root.
|
||||
|
||||
Thu Jul 6 10:32:14 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c: fixed xenDaemonOpen() to try both unix and
|
||||
http accesses by default and to use the provided URI otherwise,
|
||||
applied Jim Fehlig patch working around xend connection close bug
|
||||
* autogen.sh: fixed package name
|
||||
|
||||
Wed Jul 5 17:11:32 IST 2006 Mark McLoughlin <markmc@redhat.com>
|
||||
|
||||
* xml.c: make the entire <os> node optional if a bootloader
|
||||
is specified. If we pass an image config to xend, the
|
||||
bootloader gets ignored anyway.
|
||||
|
||||
Wed Jul 5 16:51:45 IST 2006 Mark McLoughlin <markmc@redhat.com>
|
||||
|
||||
* xml.c: only set bootloader flag when we actually get
|
||||
a bootloader
|
||||
|
||||
Tue Jul 4 13:50:55 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.spec.in proxy/Makefile.am: do the chown at the rpm packaging
|
||||
level, to allow build as non-root
|
||||
* src/xml.c: fix bug #197583 raised by markmc
|
||||
|
||||
Mon Jul 3 15:41:58 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS docs/* configure.in libvirt.spec.in include/libvirt/libvirt.h:
|
||||
preparing release of 0.1.2
|
||||
* src/proxy_internal.c: don't warn on open if using http and not the
|
||||
proxy.
|
||||
|
||||
Mon Jul 3 13:54:03 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.spec.in proxy/Makefile.am src/proxy_internal.c
|
||||
src/xen_internal.c: fixing the proxy installation, integrate in
|
||||
the spec file and fix a few bugs in the proxy, seems to behave
|
||||
correctly now.
|
||||
* docs/apibuild.py docs/*: fixing the doc and API generator
|
||||
|
||||
Mon Jul 3 11:21:10 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* proxy/libvirt_proxy.c src/proxy_internal.[ch] src/xend_internal.[ch]:
|
||||
finished the last entry point missing for the proxy code.
|
||||
|
||||
Fri Jun 30 16:31:47 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* proxy/libvirt_proxy.c src/proxy_internal.c: more bug fixes,
|
||||
virsh starts to work normally over the proxy. Still one entry
|
||||
point missing but it's minor.
|
||||
|
||||
Thu Jun 29 23:57:35 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* proxy/libvirt_proxy.c src/proxy_internal.c src/xen_internal.c
|
||||
src/xen_internal.h src/xend_internal.c src/xend_internal.h:
|
||||
implemented id based lookup and other cleanups, virsh starts to
|
||||
work, but still some TODOs
|
||||
|
||||
Thu Jun 29 22:19:51 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/proxy_internal.c src/proxy_internal.h src/driver.h src/libvirt.c
|
||||
src/Makefile.am: moved proxy/proxy.h and proxy/proxy_client.c as
|
||||
proxy_internal.[ch] and integrated them as a new driver.
|
||||
* proxy/Makefile.am proxy/libvirt_proxy.c src/xen_internal.c
|
||||
src/xen_internal.h src/xend_internal.c: various related cleanups.
|
||||
|
||||
Thu Jun 29 14:53:01 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* proxy/libvirt_proxy.c proxy/proxy.h proxy/proxy_client.c: more
|
||||
progresses on the proxy implementation.
|
||||
* src/xend_internal.c src/xend_internal.h: exported one routine
|
||||
|
||||
Wed Jun 28 19:23:25 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in Makefile.am proxy/Makefile.am proxy/libvirt_proxy.c
|
||||
proxy/proxy.h proxy/proxy_client.c src/internal.h src/xen_internal.c
|
||||
src/xend_internal.c: started working on a proxy to access xend
|
||||
for unpriviledged users to avoid opening xend HTTP service to
|
||||
serve those read-only operations.
|
||||
|
||||
Mon Jun 26 16:05:27 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in libvirt.spec.in docs/examples/* include/Makefile.am
|
||||
include/libvirt/virterror.h python/generator.py python/libvir.c
|
||||
python/libvirt_wrap.h src/driver.h src/internal.h src/test.h
|
||||
src/virsh.c src/virterror.c src/xend_internal.c src/xend_internal.h
|
||||
src/xml.c src/xml.h: moved the includes from include/ to
|
||||
include/libvirt to reflect the installed include tree. This
|
||||
avoid using "" in the includes themselves.
|
||||
|
||||
Wed Jun 21 14:41:04 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS libvirt.spec.in docs/*: preparing release of 0.1.1
|
||||
|
||||
Wed Jun 21 13:02:30 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/driver.h src/libvirt.c src/test.c src/xen_internal.c
|
||||
src/xend_internal.c src/xs_internal.c: add driver numbers and
|
||||
tweak a bit suspend/resume/destroy operation to avoid doing
|
||||
them directly though the hypervisor if other succeeded first.
|
||||
|
||||
Wed Jun 21 12:23:15 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xen_internal.c: try to autodetect the Xen hypervisor version
|
||||
used and switch automatically. A bit nasty though.
|
||||
|
||||
Tue Jun 20 16:14:26 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xen_internal.c: fix breakage introduced in Xen changeset 10277
|
||||
|
||||
Fri Jun 16 15:08:42 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xen_internal.c src/xen_internal.h src/xs_internal.c: fix
|
||||
a TODO in xs_internal.c pointed out by Philippe Berthault
|
||||
|
||||
Fri Jun 16 12:44:02 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xen_internal.c src/xend_internal.c: more driver
|
||||
related cleanups, nearly finished
|
||||
|
||||
Thu Jun 15 14:57:39 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xend_internal.c src/xend_internal.h
|
||||
src/xs_internal.c: more cleanups for the driver architecture
|
||||
|
||||
Wed Jun 14 18:59:30 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/test.h, src/test.c: Added implementation of the reboot
|
||||
and shutdown methods for domains.
|
||||
|
||||
Wed Jun 14 11:20:23 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/libvirt.c: connect virDomainDestroy, virDomainSuspend,
|
||||
virDomainResume, virDomainShutdown & virDomainReboot to the
|
||||
driver backends.
|
||||
|
||||
Wed Jun 14 15:51:00 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xend_internal.c src/xend_internal.h: cleaned up
|
||||
virConnectListDomains and virConnectNumOfDomains, implemented xend
|
||||
driver entry point for them.
|
||||
|
||||
Wed Jun 14 13:10:03 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c: Daniel P. Berrange pointed out a bug in virConnectOpen
|
||||
|
||||
Tue Jun 13 14:06:01 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/virsh.c: use 'double' instead of 'float' when calculating
|
||||
'CPU time' field for dominfo command, to ensure no unneccessary
|
||||
loss of precision converting from nanoseconds to seconds.
|
||||
|
||||
Tue Jun 13 18:35:22 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xen_internal.c src/xend_internal.c
|
||||
src/xs_internal.c: fix the connection and GetType initialization.
|
||||
|
||||
Tue Jun 13 16:37:27 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs//*: rebuilt the documentation
|
||||
* src/driver.h src/libvirt.c src/test.c src/xen_internal.c
|
||||
src/xend_internal.c src/xs_internal.c: started to fix some of
|
||||
the driver related problem raised by Daniel Berrange, added a
|
||||
ver version field to drivers.
|
||||
|
||||
Mon Jun 12 17:22:24 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: Call 'xenDomainGetVersion' when trying
|
||||
to open a connection, as a sort of "ping" test to verify the
|
||||
Xen daemon connection - fail the open method, if the "ping" is
|
||||
not successful.
|
||||
|
||||
Mon Jun 05 22:31:20 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/test.c, src/test.h: New 'mock' hypervisor driver providing
|
||||
a way to write predictable unit tests which exercise libvirt APIs.
|
||||
* src/libvirt.c, src/Makefile.am: Integrate test hypervisor driver
|
||||
|
||||
Fri May 26 11:59:20 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/hash.c, src/internal.h: Switch the uuid parameter in virGetDomain
|
||||
to be of type 'unsigned char' since its a raw UUID we're passing in,
|
||||
not a printable one.
|
||||
* src/libvirt.c: Remove bogus "unsigned char" -> "char" type casts. Hook
|
||||
up the "domainLookupByID", "domainLookupByUUID", "domainLookupByName"
|
||||
and "domainGetInfo" driver backend functions.
|
||||
|
||||
Mon May 29 17:02:26 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/libvirt_sym.version: added in missing symbols referenced by python
|
||||
bindings (patch by Daniel P. Berrange)
|
||||
* tests/Makefile.am: fixed include dirs to make VPATH builds work
|
||||
(patch by Daniel P. Berrange)
|
||||
|
||||
Mon May 29 16:33:39 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virsh.c: improved vshCommandOptDomain(), added <name> to the
|
||||
connect command and minor changes to Daniel B.'s patch
|
||||
|
||||
Fri May 26 11:40:20 EDT 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/virsh.c: added 'domuuid' command to display printable UUID
|
||||
string for a domain. Added '--connect' argument to allow the name
|
||||
of the hypervisor connection passed to virConnect to be set.
|
||||
|
||||
Mon May 22 15:34:20 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virsh.c: added UUID: to the dominfo command, vshPrint() refactoring,
|
||||
added support for domain look up by UUID
|
||||
* virsh.1: added information about UUID, fixed list of commands and
|
||||
domains statuses
|
||||
* src/libvirt.c include/libvirt.h.in src/libvirt_sym.version: added
|
||||
virDomainGetUUIDString() and virDomainLookupByUUIDString()
|
||||
|
||||
Wed May 10 15:50:32 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virterror.c include/virterror.h: added VIR_FROM_RPC
|
||||
* src/xmlrpc.c: added checks and _virRaiseError()
|
||||
|
||||
Wed May 10 13:17:00 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/xml.c src/xml.h: added virBufferNew() and virBufferStrcat()
|
||||
* tests/xmlrpctest.c: added performace tests for virBufferStrcat() and
|
||||
virBufferVSprintf()
|
||||
* src/xmlrpc.c: used virBufferStrcat()
|
||||
|
||||
Tue May 9 16:37:22 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* tests/Makefile.am tests/xmlrpctest.c tests/testutils.h: added test
|
||||
directory with basic test utils
|
||||
* tests/test_xmlrpc.sh tests/xmlrpcserver.py tests/xmlrpctest.c: added
|
||||
simple XML-RPC tests agains Python SimpleXMLRPCServer
|
||||
* src/xmlrpc.c src/xmlrpc.h: minor refactoring, fixed gcc warnings
|
||||
* src/xml.c src/xml.h: added virBufferFree()
|
||||
|
||||
Fri Apr 28 18:31:49 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/hash.c src/internal.h src/libvirt.c src/virterror.c
|
||||
src/xml.h include/libvirt.h[.in] include/virterror.h: started
|
||||
adding new APIs, some still TODO, and not tested yet
|
||||
|
||||
Thu Apr 27 14:17:04 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xml.c src/xend_internal.c TODO: added uuid to the XML
|
||||
serialization
|
||||
|
||||
Wed Apr 26 08:32:38 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xml.c: applied patch from Jeremy Katz to not require a
|
||||
root entry in XML nor try to extract it from command line
|
||||
informations.
|
||||
|
||||
Wed Apr 26 07:45:28 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs//* : fixed perl binding URL to point to CPAN as provided by
|
||||
Daniel P. Berrange.
|
||||
|
||||
Tue Apr 25 17:56:32 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in: patch for ncurses fallback from Jim Fehlig
|
||||
|
||||
Tue Apr 25 17:10:10 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in libvirt.spec.in docs/examples/Makefile.am
|
||||
docs/examples/index.py docs/examples/python/*: integrated
|
||||
examples for Python from David Lutterkort
|
||||
|
||||
Tue Apr 25 13:37:22 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c: applied patch from Jim Fehlig when parsing
|
||||
domain S-Expr the kernel may not be provided (Dom0)
|
||||
|
||||
Mon Apr 24 18:23:29 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/hash.c src/internal.h: add virGetDomainByID() to speed up
|
||||
some processing but not used yet
|
||||
* src/libvirt.c src/xen_internal.c src/xen_internal.h: added domain
|
||||
listing and number queries entry points based on the hypervisor
|
||||
which should speed up some processing as root.
|
||||
|
||||
Thu Apr 20 14:31:13 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c: fix an uninitialized memory access in error
|
||||
reporting.
|
||||
|
||||
Thu Apr 13 17:19:25 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt.h include/libvirt.h.in doc/*: added new entry point
|
||||
virDomainSetMemory to set up the target memory use for a domain
|
||||
* src/driver.h src/libvirt.c src/xen_internal.c src/xend_internal.[ch]
|
||||
src/xs_internal.[ch]: added a new entry point in the drivers for this,
|
||||
also fixed the xen store entry, as changing
|
||||
/local/domain/$$/memory/target affects the target memory not the max,
|
||||
apparently max is not visible at the xenstore level (or I missed it)
|
||||
|
||||
Mon Apr 10 15:15:13 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS configure.in libvirt.spec.in docs/*: documented and
|
||||
regenerated for release of 0.1.0
|
||||
* Makefile.am virsh.1: added man page from Andrew Puch
|
||||
|
||||
Mon Apr 10 09:32:29 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c src/xml.c: applied patch from Jim Fehlig
|
||||
for lifecycle events
|
||||
* docs/format.html docs/libvir.html: added the associated docs for
|
||||
the new constructs
|
||||
* TODO: small update
|
||||
|
||||
Sun Apr 9 13:10:34 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO src/hash.[ch] src/internal.h src/libvirt.c src/xend_internal.c
|
||||
src/xs_internal.c: implementing domain pointers unification, thread
|
||||
safety and reference counting for domain and connections, this was
|
||||
the last critical change needed before making further progresses at
|
||||
the API level. Still a couple fo things TODO for this, unification
|
||||
at the Python level and adding UUID to hash. All domain/connect alloc
|
||||
and free routines are now centralized in hash.c
|
||||
* docs/APIchunk1.html docs/libvirt-api.xml docs/libvirt-refs.xml
|
||||
docs/html/libvirt-libvirt.html: regenerated the docs, that doesn't
|
||||
change the API.
|
||||
|
||||
Thu Apr 6 11:32:46 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virsh.c: use stdout for standard outputs, improve
|
||||
allocation checks
|
||||
|
||||
Wed Apr 5 09:32:54 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/hash.c: tiny fix
|
||||
* src/internal.h: starting to work on reentrancy
|
||||
* src/libvirt.c: applied patch from Jim Fehlig to fix
|
||||
virDomainLookupByID when run as root.
|
||||
|
||||
Tue Apr 4 22:49:33 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virsh.c: rename dstate, idof and nameof to domstate,
|
||||
domname and domid
|
||||
|
||||
Tue Apr 4 12:41:53 CEST 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* src/virsh.c: add new command "nodeinfo"
|
||||
* include/libvirt.h.in: fix typo (virNodeInfo.memory is in kB)
|
||||
* docs/FAQ.html docs/libvir.html src/virsh.c: rename command
|
||||
"dinfo" to "dominfo"
|
||||
|
||||
Mon Apr 3 14:46:39 EDT 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt.h[.in] src/driver.h src/libvirt.c
|
||||
src/libvirt_sym.version src/*_internal.[ch]: added an entry
|
||||
point for reboot and corresponding driver plug
|
||||
* src/virsh.c: added a reboot option using it
|
||||
* docs/*: regenerated
|
||||
|
||||
Thu Mar 30 16:38:18 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xend_internal.c: applied patch from Daniel P. Berrange,
|
||||
plus a bit of code cleanup
|
||||
|
||||
Thu Mar 30 16:04:47 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/virsh.c: allocation check (Jim Meyering) and adding a
|
||||
new create command
|
||||
* src/xend_internal.c src/xml.c: trying to cope with the new
|
||||
xvda domains states generated on FC5, but Dom0 bootloader
|
||||
really break the model, so that doesn't work.
|
||||
|
||||
Thu Mar 30 12:15:46 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/virsh.c: catching memory allocation error and existing, as
|
||||
pointed by Jim Meyering
|
||||
|
||||
Wed Mar 29 16:36:24 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* doc/*: rebuilt
|
||||
|
||||
Wed Mar 29 13:34:25 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/libvir.c: fixed a bug in the new wrapper
|
||||
* python/tests/Makefile.am python/tests/node.py: added a new test for
|
||||
the new API
|
||||
* python/tests/create.py: remove a debug
|
||||
|
||||
Wed Mar 29 14:43:56 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt.h[.in] include/virterror.h src/driver.h
|
||||
src/internal.h src/libvirt_sym.version src/xen_internal.c
|
||||
src/xs_internal.c: added a new entry point to get node hardware
|
||||
informations virGetNodeInfo, and associated driver hook.
|
||||
* src/xend_internal.c: implemented the node and version information
|
||||
hooks for the Xen Daemon
|
||||
* python/libvir.c python/libvirt-python-api.xml python/generator.py:
|
||||
also added Python bindings for the new call
|
||||
|
||||
Tue Mar 28 16:40:08 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/libvir.c: call the initialize entry point
|
||||
* src/libvirt_sym.version: add initialize entry point
|
||||
* src/libvirt.c: make sure we always initialize the lib
|
||||
* python/tests/*.py: start updating exemple for exception
|
||||
handling as pointed by Jim Meyering
|
||||
|
||||
Tue Mar 28 11:49:59 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* doc/site.xsl doc/libvir.html doc/*: added informations about
|
||||
the Perl bindings, regenerated
|
||||
* python/libvirt_wrap.h: added a missing include.
|
||||
|
||||
Mon Mar 27 17:22:16 CEST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* doc/*: updated module list and rebuilt
|
||||
* include/libvirt.h include/libvirt.h.in: added intialization function
|
||||
* include/virterror.h src/virterror.c: one more error code
|
||||
* src/internal.h: first part of Jim's format checking
|
||||
* src/libvirt.c src/xen_internal.[ch] src/xend_internal.[ch]
|
||||
src/xs_internal.[ch]: initialization and registration of drivers
|
||||
|
||||
Sat Mar 25 11:45:06 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/Makefile.am: add driver.h to SOURCES as pointed by Jim Meyering
|
||||
* doc/*: rebuilt
|
||||
|
||||
Sat Mar 25 11:38:29 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/virterror.c: add message as pointed by Jim Meyering
|
||||
|
||||
Fri Mar 24 23:57:56 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/virterror.h: fix typos pointed by Jim Meyering
|
||||
|
||||
Fri Mar 24 23:36:05 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/virterror.h: applied patch from Daniel Berrange for out of
|
||||
tree compiles.
|
||||
|
||||
Fri Mar 24 14:17:52 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags
|
||||
|
||||
Fri Mar 24 14:03:26 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/Makefile.am: fix out of tree build
|
||||
|
||||
Thu Mar 23 16:40:37 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xs_internal.c src/xs_internal.h include/virterror.h
|
||||
src/virterror.c: created a new module related to Xen Store accesses
|
||||
* src/libvirt.c src/xen_internal.[ch] src/xend_internal.[ch]:
|
||||
nearly completed the separation of the code from the different modules
|
||||
|
||||
Wed Mar 22 14:43:16 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/tests/create.py: add one more image path
|
||||
* src/libvirt.c src/xend_internal.c src/xend_internal.h: more work
|
||||
on the xend refactoring
|
||||
|
||||
Wed Mar 22 13:34:32 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/tests/create.py: adapt to new naming scheme in FC5
|
||||
|
||||
Tue Mar 21 00:40:29 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/driver.h src/xen_internal.c: just add a driver block for
|
||||
the Xen hypervisor direct access module. Need to convert
|
||||
xend_internal.[ch] and make one for the Xenstore now ...
|
||||
|
||||
Mon Mar 20 18:43:19 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/driver.h src/internal.h src/libvirt.c src/xen_internal.c
|
||||
src/xen_internal.h docs/apibuild.py: starting the refactoring,
|
||||
first the direct Xen hypervisor module. New header describing the
|
||||
entry points of a driver.
|
||||
|
||||
Wed Mar 15 13:10:25 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/hash.c src/hash.h src/internal.h src/libvirt.c src/sexpr.c
|
||||
src/sexpr.h src/virsh.c src/virterror.c src/xen_internal.c
|
||||
src/xen_internal.h src/xend_internal.c src/xend_internal.h
|
||||
src/xml.c src/xml.h: applied cb/indent to homogenize the source
|
||||
style, as a first pass.
|
||||
|
||||
Fri Mar 10 11:07:58 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in: applied patch for --with-xen-distdir option from
|
||||
Ronald Aigner
|
||||
* docs/site.xsl docs/*.html: added link to Bugzilla
|
||||
|
||||
Sat Mar 4 09:59:13 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xml.c: another patch from David Lutterkort fixing a typo
|
||||
when generating physical block devices descriptions.
|
||||
|
||||
Sat Mar 4 09:56:18 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.spec.in: applied patch from David Lutterkort adding
|
||||
missing reqs for readline.
|
||||
|
||||
Tue Feb 28 15:21:48 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS configure.in libvirt.spec.in include/libvirt.h docs/*:
|
||||
preparing release 0.0.6
|
||||
|
||||
Tue Feb 28 14:57:25 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs/errors.html docs/libvir.html docs/*: added a page about
|
||||
error handling and regenerated the docs
|
||||
|
||||
Tue Feb 28 13:12:50 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* python/Makefile.am python/generator.py python/libvir.c
|
||||
python/libvir.py: improved python binding, raise exception
|
||||
when an instance creation or lookup fails, and add support
|
||||
for the global error handler, per conn handler still needed
|
||||
* python/tests/error.py python/tests/Makefile.am: adding a
|
||||
regression test
|
||||
|
||||
Mon Feb 27 17:36:29 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* doc//*: rebuilt
|
||||
|
||||
Mon Feb 27 17:33:16 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated, and added python hooks for error handling
|
||||
* include/virterror.h src/virterror.c src/xml.c: error interception
|
||||
and reporting should be done.
|
||||
|
||||
Mon Feb 27 16:42:46 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xen_internal.[ch]: virConnectOpenReadOnly()
|
||||
should not emit error when failing to open the hypervisor proc
|
||||
entry point.
|
||||
|
||||
Mon Feb 27 16:32:55 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/virterror.h src/libvirt_sym.version: exported
|
||||
virDefaultErrorFunc()
|
||||
* src/sexpr.c src/xen_internal.c src/virterror.c include/virterror.h:
|
||||
adding more error reporting though the code, nearly complete.
|
||||
* src/sexpr.c: added specific error function to avoid an error report.
|
||||
|
||||
Mon Feb 27 14:56:57 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/virterror.h src/virterror.c src/xend_internal.c: more work
|
||||
plugging in the error system in the code.
|
||||
|
||||
Mon Feb 27 17:25:48 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* include/virterror.h src/internal.h src/libvirt.c src/virterror.c
|
||||
src/xend_internal.c: commiting a first pass at adding error handling
|
||||
in the code, not finished, but it starts to work, need more coverage
|
||||
and testing.
|
||||
|
||||
Fri Feb 24 23:33:55 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/Makefile.am src/internal.h src/libvirt.c src/libvirt_sym.version
|
||||
src/virterror.c include/Makefile.am include/virterror.h: adding
|
||||
the public APIs for errors, callbacks and synchronous. The boring
|
||||
stuff is still left to do, plugging it. Also need to be exposed
|
||||
at the python level.
|
||||
* doc//*: rebuilt
|
||||
|
||||
Fri Feb 24 22:17:12 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs/index.py docs/search.php: fixing the search engine.
|
||||
|
||||
Fri Feb 24 13:25:36 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/generator.py python/libvir.c python/libvirt-python-api.xml:
|
||||
UUID strings can contain zeroes, so the autogenerated conversion
|
||||
functions don't work.
|
||||
|
||||
Thu Feb 23 06:24:46 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c: fixing a bug before the release of 0.0.5
|
||||
* python/generator.py python/libvir.c python/libvirt-python-api.xml:
|
||||
also fixing the binding for getting a domain UUID
|
||||
* python/tests/Makefile.am python/tests/uuid.py: added a test
|
||||
for the new UUID API
|
||||
|
||||
Thu Feb 23 11:41:06 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS configure.in docs/libvir.html docs/news.html: preparing the
|
||||
release of 0.0.5
|
||||
* include/libvirt.h.in: fixed APIs definition
|
||||
|
||||
Thu Feb 23 05:31:46 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/tests/Makefile.am: added the create.py in the regression tests
|
||||
|
||||
Thu Feb 23 05:13:03 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt.h[.in] src/libvirt.c src/xend_internal.[ch]
|
||||
src/libvirt_sym.version: added virDomainLookupByUUID and
|
||||
virDomainGetUUID to be able to use the persistant UUID names
|
||||
* docs//*: rebuilt the docs following the API extension
|
||||
|
||||
Wed Feb 22 11:53:45 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in libvirt.spec.in docs/Makefile.am docs/devhelp/*:
|
||||
added devhelp docs support, based on libxml2 stylesheets
|
||||
|
||||
Wed Feb 22 09:57:11 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* libvirt.spec.in: package the examples in the doc
|
||||
* src/Makefile.am: forgot to add xml.h
|
||||
|
||||
Tue Feb 21 22:00:11 CET 2006 Karel Zak <kzak@redhat.com>
|
||||
|
||||
* TODO: added virsh part
|
||||
|
||||
Tue Feb 21 09:14:07 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* Makefile.am: extended make tests to run those in docs/examples
|
||||
* docs/examples/suspend.c docs/examples/*: added an example of
|
||||
suspend/resume and regenerated
|
||||
|
||||
Tue Feb 21 14:21:39 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* python/tests/Makefile.am: fix a small PYTHONPATH bug
|
||||
* docs//*: fixed the xsl a bit for toc names, added doc for
|
||||
the python bindings, regenerated
|
||||
|
||||
Tue Feb 21 00:06:30 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xend_internal.c src/xend_internal.h: move the
|
||||
XML dump function around to make sure all entry points are centralized
|
||||
in libvirt.c and also avoid doc generation troubles.
|
||||
* docs/examples/Makefile.am docs/examples/index.py: fix the makefile
|
||||
a bit.
|
||||
* TODO: updated
|
||||
* docs/format.html: added a description of the XML used for the
|
||||
domains.
|
||||
* docs//*: rebuilt
|
||||
|
||||
Mon Feb 20 21:48:55 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* docs/examples/examples.xsl docs/examples/index.html
|
||||
docs/site.xsl: integates the examples page in the web site
|
||||
* docs//* : fixed generator and rebuilt the docs
|
||||
* python/tests/basic.py python/tests/create.py: couple cleanups
|
||||
|
||||
Mon Feb 20 12:20:32 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* include/libvirt.h include/libvirt.h.in: cleanup
|
||||
* src/libvirt.c: remove debugging output
|
||||
* src/xend_internal.c src/xml.c src/xml.h: reimplement
|
||||
virDomainGetXMLDesc() based on xend interface, now work as user too.
|
||||
|
||||
Fri Feb 17 08:17:36 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/tests/create.py: trying to make test more generic, but it's
|
||||
difficult since it requires a system image
|
||||
* src/libvirt.c src/xend_internal.c: fixed the shutdown API which
|
||||
was broken due to a bad reason at the xend level.
|
||||
|
||||
Thu Feb 16 17:47:00 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in src/Makefile.am: adding dependency to libxml2
|
||||
* include/libvirt.h* src/libvirt.c src/xend_internal.[ch]
|
||||
src/xml.[ch]: added XML parsing for Xen domain descriptions
|
||||
needed for creates, plugged in a converter to s-exp and
|
||||
xend call. Modified the virDomainCreateLinux() to reflect
|
||||
that XML based description. Seems to work.
|
||||
* python/tests/create.py: added a test case which seems to work
|
||||
not tested much yet
|
||||
* docs/*: regenerated
|
||||
|
||||
Wed Feb 15 08:20:23 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* configure.in libvirt.spec.in include/libvirt.h.in python/Makefile.am
|
||||
src/Makefile.am: fix rpm packaging problems whith head, more
|
||||
LIBVIR -> LIBVIRT changes.
|
||||
|
||||
Tue Feb 14 15:29:01 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* Makefile.am configure.in python/Makefile.am python/tests/Makefile.am
|
||||
python/tests/basic.py: added first python test script and
|
||||
a 'make tests' target
|
||||
|
||||
Fri Feb 10 16:45:50 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* libvirt.pc.in: Karel pointed out the name hadn't been updated
|
||||
|
||||
Fri Feb 10 11:30:41 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/libvir.c: fixed one more problem prior to 0.0.4
|
||||
|
||||
Fri Feb 10 11:21:53 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS configure.in docs/libvir.html docs/news.html include/libvirt.h
|
||||
libvirt.spec.in: preparing 0.0.4 release
|
||||
|
||||
Fri Feb 10 11:09:11 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* README TODO config.h.in libvirt.pc.in: more cleanups.
|
||||
|
||||
Fri Feb 10 09:42:45 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* NEWS docs/*: regenerated and updated the docs post 0.0.3 release
|
||||
|
||||
Fri Feb 10 09:39:23 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* autogen.sh configure.in: fixed snapshot autogeneration, had to
|
||||
tweak a few things
|
||||
|
||||
Wed Feb 8 11:43:43 EST 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* //* : renamed the project libvirt , this affects all makefiles,
|
||||
|
||||
13
Makefile.am
13
Makefile.am
@@ -1,13 +1,22 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = src include docs @PYTHON_SUBDIR@
|
||||
SUBDIRS = src include docs @PYTHON_SUBDIR@ tests proxy
|
||||
|
||||
EXTRA_DIST = libvirt.spec.in libvirt.spec COPYING.LIB \
|
||||
libvirt.pc.in libvirt.pc TODO AUTHORS ChangeLog \
|
||||
NEWS README
|
||||
NEWS README $(man_MANS)
|
||||
|
||||
man_MANS = virsh.1
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libvirt.pc
|
||||
|
||||
rpm: clean
|
||||
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
|
||||
|
||||
check-local: all tests
|
||||
|
||||
tests:
|
||||
@(cd docs/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
|
||||
@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
|
||||
$(MAKE) MAKEFLAGS+=--silent tests ; fi)
|
||||
|
||||
98
NEWS
98
NEWS
@@ -5,6 +5,104 @@
|
||||
http://libvirt.org/news.html
|
||||
|
||||
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:
|
||||
- bugfixes: build as non-root, fix xend access when root, handling of
|
||||
empty XML elements (Mark McLoughlin), XML serialization and parsing fixes
|
||||
(Mark McLoughlin), allow to create domains without disk (Mark
|
||||
McLoughlin),
|
||||
- improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
|
||||
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)
|
||||
- documentation: augmented to cover hvm domains
|
||||
|
||||
|
||||
0.1.2: Jul 3 2006:
|
||||
- headers include paths fixup
|
||||
- proxy mechanism for unpriviledged read-only access by httpu
|
||||
|
||||
|
||||
0.1.1: Jun 21 2006:
|
||||
- building fixes: ncurses fallback (Jim Fehlig), VPATH builds (Daniel P.
|
||||
Berrange)
|
||||
- driver cleanups: new entry points, cleanup of libvirt.c (with Daniel P.
|
||||
Berrange)
|
||||
- Cope with API change introduced in Xen changeset 10277
|
||||
- new test driver for regression checks (Daniel P. Berrange)
|
||||
- improvements: added UUID to XML serialization, buffer usage (Karel
|
||||
Zak), --connect argument to virsh (Daniel P. Berrange),
|
||||
- bug fixes: uninitialized memory access in error reporting, S-Expr
|
||||
parsing (Jim Fehlig, Jeremy Katz), virConnectOpen bug, remove a TODO in
|
||||
xs_internal.c
|
||||
- documentation: Python examples (David Lutterkort), new Perl binding
|
||||
URL, man page update (Karel Zak)
|
||||
|
||||
|
||||
0.1.0: Apr 10 2006:
|
||||
- building fixes: --with-xen-distdir option (Ronald Aigner), out of tree
|
||||
build and pkginfo cflag fix (Daniel Berrange)
|
||||
- enhancement and fixes of the XML description format (David Lutterkort
|
||||
and Jim Fehlig)
|
||||
- new APIs: for Node information and Reboot
|
||||
- internal code cleanup: refactoring internals into a driver model, more
|
||||
error handling, structure sharing, thread safety and ref counting
|
||||
- bug fixes: error message (Jim Meyering), error allocation in virsh (Jim
|
||||
Meyering), virDomainLookupByID (Jim Fehlig),
|
||||
- documentation: updates on architecture, and format, typo fix (Jim
|
||||
Meyering)
|
||||
- bindings: exception handling in examples (Jim Meyering), perl ones out
|
||||
of tree (Daniel Berrange)
|
||||
- virsh: more options, create, nodeinfo (Karel Zak), renaming of some
|
||||
options (Karel Zak), use stderr only for errors (Karel Zak), man page
|
||||
(Andrew Puch)
|
||||
|
||||
|
||||
0.0.6: Feb 28 2006:
|
||||
- add UUID lookup and extract API
|
||||
- add error handling APIs both synchronous and asynchronous
|
||||
- added minimal hook for error handling at the python level, improved the
|
||||
python bindings
|
||||
- augment the documentation and tests to cover error handling
|
||||
|
||||
|
||||
0.0.5: Feb 23 2006:
|
||||
- Added XML description parsing, dependance to libxml2, implemented the
|
||||
creation API virDomainCreateLinux()
|
||||
- new APIs to lookup and name domain by UUID
|
||||
- fixed the XML dump when using the Xend access
|
||||
- Fixed a few more problem related to the name change
|
||||
- Adding regression tests in python and examples in C
|
||||
- web site improvement, extended the documentation to cover the XML
|
||||
format and Python API
|
||||
- Added devhelp help for Gnome/Gtk programmers
|
||||
|
||||
|
||||
0.0.4: Feb 10 2006:
|
||||
- Fix various bugs introduced in the name change
|
||||
|
||||
|
||||
0.0.3: Feb 9 2006:
|
||||
- Switch name from from 'libvir' to libvirt
|
||||
- Starting infrastructure to add code examples
|
||||
- Update of python bindings for completeness
|
||||
|
||||
|
||||
0.0.2: Jan 29 2006:
|
||||
- Update of the documentation, web site redesign (Diana Fong)
|
||||
- integration of HTTP xend RPC based on libxend by Anthony Liquori for
|
||||
|
||||
2
README
2
README
@@ -1,7 +1,7 @@
|
||||
|
||||
LibVirt : simple API for virtualization
|
||||
|
||||
Libvir is a C toolkit to interract with the virtualization capabilities
|
||||
Libvirt is a C toolkit to interract with the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes). It is free software
|
||||
available under the GNU Lesser General Public License. Virtualization of
|
||||
the Linux Operating System means the ability to run multiple instances of
|
||||
|
||||
59
TODO
59
TODO
@@ -1,14 +1,40 @@
|
||||
Absolute TODOs:
|
||||
TODO:
|
||||
- check impact of HVM device rename
|
||||
http://lists.xensource.com/archives/html/xen-devel/2006-08/msg00369.html
|
||||
- Finish integration of vCPU and affinity APIs
|
||||
https://www.redhat.com/archives/libvir-list/2006-August/msg00017.html
|
||||
- check how to better handle renaming of domains (xm rename and cache)
|
||||
|
||||
- Create() API, how do we best keep flexibility and allow various
|
||||
specific environment and space for evolution (VMX)
|
||||
- thread protection, reentrancy, refcounting, etc ...
|
||||
- documentation and examples on using the toolkit
|
||||
- Error API. probably similar to libxml2 structured API
|
||||
|
||||
TODO:
|
||||
- track change of xend API, XML-RPC, UUID based lookup and naming
|
||||
- API for the Node: extracting informations, selecting scheduling policy
|
||||
- track change of xend API & XML-RPC
|
||||
- API for the Node: selecting scheduling policy
|
||||
- better resources allocation APIs (%CPU, set memory)
|
||||
- DTD/RNG/XSD schemas for the XML Domain descriptions
|
||||
- in python bindings raise an exception if a lookup or connection fails
|
||||
to return a non-None object
|
||||
- add error handling hooks at the python level
|
||||
- object unicity for domains at the Python level
|
||||
- UUID lookup in hash.c
|
||||
|
||||
Other environment:
|
||||
- support for QEmu
|
||||
- support for UML
|
||||
|
||||
+ in both case raises the problem of listing the domains
|
||||
+ UML control layer should be easy at least for one user but incomplete
|
||||
+ QEmu control is not easy to plug, c.f. discussion on-list
|
||||
|
||||
virsh TODO:
|
||||
- decide where will be default directory for domains configurations (/etc/xen/domains/* ?)
|
||||
- new cmd: create new domain by config file (like "xm create")
|
||||
create [--conf /path/file.conf | name]
|
||||
- new cmd: print info about domain configuration:
|
||||
cinfo [--conf /path/file.conf | name]
|
||||
- new cmd: print list of all domains configurations:
|
||||
clist [--dir /path]
|
||||
- new cmd: print info about saved domain image:
|
||||
sinfo /path/domain.img
|
||||
|
||||
Probable TODOs:
|
||||
- event on big domain state change (create, crashed, paused, shutdown, destroy)
|
||||
@@ -16,9 +42,24 @@ Probable TODOs:
|
||||
|
||||
Would-be-nice TODO:
|
||||
- man page for virsh and the libraries entry points
|
||||
- support for QEmu and other virtualization engines
|
||||
- more documentation and examples on using the toolkit
|
||||
- examples for the error handling code
|
||||
|
||||
Cleanup:
|
||||
- now that libxml2 is linked in, drop hash.[ch] and get back to libxml2 ones ?
|
||||
same for the buffers
|
||||
|
||||
Done:
|
||||
- make dist and make rpm targets
|
||||
- set a no public by default policy for libvir symbols
|
||||
- fix the python bindings
|
||||
- renamed to libvirt
|
||||
- the CreateLinux() API is a first step toward a final Create()
|
||||
- documentation and examples on using the toolkit
|
||||
- UUID based lookup and naming
|
||||
- Error API similar to libxml2 structured API
|
||||
- extract error messages from the Xend rpc
|
||||
- API for the Node: extracting informations
|
||||
- docs for the principle in the error handling code
|
||||
- thread protection, reentrancy, refcounting, etc ...
|
||||
- Add uuid to XML format
|
||||
|
||||
12
autogen.sh
12
autogen.sh
@@ -10,7 +10,7 @@ DIE=0
|
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have autoconf installed to compile libxen."
|
||||
echo "You must have autoconf installed to compile libvirt."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or see http://www.gnu.org/software/autoconf"
|
||||
DIE=1
|
||||
@@ -18,7 +18,7 @@ DIE=0
|
||||
|
||||
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have libtool installed to compile libxen."
|
||||
echo "You must have libtool installed to compile libvirt."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or see http://www.gnu.org/software/libtool"
|
||||
DIE=1
|
||||
@@ -27,7 +27,7 @@ DIE=0
|
||||
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
DIE=1
|
||||
echo "You must have automake installed to compile libxen."
|
||||
echo "You must have automake installed to compile libvirt."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or see http://www.gnu.org/software/automake"
|
||||
}
|
||||
@@ -36,8 +36,8 @@ if test "$DIE" -eq 1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test -f src/libvir.c || {
|
||||
echo "You must run this script in the top-level libxen directory"
|
||||
test -f src/libvirt.c || {
|
||||
echo "You must run this script in the top-level libvirt directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -61,4 +61,4 @@ fi
|
||||
$srcdir/configure "$@"
|
||||
|
||||
echo
|
||||
echo "Now type 'make' to compile libvir."
|
||||
echo "Now type 'make' to compile libvirt."
|
||||
|
||||
128
configure.in
128
configure.in
@@ -3,33 +3,33 @@ AC_INIT(src/libvirt.c)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
LIBVIR_MAJOR_VERSION=0
|
||||
LIBVIR_MINOR_VERSION=0
|
||||
LIBVIR_MICRO_VERSION=3
|
||||
LIBVIR_MICRO_VERSION_SUFFIX=
|
||||
LIBVIR_VERSION=$LIBVIR_MAJOR_VERSION.$LIBVIR_MINOR_VERSION.$LIBVIR_MICRO_VERSION$LIBVIR_MICRO_VERSION_SUFFIX
|
||||
LIBVIR_VERSION_INFO=`expr $LIBVIR_MAJOR_VERSION + $LIBVIR_MINOR_VERSION`:$LIBVIR_MICRO_VERSION:$LIBVIR_MINOR_VERSION
|
||||
LIBVIRT_MAJOR_VERSION=0
|
||||
LIBVIRT_MINOR_VERSION=1
|
||||
LIBVIRT_MICRO_VERSION=4
|
||||
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
|
||||
|
||||
LIBVIR_VERSION_NUMBER=`expr $LIBVIR_MAJOR_VERSION \* 1000000 + $LIBVIR_MINOR_VERSION \* 1000 + $LIBVIR_MICRO_VERSION`
|
||||
LIBVIRT_VERSION_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION`
|
||||
|
||||
if test -f CVS/Entries; then
|
||||
extra=`grep ChangeLog CVS/Entries | grep -v LIBVIR | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
|
||||
echo extra=$extra
|
||||
if test "$extra" != ""
|
||||
then
|
||||
LIBVIR_VERSION_EXTRA="-CVS$extra"
|
||||
LIBVIRT_VERSION_EXTRA="-CVS$extra"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(LIBVIR_MAJOR_VERSION)
|
||||
AC_SUBST(LIBVIR_MINOR_VERSION)
|
||||
AC_SUBST(LIBVIR_MICRO_VERSION)
|
||||
AC_SUBST(LIBVIR_VERSION)
|
||||
AC_SUBST(LIBVIR_VERSION_INFO)
|
||||
AC_SUBST(LIBVIR_VERSION_NUMBER)
|
||||
AC_SUBST(LIBVIR_VERSION_EXTRA)
|
||||
AC_SUBST(LIBVIRT_MAJOR_VERSION)
|
||||
AC_SUBST(LIBVIRT_MINOR_VERSION)
|
||||
AC_SUBST(LIBVIRT_MICRO_VERSION)
|
||||
AC_SUBST(LIBVIRT_VERSION)
|
||||
AC_SUBST(LIBVIRT_VERSION_INFO)
|
||||
AC_SUBST(LIBVIRT_VERSION_NUMBER)
|
||||
AC_SUBST(LIBVIRT_VERSION_EXTRA)
|
||||
|
||||
VERSION=${LIBVIR_VERSION}
|
||||
VERSION=${LIBVIRT_VERSION}
|
||||
|
||||
AM_INIT_AUTOMAKE(libvirt, $VERSION)
|
||||
|
||||
@@ -64,7 +64,7 @@ AC_SUBST(HTML_DIR)
|
||||
dnl
|
||||
dnl specific tests to setup DV devel environments with debug etc ...
|
||||
dnl
|
||||
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvir" ]] ; then
|
||||
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvirt" ]] ; then
|
||||
STATIC_BINARIES="-static"
|
||||
else
|
||||
STATIC_BINARIES=
|
||||
@@ -78,11 +78,23 @@ dnl
|
||||
CFLAGS="-g -O -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Specify the xen-distribution directory to be able to compile on a
|
||||
dnl non-xenified host
|
||||
dnl
|
||||
AC_ARG_WITH(xen-distdir, AC_HELP_STRING([--with-xen-distdir=path],
|
||||
[distribution directory of Xen, default /usr]))
|
||||
if test "x$with_xen_distdir" != "x"
|
||||
then
|
||||
CPPFLAGS="$CPPFLAGS -I$withval/install/usr/include"
|
||||
LDFLAGS="$LDFLAGS -L$withval/install/usr/lib"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl To be able to make dist on a non-xenified host
|
||||
dnl
|
||||
AC_ARG_WITH(depends,
|
||||
[ --with-depends check for dependancies (on)])
|
||||
[ --with-depends check for dependancies (on)])
|
||||
|
||||
if test "$with_depends" != "no"
|
||||
then
|
||||
@@ -90,10 +102,57 @@ then
|
||||
dnl search for the Xen store library
|
||||
AC_SEARCH_LIBS(xs_read, [xenstore], [], [AC_MSG_ERROR([Xen store library not found])])
|
||||
|
||||
dnl ==========================================================================
|
||||
dnl find libxml2 library, borrowed from xmlsec
|
||||
dnl ==========================================================================
|
||||
LIBXML_MIN_VERSION="2.5.0"
|
||||
LIBXML_CONFIG="xml2-config"
|
||||
LIBXML_CFLAGS=""
|
||||
LIBXML_LIBS=""
|
||||
LIBXML_FOUND="no"
|
||||
AC_ARG_WITH(libxml, [ --with-libxml=[PFX] libxml2 location])
|
||||
if test "z$with_libxml" = "zno" ; then
|
||||
AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
|
||||
AC_MSG_ERROR(libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE)
|
||||
elif test "z$with_libxml" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
|
||||
PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_MIN_VERSION,
|
||||
[LIBXML_FOUND=yes],
|
||||
[LIBXML_FOUND=no])
|
||||
fi
|
||||
AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_FOUND )
|
||||
if test "z$LIBXML_FOUND" = "zno" ; then
|
||||
AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
|
||||
if test "z$with_libxml" != "z" ; then
|
||||
LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
|
||||
fi
|
||||
AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_CONFIG )
|
||||
if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
|
||||
AC_MSG_ERROR(Could not find libxml2 anywhere (see config.log for details).)
|
||||
fi
|
||||
vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
minvers=`echo $LIBXML_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
||||
if test "$vers" -ge "$minvers" ; then
|
||||
LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
|
||||
LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
|
||||
LIBXML_FOUND="yes"
|
||||
AC_MSG_RESULT(yes ('$LIBXML_VERSION'))
|
||||
else
|
||||
AC_MSG_ERROR(You need at least libxml2 $LIBXML_MIN_VERSION for this version of $XMLSEC_PACKAGE)
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(LIBXML_CFLAGS)
|
||||
AC_SUBST(LIBXML_LIBS)
|
||||
AC_SUBST(LIBXML_CONFIG)
|
||||
AC_SUBST(LIBXML_MIN_VERSION)
|
||||
|
||||
dnl virsh libraries
|
||||
AC_CHECK_LIB(curses, initscr,
|
||||
[VIRSH_LIBS="$VIRSH_LIBS -lcurses"],
|
||||
[AC_MSG_ERROR([curses library not found])],
|
||||
[VIRSH_LIBS="$VIRSH_LIBS -lcurses"],
|
||||
[AC_CHECK_LIB(ncurses, initscr,
|
||||
[VIRSH_LIBS="$VIRSH_LIBS -lncurses"],
|
||||
[AC_MSG_ERROR([curses/ncurses library not found])],
|
||||
[$VIRSH_LIBS])],
|
||||
[$VIRSH_LIBS])
|
||||
AC_CHECK_LIB(readline, main,
|
||||
[VIRSH_LIBS="$VIRSH_LIBS -lreadline"],
|
||||
@@ -101,6 +160,9 @@ AC_CHECK_LIB(readline, main,
|
||||
[$VIRSH_LIBS])
|
||||
AC_SUBST(VIRSH_LIBS)
|
||||
|
||||
# end of if with_depends
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl check for python
|
||||
dnl
|
||||
@@ -124,6 +186,7 @@ if test "$with_python" != "no" ; then
|
||||
if test -x "$PYTHON"
|
||||
then
|
||||
echo Found python in environment PYTHON=$PYTHON
|
||||
with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
|
||||
else
|
||||
AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
|
||||
fi
|
||||
@@ -140,17 +203,17 @@ if test "$with_python" != "no" ; then
|
||||
-d $with_python/lib/python$PYTHON_VERSION/site-packages
|
||||
then
|
||||
PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
|
||||
PYTHON_SITE_PACKAGES=$with_python/lib/python$PYTHON_VERSION/site-packages
|
||||
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
||||
else
|
||||
if test -r $prefix/include/python$PYTHON_VERSION/Python.h
|
||||
then
|
||||
PYTHON_INCLUDES='$(prefix)/include/python$(PYTHON_VERSION)'
|
||||
PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
|
||||
PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
|
||||
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
||||
else
|
||||
if test -r /usr/include/python$PYTHON_VERSION/Python.h
|
||||
then
|
||||
PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
|
||||
PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
|
||||
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
||||
else
|
||||
echo could not find python$PYTHON_VERSION/Python.h
|
||||
fi
|
||||
@@ -165,7 +228,7 @@ if test "$with_python" != "no" ; then
|
||||
then
|
||||
pythondir='$(PYTHON_SITE_PACKAGES)'
|
||||
else
|
||||
pythondir='$(libdir)/python${PYTHON_VERSION}/site-packages'
|
||||
pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
|
||||
fi
|
||||
else
|
||||
PYTHON=
|
||||
@@ -178,18 +241,19 @@ else
|
||||
PYTHON_SUBDIR=
|
||||
fi
|
||||
AC_SUBST(pythondir)
|
||||
AC_SUBST(PYTHON)
|
||||
AC_SUBST(PYTHON_SUBDIR)
|
||||
AC_SUBST(PYTHON_VERSION)
|
||||
AC_SUBST(PYTHON_INCLUDES)
|
||||
AC_SUBST(PYTHON_SITE_PACKAGES)
|
||||
AC_SUBST(PYTHON_SUBDIR)
|
||||
|
||||
# end of if with_depends
|
||||
fi
|
||||
|
||||
# very annoying
|
||||
rm -f COPYING
|
||||
cp COPYING.LIB COPYING
|
||||
|
||||
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
|
||||
docs/examples/Makefile \
|
||||
libvirt.pc libvirt.spec include/libvirt.h python/Makefile)
|
||||
docs/examples/Makefile docs/devhelp/Makefile \
|
||||
docs/examples/python/Makefile \
|
||||
libvirt.pc libvirt.spec \
|
||||
include/libvirt/Makefile include/libvirt/libvirt.h \
|
||||
python/Makefile python/tests/Makefile \
|
||||
tests/Makefile proxy/Makefile)
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
.memdump
|
||||
|
||||
@@ -1,256 +1,235 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>API Alphabetic Index A-f for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index A-f for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2><h2>Letter A:</h2><dl><dt>ABI</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>API</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>APIs</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<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>API Alphabetic Index A-a for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index A-a for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</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 />
|
||||
<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_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#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>APIs</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</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></dl><h2>Letter C:</h2><dl><dt>CPU</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</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_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#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
<a href="">cpu</a><br />
|
||||
<a href="">vcpu</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#virDomainSuspend">virDomainSuspend</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_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#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="">cpu</a><br />
|
||||
<a href="">cpumap</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>Collect</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd></dl><h2>Letter D:</h2><dl><dt>Destroy</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>Copy</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd></dl><h2>Letter D:</h2><dl><dt>Default</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
</dd><dt>Destroy</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>Domain0</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</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#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>Dynamically</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd></dl><h2>Letter E:</h2><dl><dt>Extract</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd></dl><h2>Letter F:</h2><dl><dt>Free</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>Dynamically</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd></dl><h2>Letter E:</h2><dl><dt>Each</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>Extract</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd></dl><h2>Letter F:</h2><dl><dt>For</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
</dd><dt>Free</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd></dl><h2>Letter G:</h2><dl><dt>Get</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
</dd></dl><h2>Letter H:</h2><dl><dt>Hypervisor</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
</dd></dl><h2>Letter I:</h2><dl><dt>IDs</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>Informations</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>Initialize</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd></dl><h2>Letter K:</h2><dl><dt>KBytes</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd></dl><h2>Letter L:</h2><dl><dt>Launch</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>Linux</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd></dl><h2>Letter M:</h2><dl><dt>Macro</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd></dl><h2>Letter N:</h2><dl><dt>NOTE:</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>NULL</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter N:</h2><dl><dt>NUMA</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>Note</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter O:</h2><dl><dt>OUT</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd></dl><h2>Letter O:</h2><dl><dt>OUT</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter P:</h2><dl><dt>Provide</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>One</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd></dl><h2>Letter P:</h2><dl><dt>Provide</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>Provides</dt><dd><a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter R:</h2><dl><dt>Read-Only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd></dl><h2>Letter R:</h2><dl><dt>RFC4122</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
</dd><dt>Read-Only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>Reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
</dd><dt>Reset</dt><dd><a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
</dd><dt>Resume</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>Retrieve</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
</dd></dl><h2>Letter S:</h2><dl><dt>Shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter S:</h2><dl><dt>Set</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>Shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>Signature</dt><dd><a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
</dd><dt>Simpler</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</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#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>This</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</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 />
|
||||
<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_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</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="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<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#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>Try</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd></dl><h2>Letter U:</h2><dl><dt>UTF-8</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</dd></dl><h2>Letter U:</h2><dl><dt>USE_CPU</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 />
|
||||
</dd><dt>UTF-8</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>UUID</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</dd><dt>Use</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd></dl><h2>Letter X:</h2><dl><dt>XML</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>Xen</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter V:</h2><dl><dt>VIR_COPY_CPUMAP</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
</dd><dt>VIR_CPU_USABLE</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
|
||||
</dd><dt>VIR_GET_CPUMAP</dt><dd><a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
</dd></dl><h2>Letter W:</h2><dl><dt>What</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd></dl><h2>Letter X:</h2><dl><dt>XML</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>Xen</dt><dd><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#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter a:</h2><dl><dt>about</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>access</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>access</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<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#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>active</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>accesses</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>active</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>add</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>after</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>add</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>after</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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>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>allocated</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</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 />
|
||||
</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#virDomainGetMaxMemory">virDomainGetMaxMemory</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#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>allowed</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>already</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>also</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>amount</dt><dd><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#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>anymore</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>application</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>are</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>applications</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>arbitrary</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>are</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</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-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>argument</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>array</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>assumed</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>available</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>array</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
<a href="">cpumaps</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#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>assumed</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>available</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>availble</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter b:</h2><dl><dt>back</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>based</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd><dt>being</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>below</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>block</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>but</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd></dl><h2>Letter c:</h2><dl><dt>call</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>called</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>caller</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>calling</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>can</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>capacities</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>change</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>changes</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>check</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>clients</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>closes</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>code</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</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 />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>compiled</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>connection</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
</dd><dt>contents</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>control</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>currently</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd></dl><h2>Letter d:</h2><dl><dt>data</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd><dt>deallocated</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>defined</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>description</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>device</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>disk</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>doable</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>does</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>domains</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>down</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd></dl><h2>Letter e:</h2><dl><dt>encoded</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>error</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>especially</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>extracted</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>extraction</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd></dl><h2>Letter f:</h2><dl><dt>failure</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#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>file</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>filename</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>find</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
</dd><dt>first</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>flags</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>for</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>format</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>found</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
</dd><dt>free</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>freed</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd><dt>from</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>frozen</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>full</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>function</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<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#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>functionalities</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>further</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
</dd><dt>avoid</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,226 +1,264 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>API Alphabetic Index g-r for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index g-r for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2><h2>Letter g:</h2><dl><dt>general</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>get</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
</dd><dt>given</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<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>API Alphabetic Index b-f for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index b-f for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2><h2>Letter b:</h2><dl><dt>back</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>based</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd><dt>guest</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</dd><dt>being</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter h:</h2><dl><dt>have</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>hypervisor</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</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>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 />
|
||||
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
|
||||
<a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>block</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>but</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<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#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</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>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="">maplen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd></dl><h2>Letter c:</h2><dl><dt>calculate</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
</dd><dt>call</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>callback</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>called</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<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#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter i:</h2><dl><dt>ignore</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>image</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>information</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>informations</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>init</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>initrd</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>instance</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>int</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
</dd><dt>interaction</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>its</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd></dl><h2>Letter k:</h2><dl><dt>kept</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd><dt>kernel</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>kilobytes</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>knowing</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter l:</h2><dl><dt>lack</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-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>libbrary</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>library</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>lifetime</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>limited</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>line</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>list</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>listed</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>long</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>lookup</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd></dl><h2>Letter m:</h2><dl><dt>major</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>maximum</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>may</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>memory</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>method</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>methods</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>micro</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd><dt>minor</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>monitoring</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>must</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd></dl><h2>Letter n:</h2><dl><dt>name</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd><dt>need</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>needed</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>new</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd><dt>not</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>number</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
</dd></dl><h2>Letter o:</h2><dl><dt>object</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#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>caller</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>one</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>only</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>calling</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>calloc</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>can</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>operation</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
</dd><dt>option</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>optional</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>capacities</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>caught</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>cell</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>change</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>clean</dt><dd><a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
</dd><dt>closes</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>code</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</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>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 />
|
||||
<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_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
|
||||
</dd><dt>consequent</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>content</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>contents</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>control</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>copy</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>core</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>corresponding</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>could</dt><dd><a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>cpu</dt><dd><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_USE_CPU">VIR_USE_CPU</a><br />
|
||||
</dd><dt>cpumap</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_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_USE_CPU">VIR_USE_CPU</a><br />
|
||||
<a href="">cpumap</a><br />
|
||||
<a href="">cpumaps</a><br />
|
||||
<a href="">maplen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>cpumaps</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>cupmap</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>currently</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>otherwise</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>output</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd></dl><h2>Letter p:</h2><dl><dt>padding</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>parameters</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>partial</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>pass</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>path</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>physical</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>pointer</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
</dd><dt>pointing</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>private</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>priviledged</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<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#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>problem</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>process</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>protection</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>providing</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd><dt>public</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>publicly</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd></dl><h2>Letter r:</h2><dl><dt>ramdisk</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>reactivate</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>release</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</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#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>reserved</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>resources</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>restarted</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>restore</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>restricted</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>return</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>returned</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>returns</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>root</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>running</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd></dl><h2>Letter d:</h2><dl><dt>data</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>deallocated</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>default</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>define</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
</dd><dt>defined</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
</dd><dt>described</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>description</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>device</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>disk</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>doable</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>does</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
</dd><dt>domains</dt><dd><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#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
</dd><dt>down</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>driver</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter e:</h2><dl><dt>each</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>encoded</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>especially</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>expected</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>extra</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
</dd><dt>extract</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
</dd><dt>extracted</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>extraction</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd></dl><h2>Letter f:</h2><dl><dt>fail</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>failure</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#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>runs</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>file</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>filename</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>filled</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>find</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
</dd><dt>first</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>flags</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
</dd><dt>for</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>format</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>found</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>free</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>freed</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
</dd><dt>frequency</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>from</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</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#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>frozen</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>function</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<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#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>functionalities</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>further</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,135 +1,224 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>API Alphabetic Index s-z for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index s-z for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2><h2>Letter s:</h2><dl><dt>same</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>save</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>saved</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
</dd><dt>saving</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>set</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>should</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<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>API Alphabetic Index g-n for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index g-n for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2><h2>Letter g:</h2><dl><dt>general</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>get</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>given</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</dd><dt>global</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>growing</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>guest</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter h:</h2><dl><dt>handler</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>handling</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>hardware</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>has</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>have</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>host</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
</dd><dt>how</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>human-readable</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd></dl><h2>Letter i:</h2><dl><dt>ie:</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>ignore</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>image</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>indicating</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>info</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>information</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>informative</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>init</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>initializing</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>inside</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>instance</dt><dd><a href="">nodeinfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</dd><dt>size</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>int</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
</dd><dt>interaction</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>into</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
</dd><dt>its</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd></dl><h2>Letter k:</h2><dl><dt>kept</dt><dd><a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd><dt>kernel</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>kilobytes</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</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#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>knowing</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter l:</h2><dl><dt>lack</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>last</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
</dd><dt>later</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</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>least</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</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 />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>libbrary</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>library</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>lifetime</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>limited</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>line</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>list</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>listed</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>little-endian</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>looked</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>lookup</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</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></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_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_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</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 />
|
||||
</dd><dt>malloc</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#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>maplen</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>maximum</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>maxinfo</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>may</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>software</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd><dt>state</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>static</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd><dt>stay</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>still</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>stopped</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>store</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
</dd><dt>string</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
</dd><dt>structure</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>subject</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>success</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>successful</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>suspend</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>suspended</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>system</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
</dd></dl><h2>Letter t:</h2><dl><dt>term</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>terminated</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>that</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>their</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</dd><dt>then</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>means</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>mem</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>memory</dt><dd><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#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>there</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>thereafter</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
</dd><dt>this</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>two</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>type</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2>Letter u:</h2><dl><dt>unimplemented</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>unknown</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>unsigned</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
</dd><dt>unused</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>usable</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>used</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>user</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd></dl><h2>Letter v:</h2><dl><dt>value</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>values</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>version</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd><dt>message</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>method</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>methods</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>micro</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd><dt>minor</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>virDomainFlags</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>virDomainInfo</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>virDomainRestore</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>virDomainResume</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>virDomainSave</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
</dd><dt>virSuspendDomain</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd></dl><h2>Letter w:</h2><dl><dt>was</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>what</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>where</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
</dd><dt>which</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>while</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>will</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<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#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>with</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>missing</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>model</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>monitoring</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>more</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
</dd><dt>moves</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
</dd><dt>multithreaded</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>must</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd></dl><h2>Letter n:</h2><dl><dt>name</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</dd><dt>names</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
</dd><dt>nanoseconds</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
</dd><dt>neccessarily</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
</dd><dt>need</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>needed</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>new</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>node</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>non</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
|
||||
</dd><dt>none</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>not</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>without</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>work</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>would</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd></dl><h2>Letter x:</h2><dl><dt>xen</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
</dd><dt>xenstore</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd></dl><h2>Letter y:</h2><dl><dt>yet</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd></dl><h2>Letter z:</h2><dl><dt>zero</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-f</a>
|
||||
<a href="APIchunk1.html">g-r</a>
|
||||
<a href="APIchunk2.html">s-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</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-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
276
docs/APIchunk3.html
Normal file
276
docs/APIchunk3.html
Normal file
@@ -0,0 +1,276 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>API Alphabetic Index o-s for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">API Alphabetic Index o-s for libvirt</h1><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2><h2>Letter o:</h2><dl><dt>object</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#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>occured</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>offline</dt><dd><a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
</dd><dt>one</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="">maplen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>operation</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
</dd><dt>option</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>optional</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd><dt>order:</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>otherwise</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>output</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd></dl><h2>Letter p:</h2><dl><dt>parameter</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>parameters</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>part</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>partial</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>pass</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</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 />
|
||||
</dd><dt>per</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</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#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>pointed</dt><dd><a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
</dd><dt>pointers</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
</dd><dt>pointing</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>pools</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
</dd><dt>potential</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>preferably</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
</dd><dt>previously</dt><dd><a href="">cpumap</a><br />
|
||||
</dd><dt>printing</dt><dd><a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>priviledged</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<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#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>problem</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>process</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>provided</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>providing</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</dd><dt>public</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd></dl><h2>Letter r:</h2><dl><dt>race</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>raised</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>ramdisk</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>raw</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
</dd><dt>reactivate</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>real</dt><dd><a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
<a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>reboot</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>receive</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>related</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 />
|
||||
</dd><dt>relaunch</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>release</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</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 />
|
||||
<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 />
|
||||
<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#virDomainResume">virDomainResume</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>reserved</dt><dd><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#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>reset</dt><dd><a href="html/libvirt-libvirt.html#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>resources</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>restart</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
</dd><dt>restarted</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>restore</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>restricted</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</dd><dt>result</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
</dd><dt>return</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>returned</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</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#virGetVersion">virGetVersion</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#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>reused</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
</dd><dt>root</dt><dd><a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</dd><dt>routine</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>running</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
</dd><dt>runs</dt><dd><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#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd></dl><h2>Letter s:</h2><dl><dt>same</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
</dd><dt>save</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>saved</dt><dd><a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
</dd><dt>saving</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>see</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
</dd><dt>set</dt><dd><a href="html/libvirt-libvirt.html#VIR_USE_CPU">VIR_USE_CPU</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>should</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</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>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 />
|
||||
<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#virDomainGetMaxMemory">virDomainGetMaxMemory</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#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>socket</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>software</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd><dt>specified</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
</dd><dt>start</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
</dd><dt>startup</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>state</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>static</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd><dt>stay</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>stderr</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>still</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</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 />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</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#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>stored</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>stores</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
</dd><dt>string</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</dd><dt>structure</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>structures</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</dd><dt>succeed</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
</dd><dt>success</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</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#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>successful</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>suitable</dt><dd><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</dd><dt>support</dt><dd><a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</dd><dt>supported</dt><dd><a href="html/libvirt-libvirt.html#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a><br />
|
||||
</dd><dt>suspend</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>suspended</dt><dd><a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>system</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-a</a>
|
||||
<a href="APIchunk1.html">b-f</a>
|
||||
<a href="APIchunk2.html">g-n</a>
|
||||
<a href="APIchunk3.html">o-s</a>
|
||||
<a href="APIchunk4.html">t-z</a>
|
||||
</h2></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -5,6 +5,11 @@
|
||||
</p><h2>Type virConnectPtr:</h2><p><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
</p><h2>Type virDomainPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
</p><h2>Type virErrorPtr:</h2><p><a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>List of Symbols per Module for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">List of Symbols per Module for libvirt</h1><h2><a name="libvirt" id="libvirt">Module libvirt</a>:</h2><p><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<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_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DEVICE_RO">VIR_DEVICE_RO</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DEVICE_RW">VIR_DEVICE_RW</a><br />
|
||||
@@ -17,12 +20,22 @@
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_RUNNING">VIR_DOMAIN_RUNNING</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_SHUTDOWN">VIR_DOMAIN_SHUTDOWN</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_SHUTOFF">VIR_DOMAIN_SHUTOFF</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_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_VCPU_BLOCKED">VIR_VCPU_BLOCKED</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_VCPU_OFFLINE">VIR_VCPU_OFFLINE</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_VCPU_RUNNING">VIR_VCPU_RUNNING</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnect">virConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</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#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
@@ -30,8 +43,10 @@
|
||||
<a href="html/libvirt-libvirt.html#virConnectPtr">virConnectPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDeviceMode">virDeviceMode</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomain">virDomain</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateFlags">virDomainCreateFlags</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
@@ -39,6 +54,9 @@
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInfo">virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a><br />
|
||||
@@ -46,14 +64,87 @@
|
||||
<a href="html/libvirt-libvirt.html#virDomainKernelPtr">virDomainKernelPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestart">virDomainRestart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainState">virDomainState</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfo">virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuState">virVcpuState</a><br />
|
||||
</p><h2><a name="virterror" id="virterror">Module virterror</a>:</h2><p><a href="html/libvirt-virterror.html#VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_ERROR">VIR_ERR_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NONE">VIR_ERR_NONE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_OS">VIR_ERR_NO_OS</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</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_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_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_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_WARNING">VIR_ERR_WARNING</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_DOM">VIR_FROM_DOM</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_NONE">VIR_FROM_NONE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_PROXY">VIR_FROM_PROXY</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_RPC">VIR_FROM_RPC</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_SEXPR">VIR_FROM_SEXPR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XEN">VIR_FROM_XEN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XEND">VIR_FROM_XEND</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XML">VIR_FROM_XML</a><br />
|
||||
<a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virError">virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorDomain">virErrorDomain</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorLevel">virErrorLevel</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorNumber">virErrorNumber</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorPtr">virErrorPtr</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,32 +1,70 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>List of function manipulating types in libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">List of function manipulating types in libvirt</h1><h2>Type int *:</h2><p><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
<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>List of function manipulating types in libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">List of function manipulating types in libvirt</h1><h2>Type const char **:</h2><p><a href="html/libvirt-libvirt.html#virConnectListDefinedDomains">virConnectListDefinedDomains</a><br />
|
||||
</p><h2>Type const unsigned char *:</h2><p><a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
</p><h2>Type int *:</h2><p><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a><br />
|
||||
</p><h2>Type unsigned char *:</h2><p><a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</p><h2>Type unsigned int:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</p><h2>Type unsigned long:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
</p><h2>Type unsigned long:</h2><p><a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</p><h2>Type unsigned long *:</h2><p><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</p><h2>Type virConnectPtr:</h2><p><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</p><h2>Type virConnectPtr:</h2><p><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</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#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</p><h2>Type virDomainInfoPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</p><h2>Type virDomainPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
</p><h2>Type virDomainPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</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#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
</p><h2>Type virErrorFunc:</h2><p><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</p><h2>Type virErrorPtr:</h2><p><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
</p><h2>Type virNodeInfoPtr:</h2><p><a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</p><h2>Type virVcpuInfoPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
</p><h2>Type void *:</h2><p><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Alphabetic List of Symbols in libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Alphabetic List of Symbols in libvirt</h1><h2>Letter L:</h2><p><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
</p><h2>Letter V:</h2><p><a href="html/libvirt-libvirt.html#VIR_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a><br />
|
||||
</p><h2>Letter V:</h2><p><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_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DEVICE_RO">VIR_DEVICE_RO</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DEVICE_RW">VIR_DEVICE_RW</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DEVICE_RW_FORCE">VIR_DEVICE_RW_FORCE</a><br />
|
||||
@@ -17,21 +20,82 @@
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_RUNNING">VIR_DOMAIN_RUNNING</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_SHUTDOWN">VIR_DOMAIN_SHUTDOWN</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_SHUTOFF">VIR_DOMAIN_SHUTOFF</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_ERROR">VIR_ERR_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NONE">VIR_ERR_NONE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_OS">VIR_ERR_NO_OS</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</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_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_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_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_WARNING">VIR_ERR_WARNING</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_DOM">VIR_FROM_DOM</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_NONE">VIR_FROM_NONE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_PROXY">VIR_FROM_PROXY</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_RPC">VIR_FROM_RPC</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_SEXPR">VIR_FROM_SEXPR</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XEN">VIR_FROM_XEN</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XEND">VIR_FROM_XEND</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a><br />
|
||||
<a href="html/libvirt-virterror.html#VIR_FROM_XML">VIR_FROM_XML</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_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_VCPU_BLOCKED">VIR_VCPU_BLOCKED</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_VCPU_OFFLINE">VIR_VCPU_OFFLINE</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_VCPU_RUNNING">VIR_VCPU_RUNNING</a><br />
|
||||
</p><h2>Letter _:</h2><p><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virDomainKernel">_virDomainKernel</a><br />
|
||||
</p><h2>Letter v:</h2><p><a href="html/libvirt-libvirt.html#virConnect">virConnect</a><br />
|
||||
<a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#_virVcpuInfo">_virVcpuInfo</a><br />
|
||||
</p><h2>Letter v:</h2><p><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnect">virConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</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#virConnectNumOfDomains">virConnectNumOfDomains</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectPtr">virConnectPtr</a><br />
|
||||
<a href="html/libvirt-virterror.html#virCopyLastError">virCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDeviceMode">virDeviceMode</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomain">virDomain</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateFlags">virDomainCreateFlags</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainFree">virDomainFree</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
@@ -39,6 +103,9 @@
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetName">virDomainGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetOSType">virDomainGetOSType</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInfo">virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a><br />
|
||||
@@ -46,14 +113,38 @@
|
||||
<a href="html/libvirt-libvirt.html#virDomainKernelPtr">virDomainKernelPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestart">virDomainRestart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainRestore">virDomainRestore</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</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#virDomainSetVcpus">virDomainSetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainState">virDomainState</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
|
||||
<a href="html/libvirt-virterror.html#virError">virError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorDomain">virErrorDomain</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorLevel">virErrorLevel</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorNumber">virErrorNumber</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorPtr">virErrorPtr</a><br />
|
||||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfo">virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virVcpuState">virVcpuState</a><br />
|
||||
</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -4,30 +4,30 @@
|
||||
<li><a href="FAQ.html#Installati">Installation</a></li>
|
||||
<li><a href="FAQ.html#Compilatio">Compilation</a></li>
|
||||
<li><a href="FAQ.html#Developer">Developer corner</a></li>
|
||||
</ul><h3><a name="License" id="License">License</a>(s)</h3><ol><li><em>Licensing Terms for libvir</em>
|
||||
<p>libvir is released under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU Lesser
|
||||
</ul><h3><a name="License" id="License">License</a>(s)</h3><ol><li><em>Licensing Terms for libvirt</em>
|
||||
<p>libvirt is released under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU Lesser
|
||||
General Public License</a>, see the file COPYING.LIB in the distribution
|
||||
for the precise wording. The only library that libvir depends upon is the
|
||||
Xen store access library which is also licenced under the LGPL.</p>
|
||||
for the precise wording. The only library that libvirt depends upon is
|
||||
the Xen store access library which is also licenced under the LGPL.</p>
|
||||
</li>
|
||||
<li><em>Can I embed libvir in a proprietary application ?</em>
|
||||
<p>Yes. The LGPL allows you to embed libvir into a proprietary
|
||||
<li><em>Can I embed libvirt in a proprietary application ?</em>
|
||||
<p>Yes. The LGPL allows you to embed libvirt into a proprietary
|
||||
application. It would be graceful to send-back bug fixes and improvements
|
||||
as patches for possible incorporation in the main development tree. It
|
||||
will decrease your maintainance costs anyway if you do so.</p>
|
||||
</li>
|
||||
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><em>Where can I get libvir</em> ?
|
||||
<p>The original distribution comes from <a href="ftp://libvir.org/libvir/">ftp://libvir.org/libvir/</a>.</p>
|
||||
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><em>Where can I get libvirt</em> ?
|
||||
<p>The original distribution comes from <a href="ftp://libvirt.org/libvirt/">ftp://libvirt.org/libvirt/</a>.</p>
|
||||
</li>
|
||||
<li><em>I can't install the libvir/libvir-devel RPM packages due to failed
|
||||
dependencies</em>
|
||||
<li><em>I can't install the libvirt/libvirt-devel RPM packages due to
|
||||
failed dependencies</em>
|
||||
<p>The most generic solution is to re-fetch the latest src.rpm , and
|
||||
rebuild it locally with</p>
|
||||
<p><code>rpm --rebuild libvir-xxx.src.rpm</code>.</p>
|
||||
<p><code>rpm --rebuild libvirt-xxx.src.rpm</code>.</p>
|
||||
<p>If everything goes well it will generate two binary rpm packages (one
|
||||
providing the shared libs and virsh, and the other one, the -devel
|
||||
package, providing includes, static libraries and scripts needed to build
|
||||
applications with libvir that you can install locally.</p>
|
||||
applications with libvirt that you can install locally.</p>
|
||||
<p>One can also rebuild the RPMs from a tarball:</p>
|
||||
<p><code>rpmbuild -ta libdir-xxx.tar.gz</code></p>
|
||||
<p>Or from a configured tree with:</p>
|
||||
@@ -36,7 +36,7 @@
|
||||
<li><em>Failure to use the API for non-root users</em>
|
||||
<p>Large parts of the API may only be accessible with root priviledges,
|
||||
however the read only access to the xenstore data doesnot have to be
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dinfo"
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dominfo"
|
||||
fails to run as an user, change the mode of the xenstore read-only socket
|
||||
with:</p>
|
||||
<p><code>chmod 666 /var/run/xenstored/socket_ro</code></p>
|
||||
@@ -49,10 +49,10 @@
|
||||
following command run as root:</p>
|
||||
<p><code>service xend restart</code></p>
|
||||
</li>
|
||||
</ol><h3><a name="Compilatio" id="Compilatio">Compilation</a></h3><ol><li><em>What is the process to compile libvir ?</em>
|
||||
<p>As most UNIX libraries libvir follows the "standard":</p>
|
||||
<p><code>gunzip -c libvir-xxx.tar.gz | tar xvf -</code></p>
|
||||
<p><code>cd libvir-xxxx</code></p>
|
||||
</ol><h3><a name="Compilatio" id="Compilatio">Compilation</a></h3><ol><li><em>What is the process to compile libvirt ?</em>
|
||||
<p>As most UNIX libraries libvirt follows the "standard":</p>
|
||||
<p><code>gunzip -c libvirt-xxx.tar.gz | tar xvf -</code></p>
|
||||
<p><code>cd libvirt-xxxx</code></p>
|
||||
<p><code>./configure --help</code></p>
|
||||
<p>to see the options, then the compilation/installation proper</p>
|
||||
<p><code>./configure [possible options]</code></p>
|
||||
@@ -61,8 +61,8 @@
|
||||
<p>At that point you may have to rerun ldconfig or a similar utility to
|
||||
update your list of installed shared libs.</p>
|
||||
</li>
|
||||
<li><em>What other libraries are needed to compile/install libvir ?</em>
|
||||
<p>Libvir requires libxenstore, which is usually provided by the xen
|
||||
<li><em>What other libraries are needed to compile/install libvirt ?</em>
|
||||
<p>Libvirt requires libxenstore, which is usually provided by the xen
|
||||
packages as well as the public headers to compile against libxenstore.</p>
|
||||
</li>
|
||||
<li><em>I use the CVS version and there is no configure script</em>
|
||||
@@ -71,10 +71,10 @@
|
||||
like:</p>
|
||||
<p><code>./autogen.sh --prefix=/usr --disable-shared</code></p>
|
||||
</li>
|
||||
</ol><h3><a name="Developer" id="Developer">Developer</a> corner</h3><ol><li><em>Troubles compiling or linking programs using libvir</em>
|
||||
<p>To simplify the process of reusing the library, libvir comes with
|
||||
</ol><h3><a name="Developer" id="Developer">Developer</a> corner</h3><ol><li><em>Troubles compiling or linking programs using libvirt</em>
|
||||
<p>To simplify the process of reusing the library, libvirt comes with
|
||||
pkgconfig support, which can be used directly from autoconf support or
|
||||
via the pkg-config command line tool, like:</p>
|
||||
<p><code>pkg-config libvir --libs</code></p>
|
||||
<p><code>pkg-config libvirt --libs</code></p>
|
||||
</li>
|
||||
</ol></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
</ol></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
SUBDIRS=examples
|
||||
SUBDIRS= . examples devhelp
|
||||
|
||||
# The directory containing the source code (if it contains documentation).
|
||||
DOC_SOURCE_DIR=../src
|
||||
@@ -46,7 +46,7 @@ $(srcdir)/html/index.html: libvirt-api.xml $(srcdir)/newapi.xsl
|
||||
echo "Validating the resulting XHTML pages" ; \
|
||||
$(XMLLINT) --nonet --valid --noout html/*.html ; fi );
|
||||
|
||||
libvirt-api.xml libvirt-refs.xml: apibuild.py ../include/*.h ../src/*.h ../src/*.c
|
||||
libvirt-api.xml libvirt-refs.xml: apibuild.py ../include/libvirt/*.h ../src/*.h ../src/*.c
|
||||
-(./apibuild.py)
|
||||
|
||||
$(top_builddir)/NEWS: $(top_srcdir)/docs/news.xsl $(top_srcdir)/docs/news.html
|
||||
|
||||
@@ -22,10 +22,23 @@ ignored_files = {
|
||||
"hash.c": "internal hash table stuff",
|
||||
"hash.h": "internal hash table stuff",
|
||||
"internal.h": "internal includes and defines",
|
||||
"driver.h": "internal driver interfaces",
|
||||
"xend_internal.h": "internal includes and defines",
|
||||
"xend_internal.c": "internal code",
|
||||
"proxy_internal.h": "internal includes and defines",
|
||||
"proxy_internal.c": "internal code",
|
||||
"xen_internal.h": "internal includes and defines",
|
||||
"xen_internal.c": "internal code",
|
||||
"xs_internal.h": "internal includes and defines",
|
||||
"xs_internal.c": "internal code",
|
||||
"sexpr.h": "internal includes and defines",
|
||||
"sexpr.c": "internal code",
|
||||
"xml.h": "internal includes and defines",
|
||||
"xml.c": "internal code",
|
||||
"xmlrpc.h": "internal include",
|
||||
"xmlrpc.c": "internal code",
|
||||
"test.h": "test driver",
|
||||
"test.c": "test driver",
|
||||
}
|
||||
|
||||
ignored_words = {
|
||||
@@ -2075,11 +2088,11 @@ def rebuild():
|
||||
builder = None
|
||||
if glob.glob("../src/libvirt.c") != [] :
|
||||
print "Rebuilding API description for libvirt"
|
||||
builder = docBuilder("libvirt", ["../src", "../include"],
|
||||
builder = docBuilder("libvirt", ["../src", "../include/libvirt"],
|
||||
[])
|
||||
elif glob.glob("src/libvirt.c") != [] :
|
||||
print "Rebuilding API description for libvir"
|
||||
builder = docBuilder("libvirt", ["src", "include"],
|
||||
builder = docBuilder("libvirt", ["src", "include/libvirt"],
|
||||
[])
|
||||
else:
|
||||
print "rebuild() failed, unable to guess the module"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>libvir architecture</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">libvir architecture</h1><h3>This is Xen specific since this is the only hypervisor supported at the
|
||||
moment</h3><p>When running in a Xen environment, programs using libvir have to execute
|
||||
<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>libvirt architecture</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">libvirt architecture</h1><h3>This is in a large part Xen specific since this is the only hypervisor
|
||||
supported at the moment</h3><p>When running in a Xen environment, programs using libvirt have to execute
|
||||
in "Domain 0", which is the primary Linux OS loaded on the machine. That OS
|
||||
kernel provides most if not all of the actual drivers used by the set of
|
||||
domains. It also runs the Xen Store, a database of informations shared by the
|
||||
@@ -18,10 +18,28 @@ the Xen infrastructure:</p><ul><li>a connection to the Xen Daemon though an HTTP
|
||||
</ul><p>The library will usually interract with the Xen daemon for any operation
|
||||
changing the state of the system, but for performance and accuracy reasons
|
||||
may talk directly to the hypervisor when gathering state informations at
|
||||
least when possible (i.e. when the running program using libvir has root
|
||||
least when possible (i.e. when the running program using libvirt has root
|
||||
priviledge access).</p><p>If it runs without root access virConnectOpenReadOnly() should be used to
|
||||
connect to initialize the library. It will try to open the read-only socket
|
||||
<code>/var/run/xenstored/socket_ro</code> to connect to the Xen Store and
|
||||
also try to use the RPC to the Xen daemon. In this case use of hypervisor
|
||||
calls and write to the Xen Store will not be possible, restraining the amount
|
||||
of APIs available and slowing down information gathering about domains.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
of APIs available and slowing down information gathering about domains.</p><h3>Internal architecture</h3><p>As the previous section explains, libvirt can communicate using different
|
||||
channels with the current hypervisor, and should also be able to use
|
||||
different kind of hypervisor. To simplify the internal design, code, ease
|
||||
maintainance and simplify the support of other virtualization engine the
|
||||
internals have been structured as one core component, the libvirt.c module
|
||||
acting as a front-end for the library API and a set of hypvisor drivers
|
||||
defining a common set of routines. That way the Xen Daemon accces, the Xen
|
||||
Store one, the Hypervisor hypercall are all isolated in separate C modules
|
||||
implementing at least a subset of the common operations defined by the
|
||||
drivers present in driver.h:</p><ul><li>xend_internal: implements the driver functions though the Xen
|
||||
Daemon</li>
|
||||
<li>xs_internal: implements the subset of the driver availble though the
|
||||
Xen Store</li>
|
||||
<li>xen_internal: provide the implementation of the functions possible via
|
||||
direct hypervisor access</li>
|
||||
</ul><p>Note that a given driver may only implement a subset of those functions,
|
||||
for example saving a domain state to disk and restoring it is only possible
|
||||
though the Xen Daemon, on the other hand all interfaces allow to query the
|
||||
runtime state of a given domain.</p><p></p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Reporting bugs and getting help</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reporting bugs and getting help</h1><p>There is a mailing-list <a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a> for libvir,
|
||||
<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>Reporting bugs and getting help</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reporting bugs and getting help</h1><p>There is a mailing-list <a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a> for libvirt,
|
||||
with an <a href="https://www.redhat.com/archives/libvir-list/">on-line
|
||||
archive</a>. Please subscribe to this list before posting by visiting the <a href="https://www.redhat.com/mailman/listinfo/libvir-list">associated Web</a>
|
||||
page and follow the instructions. Patches with explanations and provided as
|
||||
attachments are really appreciated and will be discussed on the mailing list.
|
||||
If possible generate the patches by using cvs diff -u in a CVS checkout.</p><p>We expect to use <a href="https://bugzilla.redhat.com/">Red Hat
|
||||
Bugzilla</a> to track bugs for libvir, though there isn't a libvir software
|
||||
module defined yet, in the meantime use the mailing-list, thanks !.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
Bugzilla</a> to track bugs for libvirt, though there isn't a libvirt software
|
||||
module defined yet, in the meantime use the mailing-list, thanks !.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
3
docs/devhelp/.cvsignore
Normal file
3
docs/devhelp/.cvsignore
Normal file
@@ -0,0 +1,3 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
libvirt.devhelp
|
||||
27
docs/devhelp/Makefile.am
Normal file
27
docs/devhelp/Makefile.am
Normal file
@@ -0,0 +1,27 @@
|
||||
DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt
|
||||
HTML_FILES=index.html general.html $(HTML_MODULES)
|
||||
HTML_MODULES= \
|
||||
libvirt-libvirt.html
|
||||
|
||||
EXTRA_FORMAT= \
|
||||
home.png \
|
||||
left.png \
|
||||
right.png \
|
||||
up.png \
|
||||
style.css
|
||||
|
||||
EXTRA_DIST=devhelp.xsl html.xsl libvirt.devhelp $(HTML_FILES) $(EXTRA_FORMAT)
|
||||
|
||||
all: libvirt.devhelp $(HTML_FILES)
|
||||
|
||||
libvirt.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/docs/libvirt-api.xml
|
||||
-@(echo Rebuilding devhelp files)
|
||||
-@(if [ -x $(XSLTPROC) ] ; then \
|
||||
$(XSLTPROC) --nonet -o $(srcdir)/libvirt.devhelp devhelp.xsl $(top_srcdir)/docs/libvirt-api.xml ; fi );
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(DEVHELP_DIR)
|
||||
-@INSTALL@ -m 0644 libvirt.devhelp $(DESTDIR)$(DEVHELP_DIR)
|
||||
-@INSTALL@ -m 0644 $(EXTRA_FORMAT) $(DESTDIR)$(DEVHELP_DIR)
|
||||
-@INSTALL@ -m 0644 $(HTML_FILES) $(DESTDIR)$(DEVHELP_DIR)
|
||||
|
||||
127
docs/devhelp/devhelp.xsl
Normal file
127
docs/devhelp/devhelp.xsl
Normal file
@@ -0,0 +1,127 @@
|
||||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns="http://www.devhelp.net/book"
|
||||
xmlns:exsl="http://exslt.org/common"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
extension-element-prefixes="exsl str"
|
||||
exclude-result-prefixes="exsl str">
|
||||
<!-- The stylesheet for the html pages -->
|
||||
<xsl:import href="html.xsl"/>
|
||||
|
||||
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
|
||||
|
||||
<!-- Build keys for all symbols -->
|
||||
<xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
|
||||
|
||||
<xsl:template match="/api">
|
||||
<book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
|
||||
<xsl:apply-templates select="files"/>
|
||||
<xsl:apply-templates select="symbols"/>
|
||||
</book>
|
||||
<xsl:call-template name="generate_index"/>
|
||||
<xsl:call-template name="generate_general"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/files">
|
||||
<chapters>
|
||||
<sub name="API" link="general.html">
|
||||
<xsl:apply-templates select="file"/>
|
||||
</sub>
|
||||
</chapters>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/files/file">
|
||||
<xsl:variable name="module" select="@name"/>
|
||||
<xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
|
||||
<xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
|
||||
<sub name="{@name}" link="libvirt-{@name}.html"/>
|
||||
<xsl:document xmlns="" href="libvirt-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="up" href="general.html" title="API"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
<link rel="chapter" href="general.html" title="API"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<xsl:if test="$prev != ''">
|
||||
<td><a accesskey="p" href="libvirt-{$prev}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"/></a></td>
|
||||
</xsl:if>
|
||||
<td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
|
||||
<xsl:if test="$next != ''">
|
||||
<td><a accesskey="n" href="libvirt-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
|
||||
</xsl:if>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
|
||||
<p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
|
||||
<p><xsl:value-of select="description"/></p>
|
||||
<xsl:if test="deprecated">
|
||||
<p> WARNING: this module is deprecated !</p>
|
||||
</xsl:if>
|
||||
<p>Author(s): <xsl:value-of select="author"/></p>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<pre class="synopsis">
|
||||
<xsl:apply-templates mode="synopsis" select="exports"/>
|
||||
</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Description</h2>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Details</h2>
|
||||
<div class="refsect2" lang="en">
|
||||
<xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
|
||||
<xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | /api/symbols/struct[@file=$module]"/>
|
||||
<xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
|
||||
<xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
|
||||
<xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:document>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols">
|
||||
<functions>
|
||||
<xsl:apply-templates select="macro"/>
|
||||
<xsl:apply-templates select="enum"/>
|
||||
<xsl:apply-templates select="typedef"/>
|
||||
<xsl:apply-templates select="struct"/>
|
||||
<xsl:apply-templates select="functype"/>
|
||||
<xsl:apply-templates select="variable"/>
|
||||
<xsl:apply-templates select="function"/>
|
||||
</functions>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/functype">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/function">
|
||||
<function name="{@name} ()" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/typedef">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/enum">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/struct">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/macro">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="/api/symbols/variable">
|
||||
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
||||
38
docs/devhelp/general.html
Normal file
38
docs/devhelp/general.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>libvirt: </title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="up" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
<link rel="chapter" href="index.html" title="libvirt Reference Manual"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td>
|
||||
<a accesskey="u" href="index.html">
|
||||
<img src="up.png" width="24" height="24" border="0" alt="Up"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="h" href="index.html">
|
||||
<img src="home.png" width="24" height="24" border="0" alt="Home"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="n" href="libvirt-libvirt.html">
|
||||
<img src="right.png" width="24" height="24" border="0" alt="Next"/>
|
||||
</a>
|
||||
</td>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>
|
||||
<span class="refentrytitle">libvirt API Modules</span>
|
||||
</h2>
|
||||
<p><a href="libvirt-libvirt.html">libvirt</a> - core interfaces for the libvirt library<br/><a href="libvirt-virterror.html">virterror</a> - error handling interfaces for the libvirt library<br/></p>
|
||||
</body>
|
||||
</html>
|
||||
BIN
docs/devhelp/home.png
Normal file
BIN
docs/devhelp/home.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 654 B |
579
docs/devhelp/html.xsl
Normal file
579
docs/devhelp/html.xsl
Normal file
@@ -0,0 +1,579 @@
|
||||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:exsl="http://exslt.org/common"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
extension-element-prefixes="exsl str"
|
||||
exclude-result-prefixes="exsl str">
|
||||
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
|
||||
|
||||
<!-- This is convoluted but needed to force the current document to
|
||||
be the API one and not the result tree from the tokenize() result,
|
||||
because the keys are only defined on the main document -->
|
||||
<xsl:template mode="dumptoken" match='*'>
|
||||
<xsl:param name="token"/>
|
||||
<xsl:variable name="ref" select="key('symbols', $token)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$ref">
|
||||
<a href="libvirt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$token"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- dumps a string, making cross-reference links -->
|
||||
<xsl:template name="dumptext">
|
||||
<xsl:param name="text"/>
|
||||
<xsl:variable name="ctxt" select='.'/>
|
||||
<!-- <xsl:value-of select="$text"/> -->
|
||||
<xsl:for-each select="str:tokenize($text, ' 	')">
|
||||
<xsl:apply-templates select="$ctxt" mode='dumptoken'>
|
||||
<xsl:with-param name="token" select="string(.)"/>
|
||||
</xsl:apply-templates>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
|
||||
The following builds the Synopsis section
|
||||
|
||||
-->
|
||||
<xsl:template mode="synopsis" match="function">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<xsl:variable name="nlen" select="string-length($name)"/>
|
||||
<xsl:variable name="tlen" select="string-length(return/@type)"/>
|
||||
<xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>	</xsl:text>
|
||||
<a href="#{@name}"><xsl:value-of select="@name"/></a>
|
||||
<xsl:if test="$blen - 40 < -8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 < 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>	(</xsl:text>
|
||||
<xsl:if test="not(arg)">
|
||||
<xsl:text>void</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="arg">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text><br/>
|
||||
<xsl:if test="$blen - 40 > 8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 > 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>					 </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>);</xsl:text>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="synopsis" match="functype">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<xsl:variable name="nlen" select="string-length($name)"/>
|
||||
<xsl:variable name="tlen" select="string-length(return/@type)"/>
|
||||
<xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
|
||||
<xsl:text>typedef </xsl:text>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<a href="#{@name}"><xsl:value-of select="@name"/></a>
|
||||
<xsl:if test="$blen - 40 < -8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 < 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>	(</xsl:text>
|
||||
<xsl:if test="not(arg)">
|
||||
<xsl:text>void</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="arg">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text><br/>
|
||||
<xsl:if test="$blen - 40 > 8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 > 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>					 </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>);</xsl:text>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="synopsis" match="exports[@type='function']">
|
||||
<xsl:variable name="def" select="key('symbols',@symbol)"/>
|
||||
<xsl:apply-templates mode="synopsis" select="$def"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="synopsis" match="exports[@type='typedef']">
|
||||
<xsl:text>typedef </xsl:text>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="synopsis" match="exports[@type='macro']">
|
||||
<xsl:variable name="def" select="key('symbols',@symbol)"/>
|
||||
<xsl:text>#define </xsl:text>
|
||||
<a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
|
||||
<xsl:if test="$def/arg">
|
||||
<xsl:text>(</xsl:text>
|
||||
<xsl:for-each select="$def/arg">
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template mode="synopsis" match="exports[@type='enum']">
|
||||
</xsl:template>
|
||||
<xsl:template mode="synopsis" match="exports[@type='struct']">
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
|
||||
The following builds the Details section
|
||||
|
||||
-->
|
||||
<xsl:template mode="details" match="struct">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:value-of select="@type"/><xsl:text> {
|
||||
</xsl:text>
|
||||
<xsl:if test="not(field)">
|
||||
<xsl:text>The content of this structure is not made public by the API.
|
||||
</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="field">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>	</xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="@info != ''">
|
||||
<xsl:text>	: </xsl:text>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="substring(@info, 1, 70)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:for-each>
|
||||
<xsl:text>} </xsl:text>
|
||||
<xsl:value-of select="$name"/>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="typedef[@type != 'enum']">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="string(@type)"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$name"/>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="variable">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="string(@type)"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$name"/>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="typedef[@type = 'enum']">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:text>enum </xsl:text>
|
||||
<a href="#{$name}"><xsl:value-of select="$name"/></a>
|
||||
<xsl:text> {
|
||||
</xsl:text>
|
||||
<xsl:for-each select="/api/symbols/enum[@type=$name]">
|
||||
<xsl:sort select="@value" data-type="number" order="ascending"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<a name="{@name}"><xsl:value-of select="@name"/></a>
|
||||
<xsl:if test="@value">
|
||||
<xsl:text> = </xsl:text>
|
||||
<xsl:value-of select="@value"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="@info">
|
||||
<xsl:text> /* </xsl:text>
|
||||
<xsl:value-of select="@info"/>
|
||||
<xsl:text> */</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:for-each>
|
||||
<xsl:text>};
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="macro">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:text>#define </xsl:text>
|
||||
<a href="#{$name}"><xsl:value-of select="$name"/></a>
|
||||
<xsl:if test="arg">
|
||||
<xsl:text>(</xsl:text>
|
||||
<xsl:for-each select="arg">
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>;
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p>
|
||||
<xsl:if test="arg">
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody>
|
||||
<xsl:for-each select="arg">
|
||||
<tr>
|
||||
<td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
|
||||
<td>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@info"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</tbody></table></div>
|
||||
</xsl:if>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="function">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<xsl:variable name="nlen" select="string-length($name)"/>
|
||||
<xsl:variable name="tlen" select="string-length(return/@type)"/>
|
||||
<xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>	</xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="$blen - 40 < -8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 < 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>	(</xsl:text>
|
||||
<xsl:if test="not(arg)">
|
||||
<xsl:text>void</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="arg">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text><br/>
|
||||
<xsl:if test="$blen - 40 > 8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 > 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>					 </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>)</xsl:text><br/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
<xsl:if test="arg | return/@info">
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody>
|
||||
<xsl:for-each select="arg">
|
||||
<tr>
|
||||
<td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
|
||||
<td>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@info"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="return/@info">
|
||||
<tr>
|
||||
<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
|
||||
<td>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@info"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</tbody></table></div>
|
||||
</xsl:if>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template mode="details" match="functype">
|
||||
<xsl:variable name="name" select="string(@name)"/>
|
||||
<xsl:variable name="nlen" select="string-length($name)"/>
|
||||
<xsl:variable name="tlen" select="string-length(return/@type)"/>
|
||||
<xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
|
||||
<div class="refsect2" lang="en">
|
||||
<h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3>
|
||||
<pre class="programlisting">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>	</xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="$blen - 40 < -8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 < 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>	(</xsl:text>
|
||||
<xsl:if test="not(arg)">
|
||||
<xsl:text>void</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="arg">
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@type"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text><br/>
|
||||
<xsl:if test="$blen - 40 > 8">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$blen - 40 > 0">
|
||||
<xsl:text>	</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>					 </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text>)</xsl:text><br/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</pre>
|
||||
<p>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="info"/>
|
||||
</xsl:call-template>
|
||||
</p><xsl:text>
|
||||
</xsl:text>
|
||||
<xsl:if test="arg | return/@info">
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody>
|
||||
<xsl:for-each select="arg">
|
||||
<tr>
|
||||
<td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
|
||||
<td>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="@info"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="return/@info">
|
||||
<tr>
|
||||
<td><span class="term"><i><tt>Returns</tt></i>:</span></td>
|
||||
<td>
|
||||
<xsl:call-template name="dumptext">
|
||||
<xsl:with-param name="text" select="return/@info"/>
|
||||
</xsl:call-template>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</tbody></table></div>
|
||||
</xsl:if>
|
||||
</div><hr/>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
|
||||
The following builds the general.html page
|
||||
|
||||
-->
|
||||
<xsl:template name="generate_general">
|
||||
<xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
|
||||
<xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="up" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
<link rel="chapter" href="index.html" title="libvirt Reference Manual"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
|
||||
<xsl:if test="$next != ''">
|
||||
<td><a accesskey="n" href="libvirt-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
|
||||
</xsl:if>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2><span class="refentrytitle">libvirt API Modules</span></h2>
|
||||
<p>
|
||||
<xsl:for-each select="/api/files/file">
|
||||
<a href="libvirt-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of select="summary"/><br/>
|
||||
</xsl:for-each>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:document>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
|
||||
The following builds the index.html page
|
||||
|
||||
-->
|
||||
<xsl:template name="generate_index">
|
||||
<xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>libvirt Reference Manual</title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
|
||||
<td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2><span class="refentrytitle">libvirt Reference Manual</span></h2>
|
||||
<p>Libvir is a C toolkit to interract with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
concurently on a single hardware system where the basic resources are driven
|
||||
by a Linux instance. The library aim at providing long term stable C API
|
||||
initially for the <a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
|
||||
paravirtualization</a> but should be able to integrate other virtualization
|
||||
mechanisms if needed.</p>
|
||||
<p> If you get lost searching for some specific API use, try
|
||||
<a href="http://libvirt.org/search.php">the online search
|
||||
engine</a> hosted on <a href="http://libvirt.org/">libvirt.org</a>
|
||||
it indexes the project page, the APIs as well as the mailing-list archives. </p>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:document>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
||||
43
docs/devhelp/index.html
Normal file
43
docs/devhelp/index.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>libvirt Reference Manual</title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td>
|
||||
<a accesskey="h" href="index.html">
|
||||
<img src="home.png" width="24" height="24" border="0" alt="Home"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="n" href="general.html">
|
||||
<img src="right.png" width="24" height="24" border="0" alt="Next"/>
|
||||
</a>
|
||||
</td>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>
|
||||
<span class="refentrytitle">libvirt Reference Manual</span>
|
||||
</h2>
|
||||
<p>Libvir is a C toolkit to interract with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
concurently on a single hardware system where the basic resources are driven
|
||||
by a Linux instance. The library aim at providing long term stable C API
|
||||
initially for the <a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
|
||||
paravirtualization</a> but should be able to integrate other virtualization
|
||||
mechanisms if needed.</p>
|
||||
<p> If you get lost searching for some specific API use, try
|
||||
<a href="http://libvirt.org/search.php">the online search
|
||||
engine</a> hosted on <a href="http://libvirt.org/">libvirt.org</a>
|
||||
it indexes the project page, the APIs as well as the mailing-list archives. </p>
|
||||
</body>
|
||||
</html>
|
||||
BIN
docs/devhelp/left.png
Normal file
BIN
docs/devhelp/left.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 459 B |
430
docs/devhelp/libvirt-libvirt.html
Normal file
430
docs/devhelp/libvirt-libvirt.html
Normal file
@@ -0,0 +1,430 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>libvirt: core interfaces for the libvirt library</title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="up" href="general.html" title="API"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
<link rel="chapter" href="general.html" title="API"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td>
|
||||
<a accesskey="u" href="general.html">
|
||||
<img src="up.png" width="24" height="24" border="0" alt="Up"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="h" href="index.html">
|
||||
<img src="home.png" width="24" height="24" border="0" alt="Home"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="n" href="libvirt-virterror.html">
|
||||
<img src="right.png" width="24" height="24" border="0" alt="Next"/>
|
||||
</a>
|
||||
</td>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>
|
||||
<span class="refentrytitle">libvirt</span>
|
||||
</h2>
|
||||
<p>libvirt - core interfaces for the libvirt library</p>
|
||||
<p>Provides the interfaces of the libvirt library to handle Xen domains from a process running in domain 0 </p>
|
||||
<p>Author(s): Daniel Veillard <veillard@redhat.com> </p>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<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="#VIR_USE_CPU">VIR_USE_CPU</a>(cpumap, cpu);
|
||||
#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_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_UNUSE_CPU">VIR_UNUSE_CPU</a>(cpumap, cpu);
|
||||
typedef <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> * <a href="#virNodeInfoPtr">virNodeInfoPtr</a>;
|
||||
typedef <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> * <a href="#virDomainInfoPtr">virDomainInfoPtr</a>;
|
||||
typedef <a href="libvirt-libvirt.html#virDomainKernel">virDomainKernel</a> * <a href="#virDomainKernelPtr">virDomainKernelPtr</a>;
|
||||
typedef <a href="libvirt-libvirt.html#virConnect">virConnect</a> * <a href="#virConnectPtr">virConnectPtr</a>;
|
||||
typedef struct _virDomainKernel <a href="#virDomainKernel">virDomainKernel</a>;
|
||||
typedef struct _virNodeInfo <a href="#virNodeInfo">virNodeInfo</a>;
|
||||
typedef enum <a href="#virDomainState">virDomainState</a>;
|
||||
typedef enum <a href="#virDeviceMode">virDeviceMode</a>;
|
||||
typedef struct _virDomain <a href="#virDomain">virDomain</a>;
|
||||
typedef <a href="libvirt-libvirt.html#virDomain">virDomain</a> * <a href="#virDomainPtr">virDomainPtr</a>;
|
||||
typedef struct _virVcpuInfo <a href="#virVcpuInfo">virVcpuInfo</a>;
|
||||
typedef <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> * <a href="#virVcpuInfoPtr">virVcpuInfoPtr</a>;
|
||||
typedef enum <a href="#virDomainRestart">virDomainRestart</a>;
|
||||
typedef struct _virConnect <a href="#virConnect">virConnect</a>;
|
||||
typedef enum <a href="#virDomainCreateFlags">virDomainCreateFlags</a>;
|
||||
typedef struct _virDomainInfo <a href="#virDomainInfo">virDomainInfo</a>;
|
||||
typedef enum <a href="#virVcpuState">virVcpuState</a>;
|
||||
int <a href="#virDomainGetInfo">virDomainGetInfo</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info);
|
||||
int <a href="#virDomainUndefine">virDomainUndefine</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainDefineXML">virDomainDefineXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xml);
|
||||
int <a href="#virDomainShutdown">virDomainShutdown</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
int <a href="#virGetVersion">virGetVersion</a> (unsigned long * libVer, <br/> const char * type, <br/> unsigned long * typeVer);
|
||||
int <a href="#virConnectListDefinedDomains">virConnectListDefinedDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char ** names, <br/> int maxnames);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByName">virDomainLookupByName</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * name);
|
||||
int <a href="#virDomainPinVcpu">virDomainPinVcpu</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int vcpu, <br/> unsigned char * cpumap, <br/> int maplen);
|
||||
int <a href="#virDomainRestore">virDomainRestore</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * from);
|
||||
const char * <a href="#virConnectGetType">virConnectGetType</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
int <a href="#virDomainSave">virDomainSave</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> const char * to);
|
||||
int <a href="#virDomainCreate">virDomainCreate</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
int <a href="#virConnectListDomains">virConnectListDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int * ids, <br/> int maxids);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByUUID">virDomainLookupByUUID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const unsigned char * uuid);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * uuidstr);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByID">virDomainLookupByID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int id);
|
||||
char * <a href="#virDomainGetOSType">virDomainGetOSType</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
int <a href="#virNodeGetInfo">virNodeGetInfo</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info);
|
||||
int <a href="#virDomainGetUUID">virDomainGetUUID</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned char * uuid);
|
||||
int <a href="#virConnectNumOfDomains">virConnectNumOfDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
int <a href="#virDomainGetUUIDString">virDomainGetUUIDString</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> char * buf);
|
||||
int <a href="#virDomainGetVcpus">virDomainGetVcpus</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a> info, <br/> int maxinfo, <br/> unsigned char * cpumaps, <br/> int maplen);
|
||||
int <a href="#virConnectGetVersion">virConnectGetVersion</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long * hvVer);
|
||||
int <a href="#virDomainSetMaxMemory">virDomainSetMaxMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned long memory);
|
||||
int <a href="#virDomainFree">virDomainFree</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpen">virConnectOpen</a> (const char * name);
|
||||
int <a href="#virDomainSuspend">virDomainSuspend</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
int <a href="#virConnectClose">virConnectClose</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
int <a href="#virDomainReboot">virDomainReboot</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int flags);
|
||||
int <a href="#virInitialize">virInitialize</a> (void);
|
||||
int <a href="#virDomainSetVcpus">virDomainSetVcpus</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int nvcpus);
|
||||
unsigned int <a href="#virDomainGetID">virDomainGetID</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
int <a href="#virDomainResume">virDomainResume</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainCreateLinux">virDomainCreateLinux</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc, <br/> unsigned int flags);
|
||||
int <a href="#virDomainSetMemory">virDomainSetMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned long memory);
|
||||
int <a href="#virDomainDestroy">virDomainDestroy</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
unsigned long <a href="#virDomainGetMaxMemory">virDomainGetMaxMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
char * <a href="#virDomainGetXMLDesc">virDomainGetXMLDesc</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> int flags);
|
||||
const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
|
||||
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpenReadOnly">virConnectOpenReadOnly</a> (const char * name);
|
||||
</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Description</h2>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Details</h2>
|
||||
<div class="refsect2" lang="en">
|
||||
<div class="refsect2" lang="en"><h3><a name="LIBVIR_VERSION_NUMBER">Macro </a>LIBVIR_VERSION_NUMBER</h3><pre class="programlisting">#define <a href="#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a>;
|
||||
</pre><p>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="VIR_COPY_CPUMAP">Macro </a>VIR_COPY_CPUMAP</h3><pre class="programlisting">#define <a href="#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a>(cpumaps, maplen, vcpu, 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><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>
|
||||
<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>(cpu);
|
||||
</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 & 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>
|
||||
<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);
|
||||
</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><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>cpu</tt></i>:</span></td><td>the physical CPU number</td></tr></tbody></table></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="VIR_GET_CPUMAP">Macro </a>VIR_GET_CPUMAP</h3><pre class="programlisting">#define <a href="#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a>(cpumaps, maplen, vcpu);
|
||||
</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><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></tbody></table></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="VIR_NODEINFO_MAXCPUS">Macro </a>VIR_NODEINFO_MAXCPUS</h3><pre class="programlisting">#define <a href="#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a>(nodeinfo);
|
||||
</pre><p>This macro is to calculate the total number of CPUs supported but not neccessarily active in the host.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>nodeinfo</tt></i>:</span></td><td><a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> instance</td></tr></tbody></table></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="VIR_UNUSE_CPU">Macro </a>VIR_UNUSE_CPU</h3><pre class="programlisting">#define <a href="#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a>(cpumap, cpu);
|
||||
</pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)</td></tr><tr><td><span class="term"><i><tt>cpu</tt></i>:</span></td><td>the physical CPU number</td></tr></tbody></table></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="VIR_USE_CPU">Macro </a>VIR_USE_CPU</h3><pre class="programlisting">#define <a href="#VIR_USE_CPU">VIR_USE_CPU</a>(cpumap, cpu);
|
||||
</pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.</p><div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)</td></tr><tr><td><span class="term"><i><tt>cpu</tt></i>:</span></td><td>the physical CPU number</td></tr></tbody></table></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnect">Structure </a>virConnect</h3><pre class="programlisting">struct _virConnect {
|
||||
The content of this structure is not made public by the API.
|
||||
} virConnect;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectPtr">Typedef </a>virConnectPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnect">virConnect</a> * virConnectPtr;
|
||||
</pre><p>a <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> is pointer to a <a href="libvirt-libvirt.html#virConnect">virConnect</a> private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDeviceMode">Enum </a>virDeviceMode</h3><pre class="programlisting">enum <a href="#virDeviceMode">virDeviceMode</a> {
|
||||
<a name="VIR_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a> = 0 /* Default mode */
|
||||
<a name="VIR_DEVICE_RO">VIR_DEVICE_RO</a> = 1 /* Access read-only */
|
||||
<a name="VIR_DEVICE_RW">VIR_DEVICE_RW</a> = 2 /* Access read-write */
|
||||
<a name="VIR_DEVICE_RW_FORCE">VIR_DEVICE_RW_FORCE</a> = 3 /* Forced read-write even if already used */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomain">Structure </a>virDomain</h3><pre class="programlisting">struct _virDomain {
|
||||
The content of this structure is not made public by the API.
|
||||
} virDomain;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainCreateFlags">Enum </a>virDomainCreateFlags</h3><pre class="programlisting">enum <a href="#virDomainCreateFlags">virDomainCreateFlags</a> {
|
||||
<a name="VIR_DOMAIN_NONE">VIR_DOMAIN_NONE</a> = 0
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainInfo">Structure </a>virDomainInfo</h3><pre class="programlisting">struct _virDomainInfo {
|
||||
unsigned char state : the running state, one of virDomainFlags
|
||||
unsigned long maxMem : the maximum memory in KBytes allowed
|
||||
unsigned long memory : the memory in KBytes used by the domain
|
||||
unsigned short nrVirtCpu : the number of virtual CPUs for the domain
|
||||
unsigned long long cpuTime : the CPU time used in nanoseconds
|
||||
} virDomainInfo;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainInfoPtr">Typedef </a>virDomainInfoPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> * virDomainInfoPtr;
|
||||
</pre><p>a <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> is a pointer to a <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> structure.</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainKernel">Structure </a>virDomainKernel</h3><pre class="programlisting">struct _virDomainKernel {
|
||||
const char * kernel : filename pointing to the kernel image
|
||||
const char * ramdisk : an optional init ramdisk
|
||||
const char * root : an optional root block device
|
||||
const char * extra : optional kernel command line parameters
|
||||
} virDomainKernel;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainKernelPtr">Typedef </a>virDomainKernelPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainKernel">virDomainKernel</a> * virDomainKernelPtr;
|
||||
</pre><p>a <a href="libvirt-libvirt.html#virDomainKernelPtr">virDomainKernelPtr</a> is a pointer to a <a href="libvirt-libvirt.html#virDomainKernel">virDomainKernel</a> structure.</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainPtr">Typedef </a>virDomainPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomain">virDomain</a> * virDomainPtr;
|
||||
</pre><p>a <a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> is pointer to a <a href="libvirt-libvirt.html#virDomain">virDomain</a> private structure, this is the type used to reference a Xen domain in the API.</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainRestart">Enum </a>virDomainRestart</h3><pre class="programlisting">enum <a href="#virDomainRestart">virDomainRestart</a> {
|
||||
<a name="VIR_DOMAIN_DESTROY">VIR_DOMAIN_DESTROY</a> = 1 /* destroy the domain */
|
||||
<a name="VIR_DOMAIN_RESTART">VIR_DOMAIN_RESTART</a> = 2 /* restart the domain */
|
||||
<a name="VIR_DOMAIN_PRESERVE">VIR_DOMAIN_PRESERVE</a> = 3 /* keep as is, need manual destroy, for debug */
|
||||
<a name="VIR_DOMAIN_RENAME_RESTART">VIR_DOMAIN_RENAME_RESTART</a> = 4 /* restart under an new unique name */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainState">Enum </a>virDomainState</h3><pre class="programlisting">enum <a href="#virDomainState">virDomainState</a> {
|
||||
<a name="VIR_DOMAIN_NOSTATE">VIR_DOMAIN_NOSTATE</a> = 0 /* no state */
|
||||
<a name="VIR_DOMAIN_RUNNING">VIR_DOMAIN_RUNNING</a> = 1 /* the domain is running */
|
||||
<a name="VIR_DOMAIN_BLOCKED">VIR_DOMAIN_BLOCKED</a> = 2 /* the domain is blocked on resource */
|
||||
<a name="VIR_DOMAIN_PAUSED">VIR_DOMAIN_PAUSED</a> = 3 /* the domain is paused by user */
|
||||
<a name="VIR_DOMAIN_SHUTDOWN">VIR_DOMAIN_SHUTDOWN</a> = 4 /* the domain is being shut down */
|
||||
<a name="VIR_DOMAIN_SHUTOFF">VIR_DOMAIN_SHUTOFF</a> = 5 /* the domain is shut off */
|
||||
<a name="VIR_DOMAIN_CRASHED">VIR_DOMAIN_CRASHED</a> = 6 /* the domain is crashed */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeInfo">Structure </a>virNodeInfo</h3><pre class="programlisting">struct _virNodeInfo {
|
||||
charmodel[32] model : string indicating the CPU model
|
||||
unsigned long memory : memory size in kilobytes
|
||||
unsigned int cpus : the number of active CPUs
|
||||
unsigned int mhz : expected CPU frequency
|
||||
unsigned int nodes : the number of NUMA cell, 1 for uniform mem access
|
||||
unsigned int sockets : number of CPU socket per node
|
||||
unsigned int cores : number of core per socket
|
||||
unsigned int threads : number of threads per core
|
||||
} virNodeInfo;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeInfoPtr">Typedef </a>virNodeInfoPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> * virNodeInfoPtr;
|
||||
</pre><p>a <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> is a pointer to a <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> structure.</p>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virVcpuInfo">Structure </a>virVcpuInfo</h3><pre class="programlisting">struct _virVcpuInfo {
|
||||
unsigned int number : virtual CPU number
|
||||
int state : value from <a href="libvirt-libvirt.html#virVcpuState">virVcpuState</a>
|
||||
unsigned long long cpuTime : CPU time used, in nanoseconds
|
||||
int cpu : real CPU number, or -1 if offline
|
||||
} virVcpuInfo;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virVcpuInfoPtr">Typedef </a>virVcpuInfoPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> * virVcpuInfoPtr;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virVcpuState">Enum </a>virVcpuState</h3><pre class="programlisting">enum <a href="#virVcpuState">virVcpuState</a> {
|
||||
<a name="VIR_VCPU_OFFLINE">VIR_VCPU_OFFLINE</a> = 0 /* the virtual CPU is offline */
|
||||
<a name="VIR_VCPU_RUNNING">VIR_VCPU_RUNNING</a> = 1 /* the virtual CPU is running */
|
||||
<a name="VIR_VCPU_BLOCKED">VIR_VCPU_BLOCKED</a> = 2 /* the virtual CPU is blocked on resource */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectClose"/>virConnectClose ()</h3><pre class="programlisting">int virConnectClose (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
|
||||
</pre><p>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or -1 in case of error.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectGetType"/>virConnectGetType ()</h3><pre class="programlisting">const char * virConnectGetType (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
|
||||
</pre><p>Get the name of the Hypervisor software used.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a static zero terminated string otherwise.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectGetVersion"/>virConnectGetVersion ()</h3><pre class="programlisting">int virConnectGetVersion (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long * hvVer)<br/>
|
||||
</pre><p>Get the version level of the Hypervisor running. This may work only with hypervisor call, i.e. with priviledged access to the hypervisor, not with a Read-Only 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><tr><td><span class="term"><i><tt>hvVer</tt></i>:</span></td><td>return value for the version of the running hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise. if the version can't be extracted by lack of capacities returns 0 and @hvVer is 0, otherwise @hvVer value is major * 1,000,000 + minor * 1,000 + release</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectListDefinedDomains"/>virConnectListDefinedDomains ()</h3><pre class="programlisting">int virConnectListDefinedDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char ** names, <br/> int maxnames)<br/>
|
||||
</pre><p>list the defined domains, stores the pointers to the names in @names</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>pointer to an array to store the names</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of names provided in the array or -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectListDomains"/>virConnectListDomains ()</h3><pre class="programlisting">int virConnectListDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int * ids, <br/> int maxids)<br/>
|
||||
</pre><p>Collect the list of active domains, and store their ID in @maxids</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectNumOfDomains"/>virConnectNumOfDomains ()</h3><pre class="programlisting">int virConnectNumOfDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
|
||||
</pre><p>Provides the number of active domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectOpen"/>virConnectOpen ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpen (const char * name)<br/>
|
||||
</pre><p>This function should be called first to get a connection to the Hypervisor and xen store</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virConnectOpenReadOnly"/>virConnectOpenReadOnly ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br/>
|
||||
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainCreate"/>virDomainCreate ()</h3><pre class="programlisting">int virDomainCreate (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>launch a defined domain. If the call succeed the domain moves from the defined to the running domains pools.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainCreateLinux"/>virDomainCreateLinux ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainCreateLinux (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc, <br/> unsigned int flags)<br/>
|
||||
</pre><p>Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xmlDesc</tt></i>:</span></td><td>an XML description of the domain</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>an optional set of virDomainFlags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainDefineXML"/>virDomainDefineXML ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainDefineXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xml)<br/>
|
||||
</pre><p>define a domain, but does not start it</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>the XML description for the domain, preferably in UTF-8</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a pointer to the domain otherwise</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainDestroy"/>virDomainDestroy ()</h3><pre class="programlisting">int virDomainDestroy (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainFree"/>virDomainFree ()</h3><pre class="programlisting">int virDomainFree (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Free the domain object. The running instance is kept alive. The data structure is freed and should not be used thereafter.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetID"/>virDomainGetID ()</h3><pre class="programlisting">unsigned int virDomainGetID (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Get the hypervisor ID number for the domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the domain ID number or (unsigned int) -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetInfo"/>virDomainGetInfo ()</h3><pre class="programlisting">int virDomainGetInfo (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info)<br/>
|
||||
</pre><p>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetMaxMemory"/>virDomainGetMaxMemory ()</h3><pre class="programlisting">unsigned long virDomainGetMaxMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Retrieve the maximum amount of physical memory allocated to a domain. If domain is NULL, then this get the amount of memory reserved to Domain0 i.e. the domain where the application runs.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the memory size in kilobytes or 0 in case of error.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetName"/>virDomainGetName ()</h3><pre class="programlisting">const char * virDomainGetName (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Get the public name for that domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the domain object.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetOSType"/>virDomainGetOSType ()</h3><pre class="programlisting">char * virDomainGetOSType (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Get the type of domain operation system.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL in case of error, the string must be freed by the caller.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetUUID"/>virDomainGetUUID ()</h3><pre class="programlisting">int virDomainGetUUID (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned char * uuid)<br/>
|
||||
</pre><p>Get the UUID for a domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>uuid</tt></i>:</span></td><td>pointer to a 16 bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetUUIDString"/>virDomainGetUUIDString ()</h3><pre class="programlisting">int virDomainGetUUIDString (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> char * buf)<br/>
|
||||
</pre><p>Get the UUID for a domain as string. For more information about UUID see RFC4122.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>pointer to a 37 bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetVcpus"/>virDomainGetVcpus ()</h3><pre class="programlisting">int virDomainGetVcpus (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a> info, <br/> int maxinfo, <br/> unsigned char * cpumaps, <br/> int maplen)<br/>
|
||||
</pre><p>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is'nt NULL.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainGetXMLDesc"/>virDomainGetXMLDesc ()</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> int flags)<br/>
|
||||
</pre><p>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainLookupByID"/>virDomainLookupByID ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByID (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int id)<br/>
|
||||
</pre><p>Try to find a domain based on the hypervisor ID number</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>id</tt></i>:</span></td><td>the domain ID number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainLookupByName"/>virDomainLookupByName ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByName (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * name)<br/>
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its name.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainLookupByUUID"/>virDomainLookupByUUID ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByUUID (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const unsigned char * uuid)<br/>
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its UUID.</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>uuid</tt></i>:</span></td><td>the raw UUID for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainLookupByUUIDString"/>virDomainLookupByUUIDString ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByUUIDString (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * uuidstr)<br/>
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its UUID.</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>uuidstr</tt></i>:</span></td><td>the string UUID for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainPinVcpu"/>virDomainPinVcpu ()</h3><pre class="programlisting">int virDomainPinVcpu (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int vcpu, <br/> unsigned char * cpumap, <br/> int maplen)<br/>
|
||||
</pre><p>Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>vcpu</tt></i>:</span></td><td>virtual CPU number</td></tr><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a bit map of real CPUs (in 8-bit bytes) (IN) Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...). If maplen < size, missing bytes are set to zero. If maplen > size, failure code is returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainReboot"/>virDomainReboot ()</h3><pre class="programlisting">int virDomainReboot (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int flags)<br/>
|
||||
</pre><p>Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>extra flags for the reboot operation, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainRestore"/>virDomainRestore ()</h3><pre class="programlisting">int virDomainRestore (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * from)<br/>
|
||||
</pre><p>This method will restore a domain saved to disk by virDomainSave().</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>from</tt></i>:</span></td><td>path to the</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainResume"/>virDomainResume ()</h3><pre class="programlisting">int virDomainResume (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainSave"/>virDomainSave ()</h3><pre class="programlisting">int virDomainSave (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> const char * to)<br/>
|
||||
</pre><p>This method will suspend a domain and save its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use virDomainRestore() to restore a domain after saving.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>path for the output file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainSetMaxMemory"/>virDomainSetMaxMemory ()</h3><pre class="programlisting">int virDomainSetMaxMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned long memory)<br/>
|
||||
</pre><p>Dynamically change the maximum amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainSetMemory"/>virDomainSetMemory ()</h3><pre class="programlisting">int virDomainSetMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned long memory)<br/>
|
||||
</pre><p>Dynamically change the target amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function may requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainSetVcpus"/>virDomainSetVcpus ()</h3><pre class="programlisting">int virDomainSetVcpus (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int nvcpus)<br/>
|
||||
</pre><p>Dynamically change the number of virtual CPUs used by the domain. Note that this call may fail if the underlying virtualization hypervisor does not support it or if growing the number is arbitrary limited. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>nvcpus</tt></i>:</span></td><td>the new number of virtual CPUs for this domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainShutdown"/>virDomainShutdown ()</h3><pre class="programlisting">int virDomainShutdown (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Shutdown a domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainSuspend"/>virDomainSuspend ()</h3><pre class="programlisting">int virDomainSuspend (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use virDomainResume() to reactivate the domain. This function may requires priviledged access.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virDomainUndefine"/>virDomainUndefine ()</h3><pre class="programlisting">int virDomainUndefine (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br/>
|
||||
</pre><p>undefine a domain but does not stop it if it is running</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virGetVersion"/>virGetVersion ()</h3><pre class="programlisting">int virGetVersion (unsigned long * libVer, <br/> const char * type, <br/> unsigned long * typeVer)<br/>
|
||||
</pre><p>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not availble, an error code will be returned and @typeVer will be 0.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>libVer</tt></i>:</span></td><td>return value for the library version (OUT)</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of connection/driver looked at</td></tr><tr><td><span class="term"><i><tt>typeVer</tt></i>:</span></td><td>return value for the version of the hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virInitialize"/>virInitialize ()</h3><pre class="programlisting">int virInitialize (void)<br/>
|
||||
</pre><p>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeGetInfo"/>virNodeGetInfo ()</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br/>
|
||||
</pre><p>Extract hardware information about the node.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
189
docs/devhelp/libvirt-virterror.html
Normal file
189
docs/devhelp/libvirt-virterror.html
Normal file
@@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>virterror: error handling interfaces for the libvirt library</title>
|
||||
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
||||
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
||||
<link rel="up" href="general.html" title="API"/>
|
||||
<link rel="stylesheet" href="style.css" type="text/css"/>
|
||||
<link rel="chapter" href="general.html" title="API"/>
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
||||
<tr valign="middle">
|
||||
<td>
|
||||
<a accesskey="p" href="libvirt-libvirt.html">
|
||||
<img src="left.png" width="24" height="24" border="0" alt="Prev"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="u" href="general.html">
|
||||
<img src="up.png" width="24" height="24" border="0" alt="Up"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a accesskey="h" href="index.html">
|
||||
<img src="home.png" width="24" height="24" border="0" alt="Home"/>
|
||||
</a>
|
||||
</td>
|
||||
<th width="100%" align="center">libvirt Reference Manual</th>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>
|
||||
<span class="refentrytitle">virterror</span>
|
||||
</h2>
|
||||
<p>virterror - error handling interfaces for the libvirt library</p>
|
||||
<p>Provides the interfaces of the libvirt library to handle errors raised while using the library. </p>
|
||||
<p>Author(s): Daniel Veillard <veillard@redhat.com> </p>
|
||||
<div class="refsynopsisdiv">
|
||||
<h2>Synopsis</h2>
|
||||
<pre class="synopsis">typedef <a href="libvirt-virterror.html#virError">virError</a> * <a href="#virErrorPtr">virErrorPtr</a>;
|
||||
typedef enum <a href="#virErrorLevel">virErrorLevel</a>;
|
||||
typedef enum <a href="#virErrorDomain">virErrorDomain</a>;
|
||||
typedef enum <a href="#virErrorNumber">virErrorNumber</a>;
|
||||
typedef struct _virError <a href="#virError">virError</a>;
|
||||
int <a href="#virCopyLastError">virCopyLastError</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to);
|
||||
void <a href="#virConnSetErrorFunc">virConnSetErrorFunc</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> void * userData, <br/> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler);
|
||||
void <a href="#virResetLastError">virResetLastError</a> (void);
|
||||
typedef void <a href="#virErrorFunc">virErrorFunc</a> (void * userData, <br/> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> error);
|
||||
void <a href="#virResetError">virResetError</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err);
|
||||
<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> <a href="#virConnGetLastError">virConnGetLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
void <a href="#virDefaultErrorFunc">virDefaultErrorFunc</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err);
|
||||
<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> <a href="#virGetLastError">virGetLastError</a> (void);
|
||||
void <a href="#virSetErrorFunc">virSetErrorFunc</a> (void * userData, <br/> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler);
|
||||
int <a href="#virConnCopyLastError">virConnCopyLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to);
|
||||
void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Description</h2>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<h2>Details</h2>
|
||||
<div class="refsect2" lang="en">
|
||||
<div class="refsect2" lang="en"><h3><a name="virError">Structure </a>virError</h3><pre class="programlisting">struct _virError {
|
||||
int code : The error code, a <a href="libvirt-virterror.html#virErrorNumber">virErrorNumber</a>
|
||||
int domain : What part of the library raised this error
|
||||
char * message : human-readable informative error message
|
||||
<a href="libvirt-virterror.html#virErrorLevel">virErrorLevel</a> level : how consequent is the error
|
||||
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn : the connection if available
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom : the domain if available
|
||||
char * str1 : extra string information
|
||||
char * str2 : extra string information
|
||||
char * str3 : extra string information
|
||||
int int1 : extra number information
|
||||
int int2 : extra number information
|
||||
} virError;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virErrorDomain">Enum </a>virErrorDomain</h3><pre class="programlisting">enum <a href="#virErrorDomain">virErrorDomain</a> {
|
||||
<a name="VIR_FROM_NONE">VIR_FROM_NONE</a> = 0
|
||||
<a name="VIR_FROM_XEN">VIR_FROM_XEN</a> = 1 /* Error at Xen hypervisor layer */
|
||||
<a name="VIR_FROM_XEND">VIR_FROM_XEND</a> = 2 /* Error at connection with xend daemon */
|
||||
<a name="VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a> = 3 /* Error at connection with xen store */
|
||||
<a name="VIR_FROM_SEXPR">VIR_FROM_SEXPR</a> = 4 /* Error in the S-Epression code */
|
||||
<a name="VIR_FROM_XML">VIR_FROM_XML</a> = 5 /* Error in the XML code */
|
||||
<a name="VIR_FROM_DOM">VIR_FROM_DOM</a> = 6 /* Error when operating on a domain */
|
||||
<a name="VIR_FROM_RPC">VIR_FROM_RPC</a> = 7 /* Error in the XML-RPC code */
|
||||
<a name="VIR_FROM_PROXY">VIR_FROM_PROXY</a> = 8 /* Error in the proxy code */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virErrorLevel">Enum </a>virErrorLevel</h3><pre class="programlisting">enum <a href="#virErrorLevel">virErrorLevel</a> {
|
||||
<a name="VIR_ERR_NONE">VIR_ERR_NONE</a> = 0
|
||||
<a name="VIR_ERR_WARNING">VIR_ERR_WARNING</a> = 1 /* A simple warning */
|
||||
<a name="VIR_ERR_ERROR">VIR_ERR_ERROR</a> = 2 /* An error */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virErrorNumber">Enum </a>virErrorNumber</h3><pre class="programlisting">enum <a href="#virErrorNumber">virErrorNumber</a> {
|
||||
<a name="VIR_ERR_OK">VIR_ERR_OK</a> = 0
|
||||
<a name="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a> = 1 /* internal error */
|
||||
<a name="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a> = 2 /* memory allocation failure */
|
||||
<a name="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a> = 3 /* no support for this connection */
|
||||
<a name="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a> = 4 /* could not resolve hostname */
|
||||
<a name="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a> = 5 /* can't connect to hypervisor */
|
||||
<a name="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a> = 6 /* invalid connection object */
|
||||
<a name="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a> = 7 /* invalid domain object */
|
||||
<a name="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a> = 8 /* invalid function argument */
|
||||
<a name="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a> = 9 /* a command to hypervisor failed */
|
||||
<a name="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a> = 10 /* a HTTP GET command to failed */
|
||||
<a name="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a> = 11 /* a HTTP POST command to failed */
|
||||
<a name="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a> = 12 /* unexpected HTTP error code */
|
||||
<a name="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a> = 13 /* failure to serialize an S-Expr */
|
||||
<a name="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a> = 14 /* could not open Xen hypervisor control */
|
||||
<a name="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a> = 15 /* failure doing an hypervisor call */
|
||||
<a name="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a> = 16 /* unknown OS type */
|
||||
<a name="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a> = 17 /* missing kernel information */
|
||||
<a name="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a> = 18 /* missing root device information */
|
||||
<a name="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a> = 19 /* missing source device information */
|
||||
<a name="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a> = 20 /* missing target device information */
|
||||
<a name="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a> = 21 /* missing domain name information */
|
||||
<a name="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a> = 22 /* missing domain OS information */
|
||||
<a name="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a> = 23 /* missing domain devices information */
|
||||
<a name="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a> = 24 /* could not open Xen Store control */
|
||||
<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_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_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a> = 29 /* operation forbidden on read-only connections */
|
||||
};
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virErrorPtr">Typedef </a>virErrorPtr</h3><pre class="programlisting"><a href="libvirt-virterror.html#virError">virError</a> * virErrorPtr;
|
||||
</pre><p/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virErrorFunc"/>Function type virErrorFunc</h3><pre class="programlisting">void virErrorFunc (void * userData, <br/> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> error)<br/>
|
||||
</pre><p>Signature of a function to use when there is an error raised by the library.</p>
|
||||
<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>
|
||||
<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>
|
||||
<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 occured.</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>
|
||||
<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/>
|
||||
</pre><p>Set a connection error handling function, if @handler is NULL it will reset to default which is to pass error back to the global library handler.</p>
|
||||
<div 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>
|
||||
<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/>
|
||||
</pre><p>Default routine reporting an error to stderr.</p>
|
||||
<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>
|
||||
<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 occured.</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/>
|
||||
</pre><p>Reset the error being pointed to</p>
|
||||
<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>
|
||||
</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/>
|
||||
</pre><p>Set a library global error handling function, if @handler is NULL, it will reset to default printing on stderr. The error raised there are those for which no handler at the connection level could caught.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><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>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
docs/devhelp/right.png
Normal file
BIN
docs/devhelp/right.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 472 B |
66
docs/devhelp/style.css
Normal file
66
docs/devhelp/style.css
Normal file
@@ -0,0 +1,66 @@
|
||||
.synopsis, .classsynopsis
|
||||
{
|
||||
background: #eeeeee;
|
||||
border: solid 1px #aaaaaa;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.programlisting
|
||||
{
|
||||
background: #eeeeff;
|
||||
border: solid 1px #aaaaff;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.variablelist
|
||||
{
|
||||
padding: 4px;
|
||||
margin-left: 3em;
|
||||
}
|
||||
.variablelist td:first-child
|
||||
{
|
||||
vertical-align: top;
|
||||
}
|
||||
table.navigation
|
||||
{
|
||||
background: #ffeeee;
|
||||
border: solid 1px #ffaaaa;
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.navigation a
|
||||
{
|
||||
color: #770000;
|
||||
}
|
||||
.navigation a:visited
|
||||
{
|
||||
color: #550000;
|
||||
}
|
||||
.navigation .title
|
||||
{
|
||||
font-size: 200%;
|
||||
}
|
||||
div.refnamediv
|
||||
{
|
||||
margin-top: 2em;
|
||||
}
|
||||
div.gallery-float
|
||||
{
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
div.gallery-float img
|
||||
{
|
||||
border-style: none;
|
||||
}
|
||||
div.gallery-spacer
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
a
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover
|
||||
{
|
||||
text-decoration: underline;
|
||||
color: #FF0000;
|
||||
}
|
||||
BIN
docs/devhelp/up.png
Normal file
BIN
docs/devhelp/up.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 406 B |
@@ -1,9 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Downloads</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Downloads</h1><p>The latest versions of libvir can be found on the <a href="ftp://libvir.org/libvir/">libvir.org</a> server ( <a href="http://libvir.org/sources/">HTTP</a>, <a href="ftp://libvir.org/libvir/">FTP</a>). You will find there the released
|
||||
versions as well as <a href="http://libvir.org/sources/libvir-cvs-snapshot.tar.gz">snapshot
|
||||
<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>Downloads</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Downloads</h1><p>The latest versions of libvirt can be found on the <a href="ftp://libvirt.org/libvirt/">libvirt.org</a> server ( <a href="http://libvirt.org/sources/">HTTP</a>, <a href="ftp://libvirt.org/libvirt/">FTP</a>). You will find there the released
|
||||
versions as well as <a href="http://libvirt.org/sources/libvirt-cvs-snapshot.tar.gz">snapshot
|
||||
tarballs</a> updated from CVS head every hour</p><p>Anonymous <a href="http://ximbiot.com/cvs/cvshome/docs/">CVS</a> is also
|
||||
available, first register onto the server:</p><p><code>cvs -d :pserver:anoncvs@libvir.org:2401/data/cvs login</code></p><p>it will request a password, enter <strong>anoncvs</strong>. Then you can
|
||||
checkout the development tree with:</p><p><code>cvs -d :pserver:anoncvs@libvir.org:2401/data/cvs co libvir</code></p><p>Use ./autogen.sh to configure the local checkout, then <code>make</code>
|
||||
available, first register onto the server:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login</code></p><p>it will request a password, enter <strong>anoncvs</strong>. Then you can
|
||||
checkout the development tree with:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co
|
||||
libvirt</code></p><p>Use ./autogen.sh to configure the local checkout, then <code>make</code>
|
||||
and <code>make install</code>, as usual. All normal cvs commands are now
|
||||
available except commiting to the base.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
available except commiting to the base.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
69
docs/errors.html
Normal file
69
docs/errors.html
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Handling of errors</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Handling of errors</h1><p>The main goals of libvirt when it comes to error handling are:</p><ul><li>provide as much detail as possible</li>
|
||||
<li>provide the informations as soon as possible</li>
|
||||
<li>dont force the library user into one style of error handling</li>
|
||||
</ul><p>As result the library provide both synchronous, callback based and
|
||||
asynchronous error reporting. When an error happens in the library code the
|
||||
error is logged, allowing to retrieve it later and if the user registered an
|
||||
error callback it will be called synchronously. Once the call to libvirt ends
|
||||
the error can be detected by the return value and the full information for
|
||||
the last logged error can be retrieved.</p><p>To avoid as much as prossible troubles with a global variable in a
|
||||
multithreaded environment, libvirt will associate when possible the errors to
|
||||
the current connection they are related to, that way the error is stored in a
|
||||
dynamic structure which can be made thread specific. Error callback can be
|
||||
set specifically to a connection with</p><p>So error handling in the code is the following:</p><ol><li>if the error can be associated to a connection for example when failing
|
||||
to look up a domain
|
||||
<ol><li>if there is a callback associated to the connection set with <a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
call it with the error informations</li>
|
||||
<li>otherwise if there is a global callback set with <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,
|
||||
call it with the error information</li>
|
||||
<li>otherwise call <a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>
|
||||
which is the default error function of the library issuing the error
|
||||
on stderr</li>
|
||||
<li>save the error in the connection for later retrieval with <a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a></li>
|
||||
</ol></li>
|
||||
<li>otherwise like when failing to create an hypervisor connection:
|
||||
<ol><li>if there is a global callback set with <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,
|
||||
call it with the error information</li>
|
||||
<li>otherwise call <a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>
|
||||
which is the default error function of the library issuing the error
|
||||
on stderr</li>
|
||||
<li>save the error in the connection for later retrieval with <a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a></li>
|
||||
</ol></li>
|
||||
</ol><p>In all cases the error informations are provided as a <a href="html/libvirt-virterror.html#virErrorPtr">virErrorPtr</a> pointer to
|
||||
read-only structure <a href="html/libvirt-virterror.html#virError">virError</a> containing the
|
||||
following fields:</p><ul><li>code: an error number from the <a href="html/libvirt-virterror.html#virErrorNumber">virErrorNumber</a>
|
||||
enum</li>
|
||||
<li>domain: an enum indicating which part of libvirt raised the error see
|
||||
<a href="html/libvirt-virterror.html#virErrorDomain">virErrorDomain</a></li>
|
||||
<li>level: the error level, usually VIR_ERR_ERROR, though there is room for
|
||||
warnings like VIR_ERR_WARNING</li>
|
||||
<li>message: the full human-readable formatted string of the error</li>
|
||||
<li>conn: if available a pointer to the <a href="html/libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>
|
||||
connection to the hypervisor where this happened</li>
|
||||
<li>dom: if available a pointer to the <a href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain
|
||||
targetted in the operation</li>
|
||||
</ul><p>and then extra raw informations about the error which may be initialized
|
||||
to 0 or NULL if unused</p><ul><li>str1, str2, str3: string informations, usually str1 is the error
|
||||
message format</li>
|
||||
<li>int1, int2: integer informations</li>
|
||||
</ul><p>So usually, setting up specific error handling with libvirt consist of
|
||||
registering an handler with with <a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a> or
|
||||
with <a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
chech the value of the code value, take appropriate action, if needed let
|
||||
libvirt print the error on stderr by calling <a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.
|
||||
For asynchronous error handing, set such a function doing nothing to avoid
|
||||
the error being reported on stderr, and call virConnGetLastError or
|
||||
virGetLastError when an API call returned an error value. It can be a good
|
||||
idea to use <a href="html/libvirt-virterror.html#virResetLastError">virResetError</a> or <a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a>
|
||||
once an error has been processed fully.</p><p>At the python level, there only a global reporting callback function at
|
||||
this point, see the error.py example about it:</p><pre>def handler(ctxt, err):
|
||||
global errno
|
||||
|
||||
#print "handler(%s, %s)" % (ctxt, err)
|
||||
errno = err
|
||||
|
||||
libvirt.registerErrorHandler(handler, 'context') </pre><p>the second argument to the registerErrorHandler function is passed as the
|
||||
fist argument of the callback like in the C version. The error is a tuple
|
||||
containing the same field as a virError in C, but cast to Python.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
7
docs/examples/.cvsignore
Normal file
7
docs/examples/.cvsignore
Normal file
@@ -0,0 +1,7 @@
|
||||
.memdump
|
||||
Makefile.in
|
||||
Makefile
|
||||
info1
|
||||
suspend
|
||||
.libs
|
||||
.deps
|
||||
@@ -1,4 +1,5 @@
|
||||
# Beware this is autogenerated by index.py
|
||||
SUBDIRS=python
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include
|
||||
DEPS = $(top_builddir)/src/libvirt.la
|
||||
LDADDS = @STATIC_BINARIES@ $(top_builddir)/src/libvirt.la
|
||||
@@ -8,8 +9,8 @@ rebuild: examples.xml index.html
|
||||
examples.xml: index.py *.c
|
||||
-@($(srcdir)/index.py)
|
||||
|
||||
index.html: examples.xml examples.xsl
|
||||
-@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html)
|
||||
index.html: examples.xml examples.xsl $(top_srcdir)/docs/site.xsl
|
||||
-@(if [ -x $(XSLTPROC) ] ; then $(XSLTPROC) examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html ; fi)
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
|
||||
@@ -17,18 +18,24 @@ install-data-local:
|
||||
|
||||
EXTRA_DIST=examples.xsl index.py examples.xml
|
||||
|
||||
noinst_PROGRAMS=info1
|
||||
noinst_PROGRAMS=info1 suspend
|
||||
|
||||
info1_SOURCES=info1.c
|
||||
info1_LDFLAGS=
|
||||
info1_DEPENDENCIES= $(DEPS)
|
||||
info1_LDADD= $(LDADDS)
|
||||
|
||||
suspend_SOURCES=suspend.c
|
||||
suspend_LDFLAGS=
|
||||
suspend_DEPENDENCIES= $(DEPS)
|
||||
suspend_LDADD= $(LDADDS)
|
||||
|
||||
valgrind:
|
||||
$(MAKE) CHECKER='valgrind' tests
|
||||
|
||||
tests: $(noinst_PROGRAMS)
|
||||
@(echo '## examples regression tests')
|
||||
@($(CHECKER) ./info1)
|
||||
@($(CHECKER) ./suspend)
|
||||
|
||||
|
||||
|
||||
@@ -10,37 +10,77 @@
|
||||
<includes>
|
||||
</includes>
|
||||
<uses>
|
||||
<function line='43' file='libvirt' name='virDomainGetInfo'/>
|
||||
<function line='53' file='libvirt' name='virDomainFree'/>
|
||||
<function line='36' file='libvirt' name='virDomainLookupByID'/>
|
||||
<function line='55' file='libvirt' name='virConnectClose'/>
|
||||
<struct line='25' file='libvirt' name='virDomainInfo'/>
|
||||
<function line='29' file='libvirt' name='virConnectOpenReadOnly'/>
|
||||
<function line='43' name='virDomainGetInfo'/>
|
||||
<function line='53' name='virDomainFree'/>
|
||||
<function line='36' name='virDomainLookupByID'/>
|
||||
<function line='55' name='virConnectClose'/>
|
||||
<type line='25' name='virDomainInfo'/>
|
||||
<function line='29' name='virConnectOpenReadOnly'/>
|
||||
</uses>
|
||||
</example>
|
||||
<example filename='suspend.c'>
|
||||
<synopsis>Suspend a domain and then resume its execution</synopsis>
|
||||
<purpose>Demonstrate the basic use of the library to suspend and resume a domain. If no id is given on the command line this script will suspend and resume the first domain found which is not Domain 0.</purpose>
|
||||
<usage>suspend [id]</usage>
|
||||
<test>suspend</test>
|
||||
<author>Daniel Veillard</author>
|
||||
<copy>see Copyright for the status of this software. </copy>
|
||||
<section>Scheduling</section>
|
||||
<includes>
|
||||
</includes>
|
||||
<uses>
|
||||
<function line='31' name='virDomainGetInfo'/>
|
||||
<function line='111' name='virConnectListDomains'/>
|
||||
<function line='93' name='virDomainFree'/>
|
||||
<function line='73' name='virDomainResume'/>
|
||||
<function line='50' name='virDomainLookupByID'/>
|
||||
<function line='132' name='virConnectClose'/>
|
||||
<type line='28' name='virDomainInfo'/>
|
||||
<function line='62' name='virDomainSuspend'/>
|
||||
<function line='100' name='virConnectOpenReadOnly'/>
|
||||
</uses>
|
||||
</example>
|
||||
<symbols>
|
||||
<symbol name='virConnectClose'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virConnectListDomains'>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virConnectOpenReadOnly'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainFree'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainGetInfo'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainInfo'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainLookupByID'>
|
||||
<ref filename='info1.c'/>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainResume'>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
<symbol name='virDomainSuspend'>
|
||||
<ref filename='suspend.c'/>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<sections>
|
||||
<section name='Informations'>
|
||||
<example filename='info1.c'/>
|
||||
</section>
|
||||
<section name='Scheduling'>
|
||||
<example filename='suspend.c'/>
|
||||
</section>
|
||||
</sections>
|
||||
</examples>
|
||||
|
||||
@@ -31,28 +31,28 @@
|
||||
|
||||
<xsl:template match="include">
|
||||
<xsl:variable name="header" select="substring-before(substring-after(., '/'), '>')"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libxml-', $header, 'tml')"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libvirt-', $header, 'tml')"/>
|
||||
<li><a href="{$doc}"><xsl:value-of select="."/></a></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="typedef">
|
||||
<xsl:variable name="name" select="@name"/>
|
||||
<xsl:variable name="header" select="concat(@file, '.h')"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libvirt-', @file, '.html#', $name)"/>
|
||||
<li> line <xsl:value-of select="@line"/>: Type <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="function">
|
||||
<xsl:variable name="name" select="@name"/>
|
||||
<xsl:variable name="header" select="concat(@file, '.h')"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libvirt-', @file, '.html#', $name)"/>
|
||||
<li> line <xsl:value-of select="@line"/>: Function <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="macro">
|
||||
<xsl:variable name="name" select="@name"/>
|
||||
<xsl:variable name="header" select="concat(@file, '.h')"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
|
||||
<xsl:variable name="doc" select="concat('../html/libvirt-', @file, '.html#', $name)"/>
|
||||
<li> line <xsl:value-of select="@line"/>: Macro <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
|
||||
</xsl:template>
|
||||
|
||||
@@ -60,12 +60,6 @@
|
||||
<xsl:variable name="filename" select="string(@filename)"/>
|
||||
<h3><a name="{$filename}" href="{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="synopsis"/></h3>
|
||||
<p><xsl:value-of select="purpose"/></p>
|
||||
<p>Includes:</p>
|
||||
<ul>
|
||||
<xsl:for-each select="includes/include">
|
||||
<xsl:apply-templates select='.'/>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
<p>Uses:</p>
|
||||
<ul>
|
||||
<xsl:for-each select="uses/*">
|
||||
@@ -101,9 +95,9 @@
|
||||
</ul>
|
||||
<p> Getting the compilation options and libraries dependancies needed
|
||||
to generate binaries from the examples is best done on Linux/Unix by using
|
||||
the xml2-config script which should have been installed as part of <i>make
|
||||
install</i> step or when installing the libxml2 development package:</p>
|
||||
<pre>gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`</pre>
|
||||
the pkg-config data which should have been installed as part of <i>make
|
||||
install</i> step or when installing the libvirt development package:</p>
|
||||
<pre>gcc -o example example.c `pkg-config libvirt --libs`</pre>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="sections-list">
|
||||
@@ -115,58 +109,34 @@ install</i> step or when installing the libxml2 development package:</p>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="examples">
|
||||
<xsl:variable name="title">Libxml2 set of examples</xsl:variable>
|
||||
<xsl:variable name="title">Libvirt set of C code examples</xsl:variable>
|
||||
<xsl:document href="index.html" method="xml" encoding="ISO-8859-1"
|
||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<xsl:call-template name="style"/>
|
||||
<xsl:element name="title">
|
||||
<xsl:value-of select="$title"/>
|
||||
</xsl:element>
|
||||
<xsl:call-template name="style"/>
|
||||
<xsl:element name="title">
|
||||
<xsl:value-of select="$title"/>
|
||||
</xsl:element>
|
||||
</head>
|
||||
<body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
|
||||
<xsl:call-template name="titlebox">
|
||||
<xsl:with-param name="title" select="$title"/>
|
||||
</xsl:call-template>
|
||||
<table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
|
||||
<tr>
|
||||
<td bgcolor="#8b7765">
|
||||
<table border="0" cellspacing="0" cellpadding="2" width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="200" bgcolor="#8b7765">
|
||||
<xsl:call-template name="toc"/>
|
||||
</td>
|
||||
<td valign="top" bgcolor="#8b7765">
|
||||
<table border="0" cellspacing="0" cellpadding="1" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0" cellpadding="3" cellspacing="1" width="100%">
|
||||
<tr>
|
||||
<td bgcolor="#fffacd">
|
||||
<xsl:apply-templates select="sections"/>
|
||||
<xsl:call-template name="sections-list"/>
|
||||
<p><a href="../bugs.html">Daniel Veillard</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="intro">
|
||||
<div id="adjustments"/>
|
||||
<div id="pageHeader"/>
|
||||
<div id="content2">
|
||||
<xsl:call-template name="titlebox">
|
||||
<xsl:with-param name="title" select="$title"/>
|
||||
</xsl:call-template>
|
||||
<xsl:apply-templates select="sections"/>
|
||||
<xsl:call-template name="sections-list"/>
|
||||
</div>
|
||||
</div>
|
||||
<xsl:call-template name="linkList2"/>
|
||||
<xsl:call-template name="bottom"/>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:document>
|
||||
</xsl:template>
|
||||
|
||||
7
docs/examples/index.html
Normal file
7
docs/examples/index.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Libvirt set of C code examples</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Libvirt set of C code examples</h1><p> The examples are stored per section depending on the main focus
|
||||
of the example:</p><ul><li><p><a href="#Informations">Informations</a> :</p><ul><li><a href="#info1.c">info1.c</a>: Extract informations about Xen domain 0</li></ul></li><li><p><a href="#Scheduling">Scheduling</a> :</p><ul><li><a href="#suspend.c">suspend.c</a>: Suspend a domain and then resume its execution</li></ul></li></ul><p> Getting the compilation options and libraries dependancies needed
|
||||
to generate binaries from the examples is best done on Linux/Unix by using
|
||||
the pkg-config data which should have been installed as part of <i>make
|
||||
install</i> step or when installing the libvirt development package:</p><pre>gcc -o example example.c `pkg-config libvirt --libs`</pre><h2><a name="Informations" id="Informations"></a>Informations Examples</h2><h3><a name="info1.c" href="info1.c" id="info1.c">info1.c</a>: Extract informations about Xen domain 0</h3><p>Demonstrate the basic use of the library to connect to the hypervisor and extract domain informations.</p><p>Uses:</p><ul><li> line 29: Function <a href="../html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a> from libvirt.h</li><li> line 36: Function <a href="../html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a> from libvirt.h</li><li> line 43: Function <a href="../html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a> from libvirt.h</li><li> line 53: Function <a href="../html/libvirt-libvirt.html#virDomainFree">virDomainFree</a> from libvirt.h</li><li> line 55: Function <a href="../html/libvirt-libvirt.html#virConnectClose">virConnectClose</a> from libvirt.h</li></ul><p>Usage:</p><p>info1</p><p>Author: Daniel Veillard</p><h2><a name="Scheduling" id="Scheduling"></a>Scheduling Examples</h2><h3><a name="suspend.c" href="suspend.c" id="suspend.c">suspend.c</a>: Suspend a domain and then resume its execution</h3><p>Demonstrate the basic use of the library to suspend and resume a domain. If no id is given on the command line this script will suspend and resume the first domain found which is not Domain 0.</p><p>Uses:</p><ul><li> line 30: Function <a href="../html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a> from libvirt.h</li><li> line 49: Function <a href="../html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a> from libvirt.h</li><li> line 61: Function <a href="../html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a> from libvirt.h</li><li> line 72: Function <a href="../html/libvirt-libvirt.html#virDomainResume">virDomainResume</a> from libvirt.h</li><li> line 92: Function <a href="../html/libvirt-libvirt.html#virDomainFree">virDomainFree</a> from libvirt.h</li><li> line 99: Function <a href="../html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a> from libvirt.h</li><li> line 110: Function <a href="../html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a> from libvirt.h</li><li> line 131: Function <a href="../html/libvirt-libvirt.html#virConnectClose">virConnectClose</a> from libvirt.h</li></ul><p>Usage:</p><p>suspend [id]</p><p>Author: Daniel Veillard</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -221,6 +221,7 @@ def dump_Makefile():
|
||||
for file in glob.glob('*.res'):
|
||||
extras.append(file)
|
||||
Makefile="""# Beware this is autogenerated by index.py
|
||||
SUBDIRS=python
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include
|
||||
DEPS = $(top_builddir)/src/libvirt.la
|
||||
LDADDS = @STATIC_BINARIES@ $(top_builddir)/src/libvirt.la
|
||||
@@ -230,8 +231,9 @@ rebuild: examples.xml index.html
|
||||
examples.xml: index.py *.c
|
||||
-@($(srcdir)/index.py)
|
||||
|
||||
index.html: examples.xml examples.xsl
|
||||
-@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html)
|
||||
index.html: examples.xml examples.xsl $(top_srcdir)/docs/site.xsl
|
||||
-@(if [ -x $(XSLTPROC) ] ; then \
|
||||
$(XSLTPROC) examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html ; fi)
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <libvirt.h>
|
||||
#include <libvirt/libvirt.h>
|
||||
|
||||
/**
|
||||
* getDomainInfo:
|
||||
|
||||
2
docs/examples/python/.cvsignore
Normal file
2
docs/examples/python/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
4
docs/examples/python/Makefile.am
Normal file
4
docs/examples/python/Makefile.am
Normal file
@@ -0,0 +1,4 @@
|
||||
EXTRA_DIST= \
|
||||
README \
|
||||
dominfo.py domrestore.py domsave.py domstart.py \
|
||||
guava.xml papaya.xml
|
||||
15
docs/examples/python/README
Normal file
15
docs/examples/python/README
Normal file
@@ -0,0 +1,15 @@
|
||||
Some simple examples on how to use the Python API for libvirt
|
||||
|
||||
The examples are:
|
||||
|
||||
dominfo.py - print information about a running domU based on the results of
|
||||
virDomainGetInfo and virDomainGetXMLDesc
|
||||
domstart.py - create a domU from an XML description if the domU isn't
|
||||
running yet
|
||||
domsave.py - save all running domU's into a directory
|
||||
domrestore.py - restore domU's from their saved files in a directory
|
||||
|
||||
The XML files in this directory are examples of the XML format that libvirt
|
||||
expects, and will have to be adapted for your setup. They are only needed
|
||||
for domstart.py
|
||||
|
||||
86
docs/examples/python/dominfo.py
Executable file
86
docs/examples/python/dominfo.py
Executable file
@@ -0,0 +1,86 @@
|
||||
#! /usr/bin/python
|
||||
# dominfo - print some information about a domain
|
||||
|
||||
import libvirt
|
||||
import sys
|
||||
import os
|
||||
import libxml2
|
||||
import pdb
|
||||
|
||||
def usage():
|
||||
print 'Usage: %s DOMAIN' % sys.argv[0]
|
||||
print ' Print information about the domain DOMAIN'
|
||||
|
||||
def print_section(title):
|
||||
print "\n%s" % title
|
||||
print "=" * 60
|
||||
|
||||
def print_entry(key, value):
|
||||
print "%-10s %-10s" % (key, value)
|
||||
|
||||
def print_xml(key, ctx, path):
|
||||
res = ctx.xpathEval(path)
|
||||
if res is None or len(res) == 0:
|
||||
value="Unknown"
|
||||
else:
|
||||
value = res[0].content
|
||||
print_entry(key, value)
|
||||
return value
|
||||
|
||||
if not os.access("/proc/xen", os.R_OK):
|
||||
print 'System is not running a Xen kernel'
|
||||
sys.exit(1)
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
name = sys.argv[1]
|
||||
|
||||
# Connect to libvirt
|
||||
conn = libvirt.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
dom = conn.lookupByName(name)
|
||||
# Annoyiingly, libvirt prints its own error message here
|
||||
except libvirt.libvirtError:
|
||||
print "Domain %s is not runing" % name
|
||||
sys.exit(0)
|
||||
|
||||
info = dom.info()
|
||||
print_section("Domain info")
|
||||
print_entry("State:", info[0])
|
||||
print_entry("MaxMem:", info[1])
|
||||
print_entry("UsedMem:", info[2])
|
||||
print_entry("VCPUs:", info[3])
|
||||
|
||||
# Read some info from the XML desc
|
||||
xmldesc = dom.XMLDesc(0)
|
||||
doc = libxml2.parseDoc(xmldesc)
|
||||
ctx = doc.xpathNewContext()
|
||||
print_section("Kernel")
|
||||
print_xml("Type:", ctx, "/domain/os/type")
|
||||
print_xml("Kernel:", ctx, "/domain/os/kernel")
|
||||
print_xml("initrd:", ctx, "/domain/os/initrd")
|
||||
print_xml("cmdline:", ctx, "/domain/os/cmdline")
|
||||
|
||||
print_section("Devices")
|
||||
devs = ctx.xpathEval("/domain/devices/*")
|
||||
for d in devs:
|
||||
ctx.setContextNode(d)
|
||||
#pdb.set_trace()
|
||||
type = print_xml("Type:", ctx, "@type")
|
||||
if type == "file":
|
||||
print_xml("Source:", ctx, "source/@file")
|
||||
print_xml("Target:", ctx, "target/@dev")
|
||||
elif type == "block":
|
||||
print_xml("Source:", ctx, "source/@dev")
|
||||
print_xml("Target:", ctx, "target/@dev")
|
||||
elif type == "bridge":
|
||||
print_xml("Source:", ctx, "source/@bridge")
|
||||
print_xml("MAC Addr:", ctx, "mac/@address")
|
||||
|
||||
|
||||
36
docs/examples/python/domrestore.py
Executable file
36
docs/examples/python/domrestore.py
Executable file
@@ -0,0 +1,36 @@
|
||||
#! /usr/bin/python
|
||||
# domstart - make sure a given domU is running, if not start it
|
||||
|
||||
import libvirt
|
||||
import sys
|
||||
import os
|
||||
import libxml2
|
||||
import pdb
|
||||
|
||||
def usage():
|
||||
print 'Usage: %s DIR' % sys.argv[0]
|
||||
print ' Restore all the domains contained in DIR'
|
||||
print ' It is assumed that all files in DIR are'
|
||||
print ' images of domU\'s previously created with save'
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
dir = sys.argv[1]
|
||||
imgs = os.listdir(dir)
|
||||
|
||||
conn = libvirt.open(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
for img in imgs:
|
||||
file = os.path.join(dir, img)
|
||||
print "Restoring %s ... " % img,
|
||||
sys.stdout.flush()
|
||||
ret = conn.restore(file)
|
||||
if ret == 0:
|
||||
print "done"
|
||||
else:
|
||||
print "error %d" % ret
|
||||
40
docs/examples/python/domsave.py
Executable file
40
docs/examples/python/domsave.py
Executable file
@@ -0,0 +1,40 @@
|
||||
#! /usr/bin/python
|
||||
# domstart - make sure a given domU is running, if not start it
|
||||
|
||||
import libvirt
|
||||
import sys
|
||||
import os
|
||||
import libxml2
|
||||
import pdb
|
||||
|
||||
def usage():
|
||||
print 'Usage: %s DIR' % sys.argv[0]
|
||||
print ' Save all currently running domU\'s into DIR'
|
||||
print ' DIR must exist and be writable by this process'
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
dir = sys.argv[1]
|
||||
|
||||
conn = libvirt.open(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
doms = conn.listDomainsID()
|
||||
for id in doms:
|
||||
if id == 0:
|
||||
continue
|
||||
dom = conn.lookupByID(id)
|
||||
print "Saving %s[%d] ... " % (dom.name(), id),
|
||||
sys.stdout.flush()
|
||||
path = os.path.join(dir, dom.name())
|
||||
ret = dom.save(path)
|
||||
if ret == 0:
|
||||
print "done"
|
||||
else:
|
||||
print "error %d" % ret
|
||||
|
||||
#pdb.set_trace()
|
||||
50
docs/examples/python/domstart.py
Executable file
50
docs/examples/python/domstart.py
Executable file
@@ -0,0 +1,50 @@
|
||||
#! /usr/bin/python
|
||||
# domstart - make sure a given domU is running, if not start it
|
||||
|
||||
import libvirt
|
||||
import sys
|
||||
import os
|
||||
import libxml2
|
||||
import pdb
|
||||
|
||||
# Parse the XML description of domU from FNAME
|
||||
# and return a tuple (name, xmldesc) where NAME
|
||||
# is the name of the domain, and xmldesc is the contetn of FNAME
|
||||
def read_domain(fname):
|
||||
fp = open(fname, "r")
|
||||
xmldesc = fp.read()
|
||||
fp.close()
|
||||
|
||||
doc = libxml2.parseDoc(xmldesc)
|
||||
name = doc.xpathNewContext().xpathEval("/domain/name")[0].content
|
||||
return (name, xmldesc)
|
||||
|
||||
def usage():
|
||||
print 'Usage: %s domain.xml' % sys.argv[0]
|
||||
print ' Check that the domain described by DOMAIN.XML is running'
|
||||
print ' If the domain is not running, create it'
|
||||
print ' DOMAIN.XML must be a XML description of the domain'
|
||||
print ' in libvirt\'s XML format'
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
(name, xmldesc) = read_domain(sys.argv[1])
|
||||
|
||||
conn = libvirt.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
dom = conn.lookupByName(name)
|
||||
except libvirt.libvirtError:
|
||||
print "Starting domain %s ... " % name,
|
||||
sys.stdout.flush()
|
||||
dom = conn.createLinux(xmldesc, 0)
|
||||
if dom == None:
|
||||
print "failed"
|
||||
sys.exit(1)
|
||||
else:
|
||||
print "done"
|
||||
22
docs/examples/python/guava.xml
Normal file
22
docs/examples/python/guava.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<domain type='xen'>
|
||||
<name>guava</name>
|
||||
<os>
|
||||
<type>linux</type>
|
||||
<kernel>/var/xen/boot/vmlinuz-2.6.15-1.33_FC5guest</kernel>
|
||||
<initrd>/var/xen/boot/initrd-2.6.15-1.33_FC5guest.img</initrd>
|
||||
<cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline>
|
||||
</os>
|
||||
<memory>262144</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<devices>
|
||||
<disk type='file'>
|
||||
<source file='/var/xen/guava'/>
|
||||
<target dev='xvda'/>
|
||||
</disk>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='00:16:3e:78:a2:42'/>
|
||||
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||
</interface>
|
||||
</devices>
|
||||
</domain>
|
||||
26
docs/examples/python/papaya.xml
Normal file
26
docs/examples/python/papaya.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<domain type='xen'>
|
||||
<name>papaya</name>
|
||||
<os>
|
||||
<type>linux</type>
|
||||
<kernel>/var/xen/boot/vmlinuz-2.6.15-1.33_FC5guest</kernel>
|
||||
<initrd>/var/xen/boot/initrd-2.6.15-1.33_FC5guest.img</initrd>
|
||||
<cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet single</cmdline>
|
||||
</os>
|
||||
<memory>262144</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<devices>
|
||||
<disk type='file'>
|
||||
<source file='/var/xen/papaya'/>
|
||||
<target dev='xvda'/>
|
||||
</disk>
|
||||
<disk type='block'>
|
||||
<source dev='/dev/mapper/vg00-lv02'/>
|
||||
<target dev='sda1'/>
|
||||
</disk>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='00:16:3e:78:a2:0c'/>
|
||||
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||
</interface>
|
||||
</devices>
|
||||
</domain>
|
||||
134
docs/examples/suspend.c
Normal file
134
docs/examples/suspend.c
Normal file
@@ -0,0 +1,134 @@
|
||||
/**
|
||||
* section: Scheduling
|
||||
* synopsis: Suspend a domain and then resume its execution
|
||||
* purpose: Demonstrate the basic use of the library to suspend and
|
||||
* resume a domain. If no id is given on the command line
|
||||
* this script will suspend and resume the first domain found
|
||||
* which is not Domain 0.
|
||||
* usage: suspend [id]
|
||||
* test: suspend
|
||||
* author: Daniel Veillard
|
||||
* copy: see Copyright for the status of this software.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <libvirt/libvirt.h>
|
||||
|
||||
virConnectPtr conn = NULL; /* the hypervisor connection */
|
||||
|
||||
/**
|
||||
* checkDomainState:
|
||||
* @dom: the domain
|
||||
*
|
||||
* Return the current state of a domain or -1 if non-exsitant
|
||||
*/
|
||||
static int
|
||||
checkDomainState(virDomainPtr dom) {
|
||||
virDomainInfo info; /* the informations being fetched */
|
||||
int ret;
|
||||
|
||||
ret = virDomainGetInfo(dom, &info);
|
||||
if (ret < 0) {
|
||||
return(-1);
|
||||
}
|
||||
return(info.state);
|
||||
}
|
||||
|
||||
/**
|
||||
* SuspendAndResumeDomain:
|
||||
* @id: the id of the domain
|
||||
*
|
||||
* extract the domain 0 informations
|
||||
*/
|
||||
static void
|
||||
SuspendAndResumeDomain(int id) {
|
||||
virDomainPtr dom = NULL; /* the domain being checked */
|
||||
int ret, state;
|
||||
|
||||
/* Find the domain of the given id */
|
||||
dom = virDomainLookupByID(conn, id);
|
||||
if (dom == NULL) {
|
||||
fprintf(stderr, "Failed to find Domain %d\n", id);
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* Check state */
|
||||
state = checkDomainState(dom);
|
||||
if ((state == VIR_DOMAIN_RUNNING) ||
|
||||
(state == VIR_DOMAIN_NOSTATE) ||
|
||||
(state == VIR_DOMAIN_BLOCKED)) {
|
||||
printf("Suspending domain...\n");
|
||||
ret = virDomainSuspend(dom);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Failed to suspend Domain %d\n", id);
|
||||
goto error;
|
||||
}
|
||||
state = checkDomainState(dom);
|
||||
if (state != VIR_DOMAIN_PAUSED) {
|
||||
fprintf(stderr, "Domain %d state is not suspended\n", id);
|
||||
} else {
|
||||
printf("Domain suspended, resuming it...\n");
|
||||
}
|
||||
ret = virDomainResume(dom);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Failed to resume Domain %d\n", id);
|
||||
goto error;
|
||||
}
|
||||
state = checkDomainState(dom);
|
||||
if ((state == VIR_DOMAIN_RUNNING) ||
|
||||
(state == VIR_DOMAIN_NOSTATE) ||
|
||||
(state == VIR_DOMAIN_BLOCKED)) {
|
||||
printf("Domain resumed\n");
|
||||
} else {
|
||||
fprintf(stderr, "Domain %d state indicate it is not resumed\n", id);
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "Domain %d is not in a state where it should be suspended\n", id);
|
||||
goto error;
|
||||
}
|
||||
|
||||
error:
|
||||
if (dom != NULL)
|
||||
virDomainFree(dom);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int id = 0;
|
||||
|
||||
/* NULL means connect to local Xen hypervisor */
|
||||
conn = virConnectOpenReadOnly(NULL);
|
||||
if (conn == NULL) {
|
||||
fprintf(stderr, "Failed to connect to hypervisor\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (argc > 1) {
|
||||
id = atoi(argv[1]);
|
||||
}
|
||||
if (id == 0) {
|
||||
int i, j, ids[10];
|
||||
i = virConnectListDomains(conn, &ids[0], 10);
|
||||
if (i < 0) {
|
||||
fprintf(stderr, "Failed to list the domains\n");
|
||||
goto error;
|
||||
}
|
||||
for (j = 0;j < i;j++) {
|
||||
if (ids[j] != 0) {
|
||||
id = ids[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (id == 0) {
|
||||
fprintf(stderr, "Failed find a running guest domain\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
SuspendAndResumeDomain(id);
|
||||
|
||||
error:
|
||||
if (conn != NULL)
|
||||
virConnectClose(conn);
|
||||
return(0);
|
||||
}
|
||||
178
docs/format.html
Normal file
178
docs/format.html
Normal file
@@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>XML Format</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">XML Format</h1><p>This section describes the XML format used to represent domains, there are
|
||||
variations on the format based on the kind of domains run and the options
|
||||
used to launch them:</p><p><a href="#Normal1">Normal paravirtualized Xen domains</a></p><p><a href="#Fully1">Fully virtualized Xen domains</a></p><p>The formats try as much as possible to follow the same structure and reuse
|
||||
elements and attributes where it makes sense.</p><h3 id="Normal"><a name="Normal1" id="Normal1">Normal paravirtualized Xen
|
||||
guests</a>:</h3><p>The library use an XML format to describe domains, as input to <a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux()</a>
|
||||
and as the output of <a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc()</a>,
|
||||
the following is an example of the format as returned by the shell command
|
||||
<code>virsh xmldump fc4</code> , where fc4 was one of the running domains:</p><pre><domain type='xen' <span style="color: #0071FF; background-color: #FFFFFF">id='18'</span>>
|
||||
<name>fc4</name>
|
||||
<span style="color: #00B200; background-color: #FFFFFF"><os>
|
||||
<type>linux</type>
|
||||
<kernel>/boot/vmlinuz-2.6.15-1.43_FC5guest</kernel>
|
||||
<initrd>/boot/initrd-2.6.15-1.43_FC5guest.img</initrd>
|
||||
<root>/dev/sda1</root>
|
||||
<cmdline> ro selinux=0 3</cmdline>
|
||||
</os></span>
|
||||
<memory>131072</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<devices>
|
||||
<span style="color: #FF0080; background-color: #FFFFFF"><disk type='file'>
|
||||
<source file='/u/fc4.img'/>
|
||||
<target dev='sda1'/>
|
||||
</disk></span>
|
||||
<span style="color: #0000FF; background-color: #FFFFFF"><interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='</span><span style="color: #0000FF; background-color: #FFFFFF"></span><span style="color: #0000FF; background-color: #FFFFFF">aa:00:00:00:00:11'/>
|
||||
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||
</interface></span>
|
||||
<span style="color: #FF8000; background-color: #FFFFFF"><console tty='/dev/pts/5'/></span>
|
||||
</devices>
|
||||
</domain></pre><p>The root element must be called <code>domain</code> with no namespace, the
|
||||
<code>type</code> attribute indicates the kind of hypervisor used, 'xen' is
|
||||
the default value. The <code>id</code> attribute gives the domain id at
|
||||
runtime (not however that this may change, for example if the domain is saved
|
||||
to disk and restored). The domain has a few children whose order is not
|
||||
significant:</p><ul><li>name: the domain name, preferably ASCII based</li>
|
||||
<li>memory: the maximum memory allocated to the domain in kilobytes</li>
|
||||
<li>vcpu: the number of virtual cpu configured for the domain</li>
|
||||
<li>os: a block describing the Operating System, its content will be
|
||||
dependant on the OS type
|
||||
<ul><li>type: indicate the OS type, always linux at this point</li>
|
||||
<li>kernel: path to the kernel on the Domain 0 filesystem</li>
|
||||
<li>initrd: an optional path for the init ramdisk on the Domain 0
|
||||
filesystem</li>
|
||||
<li>cmdline: optional command line to the kernel</li>
|
||||
<li>root: the root filesystem from the guest viewpoint, it may be
|
||||
passed as part of the cmdline content too</li>
|
||||
</ul></li>
|
||||
<li>devices: a list of <code>disk</code>, <code>interface</code> and
|
||||
<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
|
||||
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 type attribute either 'file' or 'block' corresponding to the 2
|
||||
options availble at the Xen layer. It has two mandatory children, and one
|
||||
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
|
||||
name ('hda5' or '/dev/hda5')</li>
|
||||
<li>target indicates in a dev attribute the device where it is mapped in
|
||||
the guest</li>
|
||||
<li>readonly an optional empty element indicating the device is
|
||||
read-only</li>
|
||||
</ul><p>An <code>interface</code> element describes a network device mapped on the
|
||||
guest, it also has a type whose value is currently 'bridge', it also have a
|
||||
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>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>target: and optional target indicating the device name.</li>
|
||||
</ul><p>A <code>console</code> element describes a serial console connection to
|
||||
the guest. It has no children, and a single attribute <code>tty</code> which
|
||||
provides the path to the Pseudo TTY on which the guest console can be
|
||||
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
|
||||
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>
|
||||
<li>restart: A new domain is started in place of the old one with the same
|
||||
configuration parameters</li>
|
||||
<li>preserve: The domain will remain in memory until it is destroyed
|
||||
manually, it won't be running but allows for post-mortem debugging</li>
|
||||
<li>rename-restart: a variant of the previous one but where the old domain
|
||||
is renamed before being saved to allow a restart</li>
|
||||
</ul><p>The following could be used for a Xen production system:</p><pre><domain>
|
||||
...
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_crash>rename-restart</on_crash>
|
||||
...
|
||||
</domain></pre><p>While the format may be extended in various ways as support for more
|
||||
hypervisor types and features are added, it is expected that this core subset
|
||||
will remain functional in spite of the evolution of the library.</p><h3 id="Fully"><a name="Fully1" id="Fully1">Fully virtualized guests</a>
|
||||
(added in 0.1.3):</h3><p>Here is an example of a domain description used to start a fully
|
||||
virtualized (a.k.a. HVM) Xen domain. This requires hardware virtualization
|
||||
support at the processor level but allows to run unmodified operating
|
||||
systems:</p><pre><domain type='xen' id='3'>
|
||||
<name>fv0</name>
|
||||
<uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
|
||||
<os>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><type>hvm</type></span>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><loader>/usr/lib/xen/boot/hvmloader</loader></span>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><boot dev='hd'/></span>
|
||||
</os>
|
||||
<memory>524288</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<features>
|
||||
<span style="color: #E50000; background-color: #FFFFFF"><pae/>
|
||||
<acpi/>
|
||||
<apic/></span>
|
||||
</features>
|
||||
<devices>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><emulator>/usr/lib/xen/bin/qemu-dm</emulator></span>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<script path='vif-bridge'/>
|
||||
</interface>
|
||||
<disk type='file'>
|
||||
<source file='/root/fv0'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='hda'</span>/>
|
||||
</disk>
|
||||
<disk type='file' <span style="color: #0000E5; background-color: #FFFFFF">device='cdrom'</span>>
|
||||
<source file='/root/fc5-x86_64-boot.iso'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='hdc'</span>/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<disk type='file' <span style="color: #0000E5; background-color: #FFFFFF">device='floppy'</span>>
|
||||
<source file='/root/fd.img'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='fda'</span>/>
|
||||
</disk>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><graphics type='vnc' port='5904'/></span>
|
||||
</devices>
|
||||
</domain></pre><p>There is a few things to notice specifically for HVM domains:</p><ul><li>the optional <code><features></code> block is used to enable
|
||||
certain guest CPU / system features. For HVM guests the following
|
||||
features are defined:
|
||||
<ul><li><code>pae</code> - enable PAE memory addressing</li>
|
||||
<li><code>apic</code> - enable IO APIC</li>
|
||||
<li><code>acpi</code> - enable ACPI bios</li>
|
||||
</ul></li>
|
||||
<li>the <code><os></code> block description is very different, first
|
||||
it indicates that the type is 'hvm' for hardware virtualization, then
|
||||
instead of a kernel, boot and command line arguments, it points to an os
|
||||
boot loader which will extract the boot informations from the boot device
|
||||
specified in a separate boot element. The <code>dev</code> attribute on
|
||||
the <code>boot</code> tag can be one of:
|
||||
<ul><li><code>fd</code> - boot from first floppy device</li>
|
||||
<li><code>hd</code> - boot from first harddisk device</li>
|
||||
<li><code>cdrom</code> - boot from first cdrom device</li>
|
||||
</ul></li>
|
||||
<li>the <code><devices></code> section includes an emulator entry
|
||||
pointing to an additional program in charge of emulating the devices</li>
|
||||
<li>the disk entry indicates in the dev target section that the emulation
|
||||
for the drive is the first IDE disk device hda. The list of device names
|
||||
supported is dependant on the Hypervisor, but for Xen it can be any IDE
|
||||
device <code>hda</code>-<code>hdd</code>, or a floppy device
|
||||
<code>fda</code>, <code>fdb</code>. The <code><disk></code> element
|
||||
also supports a 'device' attribute to indicate what kinda of hardware to
|
||||
emulate. The following values are supported:
|
||||
<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>cdrom</code> - a CDROM device</li>
|
||||
</ul>
|
||||
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 any IDE channel.</li>
|
||||
<li>the <code><devices></code> section also include at least one
|
||||
entry for the graphic device used to render the os. Currently there is
|
||||
just 2 types possible 'vnc' or 'sdl'. If the type is 'vnc', then an
|
||||
additional <code>port</code> attribute will be present indicating the TCP
|
||||
port on which the VNC server is accepting client connections.</li>
|
||||
</ul><p>It is likely that the HVM description gets additional optional elements
|
||||
and attributes as the support for fully virtualized domain expands,
|
||||
especially for the variety of devices emulated and the graphic support
|
||||
options offered.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Reference Manual for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvirt</h1><h2>Table of Contents</h2><ul><li><a href="libvirt-libvirt.html">libvirt</a>: core interfaces for the libvirt library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a style="font-weight:bold" href="../html/index.html">API Menu</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<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>Reference Manual for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvirt</h1><h2>Table of Contents</h2><ul><li><a href="libvirt-libvirt.html">libvirt</a>: core interfaces for the libvirt library</li><li><a href="libvirt-virterror.html">virterror</a>: error handling interfaces for the libvirt library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Reference Manual for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvirt</h1><h2>Table of Contents</h2><ul><li><a href="libvirt-libvirt.html">libvirt</a>: core interfaces for the libvirt library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a style="font-weight:bold" href="../html/index.html">API Menu</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
<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>Reference Manual for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvirt</h1><h2>Table of Contents</h2><ul><li><a href="libvirt-libvirt.html">libvirt</a>: core interfaces for the libvirt library</li><li><a href="libvirt-virterror.html">virterror</a>: error handling interfaces for the libvirt library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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="../libvir.css" /><link rel="SHORTCUT ICON" href="/32favicon.png" /><title>Reference Manual for libvir</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvir</h1><h2>Table of Contents</h2><ul><li><a href="libvir-libvir.html">libvir</a>: core interfaces for the libvir library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a style="font-weight:bold" href="../html/index.html">API Menu</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -1,141 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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="../libvir.css" /><link rel="SHORTCUT ICON" href="/32favicon.png" /><title>Module libvir from libvir</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Module libvir from libvir</h1><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The virtualization API</a></th></tr></table><p>Provides the interfaces of the libvir library to handle Xen domains from a process running in domain 0 </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a></pre><pre class="programlisting">Structure <a href="#virConnect">virConnect</a><br />struct _virConnect
|
||||
The content of this structure is not made public by the API.
|
||||
</pre><pre class="programlisting">Typedef <a href="libvir-libvir.html#virConnect">virConnect</a> * <a name="virConnectPtr" id="virConnectPtr">virConnectPtr</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDeviceMode">virDeviceMode</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomain">virDomain</a><br />struct _virDomain
|
||||
The content of this structure is not made public by the API.
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainCreateFlags">virDomainCreateFlags</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomainInfo">virDomainInfo</a><br />struct _virDomainInfo
|
||||
</pre><pre class="programlisting">Typedef <a href="libvir-libvir.html#virDomainInfo">virDomainInfo</a> * <a name="virDomainInfoPtr" id="virDomainInfoPtr">virDomainInfoPtr</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomainKernel">virDomainKernel</a><br />struct _virDomainKernel
|
||||
</pre><pre class="programlisting">Typedef <a href="libvir-libvir.html#virDomainKernel">virDomainKernel</a> * <a name="virDomainKernelPtr" id="virDomainKernelPtr">virDomainKernelPtr</a>
|
||||
</pre><pre class="programlisting">Typedef <a href="libvir-libvir.html#virDomain">virDomain</a> * <a name="virDomainPtr" id="virDomainPtr">virDomainPtr</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainRestart">virDomainRestart</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainState">virDomainState</a>
|
||||
</pre><pre class="programlisting">int <a href="#virConnectClose">virConnectClose</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">const char * <a href="#virConnectGetType">virConnectGetType</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectGetVersion">virConnectGetVersion</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long * hvVer)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectListDomains">virConnectListDomains</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> int * ids, <br /> int maxids)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectNumOfDomains">virConnectNumOfDomains</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting"><a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpen">virConnectOpen</a> (const char * name)</pre>
|
||||
<pre class="programlisting"><a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpenReadOnly">virConnectOpenReadOnly</a> (const char * name)</pre>
|
||||
<pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainCreateLinux">virDomainCreateLinux</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * kernel_path, <br /> const char * initrd_path, <br /> const char * cmdline, <br /> unsigned long memory, <br /> unsigned int flags)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainDestroy">virDomainDestroy</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainFree">virDomainFree</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">unsigned int <a href="#virDomainGetID">virDomainGetID</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainGetInfo">virDomainGetInfo</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvir-libvir.html#virDomainInfoPtr">virDomainInfoPtr</a> info)</pre>
|
||||
<pre class="programlisting">unsigned long <a href="#virDomainGetMaxMemory">virDomainGetMaxMemory</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">char * <a href="#virDomainGetOSType">virDomainGetOSType</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">char * <a href="#virDomainGetXMLDesc">virDomainGetXMLDesc</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)</pre>
|
||||
<pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByID">virDomainLookupByID</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> int id)</pre>
|
||||
<pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByName">virDomainLookupByName</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * name)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainRestore">virDomainRestore</a> (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * from)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainResume">virDomainResume</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSave">virDomainSave</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> const char * to)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSetMaxMemory">virDomainSetMaxMemory</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainShutdown">virDomainShutdown</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSuspend">virDomainSuspend</a> (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virGetVersion">virGetVersion</a> (unsigned long * libVer, <br /> const char * type, <br /> unsigned long * typeVer)</pre>
|
||||
<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="virConnect" id="virConnect">Structure virConnect</a></h3><pre class="programlisting">Structure virConnect<br />struct _virConnect {
|
||||
The content of this structure is not made public by the API.
|
||||
}</pre>
|
||||
a virConnectPtr is pointer to a virConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.
|
||||
<h3>Enum <a name="virDeviceMode" id="virDeviceMode">virDeviceMode</a></h3><pre class="programlisting">Enum virDeviceMode {
|
||||
<a name="VIR_DEVICE_DEFAULT" id="VIR_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a> = 0 : Default mode
|
||||
<a name="VIR_DEVICE_RO" id="VIR_DEVICE_RO">VIR_DEVICE_RO</a> = 1 : Access read-only
|
||||
<a name="VIR_DEVICE_RW" id="VIR_DEVICE_RW">VIR_DEVICE_RW</a> = 2 : Access read-write
|
||||
<a name="VIR_DEVICE_RW_FORCE" id="VIR_DEVICE_RW_FORCE">VIR_DEVICE_RW_FORCE</a> = 3 : Forced read-write even if already used
|
||||
}
|
||||
</pre><h3><a name="virDomain" id="virDomain">Structure virDomain</a></h3><pre class="programlisting">Structure virDomain<br />struct _virDomain {
|
||||
The content of this structure is not made public by the API.
|
||||
}</pre><h3>Enum <a name="virDomainCreateFlags" id="virDomainCreateFlags">virDomainCreateFlags</a></h3><pre class="programlisting">Enum virDomainCreateFlags {
|
||||
<a name="VIR_DOMAIN_NONE" id="VIR_DOMAIN_NONE">VIR_DOMAIN_NONE</a> = 0
|
||||
}
|
||||
</pre><h3><a name="virDomainInfo" id="virDomainInfo">Structure virDomainInfo</a></h3><pre class="programlisting">Structure virDomainInfo<br />struct _virDomainInfo {
|
||||
unsigned char state : the running state, one of virDomainFlag
|
||||
unsigned long maxMem : the maximum memory in KBytes allowed
|
||||
unsigned long memory : the memory in KBytes used by the domain
|
||||
unsigned short nrVirtCpu : * Informations below are only available
|
||||
unsigned long long cpuTime : * TODO: * - check what can be extracted
|
||||
}</pre>
|
||||
a virDomainInfoPtr is a pointer to a virDomainInfo structure.
|
||||
<h3><a name="virDomainKernel" id="virDomainKernel">Structure virDomainKernel</a></h3><pre class="programlisting">Structure virDomainKernel<br />struct _virDomainKernel {
|
||||
const char * kernel : filename pointing to the kernel image
|
||||
const char * ramdisk : an optional init ramdisk
|
||||
const char * root : an optional root block device
|
||||
const char * extra : optional kernel command line parameters
|
||||
}</pre>
|
||||
a virDomainKernelPtr is a pointer to a virDomainKernel structure.
|
||||
|
||||
a virDomainPtr is pointer to a virDomain private structure, this is the type used to reference a Xen domain in the API.
|
||||
<h3>Enum <a name="virDomainRestart" id="virDomainRestart">virDomainRestart</a></h3><pre class="programlisting">Enum virDomainRestart {
|
||||
<a name="VIR_DOMAIN_DESTROY" id="VIR_DOMAIN_DESTROY">VIR_DOMAIN_DESTROY</a> = 1 : destroy the domain
|
||||
<a name="VIR_DOMAIN_RESTART" id="VIR_DOMAIN_RESTART">VIR_DOMAIN_RESTART</a> = 2 : restart the domain
|
||||
<a name="VIR_DOMAIN_PRESERVE" id="VIR_DOMAIN_PRESERVE">VIR_DOMAIN_PRESERVE</a> = 3 : keep as is, need manual destroy, for debug
|
||||
<a name="VIR_DOMAIN_RENAME_RESTART" id="VIR_DOMAIN_RENAME_RESTART">VIR_DOMAIN_RENAME_RESTART</a> = 4 : restart under an new unique name
|
||||
}
|
||||
</pre><h3>Enum <a name="virDomainState" id="virDomainState">virDomainState</a></h3><pre class="programlisting">Enum virDomainState {
|
||||
<a name="VIR_DOMAIN_NOSTATE" id="VIR_DOMAIN_NOSTATE">VIR_DOMAIN_NOSTATE</a> = 0 : no state
|
||||
<a name="VIR_DOMAIN_RUNNING" id="VIR_DOMAIN_RUNNING">VIR_DOMAIN_RUNNING</a> = 1 : the domain is running
|
||||
<a name="VIR_DOMAIN_BLOCKED" id="VIR_DOMAIN_BLOCKED">VIR_DOMAIN_BLOCKED</a> = 2 : the domain is blocked on resource
|
||||
<a name="VIR_DOMAIN_PAUSED" id="VIR_DOMAIN_PAUSED">VIR_DOMAIN_PAUSED</a> = 3 : the domain is paused by user
|
||||
<a name="VIR_DOMAIN_SHUTDOWN" id="VIR_DOMAIN_SHUTDOWN">VIR_DOMAIN_SHUTDOWN</a> = 4 : the domain is being shut down
|
||||
<a name="VIR_DOMAIN_SHUTOFF" id="VIR_DOMAIN_SHUTOFF">VIR_DOMAIN_SHUTOFF</a> = 5 : the domain is shut off
|
||||
<a name="VIR_DOMAIN_CRASHED" id="VIR_DOMAIN_CRASHED">VIR_DOMAIN_CRASHED</a> = 6 : the domain is crashed
|
||||
}
|
||||
</pre><h3><a name="virConnectClose" id="virConnectClose"></a>Function: virConnectClose</h3><pre class="programlisting">int virConnectClose (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virConnectGetType" id="virConnectGetType"></a>Function: virConnectGetType</h3><pre class="programlisting">const char * virConnectGetType (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>Get the name of the Hypervisor software used.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a static zero terminated string otherwise.</td></tr></tbody></table></div><h3><a name="virConnectGetVersion" id="virConnectGetVersion"></a>Function: virConnectGetVersion</h3><pre class="programlisting">int virConnectGetVersion (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long * hvVer)<br />
|
||||
</pre><p>Get the version level of the Hypervisor running. This may work only with hypervisor call, i.e. with priviledged access to the hypervisor, not with a Read-Only 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><tr><td><span class="term"><i><tt>hvVer</tt></i>:</span></td><td>return value for the version of the running hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise. if the version can't be extracted by lack of capacities returns 0 and @hvVer is 0, otherwise @hvVer value is major * 1,000,000 + minor * 1,000 + release</td></tr></tbody></table></div><h3><a name="virConnectListDomains" id="virConnectListDomains"></a>Function: virConnectListDomains</h3><pre class="programlisting">int virConnectListDomains (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> int * ids, <br /> int maxids)<br />
|
||||
</pre><p>Collect the list of active domains, and store their ID in @maxids</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDomains" id="virConnectNumOfDomains"></a>Function: virConnectNumOfDomains</h3><pre class="programlisting">int virConnectNumOfDomains (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>Provides the number of active domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectOpen" id="virConnectOpen"></a>Function: virConnectOpen</h3><pre class="programlisting"><a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> virConnectOpen (const char * name)<br />
|
||||
</pre><p>This function should be called first to get a connection to the Hypervisor and xen store</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div><h3><a name="virConnectOpenReadOnly" id="virConnectOpenReadOnly"></a>Function: virConnectOpenReadOnly</h3><pre class="programlisting"><a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br />
|
||||
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div><h3><a name="virDomainCreateLinux" id="virDomainCreateLinux"></a>Function: virDomainCreateLinux</h3><pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> virDomainCreateLinux (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * kernel_path, <br /> const char * initrd_path, <br /> const char * cmdline, <br /> unsigned long memory, <br /> unsigned int flags)<br />
|
||||
</pre><p>Launch a new Linux guest domain, unimplemented yet, API to be defined. This would function requires priviledged access to the hypervisor.</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>kernel_path</tt></i>:</span></td><td>the file path to the kernel image</td></tr><tr><td><span class="term"><i><tt>initrd_path</tt></i>:</span></td><td>an optional file path to an initrd</td></tr><tr><td><span class="term"><i><tt>cmdline</tt></i>:</span></td><td>optional command line parameters for the kernel</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>an optional set of virDomainFlags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainDestroy" id="virDomainDestroy"></a>Function: virDomainDestroy</h3><pre class="programlisting">int virDomainDestroy (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainFree" id="virDomainFree"></a>Function: virDomainFree</h3><pre class="programlisting">int virDomainFree (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Free the domain object. The running instance is kept alive. The data structure is freed and should not be used thereafter.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetID" id="virDomainGetID"></a>Function: virDomainGetID</h3><pre class="programlisting">unsigned int virDomainGetID (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the hypervisor ID number for the domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the domain ID number or (unsigned int) -1 in case of error</td></tr></tbody></table></div><h3><a name="virDomainGetInfo" id="virDomainGetInfo"></a>Function: virDomainGetInfo</h3><pre class="programlisting">int virDomainGetInfo (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvir-libvir.html#virDomainInfoPtr">virDomainInfoPtr</a> info)<br />
|
||||
</pre><p>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the informations can be extracted.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvir-libvir.html#virDomainInfo">virDomainInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetMaxMemory" id="virDomainGetMaxMemory"></a>Function: virDomainGetMaxMemory</h3><pre class="programlisting">unsigned long virDomainGetMaxMemory (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Retrieve the maximum amount of physical memory allocated to a domain. If domain is NULL, then this get the amount of memory reserved to Domain0 i.e. the domain where the application runs.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the memory size in kilobytes or 0 in case of error.</td></tr></tbody></table></div><h3><a name="virDomainGetName" id="virDomainGetName"></a>Function: virDomainGetName</h3><pre class="programlisting">const char * virDomainGetName (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the public name for that domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the domain object.</td></tr></tbody></table></div><h3><a name="virDomainGetOSType" id="virDomainGetOSType"></a>Function: virDomainGetOSType</h3><pre class="programlisting">char * virDomainGetOSType (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the type of domain operation system.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL in case of error</td></tr></tbody></table></div><h3><a name="virDomainGetXMLDesc" id="virDomainGetXMLDesc"></a>Function: virDomainGetXMLDesc</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)<br />
|
||||
</pre><p>Provide an XML description of the domain. NOTE: this API is subject to changes.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div><h3><a name="virDomainLookupByID" id="virDomainLookupByID"></a>Function: virDomainLookupByID</h3><pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> virDomainLookupByID (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> int id)<br />
|
||||
</pre><p>Try to find a domain based on the hypervisor ID number</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>id</tt></i>:</span></td><td>the domain ID number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainLookupByName" id="virDomainLookupByName"></a>Function: virDomainLookupByName</h3><pre class="programlisting"><a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> virDomainLookupByName (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * name)<br />
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its name.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainRestore" id="virDomainRestore"></a>Function: virDomainRestore</h3><pre class="programlisting">int virDomainRestore (<a href="libvir-libvir.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * from)<br />
|
||||
</pre><p>This method will restore a domain saved to disk by virDomainSave().</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>from</tt></i>:</span></td><td>path to the</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainResume" id="virDomainResume"></a>Function: virDomainResume</h3><pre class="programlisting">int virDomainResume (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSave" id="virDomainSave"></a>Function: virDomainSave</h3><pre class="programlisting">int virDomainSave (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> const char * to)<br />
|
||||
</pre><p>This method will suspend a domain and save its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use virDomainRestore() to restore a domain after saving.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>path for the output file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSetMaxMemory" id="virDomainSetMaxMemory"></a>Function: virDomainSetMaxMemory</h3><pre class="programlisting">int virDomainSetMaxMemory (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)<br />
|
||||
</pre><p>Dynamically change the maximum amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainShutdown" id="virDomainShutdown"></a>Function: virDomainShutdown</h3><pre class="programlisting">int virDomainShutdown (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Shutdown a domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSuspend" id="virDomainSuspend"></a>Function: virDomainSuspend</h3><pre class="programlisting">int virDomainSuspend (<a href="libvir-libvir.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use virDomainResume() to reactivate the domain. This function may requires priviledged access.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virGetVersion" id="virGetVersion"></a>Function: virGetVersion</h3><pre class="programlisting">int virGetVersion (unsigned long * libVer, <br /> const char * type, <br /> unsigned long * typeVer)<br />
|
||||
</pre><p>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not availble, an error code will be returned and @typeVer will be 0.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>libVer</tt></i>:</span></td><td>return value for the library version (OUT)</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>hypervisor type</td></tr><tr><td><span class="term"><i><tt>typeVer</tt></i>:</span></td><td>return value for the version of the hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.</td></tr></tbody></table></div></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a style="font-weight:bold" href="../html/index.html">API Menu</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
3
docs/html/libvirt-lib.html
Normal file
3
docs/html/libvirt-lib.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Reference Manual for libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Reference Manual for libvirt</h1><h2>Table of Contents</h2><ul><li><a href="libvirt-libvirt.html">libvirt</a>: core interfaces for the libvirt library</li><li><a href="libvirt-virterror.html">virterror</a>: error handling interfaces for the libvirt library</li></ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
219
docs/html/libvirt-libvirt.html
Normal file
219
docs/html/libvirt-libvirt.html
Normal file
@@ -0,0 +1,219 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Module libvirt from libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Module libvirt from libvirt</h1><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The virtualization API</a></th><th align="right"><a href="libvirt-virterror.html">virterror</a></th><td><a accesskey="n" href="libvirt-virterror.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Provides the interfaces of the libvirt library to handle Xen domains from a process running in domain 0 </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a></pre><pre class="programlisting">#define <a href="#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a></pre><pre class="programlisting">#define <a href="#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a></pre><pre class="programlisting">#define <a href="#VIR_CPU_USABLE">VIR_CPU_USABLE</a></pre><pre class="programlisting">#define <a href="#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a></pre><pre class="programlisting">#define <a href="#VIR_NODEINFO_MAXCPUS">VIR_NODEINFO_MAXCPUS</a></pre><pre class="programlisting">#define <a href="#VIR_UNUSE_CPU">VIR_UNUSE_CPU</a></pre><pre class="programlisting">#define <a href="#VIR_USE_CPU">VIR_USE_CPU</a></pre><pre class="programlisting">Structure <a href="#virConnect">virConnect</a><br />struct _virConnect
|
||||
The content of this structure is not made public by the API.
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virConnect">virConnect</a> * <a name="virConnectPtr" id="virConnectPtr">virConnectPtr</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDeviceMode">virDeviceMode</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomain">virDomain</a><br />struct _virDomain
|
||||
The content of this structure is not made public by the API.
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainCreateFlags">virDomainCreateFlags</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomainInfo">virDomainInfo</a><br />struct _virDomainInfo
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> * <a name="virDomainInfoPtr" id="virDomainInfoPtr">virDomainInfoPtr</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virDomainKernel">virDomainKernel</a><br />struct _virDomainKernel
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virDomainKernel">virDomainKernel</a> * <a name="virDomainKernelPtr" id="virDomainKernelPtr">virDomainKernelPtr</a>
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virDomain">virDomain</a> * <a name="virDomainPtr" id="virDomainPtr">virDomainPtr</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainRestart">virDomainRestart</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virDomainState">virDomainState</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virNodeInfo">virNodeInfo</a><br />struct _virNodeInfo
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> * <a name="virNodeInfoPtr" id="virNodeInfoPtr">virNodeInfoPtr</a>
|
||||
</pre><pre class="programlisting">Structure <a href="#virVcpuInfo">virVcpuInfo</a><br />struct _virVcpuInfo
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> * <a name="virVcpuInfoPtr" id="virVcpuInfoPtr">virVcpuInfoPtr</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virVcpuState">virVcpuState</a>
|
||||
</pre><pre class="programlisting">int <a href="#virConnectClose">virConnectClose</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">const char * <a href="#virConnectGetType">virConnectGetType</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectGetVersion">virConnectGetVersion</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long * hvVer)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectListDefinedDomains">virConnectListDefinedDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char ** names, <br /> int maxnames)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectListDomains">virConnectListDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> int * ids, <br /> int maxids)</pre>
|
||||
<pre class="programlisting">int <a href="#virConnectNumOfDomains">virConnectNumOfDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpen">virConnectOpen</a> (const char * name)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpenReadOnly">virConnectOpenReadOnly</a> (const char * name)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainCreate">virDomainCreate</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainCreateLinux">virDomainCreateLinux</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xmlDesc, <br /> unsigned int flags)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainDefineXML">virDomainDefineXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xml)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainDestroy">virDomainDestroy</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainFree">virDomainFree</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">unsigned int <a href="#virDomainGetID">virDomainGetID</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainGetInfo">virDomainGetInfo</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info)</pre>
|
||||
<pre class="programlisting">unsigned long <a href="#virDomainGetMaxMemory">virDomainGetMaxMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">char * <a href="#virDomainGetOSType">virDomainGetOSType</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainGetUUID">virDomainGetUUID</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned char * uuid)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainGetUUIDString">virDomainGetUUIDString</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> char * buf)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainGetVcpus">virDomainGetVcpus</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a> info, <br /> int maxinfo, <br /> unsigned char * cpumaps, <br /> int maplen)</pre>
|
||||
<pre class="programlisting">char * <a href="#virDomainGetXMLDesc">virDomainGetXMLDesc</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByID">virDomainLookupByID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> int id)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByName">virDomainLookupByName</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * name)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByUUID">virDomainLookupByUUID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const unsigned char * uuid)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByUUIDString">virDomainLookupByUUIDString</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * uuidstr)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainPinVcpu">virDomainPinVcpu</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int vcpu, <br /> unsigned char * cpumap, <br /> int maplen)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainReboot">virDomainReboot</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int flags)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainRestore">virDomainRestore</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * from)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainResume">virDomainResume</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSave">virDomainSave</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> const char * to)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSetMaxMemory">virDomainSetMaxMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSetMemory">virDomainSetMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSetVcpus">virDomainSetVcpus</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int nvcpus)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainShutdown">virDomainShutdown</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainSuspend">virDomainSuspend</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virDomainUndefine">virDomainUndefine</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)</pre>
|
||||
<pre class="programlisting">int <a href="#virGetVersion">virGetVersion</a> (unsigned long * libVer, <br /> const char * type, <br /> unsigned long * typeVer)</pre>
|
||||
<pre class="programlisting">int <a href="#virInitialize">virInitialize</a> (void)</pre>
|
||||
<pre class="programlisting">int <a href="#virNodeGetInfo">virNodeGetInfo</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)</pre>
|
||||
<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="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>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 & 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_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_UNUSE_CPU" id="VIR_UNUSE_CPU"></a>Macro: VIR_UNUSE_CPU</h3><pre>#define VIR_UNUSE_CPU</pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.</p>
|
||||
<h3><a name="VIR_USE_CPU" id="VIR_USE_CPU"></a>Macro: VIR_USE_CPU</h3><pre>#define VIR_USE_CPU</pre><p>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.</p>
|
||||
<h3><a name="virConnect" id="virConnect">Structure virConnect</a></h3><pre class="programlisting">Structure virConnect<br />struct _virConnect {
|
||||
The content of this structure is not made public by the API.
|
||||
}</pre>
|
||||
a virConnectPtr is pointer to a virConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.
|
||||
<h3>Enum <a name="virDeviceMode" id="virDeviceMode">virDeviceMode</a></h3><pre class="programlisting">Enum virDeviceMode {
|
||||
<a name="VIR_DEVICE_DEFAULT" id="VIR_DEVICE_DEFAULT">VIR_DEVICE_DEFAULT</a> = 0 : Default mode
|
||||
<a name="VIR_DEVICE_RO" id="VIR_DEVICE_RO">VIR_DEVICE_RO</a> = 1 : Access read-only
|
||||
<a name="VIR_DEVICE_RW" id="VIR_DEVICE_RW">VIR_DEVICE_RW</a> = 2 : Access read-write
|
||||
<a name="VIR_DEVICE_RW_FORCE" id="VIR_DEVICE_RW_FORCE">VIR_DEVICE_RW_FORCE</a> = 3 : Forced read-write even if already used
|
||||
}
|
||||
</pre><h3><a name="virDomain" id="virDomain">Structure virDomain</a></h3><pre class="programlisting">Structure virDomain<br />struct _virDomain {
|
||||
The content of this structure is not made public by the API.
|
||||
}</pre><h3>Enum <a name="virDomainCreateFlags" id="virDomainCreateFlags">virDomainCreateFlags</a></h3><pre class="programlisting">Enum virDomainCreateFlags {
|
||||
<a name="VIR_DOMAIN_NONE" id="VIR_DOMAIN_NONE">VIR_DOMAIN_NONE</a> = 0
|
||||
}
|
||||
</pre><h3><a name="virDomainInfo" id="virDomainInfo">Structure virDomainInfo</a></h3><pre class="programlisting">Structure virDomainInfo<br />struct _virDomainInfo {
|
||||
unsigned char state : the running state, one of virDomainFlag
|
||||
unsigned long maxMem : the maximum memory in KBytes allowed
|
||||
unsigned long memory : the memory in KBytes used by the domain
|
||||
unsigned short nrVirtCpu : the number of virtual CPUs for the doma
|
||||
unsigned long long cpuTime : the CPU time used in nanoseconds
|
||||
}</pre>
|
||||
a virDomainInfoPtr is a pointer to a virDomainInfo structure.
|
||||
<h3><a name="virDomainKernel" id="virDomainKernel">Structure virDomainKernel</a></h3><pre class="programlisting">Structure virDomainKernel<br />struct _virDomainKernel {
|
||||
const char * kernel : filename pointing to the kernel image
|
||||
const char * ramdisk : an optional init ramdisk
|
||||
const char * root : an optional root block device
|
||||
const char * extra : optional kernel command line parameters
|
||||
}</pre>
|
||||
a virDomainKernelPtr is a pointer to a virDomainKernel structure.
|
||||
|
||||
a virDomainPtr is pointer to a virDomain private structure, this is the type used to reference a Xen domain in the API.
|
||||
<h3>Enum <a name="virDomainRestart" id="virDomainRestart">virDomainRestart</a></h3><pre class="programlisting">Enum virDomainRestart {
|
||||
<a name="VIR_DOMAIN_DESTROY" id="VIR_DOMAIN_DESTROY">VIR_DOMAIN_DESTROY</a> = 1 : destroy the domain
|
||||
<a name="VIR_DOMAIN_RESTART" id="VIR_DOMAIN_RESTART">VIR_DOMAIN_RESTART</a> = 2 : restart the domain
|
||||
<a name="VIR_DOMAIN_PRESERVE" id="VIR_DOMAIN_PRESERVE">VIR_DOMAIN_PRESERVE</a> = 3 : keep as is, need manual destroy, for debug
|
||||
<a name="VIR_DOMAIN_RENAME_RESTART" id="VIR_DOMAIN_RENAME_RESTART">VIR_DOMAIN_RENAME_RESTART</a> = 4 : restart under an new unique name
|
||||
}
|
||||
</pre><h3>Enum <a name="virDomainState" id="virDomainState">virDomainState</a></h3><pre class="programlisting">Enum virDomainState {
|
||||
<a name="VIR_DOMAIN_NOSTATE" id="VIR_DOMAIN_NOSTATE">VIR_DOMAIN_NOSTATE</a> = 0 : no state
|
||||
<a name="VIR_DOMAIN_RUNNING" id="VIR_DOMAIN_RUNNING">VIR_DOMAIN_RUNNING</a> = 1 : the domain is running
|
||||
<a name="VIR_DOMAIN_BLOCKED" id="VIR_DOMAIN_BLOCKED">VIR_DOMAIN_BLOCKED</a> = 2 : the domain is blocked on resource
|
||||
<a name="VIR_DOMAIN_PAUSED" id="VIR_DOMAIN_PAUSED">VIR_DOMAIN_PAUSED</a> = 3 : the domain is paused by user
|
||||
<a name="VIR_DOMAIN_SHUTDOWN" id="VIR_DOMAIN_SHUTDOWN">VIR_DOMAIN_SHUTDOWN</a> = 4 : the domain is being shut down
|
||||
<a name="VIR_DOMAIN_SHUTOFF" id="VIR_DOMAIN_SHUTOFF">VIR_DOMAIN_SHUTOFF</a> = 5 : the domain is shut off
|
||||
<a name="VIR_DOMAIN_CRASHED" id="VIR_DOMAIN_CRASHED">VIR_DOMAIN_CRASHED</a> = 6 : the domain is crashed
|
||||
}
|
||||
</pre><h3><a name="virNodeInfo" id="virNodeInfo">Structure virNodeInfo</a></h3><pre class="programlisting">Structure virNodeInfo<br />struct _virNodeInfo {
|
||||
charmodel[32] model : string indicating the CPU model
|
||||
unsigned long memory : memory size in kilobytes
|
||||
unsigned int cpus : the number of active CPUs
|
||||
unsigned int mhz : expected CPU frequency
|
||||
unsigned int nodes : the number of NUMA cell, 1 for uniform
|
||||
unsigned int sockets : number of CPU socket per node
|
||||
unsigned int cores : number of core per socket
|
||||
unsigned int threads : number of threads per core
|
||||
}</pre>
|
||||
a virNodeInfoPtr is a pointer to a virNodeInfo structure.
|
||||
<h3><a name="virVcpuInfo" id="virVcpuInfo">Structure virVcpuInfo</a></h3><pre class="programlisting">Structure virVcpuInfo<br />struct _virVcpuInfo {
|
||||
unsigned int number : virtual CPU number
|
||||
int state : value from <a href="libvirt-libvirt.html#virVcpuState">virVcpuState</a>
|
||||
unsigned long long cpuTime : CPU time used, in nanoseconds
|
||||
int cpu : real CPU number, or -1 if offline
|
||||
}</pre><h3>Enum <a name="virVcpuState" id="virVcpuState">virVcpuState</a></h3><pre class="programlisting">Enum virVcpuState {
|
||||
<a name="VIR_VCPU_OFFLINE" id="VIR_VCPU_OFFLINE">VIR_VCPU_OFFLINE</a> = 0 : the virtual CPU is offline
|
||||
<a name="VIR_VCPU_RUNNING" id="VIR_VCPU_RUNNING">VIR_VCPU_RUNNING</a> = 1 : the virtual CPU is running
|
||||
<a name="VIR_VCPU_BLOCKED" id="VIR_VCPU_BLOCKED">VIR_VCPU_BLOCKED</a> = 2 : the virtual CPU is blocked on resource
|
||||
}
|
||||
</pre><h3><a name="virConnectClose" id="virConnectClose"></a>Function: virConnectClose</h3><pre class="programlisting">int virConnectClose (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virConnectGetType" id="virConnectGetType"></a>Function: virConnectGetType</h3><pre class="programlisting">const char * virConnectGetType (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>Get the name of the Hypervisor software used.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a static zero terminated string otherwise.</td></tr></tbody></table></div><h3><a name="virConnectGetVersion" id="virConnectGetVersion"></a>Function: virConnectGetVersion</h3><pre class="programlisting">int virConnectGetVersion (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long * hvVer)<br />
|
||||
</pre><p>Get the version level of the Hypervisor running. This may work only with hypervisor call, i.e. with priviledged access to the hypervisor, not with a Read-Only 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><tr><td><span class="term"><i><tt>hvVer</tt></i>:</span></td><td>return value for the version of the running hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise. if the version can't be extracted by lack of capacities returns 0 and @hvVer is 0, otherwise @hvVer value is major * 1,000,000 + minor * 1,000 + release</td></tr></tbody></table></div><h3><a name="virConnectListDefinedDomains" id="virConnectListDefinedDomains"></a>Function: virConnectListDefinedDomains</h3><pre class="programlisting">int virConnectListDefinedDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char ** names, <br /> int maxnames)<br />
|
||||
</pre><p>list the defined domains, stores the pointers to the names in @names</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>names</tt></i>:</span></td><td>pointer to an array to store the names</td></tr><tr><td><span class="term"><i><tt>maxnames</tt></i>:</span></td><td>size of the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of names provided in the array or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectListDomains" id="virConnectListDomains"></a>Function: virConnectListDomains</h3><pre class="programlisting">int virConnectListDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> int * ids, <br /> int maxids)<br />
|
||||
</pre><p>Collect the list of active domains, and store their ID in @maxids</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>ids</tt></i>:</span></td><td>array to collect the list of IDs of active domains</td></tr><tr><td><span class="term"><i><tt>maxids</tt></i>:</span></td><td>size of @ids</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectNumOfDomains" id="virConnectNumOfDomains"></a>Function: virConnectNumOfDomains</h3><pre class="programlisting">int virConnectNumOfDomains (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br />
|
||||
</pre><p>Provides the number of active domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of domain found or -1 in case of error</td></tr></tbody></table></div><h3><a name="virConnectOpen" id="virConnectOpen"></a>Function: virConnectOpen</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpen (const char * name)<br />
|
||||
</pre><p>This function should be called first to get a connection to the Hypervisor and xen store</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div><h3><a name="virConnectOpenReadOnly" id="virConnectOpenReadOnly"></a>Function: virConnectOpenReadOnly</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br />
|
||||
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>optional argument currently unused, pass NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error</td></tr></tbody></table></div><h3><a name="virDomainCreate" id="virDomainCreate"></a>Function: virDomainCreate</h3><pre class="programlisting">int virDomainCreate (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>launch a defined domain. If the call succeed the domain moves from the defined to the running domains pools.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virDomainCreateLinux" id="virDomainCreateLinux"></a>Function: virDomainCreateLinux</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainCreateLinux (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xmlDesc, <br /> unsigned int flags)<br />
|
||||
</pre><p>Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xmlDesc</tt></i>:</span></td><td>an XML description of the domain</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>an optional set of virDomainFlags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainDefineXML" id="virDomainDefineXML"></a>Function: virDomainDefineXML</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainDefineXML (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * xml)<br />
|
||||
</pre><p>define a domain, but does not start it</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>xml</tt></i>:</span></td><td>the XML description for the domain, preferably in UTF-8</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of error, a pointer to the domain otherwise</td></tr></tbody></table></div><h3><a name="virDomainDestroy" id="virDomainDestroy"></a>Function: virDomainDestroy</h3><pre class="programlisting">int virDomainDestroy (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainFree" id="virDomainFree"></a>Function: virDomainFree</h3><pre class="programlisting">int virDomainFree (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Free the domain object. The running instance is kept alive. The data structure is freed and should not be used thereafter.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetID" id="virDomainGetID"></a>Function: virDomainGetID</h3><pre class="programlisting">unsigned int virDomainGetID (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the hypervisor ID number for the domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the domain ID number or (unsigned int) -1 in case of error</td></tr></tbody></table></div><h3><a name="virDomainGetInfo" id="virDomainGetInfo"></a>Function: virDomainGetInfo</h3><pre class="programlisting">int virDomainGetInfo (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info)<br />
|
||||
</pre><p>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetMaxMemory" id="virDomainGetMaxMemory"></a>Function: virDomainGetMaxMemory</h3><pre class="programlisting">unsigned long virDomainGetMaxMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Retrieve the maximum amount of physical memory allocated to a domain. If domain is NULL, then this get the amount of memory reserved to Domain0 i.e. the domain where the application runs.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the memory size in kilobytes or 0 in case of error.</td></tr></tbody></table></div><h3><a name="virDomainGetName" id="virDomainGetName"></a>Function: virDomainGetName</h3><pre class="programlisting">const char * virDomainGetName (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the public name for that domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the domain object.</td></tr></tbody></table></div><h3><a name="virDomainGetOSType" id="virDomainGetOSType"></a>Function: virDomainGetOSType</h3><pre class="programlisting">char * virDomainGetOSType (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Get the type of domain operation system.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string or NULL in case of error, the string must be freed by the caller.</td></tr></tbody></table></div><h3><a name="virDomainGetUUID" id="virDomainGetUUID"></a>Function: virDomainGetUUID</h3><pre class="programlisting">int virDomainGetUUID (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned char * uuid)<br />
|
||||
</pre><p>Get the UUID for a domain</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>uuid</tt></i>:</span></td><td>pointer to a 16 bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div><h3><a name="virDomainGetUUIDString" id="virDomainGetUUIDString"></a>Function: virDomainGetUUIDString</h3><pre class="programlisting">int virDomainGetUUIDString (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> char * buf)<br />
|
||||
</pre><p>Get the UUID for a domain as string. For more information about UUID see RFC4122.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>pointer to a 37 bytes array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div><h3><a name="virDomainGetVcpus" id="virDomainGetVcpus"></a>Function: virDomainGetVcpus</h3><pre class="programlisting">int virDomainGetVcpus (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> <a href="libvirt-libvirt.html#virVcpuInfoPtr">virVcpuInfoPtr</a> info, <br /> int maxinfo, <br /> unsigned char * cpumaps, <br /> int maplen)<br />
|
||||
</pre><p>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is'nt NULL.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to an array of <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> structures (OUT)</td></tr><tr><td><span class="term"><i><tt>maxinfo</tt></i>:</span></td><td>number of structures in info array</td></tr><tr><td><span class="term"><i><tt>cpumaps</tt></i>:</span></td><td>pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of info filled in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainGetXMLDesc" id="virDomainGetXMLDesc"></a>Function: virDomainGetXMLDesc</h3><pre class="programlisting">char * virDomainGetXMLDesc (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> int flags)<br />
|
||||
</pre><p>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>and OR'ed set of extraction flags, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.</td></tr></tbody></table></div><h3><a name="virDomainLookupByID" id="virDomainLookupByID"></a>Function: virDomainLookupByID</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByID (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> int id)<br />
|
||||
</pre><p>Try to find a domain based on the hypervisor ID number</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>id</tt></i>:</span></td><td>the domain ID number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainLookupByName" id="virDomainLookupByName"></a>Function: virDomainLookupByName</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByName (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * name)<br />
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its name.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>name for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainLookupByUUID" id="virDomainLookupByUUID"></a>Function: virDomainLookupByUUID</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByUUID (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const unsigned char * uuid)<br />
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its UUID.</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>uuid</tt></i>:</span></td><td>the raw UUID for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainLookupByUUIDString" id="virDomainLookupByUUIDString"></a>Function: virDomainLookupByUUIDString</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> virDomainLookupByUUIDString (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * uuidstr)<br />
|
||||
</pre><p>Try to lookup a domain on the given hypervisor based on its UUID.</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>uuidstr</tt></i>:</span></td><td>the string UUID for the domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new domain object or NULL in case of failure</td></tr></tbody></table></div><h3><a name="virDomainPinVcpu" id="virDomainPinVcpu"></a>Function: virDomainPinVcpu</h3><pre class="programlisting">int virDomainPinVcpu (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int vcpu, <br /> unsigned char * cpumap, <br /> int maplen)<br />
|
||||
</pre><p>Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>vcpu</tt></i>:</span></td><td>virtual CPU number</td></tr><tr><td><span class="term"><i><tt>cpumap</tt></i>:</span></td><td>pointer to a bit map of real CPUs (in 8-bit bytes) (IN) Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.</td></tr><tr><td><span class="term"><i><tt>maplen</tt></i>:</span></td><td>number of bytes in cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...). If maplen < size, missing bytes are set to zero. If maplen > size, failure code is returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainReboot" id="virDomainReboot"></a>Function: virDomainReboot</h3><pre class="programlisting">int virDomainReboot (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int flags)<br />
|
||||
</pre><p>Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>extra flags for the reboot operation, not used yet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainRestore" id="virDomainRestore"></a>Function: virDomainRestore</h3><pre class="programlisting">int virDomainRestore (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * from)<br />
|
||||
</pre><p>This method will restore a domain saved to disk by virDomainSave().</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>from</tt></i>:</span></td><td>path to the</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainResume" id="virDomainResume"></a>Function: virDomainResume</h3><pre class="programlisting">int virDomainResume (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires priviledged access</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSave" id="virDomainSave"></a>Function: virDomainSave</h3><pre class="programlisting">int virDomainSave (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> const char * to)<br />
|
||||
</pre><p>This method will suspend a domain and save its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use virDomainRestore() to restore a domain after saving.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>path for the output file</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSetMaxMemory" id="virDomainSetMaxMemory"></a>Function: virDomainSetMaxMemory</h3><pre class="programlisting">int virDomainSetMaxMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)<br />
|
||||
</pre><p>Dynamically change the maximum amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSetMemory" id="virDomainSetMemory"></a>Function: virDomainSetMemory</h3><pre class="programlisting">int virDomainSetMemory (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned long memory)<br />
|
||||
</pre><p>Dynamically change the target amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function may requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object or NULL</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>the memory size in kilobytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSetVcpus" id="virDomainSetVcpus"></a>Function: virDomainSetVcpus</h3><pre class="programlisting">int virDomainSetVcpus (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br /> unsigned int nvcpus)<br />
|
||||
</pre><p>Dynamically change the number of virtual CPUs used by the domain. Note that this call may fail if the underlying virtualization hypervisor does not support it or if growing the number is arbitrary limited. This function requires priviledged access to the hypervisor.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to domain object, or NULL for Domain0</td></tr><tr><td><span class="term"><i><tt>nvcpus</tt></i>:</span></td><td>the new number of virtual CPUs for this domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainShutdown" id="virDomainShutdown"></a>Function: virDomainShutdown</h3><pre class="programlisting">int virDomainShutdown (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Shutdown a domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainSuspend" id="virDomainSuspend"></a>Function: virDomainSuspend</h3><pre class="programlisting">int virDomainSuspend (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use virDomainResume() to reactivate the domain. This function may requires priviledged access.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>a domain object</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="virDomainUndefine" id="virDomainUndefine"></a>Function: virDomainUndefine</h3><pre class="programlisting">int virDomainUndefine (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
|
||||
</pre><p>undefine a domain but does not stop it if it is running</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>domain</tt></i>:</span></td><td>pointer to a defined domain</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virGetVersion" id="virGetVersion"></a>Function: virGetVersion</h3><pre class="programlisting">int virGetVersion (unsigned long * libVer, <br /> const char * type, <br /> unsigned long * typeVer)<br />
|
||||
</pre><p>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not availble, an error code will be returned and @typeVer will be 0.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>libVer</tt></i>:</span></td><td>return value for the library version (OUT)</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the type of connection/driver looked at</td></tr><tr><td><span class="term"><i><tt>typeVer</tt></i>:</span></td><td>return value for the version of the hypervisor (OUT)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.</td></tr></tbody></table></div><h3><a name="virInitialize" id="virInitialize"></a>Function: virInitialize</h3><pre class="programlisting">int virInitialize (void)<br />
|
||||
</pre><p>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNodeGetInfo" id="virNodeGetInfo"></a>Function: virNodeGetInfo</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br />
|
||||
</pre><p>Extract hardware information about the node.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
105
docs/html/libvirt-virterror.html
Normal file
105
docs/html/libvirt-virterror.html
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Module virterror from libvirt</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Module virterror from libvirt</h1><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libvirt-libvirt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libvirt-libvirt.html">libvirt</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The virtualization API</a></th></tr></table><p>Provides the interfaces of the libvirt library to handle errors raised while using the library. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#virError">virError</a><br />struct _virError
|
||||
</pre><pre class="programlisting">Enum <a href="#virErrorDomain">virErrorDomain</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virErrorLevel">virErrorLevel</a>
|
||||
</pre><pre class="programlisting">Enum <a href="#virErrorNumber">virErrorNumber</a>
|
||||
</pre><pre class="programlisting">Typedef <a href="libvirt-virterror.html#virError">virError</a> * <a name="virErrorPtr" id="virErrorPtr">virErrorPtr</a>
|
||||
</pre><pre class="programlisting">int <a href="#virConnCopyLastError">virConnCopyLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to)</pre>
|
||||
<pre class="programlisting"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> <a href="#virConnGetLastError">virConnGetLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)</pre>
|
||||
<pre class="programlisting">void <a href="#virConnSetErrorFunc">virConnSetErrorFunc</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> void * userData, <br /> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler)</pre>
|
||||
<pre class="programlisting">int <a href="#virCopyLastError">virCopyLastError</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> to)</pre>
|
||||
<pre class="programlisting">void <a href="#virDefaultErrorFunc">virDefaultErrorFunc</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)</pre>
|
||||
<pre class="programlisting">Function type: <a href="#virErrorFunc">virErrorFunc</a>
|
||||
void <a href="#virErrorFunc">virErrorFunc</a> (void * userData, <br /> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> error)
|
||||
</pre>
|
||||
<pre class="programlisting"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> <a href="#virGetLastError">virGetLastError</a> (void)</pre>
|
||||
<pre class="programlisting">void <a href="#virResetError">virResetError</a> (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)</pre>
|
||||
<pre class="programlisting">void <a href="#virResetLastError">virResetLastError</a> (void)</pre>
|
||||
<pre class="programlisting">void <a href="#virSetErrorFunc">virSetErrorFunc</a> (void * userData, <br /> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler)</pre>
|
||||
<h2>Description</h2>
|
||||
<h3><a name="virError" id="virError">Structure virError</a></h3><pre class="programlisting">Structure virError<br />struct _virError {
|
||||
int code : The error code, a <a href="libvirt-virterror.html#virErrorNumber">virErrorNumber</a>
|
||||
int domain : What part of the library raised this er
|
||||
char * message : human-readable informative error messag
|
||||
<a href="libvirt-virterror.html#virErrorLevel">virErrorLevel</a> level : how consequent is the error
|
||||
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn : the connection if available
|
||||
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom : the domain if available
|
||||
char * str1 : extra string information
|
||||
char * str2 : extra string information
|
||||
char * str3 : extra string information
|
||||
int int1 : extra number information
|
||||
int int2 : extra number information
|
||||
}</pre><h3>Enum <a name="virErrorDomain" id="virErrorDomain">virErrorDomain</a></h3><pre class="programlisting">Enum virErrorDomain {
|
||||
<a name="VIR_FROM_NONE" id="VIR_FROM_NONE">VIR_FROM_NONE</a> = 0
|
||||
<a name="VIR_FROM_XEN" id="VIR_FROM_XEN">VIR_FROM_XEN</a> = 1 : Error at Xen hypervisor layer
|
||||
<a name="VIR_FROM_XEND" id="VIR_FROM_XEND">VIR_FROM_XEND</a> = 2 : Error at connection with xend daemon
|
||||
<a name="VIR_FROM_XENSTORE" id="VIR_FROM_XENSTORE">VIR_FROM_XENSTORE</a> = 3 : Error at connection with xen store
|
||||
<a name="VIR_FROM_SEXPR" id="VIR_FROM_SEXPR">VIR_FROM_SEXPR</a> = 4 : Error in the S-Epression code
|
||||
<a name="VIR_FROM_XML" id="VIR_FROM_XML">VIR_FROM_XML</a> = 5 : Error in the XML code
|
||||
<a name="VIR_FROM_DOM" id="VIR_FROM_DOM">VIR_FROM_DOM</a> = 6 : Error when operating on a domain
|
||||
<a name="VIR_FROM_RPC" id="VIR_FROM_RPC">VIR_FROM_RPC</a> = 7 : Error in the XML-RPC code
|
||||
<a name="VIR_FROM_PROXY" id="VIR_FROM_PROXY">VIR_FROM_PROXY</a> = 8 : Error in the proxy code
|
||||
}
|
||||
</pre><h3>Enum <a name="virErrorLevel" id="virErrorLevel">virErrorLevel</a></h3><pre class="programlisting">Enum virErrorLevel {
|
||||
<a name="VIR_ERR_NONE" id="VIR_ERR_NONE">VIR_ERR_NONE</a> = 0
|
||||
<a name="VIR_ERR_WARNING" id="VIR_ERR_WARNING">VIR_ERR_WARNING</a> = 1 : A simple warning
|
||||
<a name="VIR_ERR_ERROR" id="VIR_ERR_ERROR">VIR_ERR_ERROR</a> = 2 : An error
|
||||
}
|
||||
</pre><h3>Enum <a name="virErrorNumber" id="virErrorNumber">virErrorNumber</a></h3><pre class="programlisting">Enum virErrorNumber {
|
||||
<a name="VIR_ERR_OK" id="VIR_ERR_OK">VIR_ERR_OK</a> = 0
|
||||
<a name="VIR_ERR_INTERNAL_ERROR" id="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a> = 1 : internal error
|
||||
<a name="VIR_ERR_NO_MEMORY" id="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a> = 2 : memory allocation failure
|
||||
<a name="VIR_ERR_NO_SUPPORT" id="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a> = 3 : no support for this connection
|
||||
<a name="VIR_ERR_UNKNOWN_HOST" id="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a> = 4 : could not resolve hostname
|
||||
<a name="VIR_ERR_NO_CONNECT" id="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a> = 5 : can't connect to hypervisor
|
||||
<a name="VIR_ERR_INVALID_CONN" id="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a> = 6 : invalid connection object
|
||||
<a name="VIR_ERR_INVALID_DOMAIN" id="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a> = 7 : invalid domain object
|
||||
<a name="VIR_ERR_INVALID_ARG" id="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a> = 8 : invalid function argument
|
||||
<a name="VIR_ERR_OPERATION_FAILED" id="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a> = 9 : a command to hypervisor failed
|
||||
<a name="VIR_ERR_GET_FAILED" id="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a> = 10 : a HTTP GET command to failed
|
||||
<a name="VIR_ERR_POST_FAILED" id="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a> = 11 : a HTTP POST command to failed
|
||||
<a name="VIR_ERR_HTTP_ERROR" id="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a> = 12 : unexpected HTTP error code
|
||||
<a name="VIR_ERR_SEXPR_SERIAL" id="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a> = 13 : failure to serialize an S-Expr
|
||||
<a name="VIR_ERR_NO_XEN" id="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a> = 14 : could not open Xen hypervisor control
|
||||
<a name="VIR_ERR_XEN_CALL" id="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a> = 15 : failure doing an hypervisor call
|
||||
<a name="VIR_ERR_OS_TYPE" id="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a> = 16 : unknown OS type
|
||||
<a name="VIR_ERR_NO_KERNEL" id="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a> = 17 : missing kernel information
|
||||
<a name="VIR_ERR_NO_ROOT" id="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a> = 18 : missing root device information
|
||||
<a name="VIR_ERR_NO_SOURCE" id="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a> = 19 : missing source device information
|
||||
<a name="VIR_ERR_NO_TARGET" id="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a> = 20 : missing target device information
|
||||
<a name="VIR_ERR_NO_NAME" id="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a> = 21 : missing domain name information
|
||||
<a name="VIR_ERR_NO_OS" id="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a> = 22 : missing domain OS information
|
||||
<a name="VIR_ERR_NO_DEVICE" id="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a> = 23 : missing domain devices information
|
||||
<a name="VIR_ERR_NO_XENSTORE" id="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a> = 24 : could not open Xen Store control
|
||||
<a name="VIR_ERR_DRIVER_FULL" id="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a> = 25 : too many drivers registered
|
||||
<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_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><p>Copy the content of the last error caught on that connection One will need to free the result with virResetError()</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>target to receive the copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if no error was found and the error code otherwise and -1 in case of parameter error.</td></tr></tbody></table></div><h3><a name="virConnGetLastError" id="virConnGetLastError"></a>Function: 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>
|
||||
<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 occured.</td></tr></tbody></table></div><h3><a name="virConnResetLastError" id="virConnResetLastError"></a>Function: 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>
|
||||
<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><h3><a name="virConnSetErrorFunc" id="virConnSetErrorFunc"></a>Function: 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 />
|
||||
</pre><p>Set a connection error handling function, if @handler is NULL it will reset to default which is to pass error back to the global library handler.</p>
|
||||
<div 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><h3><a name="virCopyLastError" id="virCopyLastError"></a>Function: 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>
|
||||
<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><h3><a name="virDefaultErrorFunc" id="virDefaultErrorFunc"></a>Function: virDefaultErrorFunc</h3><pre class="programlisting">void virDefaultErrorFunc (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)<br />
|
||||
</pre><p>Default routine reporting an error to stderr.</p>
|
||||
<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><h3><a name="virErrorFunc" id="virErrorFunc"></a>Function type: virErrorFunc</h3><pre class="programlisting">Function type: virErrorFunc
|
||||
void virErrorFunc (void * userData, <br /> <a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> error)
|
||||
</pre><p>Signature of a function to use when there is an error raised by the library.</p><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><br />
|
||||
<h3><a name="virGetLastError" id="virGetLastError"></a>Function: 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>
|
||||
<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 occured.</td></tr></tbody></table></div><h3><a name="virResetError" id="virResetError"></a>Function: virResetError</h3><pre class="programlisting">void virResetError (<a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a> err)<br />
|
||||
</pre><p>Reset the error being pointed to</p>
|
||||
<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><h3><a name="virResetLastError" id="virResetLastError"></a>Function: virResetLastError</h3><pre class="programlisting">void virResetLastError (void)<br />
|
||||
</pre><p>Reset the last error caught at the library level.</p>
|
||||
<h3><a name="virSetErrorFunc" id="virSetErrorFunc"></a>Function: virSetErrorFunc</h3><pre class="programlisting">void virSetErrorFunc (void * userData, <br /> <a href="libvirt-virterror.html#virErrorFunc">virErrorFunc</a> handler)<br />
|
||||
</pre><p>Set a library global error handling function, if @handler is NULL, it will reset to default printing on stderr. The error raised there are those for which no handler at the connection level could caught.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><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></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -14,9 +14,9 @@
|
||||
<p class="p1"></p>
|
||||
</div>
|
||||
<div id="content">
|
||||
<h3>what is <span class="style1">libvir?</span></h3>
|
||||
<p>Libvir is a C toolkit to interract with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes). It is free software available
|
||||
<h3>what is <span class="style1">libvirt?</span></h3>
|
||||
<p>Libvirt is a C toolkit to interract with the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
@@ -41,11 +41,20 @@ mechanisms if needed.</p>
|
||||
<a href="intro.html">Introduction</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="architecture.html">libvir architecture</a>
|
||||
<a href="architecture.html">libvirt architecture</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="downloads.html">Downloads</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="format.html">XML Format</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="python.html">Binding for Python</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="errors.html">Handling of errors</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="FAQ.html">FAQ</a>
|
||||
</li>
|
||||
@@ -53,7 +62,10 @@ mechanisms if needed.</p>
|
||||
<a href="bugs.html">Reporting bugs and getting help</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="font-weight:bold" href="html/index.html">API Menu</a>
|
||||
<a href="html/index.html">API Menu</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="examples/index.html">C code examples</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="ChangeLog.html">Recent Changes</a>
|
||||
@@ -68,6 +80,12 @@ mechanisms if needed.</p>
|
||||
<li>
|
||||
<a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a>
|
||||
</li>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#
|
||||
# Then run the script in the doc subdir, it will create the symbols and
|
||||
# word tables and populate them with informations extracted from
|
||||
# the libvir-api.xml API description, and make then accessible read-only
|
||||
# the libvirt-api.xml API description, and make then accessible read-only
|
||||
# by nobody@loaclhost the user expected to be Apache's one
|
||||
#
|
||||
# On the Apache configuration, make sure you have php support enabled
|
||||
@@ -116,7 +116,7 @@ TABLES={
|
||||
#
|
||||
# The XML API description file to parse
|
||||
#
|
||||
API="libvir-api.xml"
|
||||
API="libvirt-api.xml"
|
||||
DB=None
|
||||
|
||||
#########################################################################
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Introduction</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Introduction</h1><p>Libvir is a C toolkit to interact with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes), but libvir won't try to provide
|
||||
<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>Introduction</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Introduction</h1><p>Libvirt is a C toolkit to interact with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes), but libvirt won't try to provide
|
||||
all possible interfaces for interacting with the virtualization features.</p><p>To avoid ambiguity about the terms used here here are the definitions for
|
||||
some of the specific concepts used in libvir documentation:</p><ul><li>a <strong>node</strong> is a single physical machine</li>
|
||||
some of the specific concepts used in libvirt documentation:</p><ul><li>a <strong>node</strong> is a single physical machine</li>
|
||||
<li>an <strong>hypervisor</strong> is a layer of software allowing to
|
||||
virtualize a node in a set of virtual machines with possibly different
|
||||
configurations than the node itself</li>
|
||||
<li>a <strong>domain</strong> is an instance of an operating system running
|
||||
on a virtualized machine provided by the hypervisor</li>
|
||||
</ul><p style="text-align: center"><img alt="Hypervisor and domains running on a node" src="node.gif" /></p><p>Now we can define the goal of libvir: to provide the lowest possible
|
||||
</ul><p style="text-align: center"><img alt="Hypervisor and domains running on a node" src="node.gif" /></p><p>Now we can define the goal of libvirt: to provide the lowest possible
|
||||
generic and stable layer to manage domains on a node.</p><p>This implies the following:</p><ul><li>the API should not be targetted to a single virtualization environment
|
||||
though Xen is the current default, which also means that some very
|
||||
specific capabilities which are not generic enough may not be provided as
|
||||
libvir APIs</li>
|
||||
libvirt APIs</li>
|
||||
<li>the API should allow to do efficiently and cleanly all the operations
|
||||
needed to manage domains on a node</li>
|
||||
<li>the API will not try to provide hight level multi-nodes management
|
||||
features like load balancing, though they could be implemented on top of
|
||||
libvir</li>
|
||||
<li>stability of the API is a big concern, libvir should isolate
|
||||
libvirt</li>
|
||||
<li>stability of the API is a big concern, libvirt should isolate
|
||||
applications from the frequent changes expected at the lower level of the
|
||||
virtualization framework</li>
|
||||
</ul><p>So libvir should be a building block for higher level management tools and
|
||||
for applications focusing on virtualization of a single node (the only
|
||||
</ul><p>So libvirt should be a building block for higher level management tools
|
||||
and for applications focusing on virtualization of a single node (the only
|
||||
exception being domain migration between node capabilities which may need to
|
||||
be added at the libvir level). Where possible libvir should be extendable to
|
||||
be able to provide the same API for remote nodes, however this is not the
|
||||
case at the moment, the code currently handle only local node accesses.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
be added at the libvirt level). Where possible libvirt should be extendable
|
||||
to be able to provide the same API for remote nodes, however this is not the
|
||||
case at the moment, the code currently handle only local node accesses.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
685
docs/libvir.html
685
docs/libvir.html
@@ -1,21 +1,21 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="">
|
||||
<title>Libvir the virtualization API</title>
|
||||
<title>Libvirt the virtualization API</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
<h1 align="center">Libvir the virtualization API</h1>
|
||||
<h1 align="center">Libvirt the virtualization API</h1>
|
||||
|
||||
<h1>Note: this is the flat content of the <a href="index.html">web
|
||||
site</a></h1>
|
||||
|
||||
<h1 style="text-align: center">libvir</h1>
|
||||
<h1 style="text-align: center">libvirt</h1>
|
||||
|
||||
<h3>what is <span class="style1">libvir?</span></h3>
|
||||
<h3>what is <span class="style1">libvirt?</span></h3>
|
||||
|
||||
<p>Libvir is a C toolkit to interract with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes). It is free software available
|
||||
<p>Libvirt is a C toolkit to interract with the virtualization capabilities
|
||||
of recent versions of Linux (and other OSes). It is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
|
||||
Lesser General Public License</a>. Virtualization of the Linux Operating
|
||||
System means the ability to run multiple instances of Operating Systems
|
||||
@@ -29,10 +29,117 @@ mechanisms if needed.</p>
|
||||
<h2><a name="News">Releases</a></h2>
|
||||
|
||||
<p>Here is the list of official releases, however since it is early on in the
|
||||
development of libvir, it is preferable when possible to just use the <a
|
||||
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.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
|
||||
(Mark McLoughlin), allow to create domains without disk (Mark
|
||||
McLoughlin),</li>
|
||||
<li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
|
||||
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li>
|
||||
<li>documentation: augmented to cover hvm domains</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.1.2: Jul 3 2006</h3>
|
||||
<ul>
|
||||
<li>headers include paths fixup</li>
|
||||
<li>proxy mechanism for unpriviledged read-only access by httpu</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.1.1: Jun 21 2006</h3>
|
||||
<ul>
|
||||
<li>building fixes: ncurses fallback (Jim Fehlig), VPATH builds (Daniel P.
|
||||
Berrange)</li>
|
||||
<li>driver cleanups: new entry points, cleanup of libvirt.c (with Daniel P.
|
||||
Berrange)</li>
|
||||
<li>Cope with API change introduced in Xen changeset 10277</li>
|
||||
<li>new test driver for regression checks (Daniel P. Berrange)</li>
|
||||
<li>improvements: added UUID to XML serialization, buffer usage (Karel
|
||||
Zak), --connect argument to virsh (Daniel P. Berrange),</li>
|
||||
<li>bug fixes: uninitialized memory access in error reporting, S-Expr
|
||||
parsing (Jim Fehlig, Jeremy Katz), virConnectOpen bug, remove a TODO in
|
||||
xs_internal.c</li>
|
||||
<li>documentation: Python examples (David Lutterkort), new Perl binding
|
||||
URL, man page update (Karel Zak)</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.1.0: Apr 10 2006</h3>
|
||||
<ul>
|
||||
<li>building fixes: --with-xen-distdir option (Ronald Aigner), out of tree
|
||||
build and pkginfo cflag fix (Daniel Berrange)</li>
|
||||
<li>enhancement and fixes of the XML description format (David Lutterkort
|
||||
and Jim Fehlig)</li>
|
||||
<li>new APIs: for Node information and Reboot</li>
|
||||
<li>internal code cleanup: refactoring internals into a driver model, more
|
||||
error handling, structure sharing, thread safety and ref counting</li>
|
||||
<li>bug fixes: error message (Jim Meyering), error allocation in virsh (Jim
|
||||
Meyering), virDomainLookupByID (Jim Fehlig),</li>
|
||||
<li>documentation: updates on architecture, and format, typo fix (Jim
|
||||
Meyering)</li>
|
||||
<li>bindings: exception handling in examples (Jim Meyering), perl ones out
|
||||
of tree (Daniel Berrange)</li>
|
||||
<li>virsh: more options, create, nodeinfo (Karel Zak), renaming of some
|
||||
options (Karel Zak), use stderr only for errors (Karel Zak), man page
|
||||
(Andrew Puch)</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.0.6: Feb 28 2006</h3>
|
||||
<ul>
|
||||
<li>add UUID lookup and extract API</li>
|
||||
<li>add error handling APIs both synchronous and asynchronous</li>
|
||||
<li>added minimal hook for error handling at the python level, improved the
|
||||
python bindings</li>
|
||||
<li>augment the documentation and tests to cover error handling</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.0.5: Feb 23 2006</h3>
|
||||
<ul>
|
||||
<li>Added XML description parsing, dependance to libxml2, implemented the
|
||||
creation API virDomainCreateLinux()</li>
|
||||
<li>new APIs to lookup and name domain by UUID</li>
|
||||
<li>fixed the XML dump when using the Xend access</li>
|
||||
<li>Fixed a few more problem related to the name change</li>
|
||||
<li>Adding regression tests in python and examples in C</li>
|
||||
<li>web site improvement, extended the documentation to cover the XML
|
||||
format and Python API</li>
|
||||
<li>Added devhelp help for Gnome/Gtk programmers</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.0.4: Feb 10 2006</h3>
|
||||
<ul>
|
||||
<li>Fix various bugs introduced in the name change</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.0.3: Feb 9 2006</h3>
|
||||
<ul>
|
||||
<li>Switch name from from 'libvir' to libvirt</li>
|
||||
<li>Starting infrastructure to add code examples</li>
|
||||
<li>Update of python bindings for completeness</li>
|
||||
</ul>
|
||||
|
||||
<h3>0.0.2: Jan 29 2006</h3>
|
||||
<ul>
|
||||
<li>Update of the documentation, web site redesign (Diana Fong)</li>
|
||||
@@ -53,12 +160,12 @@ and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p>
|
||||
|
||||
<h2><a name="Introducti">Introduction</a></h2>
|
||||
|
||||
<p>Libvir is a C toolkit to interact with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes), but libvir won't try to provide
|
||||
<p>Libvirt is a C toolkit to interact with the virtualization capabilities of
|
||||
recent versions of Linux (and other OSes), but libvirt won't try to provide
|
||||
all possible interfaces for interacting with the virtualization features.</p>
|
||||
|
||||
<p>To avoid ambiguity about the terms used here here are the definitions for
|
||||
some of the specific concepts used in libvir documentation:</p>
|
||||
some of the specific concepts used in libvirt documentation:</p>
|
||||
<ul>
|
||||
<li>a <strong>node</strong> is a single physical machine</li>
|
||||
<li>an <strong>hypervisor</strong> is a layer of software allowing to
|
||||
@@ -71,7 +178,7 @@ some of the specific concepts used in libvir documentation:</p>
|
||||
<p style="text-align: center"><img
|
||||
alt="Hypervisor and domains running on a node" src="node.gif"></p>
|
||||
|
||||
<p>Now we can define the goal of libvir: to provide the lowest possible
|
||||
<p>Now we can define the goal of libvirt: to provide the lowest possible
|
||||
generic and stable layer to manage domains on a node.</p>
|
||||
|
||||
<p>This implies the following:</p>
|
||||
@@ -79,30 +186,30 @@ generic and stable layer to manage domains on a node.</p>
|
||||
<li>the API should not be targetted to a single virtualization environment
|
||||
though Xen is the current default, which also means that some very
|
||||
specific capabilities which are not generic enough may not be provided as
|
||||
libvir APIs</li>
|
||||
libvirt APIs</li>
|
||||
<li>the API should allow to do efficiently and cleanly all the operations
|
||||
needed to manage domains on a node</li>
|
||||
<li>the API will not try to provide hight level multi-nodes management
|
||||
features like load balancing, though they could be implemented on top of
|
||||
libvir</li>
|
||||
<li>stability of the API is a big concern, libvir should isolate
|
||||
libvirt</li>
|
||||
<li>stability of the API is a big concern, libvirt should isolate
|
||||
applications from the frequent changes expected at the lower level of the
|
||||
virtualization framework</li>
|
||||
</ul>
|
||||
|
||||
<p>So libvir should be a building block for higher level management tools and
|
||||
for applications focusing on virtualization of a single node (the only
|
||||
<p>So libvirt should be a building block for higher level management tools
|
||||
and for applications focusing on virtualization of a single node (the only
|
||||
exception being domain migration between node capabilities which may need to
|
||||
be added at the libvir level). Where possible libvir should be extendable to
|
||||
be able to provide the same API for remote nodes, however this is not the
|
||||
be added at the libvirt level). Where possible libvirt should be extendable
|
||||
to be able to provide the same API for remote nodes, however this is not the
|
||||
case at the moment, the code currently handle only local node accesses.</p>
|
||||
|
||||
<h2><a name="architecture">libvir architecture</a></h2>
|
||||
<h2><a name="architecture">libvirt architecture</a></h2>
|
||||
|
||||
<h3>This is Xen specific since this is the only hypervisor supported at the
|
||||
moment</h3>
|
||||
<h3>This is in a large part Xen specific since this is the only hypervisor
|
||||
supported at the moment</h3>
|
||||
|
||||
<p>When running in a Xen environment, programs using libvir have to execute
|
||||
<p>When running in a Xen environment, programs using libvirt have to execute
|
||||
in "Domain 0", which is the primary Linux OS loaded on the machine. That OS
|
||||
kernel provides most if not all of the actual drivers used by the set of
|
||||
domains. It also runs the Xen Store, a database of informations shared by the
|
||||
@@ -126,7 +233,7 @@ the Xen infrastructure:</p>
|
||||
<p>The library will usually interract with the Xen daemon for any operation
|
||||
changing the state of the system, but for performance and accuracy reasons
|
||||
may talk directly to the hypervisor when gathering state informations at
|
||||
least when possible (i.e. when the running program using libvir has root
|
||||
least when possible (i.e. when the running program using libvirt has root
|
||||
priviledge access).</p>
|
||||
|
||||
<p>If it runs without root access virConnectOpenReadOnly() should be used to
|
||||
@@ -136,31 +243,499 @@ also try to use the RPC to the Xen daemon. In this case use of hypervisor
|
||||
calls and write to the Xen Store will not be possible, restraining the amount
|
||||
of APIs available and slowing down information gathering about domains.</p>
|
||||
|
||||
<h3>Internal architecture</h3>
|
||||
|
||||
<p>As the previous section explains, libvirt can communicate using different
|
||||
channels with the current hypervisor, and should also be able to use
|
||||
different kind of hypervisor. To simplify the internal design, code, ease
|
||||
maintainance and simplify the support of other virtualization engine the
|
||||
internals have been structured as one core component, the libvirt.c module
|
||||
acting as a front-end for the library API and a set of hypvisor drivers
|
||||
defining a common set of routines. That way the Xen Daemon accces, the Xen
|
||||
Store one, the Hypervisor hypercall are all isolated in separate C modules
|
||||
implementing at least a subset of the common operations defined by the
|
||||
drivers present in driver.h:</p>
|
||||
<ul>
|
||||
<li>xend_internal: implements the driver functions though the Xen
|
||||
Daemon</li>
|
||||
<li>xs_internal: implements the subset of the driver availble though the
|
||||
Xen Store</li>
|
||||
<li>xen_internal: provide the implementation of the functions possible via
|
||||
direct hypervisor access</li>
|
||||
</ul>
|
||||
|
||||
<p>Note that a given driver may only implement a subset of those functions,
|
||||
for example saving a domain state to disk and restoring it is only possible
|
||||
though the Xen Daemon, on the other hand all interfaces allow to query the
|
||||
runtime state of a given domain.</p>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h2><a name="Downloads">Downloads</a></h2>
|
||||
|
||||
<p>The latest versions of libvir can be found on the <a
|
||||
href="ftp://libvir.org/libvir/">libvir.org</a> server ( <a
|
||||
href="http://libvir.org/sources/">HTTP</a>, <a
|
||||
href="ftp://libvir.org/libvir/">FTP</a>). You will find there the released
|
||||
<p>The latest versions of libvirt can be found on the <a
|
||||
href="ftp://libvirt.org/libvirt/">libvirt.org</a> server ( <a
|
||||
href="http://libvirt.org/sources/">HTTP</a>, <a
|
||||
href="ftp://libvirt.org/libvirt/">FTP</a>). You will find there the released
|
||||
versions as well as <a
|
||||
href="http://libvir.org/sources/libvir-cvs-snapshot.tar.gz">snapshot
|
||||
href="http://libvirt.org/sources/libvirt-cvs-snapshot.tar.gz">snapshot
|
||||
tarballs</a> updated from CVS head every hour</p>
|
||||
|
||||
<p>Anonymous <a href="http://ximbiot.com/cvs/cvshome/docs/">CVS</a> is also
|
||||
available, first register onto the server:</p>
|
||||
|
||||
<p><code>cvs -d :pserver:anoncvs@libvir.org:2401/data/cvs login</code></p>
|
||||
<p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login</code></p>
|
||||
|
||||
<p>it will request a password, enter <strong>anoncvs</strong>. Then you can
|
||||
checkout the development tree with:</p>
|
||||
|
||||
<p><code>cvs -d :pserver:anoncvs@libvir.org:2401/data/cvs co libvir</code></p>
|
||||
<p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co
|
||||
libvirt</code></p>
|
||||
|
||||
<p>Use ./autogen.sh to configure the local checkout, then <code>make</code>
|
||||
and <code>make install</code>, as usual. All normal cvs commands are now
|
||||
available except commiting to the base.</p>
|
||||
|
||||
<h2><a name="FAQ">FAQ</a></h2>
|
||||
<h2><a name="Format">XML Format</a></h2>
|
||||
|
||||
<p>This section describes the XML format used to represent domains, there are
|
||||
variations on the format based on the kind of domains run and the options
|
||||
used to launch them:</p>
|
||||
|
||||
<p><a href="#Normal1">Normal paravirtualized Xen domains</a></p>
|
||||
|
||||
<p><a href="#Fully1">Fully virtualized Xen domains</a></p>
|
||||
|
||||
<p>The formats try as much as possible to follow the same structure and reuse
|
||||
elements and attributes where it makes sense.</p>
|
||||
|
||||
<h3 id="Normal"><a name="Normal1" id="Normal1">Normal paravirtualized Xen
|
||||
guests</a>:</h3>
|
||||
|
||||
<p>The library use an XML format to describe domains, as input to <a
|
||||
href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux()</a>
|
||||
and as the output of <a
|
||||
href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc()</a>,
|
||||
the following is an example of the format as returned by the shell command
|
||||
<code>virsh xmldump fc4</code> , where fc4 was one of the running domains:</p>
|
||||
<pre><domain type='xen' <span style="color: #0071FF; background-color: #FFFFFF">id='18'</span>>
|
||||
<name>fc4</name>
|
||||
<span style="color: #00B200; background-color: #FFFFFF"><os>
|
||||
<type>linux</type>
|
||||
<kernel>/boot/vmlinuz-2.6.15-1.43_FC5guest</kernel>
|
||||
<initrd>/boot/initrd-2.6.15-1.43_FC5guest.img</initrd>
|
||||
<root>/dev/sda1</root>
|
||||
<cmdline> ro selinux=0 3</cmdline>
|
||||
</os></span>
|
||||
<memory>131072</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<devices>
|
||||
<span style="color: #FF0080; background-color: #FFFFFF"><disk type='file'>
|
||||
<source file='/u/fc4.img'/>
|
||||
<target dev='sda1'/>
|
||||
</disk></span>
|
||||
<span style="color: #0000FF; background-color: #FFFFFF"><interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='</span><span style="color: #0000FF; background-color: #FFFFFF"></span><span style="color: #0000FF; background-color: #FFFFFF">aa:00:00:00:00:11'/>
|
||||
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||
</interface></span>
|
||||
<span style="color: #FF8000; background-color: #FFFFFF"><console tty='/dev/pts/5'/></span>
|
||||
</devices>
|
||||
</domain></pre>
|
||||
|
||||
<p>The root element must be called <code>domain</code> with no namespace, the
|
||||
<code>type</code> attribute indicates the kind of hypervisor used, 'xen' is
|
||||
the default value. The <code>id</code> attribute gives the domain id at
|
||||
runtime (not however that this may change, for example if the domain is saved
|
||||
to disk and restored). The domain has a few children whose order is not
|
||||
significant:</p>
|
||||
<ul>
|
||||
<li>name: the domain name, preferably ASCII based</li>
|
||||
<li>memory: the maximum memory allocated to the domain in kilobytes</li>
|
||||
<li>vcpu: the number of virtual cpu configured for the domain</li>
|
||||
<li>os: a block describing the Operating System, its content will be
|
||||
dependant on the OS type
|
||||
<ul>
|
||||
<li>type: indicate the OS type, always linux at this point</li>
|
||||
<li>kernel: path to the kernel on the Domain 0 filesystem</li>
|
||||
<li>initrd: an optional path for the init ramdisk on the Domain 0
|
||||
filesystem</li>
|
||||
<li>cmdline: optional command line to the kernel</li>
|
||||
<li>root: the root filesystem from the guest viewpoint, it may be
|
||||
passed as part of the cmdline content too</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>devices: a list of <code>disk</code>, <code>interface</code> and
|
||||
<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
|
||||
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 type attribute either 'file' or 'block' corresponding to the 2
|
||||
options availble at the Xen layer. It has two mandatory children, and one
|
||||
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
|
||||
name ('hda5' or '/dev/hda5')</li>
|
||||
<li>target indicates in a dev attribute the device where it is mapped in
|
||||
the guest</li>
|
||||
<li>readonly an optional empty element indicating the device is
|
||||
read-only</li>
|
||||
</ul>
|
||||
|
||||
<p>An <code>interface</code> element describes a network device mapped on the
|
||||
guest, it also has a type whose value is currently 'bridge', it also have a
|
||||
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>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>target: and optional target indicating the device name.</li>
|
||||
</ul>
|
||||
|
||||
<p>A <code>console</code> element describes a serial console connection to
|
||||
the guest. It has no children, and a single attribute <code>tty</code> which
|
||||
provides the path to the Pseudo TTY on which the guest console can be
|
||||
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
|
||||
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>
|
||||
<li>restart: A new domain is started in place of the old one with the same
|
||||
configuration parameters</li>
|
||||
<li>preserve: The domain will remain in memory until it is destroyed
|
||||
manually, it won't be running but allows for post-mortem debugging</li>
|
||||
<li>rename-restart: a variant of the previous one but where the old domain
|
||||
is renamed before being saved to allow a restart</li>
|
||||
</ul>
|
||||
|
||||
<p>The following could be used for a Xen production system:</p>
|
||||
<pre><domain>
|
||||
...
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_crash>rename-restart</on_crash>
|
||||
...
|
||||
</domain></pre>
|
||||
|
||||
<p>While the format may be extended in various ways as support for more
|
||||
hypervisor types and features are added, it is expected that this core subset
|
||||
will remain functional in spite of the evolution of the library.</p>
|
||||
|
||||
<h3 id="Fully"><a name="Fully1" id="Fully1">Fully virtualized guests</a>
|
||||
(added in 0.1.3):</h3>
|
||||
|
||||
<p>Here is an example of a domain description used to start a fully
|
||||
virtualized (a.k.a. HVM) Xen domain. This requires hardware virtualization
|
||||
support at the processor level but allows to run unmodified operating
|
||||
systems:</p>
|
||||
<pre><domain type='xen' id='3'>
|
||||
<name>fv0</name>
|
||||
<uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
|
||||
<os>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><type>hvm</type></span>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><loader>/usr/lib/xen/boot/hvmloader</loader></span>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><boot dev='hd'/></span>
|
||||
</os>
|
||||
<memory>524288</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<features>
|
||||
<span style="color: #E50000; background-color: #FFFFFF"><pae/>
|
||||
<acpi/>
|
||||
<apic/></span>
|
||||
</features>
|
||||
<devices>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><emulator>/usr/lib/xen/bin/qemu-dm</emulator></span>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<script path='vif-bridge'/>
|
||||
</interface>
|
||||
<disk type='file'>
|
||||
<source file='/root/fv0'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='hda'</span>/>
|
||||
</disk>
|
||||
<disk type='file' <span style="color: #0000E5; background-color: #FFFFFF">device='cdrom'</span>>
|
||||
<source file='/root/fc5-x86_64-boot.iso'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='hdc'</span>/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<disk type='file' <span style="color: #0000E5; background-color: #FFFFFF">device='floppy'</span>>
|
||||
<source file='/root/fd.img'/>
|
||||
<target <span style="color: #0000E5; background-color: #FFFFFF">dev='fda'</span>/>
|
||||
</disk>
|
||||
<span style="color: #0000E5; background-color: #FFFFFF"><graphics type='vnc' port='5904'/></span>
|
||||
</devices>
|
||||
</domain></pre>
|
||||
|
||||
<p>There is a few things to notice specifically for HVM domains:</p>
|
||||
<ul>
|
||||
<li>the optional <code><features></code> block is used to enable
|
||||
certain guest CPU / system features. For HVM guests the following
|
||||
features are defined:
|
||||
<ul>
|
||||
<li><code>pae</code> - enable PAE memory addressing</li>
|
||||
<li><code>apic</code> - enable IO APIC</li>
|
||||
<li><code>acpi</code> - enable ACPI bios</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>the <code><os></code> block description is very different, first
|
||||
it indicates that the type is 'hvm' for hardware virtualization, then
|
||||
instead of a kernel, boot and command line arguments, it points to an os
|
||||
boot loader which will extract the boot informations from the boot device
|
||||
specified in a separate boot element. The <code>dev</code> attribute on
|
||||
the <code>boot</code> tag can be one of:
|
||||
<ul>
|
||||
<li><code>fd</code> - boot from first floppy device</li>
|
||||
<li><code>hd</code> - boot from first harddisk device</li>
|
||||
<li><code>cdrom</code> - boot from first cdrom device</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>the <code><devices></code> section includes an emulator entry
|
||||
pointing to an additional program in charge of emulating the devices</li>
|
||||
<li>the disk entry indicates in the dev target section that the emulation
|
||||
for the drive is the first IDE disk device hda. The list of device names
|
||||
supported is dependant on the Hypervisor, but for Xen it can be any IDE
|
||||
device <code>hda</code>-<code>hdd</code>, or a floppy device
|
||||
<code>fda</code>, <code>fdb</code>. The <code><disk></code> element
|
||||
also supports a 'device' attribute to indicate what kinda of hardware to
|
||||
emulate. The following values are supported:
|
||||
<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>cdrom</code> - a CDROM device</li>
|
||||
</ul>
|
||||
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 any IDE channel.</li>
|
||||
<li>the <code><devices></code> section also include at least one
|
||||
entry for the graphic device used to render the os. Currently there is
|
||||
just 2 types possible 'vnc' or 'sdl'. If the type is 'vnc', then an
|
||||
additional <code>port</code> attribute will be present indicating the TCP
|
||||
port on which the VNC server is accepting client connections.</li>
|
||||
</ul>
|
||||
|
||||
<p>It is likely that the HVM description gets additional optional elements
|
||||
and attributes as the support for fully virtualized domain expands,
|
||||
especially for the variety of devices emulated and the graphic support
|
||||
options offered.</p>
|
||||
|
||||
<h2><a name="Python" id="Python">Binding for Python</a></h2>
|
||||
|
||||
<p>Libvirt comes with direct support for the Python language (just make sure
|
||||
you installed the libvirt-python package if not compiling from sources). Also
|
||||
note that Daniel Berrange provides <a
|
||||
href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">bindings for Perl</a>
|
||||
too.</p>
|
||||
|
||||
<p>The Python binding should be complete and are mostly automatically
|
||||
generated from the formal description of the API in xml. The bindings are
|
||||
articulated around 2 classes <code>virConnect</code> and virDomain mapping to
|
||||
the C types. Functions in the C API taking either type as argument then
|
||||
becomes methods for the classes, their name is just stripped from the
|
||||
virConnect or virDomain(Get) prefix and the first letter gets converted to
|
||||
lower case, for example the C functions:</p>
|
||||
|
||||
<p><code>int <a
|
||||
href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
|
||||
(virConnectPtr conn);</code></p>
|
||||
|
||||
<p><code>int <a
|
||||
href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
|
||||
(virDomainPtr domain, unsigned long memory);</code></p>
|
||||
|
||||
<p>become</p>
|
||||
|
||||
<p><code>virConn::numOfDomains(self)</code></p>
|
||||
|
||||
<p><code>virDomain::setMaxMemory(self, memory)</code></p>
|
||||
|
||||
<p>This process is fully automated, you can get a summary of the conversion
|
||||
in the file libvirtclass.txt present in the python dir or in the docs.There
|
||||
is a couple of function who don't map directly to their C counterparts due to
|
||||
specificities in their argument conversions:</p>
|
||||
<ul>
|
||||
<li><code><a
|
||||
href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>
|
||||
is replaced by <code>virDomain::listDomainsID(self)</code> which returns
|
||||
a list of the integer ID for the currently running domains</li>
|
||||
<li><code><a
|
||||
href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a></code>
|
||||
is replaced by <code>virDomain::info()</code> which returns a list of
|
||||
<ol>
|
||||
<li>state: one of the state values (virDomainState)</li>
|
||||
<li>maxMemory: the maximum memory used by the domain</li>
|
||||
<li>memory: the current amount of memory used by the domain</li>
|
||||
<li>nbVirtCPU: the number of virtual CPU</li>
|
||||
<li>cpuTime: the time used by the domain in nanoseconds</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>So let's look at a simple example inspired from the <code>basic.py</code>
|
||||
test found in <code>python/tests/</code> in the source tree:</p>
|
||||
<pre>import <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>
|
||||
import sys
|
||||
|
||||
conn = <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
dom0 = conn.<span style="color: #007F00; background-color: #FFFFFF">lookupByName</span>("Domain-0")
|
||||
except:
|
||||
print 'Failed to find the main domain'
|
||||
sys.exit(1)
|
||||
|
||||
print "Domain 0: id %d running %s" % (dom0.<span style="color: #FF0080; background-color: #FFFFFF">ID</span>(), dom0.<span style="color: #FF0080; background-color: #FFFFFF">OSType</span>())
|
||||
print dom0.<span style="color: #FF0080; background-color: #FFFFFF">info</span>()</pre>
|
||||
|
||||
<p>There is not much to comment about it, it really is a straight mapping
|
||||
from the C API, the only points to notice are:</p>
|
||||
<ul>
|
||||
<li>the import of the module called <code><span
|
||||
style="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
|
||||
<li>getting a connection to the hypervisor, in that case using the
|
||||
openReadOnly function allows the code to execute as a normal user.</li>
|
||||
<li>getting an object representing the Domain 0 using <span
|
||||
style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
|
||||
<li>if the domain is not found a libvirtError exception will be raised</li>
|
||||
<li>extracting and printing some informations about the domain using
|
||||
various <span
|
||||
style="color: #E50073; background-color: #FFFFFF">methods</span>
|
||||
associated to the virDomain class.</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="Errors" id="Errors">Handling of errors</a></h2>
|
||||
|
||||
<p>The main goals of libvirt when it comes to error handling are:</p>
|
||||
<ul>
|
||||
<li>provide as much detail as possible</li>
|
||||
<li>provide the informations as soon as possible</li>
|
||||
<li>dont force the library user into one style of error handling</li>
|
||||
</ul>
|
||||
|
||||
<p>As result the library provide both synchronous, callback based and
|
||||
asynchronous error reporting. When an error happens in the library code the
|
||||
error is logged, allowing to retrieve it later and if the user registered an
|
||||
error callback it will be called synchronously. Once the call to libvirt ends
|
||||
the error can be detected by the return value and the full information for
|
||||
the last logged error can be retrieved.</p>
|
||||
|
||||
<p>To avoid as much as prossible troubles with a global variable in a
|
||||
multithreaded environment, libvirt will associate when possible the errors to
|
||||
the current connection they are related to, that way the error is stored in a
|
||||
dynamic structure which can be made thread specific. Error callback can be
|
||||
set specifically to a connection with</p>
|
||||
|
||||
<p>So error handling in the code is the following:</p>
|
||||
<ol>
|
||||
<li>if the error can be associated to a connection for example when failing
|
||||
to look up a domain
|
||||
<ol>
|
||||
<li>if there is a callback associated to the connection set with <a
|
||||
href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
call it with the error informations</li>
|
||||
<li>otherwise if there is a global callback set with <a
|
||||
href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,
|
||||
call it with the error information</li>
|
||||
<li>otherwise call <a
|
||||
href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>
|
||||
which is the default error function of the library issuing the error
|
||||
on stderr</li>
|
||||
<li>save the error in the connection for later retrieval with <a
|
||||
href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>otherwise like when failing to create an hypervisor connection:
|
||||
<ol>
|
||||
<li>if there is a global callback set with <a
|
||||
href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,
|
||||
call it with the error information</li>
|
||||
<li>otherwise call <a
|
||||
href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>
|
||||
which is the default error function of the library issuing the error
|
||||
on stderr</li>
|
||||
<li>save the error in the connection for later retrieval with <a
|
||||
href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>In all cases the error informations are provided as a <a
|
||||
href="html/libvirt-virterror.html#virErrorPtr">virErrorPtr</a> pointer to
|
||||
read-only structure <a
|
||||
href="html/libvirt-virterror.html#virError">virError</a> containing the
|
||||
following fields:</p>
|
||||
<ul>
|
||||
<li>code: an error number from the <a
|
||||
href="html/libvirt-virterror.html#virErrorNumber">virErrorNumber</a>
|
||||
enum</li>
|
||||
<li>domain: an enum indicating which part of libvirt raised the error see
|
||||
<a
|
||||
href="html/libvirt-virterror.html#virErrorDomain">virErrorDomain</a></li>
|
||||
<li>level: the error level, usually VIR_ERR_ERROR, though there is room for
|
||||
warnings like VIR_ERR_WARNING</li>
|
||||
<li>message: the full human-readable formatted string of the error</li>
|
||||
<li>conn: if available a pointer to the <a
|
||||
href="html/libvirt-libvirt.html#virConnectPtr">virConnectPtr</a>
|
||||
connection to the hypervisor where this happened</li>
|
||||
<li>dom: if available a pointer to the <a
|
||||
href="html/libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain
|
||||
targetted in the operation</li>
|
||||
</ul>
|
||||
|
||||
<p>and then extra raw informations about the error which may be initialized
|
||||
to 0 or NULL if unused</p>
|
||||
<ul>
|
||||
<li>str1, str2, str3: string informations, usually str1 is the error
|
||||
message format</li>
|
||||
<li>int1, int2: integer informations</li>
|
||||
</ul>
|
||||
|
||||
<p>So usually, setting up specific error handling with libvirt consist of
|
||||
registering an handler with with <a
|
||||
href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a> or
|
||||
with <a
|
||||
href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
|
||||
chech the value of the code value, take appropriate action, if needed let
|
||||
libvirt print the error on stderr by calling <a
|
||||
href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.
|
||||
For asynchronous error handing, set such a function doing nothing to avoid
|
||||
the error being reported on stderr, and call virConnGetLastError or
|
||||
virGetLastError when an API call returned an error value. It can be a good
|
||||
idea to use <a
|
||||
href="html/libvirt-virterror.html#virResetLastError">virResetError</a> or <a
|
||||
href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a>
|
||||
once an error has been processed fully.</p>
|
||||
|
||||
<p>At the python level, there only a global reporting callback function at
|
||||
this point, see the error.py example about it:</p>
|
||||
<pre>def handler(ctxt, err):
|
||||
global errno
|
||||
|
||||
#print "handler(%s, %s)" % (ctxt, err)
|
||||
errno = err
|
||||
|
||||
libvirt.registerErrorHandler(handler, 'context') </pre>
|
||||
|
||||
<p>the second argument to the registerErrorHandler function is passed as the
|
||||
fist argument of the callback like in the C version. The error is a tuple
|
||||
containing the same field as a virError in C, but cast to Python.</p>
|
||||
|
||||
<h2><a name="FAQ" id="FAQ">FAQ</a></h2>
|
||||
|
||||
<p>Table of Contents:</p>
|
||||
<ul>
|
||||
@@ -172,15 +747,15 @@ available except commiting to the base.</p>
|
||||
|
||||
<h3><a name="License">License</a>(s)</h3>
|
||||
<ol>
|
||||
<li><em>Licensing Terms for libvir</em>
|
||||
<p>libvir is released under the <a
|
||||
<li><em>Licensing Terms for libvirt</em>
|
||||
<p>libvirt is released under the <a
|
||||
href="http://www.opensource.org/licenses/lgpl-license.html">GNU Lesser
|
||||
General Public License</a>, see the file COPYING.LIB in the distribution
|
||||
for the precise wording. The only library that libvir depends upon is the
|
||||
Xen store access library which is also licenced under the LGPL.</p>
|
||||
for the precise wording. The only library that libvirt depends upon is
|
||||
the Xen store access library which is also licenced under the LGPL.</p>
|
||||
</li>
|
||||
<li><em>Can I embed libvir in a proprietary application ?</em>
|
||||
<p>Yes. The LGPL allows you to embed libvir into a proprietary
|
||||
<li><em>Can I embed libvirt in a proprietary application ?</em>
|
||||
<p>Yes. The LGPL allows you to embed libvirt into a proprietary
|
||||
application. It would be graceful to send-back bug fixes and improvements
|
||||
as patches for possible incorporation in the main development tree. It
|
||||
will decrease your maintainance costs anyway if you do so.</p>
|
||||
@@ -189,19 +764,19 @@ available except commiting to the base.</p>
|
||||
|
||||
<h3><a name="Installati">Installation</a></h3>
|
||||
<ol>
|
||||
<li><em>Where can I get libvir</em> ?
|
||||
<li><em>Where can I get libvirt</em> ?
|
||||
<p>The original distribution comes from <a
|
||||
href="ftp://libvir.org/libvir/">ftp://libvir.org/libvir/</a>.</p>
|
||||
href="ftp://libvirt.org/libvirt/">ftp://libvirt.org/libvirt/</a>.</p>
|
||||
</li>
|
||||
<li><em>I can't install the libvir/libvir-devel RPM packages due to failed
|
||||
dependencies</em>
|
||||
<li><em>I can't install the libvirt/libvirt-devel RPM packages due to
|
||||
failed dependencies</em>
|
||||
<p>The most generic solution is to re-fetch the latest src.rpm , and
|
||||
rebuild it locally with</p>
|
||||
<p><code>rpm --rebuild libvir-xxx.src.rpm</code>.</p>
|
||||
<p><code>rpm --rebuild libvirt-xxx.src.rpm</code>.</p>
|
||||
<p>If everything goes well it will generate two binary rpm packages (one
|
||||
providing the shared libs and virsh, and the other one, the -devel
|
||||
package, providing includes, static libraries and scripts needed to build
|
||||
applications with libvir that you can install locally.</p>
|
||||
applications with libvirt that you can install locally.</p>
|
||||
<p>One can also rebuild the RPMs from a tarball:</p>
|
||||
<p><code>rpmbuild -ta libdir-xxx.tar.gz</code></p>
|
||||
<p>Or from a configured tree with:</p>
|
||||
@@ -210,7 +785,7 @@ available except commiting to the base.</p>
|
||||
<li><em>Failure to use the API for non-root users</em>
|
||||
<p>Large parts of the API may only be accessible with root priviledges,
|
||||
however the read only access to the xenstore data doesnot have to be
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dinfo"
|
||||
forbidden to user, at least for monitoring purposes. If "virsh dominfo"
|
||||
fails to run as an user, change the mode of the xenstore read-only socket
|
||||
with:</p>
|
||||
<p><code>chmod 666 /var/run/xenstored/socket_ro</code></p>
|
||||
@@ -227,10 +802,10 @@ available except commiting to the base.</p>
|
||||
|
||||
<h3><a name="Compilatio">Compilation</a></h3>
|
||||
<ol>
|
||||
<li><em>What is the process to compile libvir ?</em>
|
||||
<p>As most UNIX libraries libvir follows the "standard":</p>
|
||||
<p><code>gunzip -c libvir-xxx.tar.gz | tar xvf -</code></p>
|
||||
<p><code>cd libvir-xxxx</code></p>
|
||||
<li><em>What is the process to compile libvirt ?</em>
|
||||
<p>As most UNIX libraries libvirt follows the "standard":</p>
|
||||
<p><code>gunzip -c libvirt-xxx.tar.gz | tar xvf -</code></p>
|
||||
<p><code>cd libvirt-xxxx</code></p>
|
||||
<p><code>./configure --help</code></p>
|
||||
<p>to see the options, then the compilation/installation proper</p>
|
||||
<p><code>./configure [possible options]</code></p>
|
||||
@@ -239,8 +814,8 @@ available except commiting to the base.</p>
|
||||
<p>At that point you may have to rerun ldconfig or a similar utility to
|
||||
update your list of installed shared libs.</p>
|
||||
</li>
|
||||
<li><em>What other libraries are needed to compile/install libvir ?</em>
|
||||
<p>Libvir requires libxenstore, which is usually provided by the xen
|
||||
<li><em>What other libraries are needed to compile/install libvirt ?</em>
|
||||
<p>Libvirt requires libxenstore, which is usually provided by the xen
|
||||
packages as well as the public headers to compile against libxenstore.</p>
|
||||
</li>
|
||||
<li><em>I use the CVS version and there is no configure script</em>
|
||||
@@ -253,18 +828,18 @@ available except commiting to the base.</p>
|
||||
|
||||
<h3><a name="Developer">Developer</a> corner</h3>
|
||||
<ol>
|
||||
<li><em>Troubles compiling or linking programs using libvir</em>
|
||||
<p>To simplify the process of reusing the library, libvir comes with
|
||||
<li><em>Troubles compiling or linking programs using libvirt</em>
|
||||
<p>To simplify the process of reusing the library, libvirt comes with
|
||||
pkgconfig support, which can be used directly from autoconf support or
|
||||
via the pkg-config command line tool, like:</p>
|
||||
<p><code>pkg-config libvir --libs</code></p>
|
||||
<p><code>pkg-config libvirt --libs</code></p>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2><a name="Reporting">Reporting bugs and getting help</a></h2>
|
||||
|
||||
<p>There is a mailing-list <a
|
||||
href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a> for libvir,
|
||||
href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a> for libvirt,
|
||||
with an <a href="https://www.redhat.com/archives/libvir-list/">on-line
|
||||
archive</a>. Please subscribe to this list before posting by visiting the <a
|
||||
href="https://www.redhat.com/mailman/listinfo/libvir-list">associated Web</a>
|
||||
@@ -273,7 +848,7 @@ attachments are really appreciated and will be discussed on the mailing list.
|
||||
If possible generate the patches by using cvs diff -u in a CVS checkout.</p>
|
||||
|
||||
<p>We expect to use <a href="https://bugzilla.redhat.com/">Red Hat
|
||||
Bugzilla</a> to track bugs for libvir, though there isn't a libvir software
|
||||
Bugzilla</a> to track bugs for libvirt, though there isn't a libvirt software
|
||||
module defined yet, in the meantime use the mailing-list, thanks !.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -5,15 +5,25 @@
|
||||
<summary>core interfaces for the libvirt library</summary>
|
||||
<description>Provides the interfaces of the libvirt library to handle Xen domains from a process running in domain 0 </description>
|
||||
<author>Daniel Veillard <veillard@redhat.com> </author>
|
||||
<exports symbol='VIR_NODEINFO_MAXCPUS' type='macro'/>
|
||||
<exports symbol='LIBVIR_VERSION_NUMBER' type='macro'/>
|
||||
<exports symbol='VIR_USE_CPU' type='macro'/>
|
||||
<exports symbol='VIR_CPU_MAPLEN' type='macro'/>
|
||||
<exports symbol='VIR_CPU_USABLE' type='macro'/>
|
||||
<exports symbol='VIR_COPY_CPUMAP' type='macro'/>
|
||||
<exports symbol='VIR_GET_CPUMAP' type='macro'/>
|
||||
<exports symbol='VIR_UNUSE_CPU' type='macro'/>
|
||||
<exports symbol='VIR_DOMAIN_SHUTOFF' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_DESTROY' type='enum'/>
|
||||
<exports symbol='VIR_DEVICE_DEFAULT' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_RENAME_RESTART' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_PRESERVE' type='enum'/>
|
||||
<exports symbol='VIR_VCPU_BLOCKED' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_SHUTDOWN' type='enum'/>
|
||||
<exports symbol='VIR_VCPU_OFFLINE' type='enum'/>
|
||||
<exports symbol='VIR_DEVICE_RO' type='enum'/>
|
||||
<exports symbol='VIR_DEVICE_RW_FORCE' type='enum'/>
|
||||
<exports symbol='VIR_VCPU_RUNNING' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_CRASHED' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_NONE' type='enum'/>
|
||||
<exports symbol='VIR_DEVICE_RW' type='enum'/>
|
||||
@@ -22,51 +32,175 @@
|
||||
<exports symbol='VIR_DOMAIN_RESTART' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_RUNNING' type='enum'/>
|
||||
<exports symbol='VIR_DOMAIN_NOSTATE' type='enum'/>
|
||||
<exports symbol='virNodeInfoPtr' type='typedef'/>
|
||||
<exports symbol='virDomainInfoPtr' type='typedef'/>
|
||||
<exports symbol='virDomainKernelPtr' type='typedef'/>
|
||||
<exports symbol='virConnectPtr' type='typedef'/>
|
||||
<exports symbol='virDomainKernel' type='typedef'/>
|
||||
<exports symbol='virNodeInfo' type='typedef'/>
|
||||
<exports symbol='virDomainState' type='typedef'/>
|
||||
<exports symbol='virDeviceMode' type='typedef'/>
|
||||
<exports symbol='virDomain' type='typedef'/>
|
||||
<exports symbol='virDomainPtr' type='typedef'/>
|
||||
<exports symbol='virVcpuInfo' type='typedef'/>
|
||||
<exports symbol='virVcpuInfoPtr' type='typedef'/>
|
||||
<exports symbol='virDomainRestart' type='typedef'/>
|
||||
<exports symbol='virConnect' type='typedef'/>
|
||||
<exports symbol='virDomainCreateFlags' type='typedef'/>
|
||||
<exports symbol='virDomainInfo' type='typedef'/>
|
||||
<exports symbol='virVcpuState' type='typedef'/>
|
||||
<exports symbol='_virDomainInfo' type='struct'/>
|
||||
<exports symbol='_virDomainKernel' type='struct'/>
|
||||
<exports symbol='_virNodeInfo' type='struct'/>
|
||||
<exports symbol='_virVcpuInfo' type='struct'/>
|
||||
<exports symbol='virDomainGetInfo' type='function'/>
|
||||
<exports symbol='virDomainUndefine' type='function'/>
|
||||
<exports symbol='virDomainDefineXML' type='function'/>
|
||||
<exports symbol='virDomainShutdown' type='function'/>
|
||||
<exports symbol='virGetVersion' type='function'/>
|
||||
<exports symbol='virConnectListDefinedDomains' type='function'/>
|
||||
<exports symbol='virDomainLookupByName' type='function'/>
|
||||
<exports symbol='virDomainPinVcpu' type='function'/>
|
||||
<exports symbol='virDomainRestore' type='function'/>
|
||||
<exports symbol='virConnectGetType' type='function'/>
|
||||
<exports symbol='virDomainSave' type='function'/>
|
||||
<exports symbol='virDomainCreate' type='function'/>
|
||||
<exports symbol='virConnectListDomains' type='function'/>
|
||||
<exports symbol='virDomainLookupByUUID' type='function'/>
|
||||
<exports symbol='virDomainLookupByUUIDString' type='function'/>
|
||||
<exports symbol='virDomainLookupByID' type='function'/>
|
||||
<exports symbol='virDomainGetOSType' type='function'/>
|
||||
<exports symbol='virNodeGetInfo' type='function'/>
|
||||
<exports symbol='virDomainGetUUID' type='function'/>
|
||||
<exports symbol='virConnectNumOfDomains' type='function'/>
|
||||
<exports symbol='virDomainSetMaxMemory' type='function'/>
|
||||
<exports symbol='virDomainGetMaxMemory' type='function'/>
|
||||
<exports symbol='virDomainGetUUIDString' type='function'/>
|
||||
<exports symbol='virDomainGetVcpus' type='function'/>
|
||||
<exports symbol='virConnectGetVersion' type='function'/>
|
||||
<exports symbol='virDomainSetMaxMemory' type='function'/>
|
||||
<exports symbol='virDomainFree' type='function'/>
|
||||
<exports symbol='virConnectOpen' type='function'/>
|
||||
<exports symbol='virDomainSuspend' type='function'/>
|
||||
<exports symbol='virConnectClose' type='function'/>
|
||||
<exports symbol='virDomainReboot' type='function'/>
|
||||
<exports symbol='virInitialize' type='function'/>
|
||||
<exports symbol='virDomainSetVcpus' type='function'/>
|
||||
<exports symbol='virDomainGetID' type='function'/>
|
||||
<exports symbol='virDomainResume' type='function'/>
|
||||
<exports symbol='virDomainCreateLinux' type='function'/>
|
||||
<exports symbol='virDomainSetMemory' type='function'/>
|
||||
<exports symbol='virDomainDestroy' type='function'/>
|
||||
<exports symbol='virDomainGetMaxMemory' type='function'/>
|
||||
<exports symbol='virDomainGetXMLDesc' type='function'/>
|
||||
<exports symbol='virDomainGetName' type='function'/>
|
||||
<exports symbol='virConnectOpenReadOnly' type='function'/>
|
||||
</file>
|
||||
<file name='virterror'>
|
||||
<summary>error handling interfaces for the libvirt library</summary>
|
||||
<description>Provides the interfaces of the libvirt library to handle errors raised while using the library. </description>
|
||||
<author>Daniel Veillard <veillard@redhat.com> </author>
|
||||
<exports symbol='VIR_ERR_CALL_FAILED' type='enum'/>
|
||||
<exports symbol='VIR_ERR_WARNING' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_XEN' type='enum'/>
|
||||
<exports symbol='VIR_ERR_INVALID_ARG' type='enum'/>
|
||||
<exports symbol='VIR_ERR_ERROR' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_DEVICE' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_MEMORY' type='enum'/>
|
||||
<exports symbol='VIR_FROM_SEXPR' type='enum'/>
|
||||
<exports symbol='VIR_FROM_RPC' type='enum'/>
|
||||
<exports symbol='VIR_ERR_XML_ERROR' type='enum'/>
|
||||
<exports symbol='VIR_FROM_NONE' type='enum'/>
|
||||
<exports symbol='VIR_ERR_HTTP_ERROR' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_XENSTORE' type='enum'/>
|
||||
<exports symbol='VIR_FROM_DOM' type='enum'/>
|
||||
<exports symbol='VIR_ERR_INVALID_DOMAIN' type='enum'/>
|
||||
<exports symbol='VIR_FROM_XML' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_KERNEL' type='enum'/>
|
||||
<exports symbol='VIR_ERR_POST_FAILED' type='enum'/>
|
||||
<exports symbol='VIR_ERR_OS_TYPE' type='enum'/>
|
||||
<exports symbol='VIR_ERR_INVALID_CONN' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NONE' type='enum'/>
|
||||
<exports symbol='VIR_ERR_OK' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_NAME' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_ROOT' type='enum'/>
|
||||
<exports symbol='VIR_ERR_OPERATION_FAILED' type='enum'/>
|
||||
<exports symbol='VIR_ERR_GET_FAILED' type='enum'/>
|
||||
<exports symbol='VIR_ERR_DRIVER_FULL' type='enum'/>
|
||||
<exports symbol='VIR_ERR_DOM_EXIST' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_SOURCE' 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_NO_SUPPORT' type='enum'/>
|
||||
<exports symbol='VIR_FROM_XEND' type='enum'/>
|
||||
<exports symbol='VIR_FROM_PROXY' type='enum'/>
|
||||
<exports symbol='VIR_ERR_SEXPR_SERIAL' type='enum'/>
|
||||
<exports symbol='VIR_FROM_XENSTORE' type='enum'/>
|
||||
<exports symbol='VIR_FROM_XEN' type='enum'/>
|
||||
<exports symbol='VIR_ERR_XEN_CALL' type='enum'/>
|
||||
<exports symbol='VIR_ERR_UNKNOWN_HOST' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_CONNECT' type='enum'/>
|
||||
<exports symbol='VIR_ERR_NO_OS' type='enum'/>
|
||||
<exports symbol='virErrorPtr' type='typedef'/>
|
||||
<exports symbol='virErrorLevel' type='typedef'/>
|
||||
<exports symbol='virErrorDomain' type='typedef'/>
|
||||
<exports symbol='virErrorNumber' type='typedef'/>
|
||||
<exports symbol='virError' type='typedef'/>
|
||||
<exports symbol='_virError' type='struct'/>
|
||||
<exports symbol='virCopyLastError' type='function'/>
|
||||
<exports symbol='virConnSetErrorFunc' type='function'/>
|
||||
<exports symbol='virResetLastError' type='function'/>
|
||||
<exports symbol='virErrorFunc' type='function'/>
|
||||
<exports symbol='virResetError' type='function'/>
|
||||
<exports symbol='virConnGetLastError' type='function'/>
|
||||
<exports symbol='virDefaultErrorFunc' type='function'/>
|
||||
<exports symbol='virGetLastError' type='function'/>
|
||||
<exports symbol='virSetErrorFunc' type='function'/>
|
||||
<exports symbol='virConnCopyLastError' type='function'/>
|
||||
<exports symbol='virConnResetLastError' type='function'/>
|
||||
</file>
|
||||
</files>
|
||||
<symbols>
|
||||
<macro name='LIBVIR_VERSION_NUMBER' file='libvirt'>
|
||||
<info>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</info>
|
||||
</macro>
|
||||
<macro name='VIR_COPY_CPUMAP' file='libvirt'>
|
||||
<info>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.</info>
|
||||
<arg name='cpumaps' info='pointer to an array of cpumap (in 8-bit bytes) (IN)'/>
|
||||
<arg name='maplen' info='the length (in bytes) of one cpumap'/>
|
||||
<arg name='vcpu' info='the virtual CPU number'/>
|
||||
<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 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 & all physical CPUs of a domain.</info>
|
||||
<arg name='cpu' info='number of physical CPUs'/>
|
||||
</macro>
|
||||
<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>
|
||||
<arg name='cpumaps' info='pointer to an array of cpumap (in 8-bit bytes) (IN)'/>
|
||||
<arg name='maplen' info='the length (in bytes) of one cpumap'/>
|
||||
<arg name='vcpu' info='the virtual CPU number'/>
|
||||
<arg name='cpu' info='the physical CPU number'/>
|
||||
</macro>
|
||||
<macro name='VIR_GET_CPUMAP' file='libvirt'>
|
||||
<info>This macro is to be used in conjonction with virDomainGetVcpus() and virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the cpumap of the specified vcpu from cpumaps array.</info>
|
||||
<arg name='cpumaps' info='pointer to an array of cpumap (in 8-bit bytes) (IN)'/>
|
||||
<arg name='maplen' info='the length (in bytes) of one cpumap'/>
|
||||
<arg name='vcpu' info='the virtual CPU number'/>
|
||||
</macro>
|
||||
<macro name='VIR_NODEINFO_MAXCPUS' file='libvirt'>
|
||||
<info>This macro is to calculate the total number of CPUs supported but not neccessarily active in the host.</info>
|
||||
<arg name='nodeinfo' info='virNodeInfo instance'/>
|
||||
</macro>
|
||||
<macro name='VIR_UNUSE_CPU' file='libvirt'>
|
||||
<info>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.</info>
|
||||
<arg name='cpumap' info='pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)'/>
|
||||
<arg name='cpu' info='the physical CPU number'/>
|
||||
</macro>
|
||||
<macro name='VIR_USE_CPU' file='libvirt'>
|
||||
<info>This macro is to be used in conjonction with virDomainPinVcpu() API. USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.</info>
|
||||
<arg name='cpumap' info='pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)'/>
|
||||
<arg name='cpu' info='the physical CPU number'/>
|
||||
</macro>
|
||||
<enum name='VIR_DEVICE_DEFAULT' file='libvirt' value='0' type='virDeviceMode' info='Default mode'/>
|
||||
<enum name='VIR_DEVICE_RO' file='libvirt' value='1' type='virDeviceMode' info='Access read-only'/>
|
||||
<enum name='VIR_DEVICE_RW' file='libvirt' value='2' type='virDeviceMode' info='Access read-write'/>
|
||||
@@ -83,6 +217,51 @@
|
||||
<enum name='VIR_DOMAIN_RUNNING' file='libvirt' value='1' type='virDomainState' info='the domain is running'/>
|
||||
<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_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_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_GET_FAILED' file='virterror' value='10' type='virErrorNumber' info='a HTTP GET command to failed'/>
|
||||
<enum name='VIR_ERR_HTTP_ERROR' file='virterror' value='12' type='virErrorNumber' info='unexpected HTTP error code'/>
|
||||
<enum name='VIR_ERR_INTERNAL_ERROR' file='virterror' value='1' type='virErrorNumber' info='internal error'/>
|
||||
<enum name='VIR_ERR_INVALID_ARG' file='virterror' value='8' type='virErrorNumber' info='invalid function argument'/>
|
||||
<enum name='VIR_ERR_INVALID_CONN' file='virterror' value='6' type='virErrorNumber' info='invalid connection object'/>
|
||||
<enum name='VIR_ERR_INVALID_DOMAIN' file='virterror' value='7' type='virErrorNumber' info='invalid domain object'/>
|
||||
<enum name='VIR_ERR_NONE' file='virterror' value='0' type='virErrorLevel'/>
|
||||
<enum name='VIR_ERR_NO_CONNECT' file='virterror' value='5' type='virErrorNumber' info='can't connect to hypervisor'/>
|
||||
<enum name='VIR_ERR_NO_DEVICE' file='virterror' value='23' type='virErrorNumber' info='missing domain devices information'/>
|
||||
<enum name='VIR_ERR_NO_KERNEL' file='virterror' value='17' type='virErrorNumber' info='missing kernel information'/>
|
||||
<enum name='VIR_ERR_NO_MEMORY' file='virterror' value='2' type='virErrorNumber' info='memory allocation failure'/>
|
||||
<enum name='VIR_ERR_NO_NAME' file='virterror' value='21' type='virErrorNumber' info='missing domain name information'/>
|
||||
<enum name='VIR_ERR_NO_OS' file='virterror' value='22' type='virErrorNumber' info='missing domain OS information'/>
|
||||
<enum name='VIR_ERR_NO_ROOT' file='virterror' value='18' type='virErrorNumber' info='missing root device information'/>
|
||||
<enum name='VIR_ERR_NO_SOURCE' file='virterror' value='19' type='virErrorNumber' info='missing source device information'/>
|
||||
<enum name='VIR_ERR_NO_SUPPORT' file='virterror' value='3' type='virErrorNumber' info='no support for this connection'/>
|
||||
<enum name='VIR_ERR_NO_TARGET' file='virterror' value='20' type='virErrorNumber' info='missing target device information'/>
|
||||
<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_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_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_SEXPR_SERIAL' file='virterror' value='13' type='virErrorNumber' info='failure to serialize an S-Expr'/>
|
||||
<enum name='VIR_ERR_UNKNOWN_HOST' file='virterror' value='4' type='virErrorNumber' info='could not resolve hostname'/>
|
||||
<enum name='VIR_ERR_WARNING' file='virterror' value='1' type='virErrorLevel' info='A simple warning'/>
|
||||
<enum name='VIR_ERR_XEN_CALL' file='virterror' value='15' type='virErrorNumber' info='failure doing an hypervisor call'/>
|
||||
<enum name='VIR_ERR_XML_ERROR' file='virterror' value='27' type='virErrorNumber' info='an XML description is not well formed or broken'/>
|
||||
<enum name='VIR_FROM_DOM' file='virterror' value='6' type='virErrorDomain' info='Error when operating on a domain'/>
|
||||
<enum name='VIR_FROM_NONE' file='virterror' value='0' type='virErrorDomain'/>
|
||||
<enum name='VIR_FROM_PROXY' file='virterror' value='8' type='virErrorDomain' info=' Error in the proxy code'/>
|
||||
<enum name='VIR_FROM_RPC' file='virterror' value='7' type='virErrorDomain' info='Error in the XML-RPC code'/>
|
||||
<enum name='VIR_FROM_SEXPR' file='virterror' value='4' type='virErrorDomain' info='Error in the S-Epression code'/>
|
||||
<enum name='VIR_FROM_XEN' file='virterror' value='1' type='virErrorDomain' info='Error at Xen hypervisor layer'/>
|
||||
<enum name='VIR_FROM_XEND' file='virterror' value='2' type='virErrorDomain' info='Error at connection with xend daemon'/>
|
||||
<enum name='VIR_FROM_XENSTORE' file='virterror' value='3' type='virErrorDomain' info='Error at connection with xen store'/>
|
||||
<enum name='VIR_FROM_XML' file='virterror' value='5' type='virErrorDomain' info='Error in the XML code'/>
|
||||
<enum name='VIR_VCPU_BLOCKED' file='libvirt' value='2' type='virVcpuState' info=' the virtual CPU is blocked on resource'/>
|
||||
<enum name='VIR_VCPU_OFFLINE' file='libvirt' value='0' type='virVcpuState' info='the virtual CPU is offline'/>
|
||||
<enum name='VIR_VCPU_RUNNING' file='libvirt' value='1' type='virVcpuState' info='the virtual CPU is running'/>
|
||||
<struct name='virConnect' file='libvirt' type='struct _virConnect'/>
|
||||
<typedef name='virConnectPtr' file='libvirt' type='virConnect *'>
|
||||
<info>a virConnectPtr is pointer to a virConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.</info>
|
||||
@@ -94,14 +273,8 @@
|
||||
<field name='state' type='unsigned char' info=' the running state, one of virDomainFlags'/>
|
||||
<field name='maxMem' type='unsigned long' info=' the maximum memory in KBytes allowed'/>
|
||||
<field name='memory' type='unsigned long' info=' the memory in KBytes used by the domain'/>
|
||||
<field name='nrVirtCpu' type='unsigned short' info='* Informations below are only available to clients with a connection
|
||||
* with full access to the hypervisor
|
||||
*'/>
|
||||
<field name='cpuTime' type='unsigned long long' info='* TODO:
|
||||
* - check what can be extracted publicly from xenstore
|
||||
* and what's private limited to the hypervisor call.
|
||||
* - add padding to this structure for ABI long term protection
|
||||
*'/>
|
||||
<field name='nrVirtCpu' type='unsigned short' info=' the number of virtual CPUs for the domain'/>
|
||||
<field name='cpuTime' type='unsigned long long' info=' the CPU time used in nanoseconds'/>
|
||||
</struct>
|
||||
<typedef name='virDomainInfoPtr' file='libvirt' type='virDomainInfo *'>
|
||||
<info>a virDomainInfoPtr is a pointer to a virDomainInfo structure.</info>
|
||||
@@ -120,6 +293,67 @@
|
||||
</typedef>
|
||||
<typedef name='virDomainRestart' file='libvirt' type='enum'/>
|
||||
<typedef name='virDomainState' file='libvirt' type='enum'/>
|
||||
<struct name='virError' file='virterror' type='struct _virError'>
|
||||
<field name='code' type='int' info=' The error code, a virErrorNumber'/>
|
||||
<field name='domain' type='int' info=' What part of the library raised this error'/>
|
||||
<field name='message' type='char *' info=' human-readable informative error message'/>
|
||||
<field name='level' type='virErrorLevel' info=' how consequent is the error'/>
|
||||
<field name='conn' type='virConnectPtr' info=' the connection if available'/>
|
||||
<field name='dom' type='virDomainPtr' info=' the domain if available'/>
|
||||
<field name='str1' type='char *' info=' extra string information'/>
|
||||
<field name='str2' type='char *' info=' extra string information'/>
|
||||
<field name='str3' type='char *' info=' extra string information'/>
|
||||
<field name='int1' type='int' info=' extra number information'/>
|
||||
<field name='int2' type='int' info=' extra number information'/>
|
||||
</struct>
|
||||
<typedef name='virErrorDomain' file='virterror' type='enum'/>
|
||||
<typedef name='virErrorLevel' file='virterror' type='enum'/>
|
||||
<typedef name='virErrorNumber' file='virterror' type='enum'/>
|
||||
<typedef name='virErrorPtr' file='virterror' type='virError *'/>
|
||||
<struct name='virNodeInfo' file='libvirt' type='struct _virNodeInfo'>
|
||||
<field name='model' type='charmodel[32]' info=' string indicating the CPU model'/>
|
||||
<field name='memory' type='unsigned long' info=' memory size in kilobytes'/>
|
||||
<field name='cpus' type='unsigned int' info=' the number of active CPUs'/>
|
||||
<field name='mhz' type='unsigned int' info=' expected CPU frequency'/>
|
||||
<field name='nodes' type='unsigned int' info=' the number of NUMA cell, 1 for uniform mem access'/>
|
||||
<field name='sockets' type='unsigned int' info=' number of CPU socket per node'/>
|
||||
<field name='cores' type='unsigned int' info=' number of core per socket'/>
|
||||
<field name='threads' type='unsigned int' info=' number of threads per core'/>
|
||||
</struct>
|
||||
<typedef name='virNodeInfoPtr' file='libvirt' type='virNodeInfo *'>
|
||||
<info>a virNodeInfoPtr is a pointer to a virNodeInfo structure.</info>
|
||||
</typedef>
|
||||
<struct name='virVcpuInfo' file='libvirt' type='struct _virVcpuInfo'>
|
||||
<field name='number' type='unsigned int' info=' virtual CPU number'/>
|
||||
<field name='state' type='int' info=' value from virVcpuState'/>
|
||||
<field name='cpuTime' type='unsigned long long' info=' CPU time used, in nanoseconds'/>
|
||||
<field name='cpu' type='int' info=' real CPU number, or -1 if offline'/>
|
||||
</struct>
|
||||
<typedef name='virVcpuInfoPtr' file='libvirt' type='virVcpuInfo *'/>
|
||||
<typedef name='virVcpuState' file='libvirt' type='enum'/>
|
||||
<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>
|
||||
<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>
|
||||
<return type='virErrorPtr' info='a pointer to the last error or NULL if none occured.'/>
|
||||
<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>
|
||||
<return type='void'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
</function>
|
||||
<function name='virConnSetErrorFunc' file='virterror' module='virterror'>
|
||||
<info>Set a connection error handling function, if @handler is NULL it will reset to default which is to pass error back to the global library handler.</info>
|
||||
<return type='void'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='userData' type='void *' info='pointer to the user data provided in the handler callback'/>
|
||||
<arg name='handler' type='virErrorFunc' info='the function to get called in case of error or NULL'/>
|
||||
</function>
|
||||
<function name='virConnectClose' file='libvirt' module='libvirt'>
|
||||
<info>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</info>
|
||||
<return type='int' info='0 in case of success or -1 in case of error.'/>
|
||||
@@ -136,6 +370,13 @@
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='hvVer' type='unsigned long *' info='return value for the version of the running hypervisor (OUT)'/>
|
||||
</function>
|
||||
<function name='virConnectListDefinedDomains' file='libvirt' module='libvirt'>
|
||||
<info>list the defined domains, stores the pointers to the names in @names</info>
|
||||
<return type='int' info='the number of names provided in the array or -1 in case of error'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='names' type='const char **' info='pointer to an array to store the names'/>
|
||||
<arg name='maxnames' type='int' info='size of the array'/>
|
||||
</function>
|
||||
<function name='virConnectListDomains' file='libvirt' module='libvirt'>
|
||||
<info>Collect the list of active domains, and store their ID in @maxids</info>
|
||||
<return type='int' info='the number of domain found or -1 in case of error'/>
|
||||
@@ -158,16 +399,34 @@
|
||||
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error'/>
|
||||
<arg name='name' type='const char *' info='optional argument currently unused, pass NULL'/>
|
||||
</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>
|
||||
<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>
|
||||
<function name='virDefaultErrorFunc' file='virterror' module='virterror'>
|
||||
<info>Default routine reporting an error to stderr.</info>
|
||||
<return type='void'/>
|
||||
<arg name='err' type='virErrorPtr' info='pointer to the error.'/>
|
||||
</function>
|
||||
<function name='virDomainCreate' file='libvirt' module='libvirt'>
|
||||
<info>launch a defined domain. If the call succeed the domain moves from the defined to the running domains pools.</info>
|
||||
<return type='int' info='0 in case of success, -1 in case of error'/>
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to a defined domain'/>
|
||||
</function>
|
||||
<function name='virDomainCreateLinux' file='libvirt' module='libvirt'>
|
||||
<info>Launch a new Linux guest domain, unimplemented yet, API to be defined. This would function requires priviledged access to the hypervisor.</info>
|
||||
<info>Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires priviledged access to the hypervisor.</info>
|
||||
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='kernel_path' type='const char *' info='the file path to the kernel image'/>
|
||||
<arg name='initrd_path' type='const char *' info='an optional file path to an initrd'/>
|
||||
<arg name='cmdline' type='const char *' info='optional command line parameters for the kernel'/>
|
||||
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
||||
<arg name='xmlDesc' type='const char *' info='an XML description of the domain'/>
|
||||
<arg name='flags' type='unsigned int' info='an optional set of virDomainFlags'/>
|
||||
</function>
|
||||
<function name='virDomainDefineXML' file='libvirt' module='libvirt'>
|
||||
<info>define a domain, but does not start it</info>
|
||||
<return type='virDomainPtr' info='NULL in case of error, a pointer to the domain otherwise'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='xml' type='const char *' info='the XML description for the domain, preferably in UTF-8'/>
|
||||
</function>
|
||||
<function name='virDomainDestroy' file='libvirt' module='libvirt'>
|
||||
<info>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
@@ -184,7 +443,7 @@
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='virDomainGetInfo' file='libvirt' module='libvirt'>
|
||||
<info>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the informations can be extracted.</info>
|
||||
<info>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
<arg name='info' type='virDomainInfoPtr' info='pointer to a virDomainInfo structure allocated by the user'/>
|
||||
@@ -201,11 +460,32 @@
|
||||
</function>
|
||||
<function name='virDomainGetOSType' file='libvirt' module='libvirt'>
|
||||
<info>Get the type of domain operation system.</info>
|
||||
<return type='char *' info='the new string or NULL in case of error'/>
|
||||
<return type='char *' info='the new string or NULL in case of error, the string must be freed by the caller.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='virDomainGetXMLDesc' file='libvirt' module='xml'>
|
||||
<info>Provide an XML description of the domain. NOTE: this API is subject to changes.</info>
|
||||
<function name='virDomainGetUUID' file='libvirt' module='libvirt'>
|
||||
<info>Get the UUID for a domain</info>
|
||||
<return type='int' info='-1 in case of error, 0 in case of success'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
<arg name='uuid' type='unsigned char *' info='pointer to a 16 bytes array'/>
|
||||
</function>
|
||||
<function name='virDomainGetUUIDString' file='libvirt' module='libvirt'>
|
||||
<info>Get the UUID for a domain as string. For more information about UUID see RFC4122.</info>
|
||||
<return type='int' info='-1 in case of error, 0 in case of success'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
<arg name='buf' type='char *' info='pointer to a 37 bytes array'/>
|
||||
</function>
|
||||
<function name='virDomainGetVcpus' file='libvirt' module='libvirt'>
|
||||
<info>Extract information about virtual CPUs of domain, store it in info array and also in cpumaps if this pointer is'nt NULL.</info>
|
||||
<return type='int' info='the number of info filled in case of success, -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to domain object, or NULL for Domain0'/>
|
||||
<arg name='info' type='virVcpuInfoPtr' info='pointer to an array of virVcpuInfo structures (OUT)'/>
|
||||
<arg name='maxinfo' type='int' info='number of structures in info array'/>
|
||||
<arg name='cpumaps' type='unsigned char *' info='pointer to an bit map of real CPUs for all vcpus of this domain (in 8-bit bytes) (OUT) If cpumaps is NULL, then no cupmap information is returned by the API. It's assumed there is <maxinfo> cpumap in cpumaps array. The memory allocated to cpumaps must be (maxinfo * maplen) bytes (ie: calloc(maxinfo, maplen)). One cpumap inside cpumaps has the format described in virDomainPinVcpu() API.'/>
|
||||
<arg name='maplen' type='int' info='number of bytes in one cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...).'/>
|
||||
</function>
|
||||
<function name='virDomainGetXMLDesc' file='libvirt' module='libvirt'>
|
||||
<info>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</info>
|
||||
<return type='char *' info='a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
<arg name='flags' type='int' info='and OR'ed set of extraction flags, not used yet'/>
|
||||
@@ -222,6 +502,32 @@
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='name' type='const char *' info='name for the domain'/>
|
||||
</function>
|
||||
<function name='virDomainLookupByUUID' file='libvirt' module='libvirt'>
|
||||
<info>Try to lookup a domain on the given hypervisor based on its UUID.</info>
|
||||
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='uuid' type='const unsigned char *' info='the raw UUID for the domain'/>
|
||||
</function>
|
||||
<function name='virDomainLookupByUUIDString' file='libvirt' module='libvirt'>
|
||||
<info>Try to lookup a domain on the given hypervisor based on its UUID.</info>
|
||||
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='uuidstr' type='const char *' info='the string UUID for the domain'/>
|
||||
</function>
|
||||
<function name='virDomainPinVcpu' file='libvirt' module='libvirt'>
|
||||
<info>Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires priviledged access to the hypervisor.</info>
|
||||
<return type='int' info='0 in case of success, -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to domain object, or NULL for Domain0'/>
|
||||
<arg name='vcpu' type='unsigned int' info='virtual CPU number'/>
|
||||
<arg name='cpumap' type='unsigned char *' info='pointer to a bit map of real CPUs (in 8-bit bytes) (IN) Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.'/>
|
||||
<arg name='maplen' type='int' info='number of bytes in cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...). If maplen < size, missing bytes are set to zero. If maplen > size, failure code is returned.'/>
|
||||
</function>
|
||||
<function name='virDomainReboot' file='libvirt' module='libvirt'>
|
||||
<info>Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<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='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.'/>
|
||||
@@ -245,6 +551,18 @@
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object or NULL'/>
|
||||
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
||||
</function>
|
||||
<function name='virDomainSetMemory' file='libvirt' module='libvirt'>
|
||||
<info>Dynamically change the target amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function may requires priviledged access to the hypervisor.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object or NULL'/>
|
||||
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
||||
</function>
|
||||
<function name='virDomainSetVcpus' file='libvirt' module='libvirt'>
|
||||
<info>Dynamically change the number of virtual CPUs used by the domain. Note that this call may fail if the underlying virtualization hypervisor does not support it or if growing the number is arbitrary limited. This function requires priviledged access to the hypervisor.</info>
|
||||
<return type='int' info='0 in case of success, -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to domain object, or NULL for Domain0'/>
|
||||
<arg name='nvcpus' type='unsigned int' info='the new number of virtual CPUs for this domain'/>
|
||||
</function>
|
||||
<function name='virDomainShutdown' file='libvirt' module='libvirt'>
|
||||
<info>Shutdown a domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
@@ -255,12 +573,52 @@
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='virDomainUndefine' file='libvirt' module='libvirt'>
|
||||
<info>undefine a domain but does not stop it if it is running</info>
|
||||
<return type='int' info='0 in case of success, -1 in case of error'/>
|
||||
<arg name='domain' type='virDomainPtr' info='pointer to a defined domain'/>
|
||||
</function>
|
||||
<functype name='virErrorFunc' file='virterror' module='virterror'>
|
||||
<info>Signature of a function to use when there is an error raised by the library.</info>
|
||||
<return type='void'/>
|
||||
<arg name='userData' type='void *' info='user provided data for the error callback'/>
|
||||
<arg name='error' type='virErrorPtr' info='the error being raised.'/>
|
||||
</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>
|
||||
<return type='virErrorPtr' info='a pointer to the last error or NULL if none occured.'/>
|
||||
</function>
|
||||
<function name='virGetVersion' file='libvirt' module='libvirt'>
|
||||
<info>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not availble, an error code will be returned and @typeVer will be 0.</info>
|
||||
<return type='int' info='-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.'/>
|
||||
<arg name='libVer' type='unsigned long *' info='return value for the library version (OUT)'/>
|
||||
<arg name='type' type='const char *' info='hypervisor type'/>
|
||||
<arg name='type' type='const char *' info='the type of connection/driver looked at'/>
|
||||
<arg name='typeVer' type='unsigned long *' info='return value for the version of the hypervisor (OUT)'/>
|
||||
</function>
|
||||
<function name='virInitialize' file='libvirt' module='libvirt'>
|
||||
<info>Initialize the library. It's better to call this routine at startup in multithreaded applications to avoid potential race when initializing the library.</info>
|
||||
<return type='int' info='0 in case of success, -1 in case of error'/>
|
||||
</function>
|
||||
<function name='virNodeGetInfo' file='libvirt' module='libvirt'>
|
||||
<info>Extract hardware information about the node.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='info' type='virNodeInfoPtr' info='pointer to a virNodeInfo structure allocated by the user'/>
|
||||
</function>
|
||||
<function name='virResetError' file='virterror' module='virterror'>
|
||||
<info>Reset the error being pointed to</info>
|
||||
<return type='void'/>
|
||||
<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>
|
||||
<return type='void'/>
|
||||
</function>
|
||||
<function name='virSetErrorFunc' file='virterror' module='virterror'>
|
||||
<info>Set a library global error handling function, if @handler is NULL, it will reset to default printing on stderr. The error raised there are those for which no handler at the connection level could caught.</info>
|
||||
<return type='void'/>
|
||||
<arg name='userData' type='void *' info='pointer to the user data provided in the handler callback'/>
|
||||
<arg name='handler' type='virErrorFunc' info='the function to get called in case of error or NULL'/>
|
||||
</function>
|
||||
</symbols>
|
||||
</api>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -38,7 +38,7 @@ img
|
||||
#pageHeader
|
||||
{
|
||||
position: absolute;
|
||||
background: url(libvirHeader.png) center no-repeat;
|
||||
background: url(libvirtHeader.png) center no-repeat;
|
||||
top: 30px;
|
||||
height: 76px;
|
||||
width: 766px;
|
||||
@@ -70,7 +70,7 @@ img
|
||||
{
|
||||
font-size: 11px;
|
||||
height: 300px;
|
||||
background: url(libvirLogo.png) center no-repeat;
|
||||
background: url(libvirtLogo.png) center no-repeat;
|
||||
margin: 0;
|
||||
width: 766px;
|
||||
}
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<api name='libxen'>
|
||||
<files>
|
||||
<file name='libxen'>
|
||||
<exports symbol='XEN_DOMAIN_NONE' type='enum'/>
|
||||
<exports symbol='xenDomain' type='typedef'/>
|
||||
<exports symbol='xenDomainFlags' type='typedef'/>
|
||||
<exports symbol='xenConnectPtr' type='typedef'/>
|
||||
<exports symbol='xenDomainPtr' type='typedef'/>
|
||||
<exports symbol='xenConnect' type='typedef'/>
|
||||
<exports symbol='xenDomainResume' type='function'/>
|
||||
<exports symbol='xenDomainLookupByID' type='function'/>
|
||||
<exports symbol='xenConnectOpenReadOnly' type='function'/>
|
||||
<exports symbol='xenDomainGetName' type='function'/>
|
||||
<exports symbol='xenDomainGetMaxMemory' type='function'/>
|
||||
<exports symbol='xenDomainGetID' type='function'/>
|
||||
<exports symbol='xenConnectOpen' type='function'/>
|
||||
<exports symbol='xenDomainSetMaxMemory' type='function'/>
|
||||
<exports symbol='xenDomainDestroy' type='function'/>
|
||||
<exports symbol='xenDomainSuspend' type='function'/>
|
||||
<exports symbol='xenConnectClose' type='function'/>
|
||||
<exports symbol='xenDomainCreateLinux' type='function'/>
|
||||
<exports symbol='xenDomainLookupByName' type='function'/>
|
||||
<exports symbol='xenConnectGetVersion' type='function'/>
|
||||
</file>
|
||||
<file name='internal'>
|
||||
<exports symbol='ATTRIBUTE_UNUSED' type='macro'/>
|
||||
<exports symbol='TODO' type='macro'/>
|
||||
</file>
|
||||
</files>
|
||||
<symbols>
|
||||
<macro name='ATTRIBUTE_UNUSED' file='internal'>
|
||||
<info>Macro to flag conciously unused parameters to functions</info>
|
||||
</macro>
|
||||
<macro name='TODO' file='internal'>
|
||||
<info>macro to flag unimplemented blocks</info>
|
||||
</macro>
|
||||
<enum name='XEN_DOMAIN_NONE' file='libxen' value='0' type='xenDomainFlags'/>
|
||||
<struct name='xenConnect' file='libxen' type='struct _xenConnect'/>
|
||||
<typedef name='xenConnectPtr' file='libxen' type='xenConnect *'>
|
||||
<info>a xenConnectPtr is pointer to a xenConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.</info>
|
||||
</typedef>
|
||||
<struct name='xenDomain' file='libxen' type='struct _xenDomain'/>
|
||||
<typedef name='xenDomainFlags' file='libxen' type='enum'/>
|
||||
<typedef name='xenDomainPtr' file='libxen' type='xenDomain *'>
|
||||
<info>a xenDomainPtr is pointer to a xenDomain private structure, this is the type used to reference a Xen domain in the API.</info>
|
||||
</typedef>
|
||||
<function name='xenConnectClose' file='libxen' module='libxen'>
|
||||
<info>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</info>
|
||||
<return type='int' info='0 in case of success or -1 in case of error.'/>
|
||||
<arg name='conn' type='xenConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
</function>
|
||||
<function name='xenConnectGetVersion' file='libxen' module='libxen'>
|
||||
<info>Get the version level of the Hypervisor running.</info>
|
||||
<return type='unsigned long' info='-1 in case of error or major * 10,000 + minor * 100 + rev otherwise'/>
|
||||
<arg name='conn' type='xenConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
</function>
|
||||
<function name='xenConnectOpen' file='libxen' module='libxen'>
|
||||
<info>This function should be called first to get a connection to the Hypervisor and xen store</info>
|
||||
<return type='xenConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error'/>
|
||||
<arg name='name' type='const char *' info='optional argument currently unused, pass NULL'/>
|
||||
</function>
|
||||
<function name='xenConnectOpenReadOnly' file='libxen' module='libxen'>
|
||||
<info>This function should be called first to get a read-only connection to the xen store. The set of APIs usable are then restricted.</info>
|
||||
<return type='xenConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error'/>
|
||||
<arg name='name' type='const char *' info='optional argument currently unused, pass NULL'/>
|
||||
</function>
|
||||
<function name='xenDomainCreateLinux' file='libxen' module='libxen'>
|
||||
<info>Launch a new Linux guest domain</info>
|
||||
<return type='xenDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='xenConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='kernel_path' type='const char *' info='the file path to the kernel image'/>
|
||||
<arg name='initrd_path' type='const char *' info='an optional file path to an initrd'/>
|
||||
<arg name='cmdline' type='const char *' info='optional command line parameters for the kernel'/>
|
||||
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
||||
<arg name='flags' type='unsigned int' info='an optional set of xenDomainFlags'/>
|
||||
</function>
|
||||
<function name='xenDomainDestroy' file='libxen' module='libxen'>
|
||||
<info>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='xenDomainGetID' file='libxen' module='libxen'>
|
||||
<info>Get the hypervisor ID number for the domain</info>
|
||||
<return type='unsigned int' info='the domain ID number or (unsigned int) -1 in case of error'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='xenDomainGetMaxMemory' file='libxen' module='libxen'>
|
||||
<info>Retrieve the maximum amount of physical memory allocated to a domain. If domain is NULL, then this get the amount of memory reserved to Domain0 i.e. the domain where the application runs.</info>
|
||||
<return type='unsigned long' info='the memory size in kilobytes or 0 in case of error.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object or NULL'/>
|
||||
</function>
|
||||
<function name='xenDomainGetName' file='libxen' module='libxen'>
|
||||
<info>Get the public name for that domain</info>
|
||||
<return type='const char *' info='a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the domain object.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='xenDomainLookupByID' file='libxen' module='libxen'>
|
||||
<info>Try to find a domain based on the hypervisor ID number</info>
|
||||
<return type='xenDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='xenConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='id' type='int' info='the domain ID number'/>
|
||||
</function>
|
||||
<function name='xenDomainLookupByName' file='libxen' module='libxen'>
|
||||
<info>Try to lookup a domain on the given hypervisor</info>
|
||||
<return type='xenDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='xenConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='name' type='const char *' info='name for the domain'/>
|
||||
</function>
|
||||
<function name='xenDomainResume' file='libxen' module='libxen'>
|
||||
<info>Resume an suspended domain, the process is restarted from the state where it was frozen by calling xenSuspendDomain().</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='xenDomainSetMaxMemory' file='libxen' module='libxen'>
|
||||
<info>Dynamically change the maximum amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object or NULL'/>
|
||||
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
||||
</function>
|
||||
<function name='xenDomainSuspend' file='libxen' module='libxen'>
|
||||
<info>Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use xenDomainResume() to reactivate the domain.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
<arg name='domain' type='xenDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
</symbols>
|
||||
</api>
|
||||
@@ -1,741 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<apirefs name='libxen'>
|
||||
<references>
|
||||
<reference name='ATTRIBUTE_UNUSED' href='html/libxen-internal.html#ATTRIBUTE_UNUSED'/>
|
||||
<reference name='TODO' href='html/libxen-internal.html#TODO'/>
|
||||
<reference name='XEN_DOMAIN_NONE' href='html/libxen-libxen.html#XEN_DOMAIN_NONE'/>
|
||||
<reference name='xenConnect' href='html/libxen-libxen.html#xenConnect'/>
|
||||
<reference name='xenConnectClose' href='html/libxen-libxen.html#xenConnectClose'/>
|
||||
<reference name='xenConnectGetVersion' href='html/libxen-libxen.html#xenConnectGetVersion'/>
|
||||
<reference name='xenConnectOpen' href='html/libxen-libxen.html#xenConnectOpen'/>
|
||||
<reference name='xenConnectOpenReadOnly' href='html/libxen-libxen.html#xenConnectOpenReadOnly'/>
|
||||
<reference name='xenConnectPtr' href='html/libxen-libxen.html#xenConnectPtr'/>
|
||||
<reference name='xenDomain' href='html/libxen-libxen.html#xenDomain'/>
|
||||
<reference name='xenDomainCreateLinux' href='html/libxen-libxen.html#xenDomainCreateLinux'/>
|
||||
<reference name='xenDomainDestroy' href='html/libxen-libxen.html#xenDomainDestroy'/>
|
||||
<reference name='xenDomainFlags' href='html/libxen-libxen.html#xenDomainFlags'/>
|
||||
<reference name='xenDomainGetID' href='html/libxen-libxen.html#xenDomainGetID'/>
|
||||
<reference name='xenDomainGetMaxMemory' href='html/libxen-libxen.html#xenDomainGetMaxMemory'/>
|
||||
<reference name='xenDomainGetName' href='html/libxen-libxen.html#xenDomainGetName'/>
|
||||
<reference name='xenDomainLookupByID' href='html/libxen-libxen.html#xenDomainLookupByID'/>
|
||||
<reference name='xenDomainLookupByName' href='html/libxen-libxen.html#xenDomainLookupByName'/>
|
||||
<reference name='xenDomainPtr' href='html/libxen-libxen.html#xenDomainPtr'/>
|
||||
<reference name='xenDomainResume' href='html/libxen-libxen.html#xenDomainResume'/>
|
||||
<reference name='xenDomainSetMaxMemory' href='html/libxen-libxen.html#xenDomainSetMaxMemory'/>
|
||||
<reference name='xenDomainSuspend' href='html/libxen-libxen.html#xenDomainSuspend'/>
|
||||
</references>
|
||||
<alpha>
|
||||
<letter name='A'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
</letter>
|
||||
<letter name='T'>
|
||||
<ref name='TODO'/>
|
||||
</letter>
|
||||
<letter name='X'>
|
||||
<ref name='XEN_DOMAIN_NONE'/>
|
||||
</letter>
|
||||
<letter name='x'>
|
||||
<ref name='xenConnect'/>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenConnectPtr'/>
|
||||
<ref name='xenDomain'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainFlags'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainPtr'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</letter>
|
||||
</alpha>
|
||||
<constructors>
|
||||
<type name='unsigned int'>
|
||||
<ref name='xenDomainGetID'/>
|
||||
</type>
|
||||
<type name='unsigned long'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
</type>
|
||||
<type name='xenConnectPtr'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</type>
|
||||
<type name='xenDomainPtr'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</type>
|
||||
</constructors>
|
||||
<functions>
|
||||
<type name='unsigned int'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</type>
|
||||
<type name='unsigned long'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</type>
|
||||
<type name='xenConnectPtr'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</type>
|
||||
<type name='xenDomainPtr'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</type>
|
||||
</functions>
|
||||
<files>
|
||||
<file name='libxen'>
|
||||
<ref name='XEN_DOMAIN_NONE'/>
|
||||
<ref name='xenConnect'/>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenConnectPtr'/>
|
||||
<ref name='xenDomain'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainFlags'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainPtr'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</file>
|
||||
<file name='internal'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
<ref name='TODO'/>
|
||||
</file>
|
||||
</files>
|
||||
<index>
|
||||
<chunk name='chunk0'>
|
||||
<letter name='A'>
|
||||
<word name='APIs'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='C'>
|
||||
<word name='CPU'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='D'>
|
||||
<word name='Destroy'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='Domain0'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='Dynamically'>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='G'>
|
||||
<word name='Get'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='H'>
|
||||
<word name='Hypervisor'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='L'>
|
||||
<word name='Launch'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='Linux'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='M'>
|
||||
<word name='Macro'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='N'>
|
||||
<word name='NULL'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='R'>
|
||||
<word name='Resume'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='Retrieve'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='S'>
|
||||
<word name='Suspends'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='T'>
|
||||
<word name='This'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='Try'>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='U'>
|
||||
<word name='Use'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='a'>
|
||||
<word name='access'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='active'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='all'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='allocated'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='already'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='amount'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='application'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='are'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='argument'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='b'>
|
||||
<word name='back'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='based'>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
</word>
|
||||
<word name='blocks'>
|
||||
<ref name='TODO'/>
|
||||
</word>
|
||||
<word name='but'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='c'>
|
||||
<word name='called'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='calling'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='case'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='change'>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='closes'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='command'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='conciously'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
</word>
|
||||
<word name='connection'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='currently'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='d'>
|
||||
<word name='deallocated'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='down'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='e'>
|
||||
<word name='error'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
</word>
|
||||
<word name='especially'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='f'>
|
||||
<word name='failure'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='file'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='find'>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
</word>
|
||||
<word name='first'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='flag'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
<ref name='TODO'/>
|
||||
</word>
|
||||
<word name='for'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='from'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='frozen'>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='function'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='functions'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
</word>
|
||||
<word name='further'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='g'>
|
||||
<word name='get'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
</word>
|
||||
<word name='given'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='guest'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='h'>
|
||||
<word name='hypervisor'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='i'>
|
||||
<word name='image'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='initrd'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='instance'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='int'>
|
||||
<ref name='xenDomainGetID'/>
|
||||
</word>
|
||||
<word name='interaction'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='its'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='k'>
|
||||
<word name='kernel'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='kilobytes'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='l'>
|
||||
<word name='level'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='lifetime'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='line'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='lookup'>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='m'>
|
||||
<word name='macro'>
|
||||
<ref name='TODO'/>
|
||||
</word>
|
||||
<word name='major'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
</word>
|
||||
<word name='maximum'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='memory'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='minor'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
</word>
|
||||
<word name='monitoring'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='n'>
|
||||
<word name='name'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='need'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='needed'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='new'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='not'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='number'>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='o'>
|
||||
<word name='object'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainGetID'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='optional'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='otherwise'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='p'>
|
||||
<word name='parameters'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='pass'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='path'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='physical'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='pointer'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainLookupByID'/>
|
||||
<ref name='xenDomainLookupByName'/>
|
||||
</word>
|
||||
<word name='process'>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='public'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
</letter>
|
||||
</chunk>
|
||||
<chunk name='chunk1'>
|
||||
<letter name='r'>
|
||||
<word name='reactivate'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='read-only'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='reserved'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='resources'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='restarted'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='restricted'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='rev'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
</word>
|
||||
<word name='running'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='runs'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='s'>
|
||||
<word name='same'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='set'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='should'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='shutdown'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
</word>
|
||||
<word name='size'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='state'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='stay'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='store'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='string'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='success'>
|
||||
<ref name='xenConnectClose'/>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='suspended'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='t'>
|
||||
<word name='that'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
</word>
|
||||
<word name='then'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='there'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='this'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='u'>
|
||||
<word name='unimplemented'>
|
||||
<ref name='TODO'/>
|
||||
</word>
|
||||
<word name='unsigned'>
|
||||
<ref name='xenDomainGetID'/>
|
||||
</word>
|
||||
<word name='unused'>
|
||||
<ref name='ATTRIBUTE_UNUSED'/>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='usable'>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='used'>
|
||||
<ref name='xenDomainDestroy'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='v'>
|
||||
<word name='version'>
|
||||
<ref name='xenConnectGetVersion'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='w'>
|
||||
<word name='was'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
<word name='where'>
|
||||
<ref name='xenDomainGetMaxMemory'/>
|
||||
<ref name='xenDomainResume'/>
|
||||
<ref name='xenDomainSetMaxMemory'/>
|
||||
</word>
|
||||
<word name='which'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='will'>
|
||||
<ref name='xenDomainGetName'/>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='with'>
|
||||
<ref name='xenConnectClose'/>
|
||||
</word>
|
||||
<word name='without'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
</letter>
|
||||
<letter name='x'>
|
||||
<word name='xen'>
|
||||
<ref name='xenConnectOpen'/>
|
||||
<ref name='xenConnectOpenReadOnly'/>
|
||||
</word>
|
||||
<word name='xenDomainFlags'>
|
||||
<ref name='xenDomainCreateLinux'/>
|
||||
</word>
|
||||
<word name='xenDomainResume'>
|
||||
<ref name='xenDomainSuspend'/>
|
||||
</word>
|
||||
<word name='xenSuspendDomain'>
|
||||
<ref name='xenDomainResume'/>
|
||||
</word>
|
||||
</letter>
|
||||
</chunk>
|
||||
<chunks>
|
||||
<chunk name='chunk0' start='A' end='p'/>
|
||||
<chunk name='chunk1' start='r' end='x'/>
|
||||
</chunks>
|
||||
</index>
|
||||
</apirefs>
|
||||
@@ -1,8 +1,79 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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
|
||||
development of libvir, 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.0.2: Jan 29 2006</h3><ul><li>Update of the documentation, web site redesign (Diana Fong)</li>
|
||||
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.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
|
||||
(Mark McLoughlin), allow to create domains without disk (Mark
|
||||
McLoughlin),</li>
|
||||
<li>improvement: xenDaemonLookupByID from O(n^2) to O(n) (Daniel Berrange),
|
||||
support for fully virtualized guest (Jim Fehlig, DV, Mark McLoughlin)</li>
|
||||
<li>documentation: augmented to cover hvm domains</li>
|
||||
</ul><h3>0.1.2: Jul 3 2006</h3><ul><li>headers include paths fixup</li>
|
||||
<li>proxy mechanism for unpriviledged read-only access by httpu</li>
|
||||
</ul><h3>0.1.1: Jun 21 2006</h3><ul><li>building fixes: ncurses fallback (Jim Fehlig), VPATH builds (Daniel P.
|
||||
Berrange)</li>
|
||||
<li>driver cleanups: new entry points, cleanup of libvirt.c (with Daniel P.
|
||||
Berrange)</li>
|
||||
<li>Cope with API change introduced in Xen changeset 10277</li>
|
||||
<li>new test driver for regression checks (Daniel P. Berrange)</li>
|
||||
<li>improvements: added UUID to XML serialization, buffer usage (Karel
|
||||
Zak), --connect argument to virsh (Daniel P. Berrange),</li>
|
||||
<li>bug fixes: uninitialized memory access in error reporting, S-Expr
|
||||
parsing (Jim Fehlig, Jeremy Katz), virConnectOpen bug, remove a TODO in
|
||||
xs_internal.c</li>
|
||||
<li>documentation: Python examples (David Lutterkort), new Perl binding
|
||||
URL, man page update (Karel Zak)</li>
|
||||
</ul><h3>0.1.0: Apr 10 2006</h3><ul><li>building fixes: --with-xen-distdir option (Ronald Aigner), out of tree
|
||||
build and pkginfo cflag fix (Daniel Berrange)</li>
|
||||
<li>enhancement and fixes of the XML description format (David Lutterkort
|
||||
and Jim Fehlig)</li>
|
||||
<li>new APIs: for Node information and Reboot</li>
|
||||
<li>internal code cleanup: refactoring internals into a driver model, more
|
||||
error handling, structure sharing, thread safety and ref counting</li>
|
||||
<li>bug fixes: error message (Jim Meyering), error allocation in virsh (Jim
|
||||
Meyering), virDomainLookupByID (Jim Fehlig),</li>
|
||||
<li>documentation: updates on architecture, and format, typo fix (Jim
|
||||
Meyering)</li>
|
||||
<li>bindings: exception handling in examples (Jim Meyering), perl ones out
|
||||
of tree (Daniel Berrange)</li>
|
||||
<li>virsh: more options, create, nodeinfo (Karel Zak), renaming of some
|
||||
options (Karel Zak), use stderr only for errors (Karel Zak), man page
|
||||
(Andrew Puch)</li>
|
||||
</ul><h3>0.0.6: Feb 28 2006</h3><ul><li>add UUID lookup and extract API</li>
|
||||
<li>add error handling APIs both synchronous and asynchronous</li>
|
||||
<li>added minimal hook for error handling at the python level, improved the
|
||||
python bindings</li>
|
||||
<li>augment the documentation and tests to cover error handling</li>
|
||||
</ul><h3>0.0.5: Feb 23 2006</h3><ul><li>Added XML description parsing, dependance to libxml2, implemented the
|
||||
creation API virDomainCreateLinux()</li>
|
||||
<li>new APIs to lookup and name domain by UUID</li>
|
||||
<li>fixed the XML dump when using the Xend access</li>
|
||||
<li>Fixed a few more problem related to the name change</li>
|
||||
<li>Adding regression tests in python and examples in C</li>
|
||||
<li>web site improvement, extended the documentation to cover the XML
|
||||
format and Python API</li>
|
||||
<li>Added devhelp help for Gnome/Gtk programmers</li>
|
||||
</ul><h3>0.0.4: Feb 10 2006</h3><ul><li>Fix various bugs introduced in the name change</li>
|
||||
</ul><h3>0.0.3: Feb 9 2006</h3><ul><li>Switch name from from 'libvir' to libvirt</li>
|
||||
<li>Starting infrastructure to add code examples</li>
|
||||
<li>Update of python bindings for completeness</li>
|
||||
</ul><h3>0.0.2: Jan 29 2006</h3><ul><li>Update of the documentation, web site redesign (Diana Fong)</li>
|
||||
<li>integration of HTTP xend RPC based on libxend by Anthony Liquori for
|
||||
most operations</li>
|
||||
<li>Adding Save and Restore APIs</li>
|
||||
@@ -12,4 +83,4 @@ and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p><h3
|
||||
</ul><h3>0.0.1: Dec 19 2005</h3><ul><li>First release</li>
|
||||
<li>Basic management of existing Xen domains</li>
|
||||
<li>Minimal autogenerated Python bindings</li>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvir architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a style="font-weight:bold" href="html/index.html">API Menu</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
||||
53
docs/python.html
Normal file
53
docs/python.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!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>Binding for Python</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Binding for Python</h1><p>Libvirt comes with direct support for the Python language (just make sure
|
||||
you installed the libvirt-python package if not compiling from sources). Also
|
||||
note that Daniel Berrange provides <a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">bindings for Perl</a>
|
||||
too.</p><p>The Python binding should be complete and are mostly automatically
|
||||
generated from the formal description of the API in xml. The bindings are
|
||||
articulated around 2 classes <code>virConnect</code> and virDomain mapping to
|
||||
the C types. Functions in the C API taking either type as argument then
|
||||
becomes methods for the classes, their name is just stripped from the
|
||||
virConnect or virDomain(Get) prefix and the first letter gets converted to
|
||||
lower case, for example the C functions:</p><p><code>int <a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
|
||||
(virConnectPtr conn);</code></p><p><code>int <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
|
||||
(virDomainPtr domain, unsigned long memory);</code></p><p>become</p><p><code>virConn::numOfDomains(self)</code></p><p><code>virDomain::setMaxMemory(self, memory)</code></p><p>This process is fully automated, you can get a summary of the conversion
|
||||
in the file libvirtclass.txt present in the python dir or in the docs.There
|
||||
is a couple of function who don't map directly to their C counterparts due to
|
||||
specificities in their argument conversions:</p><ul><li><code><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>
|
||||
is replaced by <code>virDomain::listDomainsID(self)</code> which returns
|
||||
a list of the integer ID for the currently running domains</li>
|
||||
<li><code><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a></code>
|
||||
is replaced by <code>virDomain::info()</code> which returns a list of
|
||||
<ol><li>state: one of the state values (virDomainState)</li>
|
||||
<li>maxMemory: the maximum memory used by the domain</li>
|
||||
<li>memory: the current amount of memory used by the domain</li>
|
||||
<li>nbVirtCPU: the number of virtual CPU</li>
|
||||
<li>cpuTime: the time used by the domain in nanoseconds</li>
|
||||
</ol></li>
|
||||
</ul><p>So let's look at a simple example inspired from the <code>basic.py</code>
|
||||
test found in <code>python/tests/</code> in the source tree:</p><pre>import <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>
|
||||
import sys
|
||||
|
||||
conn = <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
dom0 = conn.<span style="color: #007F00; background-color: #FFFFFF">lookupByName</span>("Domain-0")
|
||||
except:
|
||||
print 'Failed to find the main domain'
|
||||
sys.exit(1)
|
||||
|
||||
print "Domain 0: id %d running %s" % (dom0.<span style="color: #FF0080; background-color: #FFFFFF">ID</span>(), dom0.<span style="color: #FF0080; background-color: #FFFFFF">OSType</span>())
|
||||
print dom0.<span style="color: #FF0080; background-color: #FFFFFF">info</span>()</pre><p>There is not much to comment about it, it really is a straight mapping
|
||||
from the C API, the only points to notice are:</p><ul><li>the import of the module called <code><span style="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
|
||||
<li>getting a connection to the hypervisor, in that case using the
|
||||
openReadOnly function allows the code to execute as a normal user.</li>
|
||||
<li>getting an object representing the Domain 0 using <span style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
|
||||
<li>if the domain is not found a libvirtError exception will be raised</li>
|
||||
<li>extracting and printing some informations about the domain using
|
||||
various <span style="color: #E50073; background-color: #FFFFFF">methods</span>
|
||||
associated to the virDomain class.</li>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="errors.html">Handling of errors</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!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="libvir.css" />
|
||||
<link rel="stylesheet" type="text/css" href="libvirt.css" />
|
||||
<link rel="SHORTCUT ICON" href="/32favicon.png" />
|
||||
<title>Search the documentation on Libvir.org</title>
|
||||
</head>
|
||||
@@ -28,7 +28,7 @@
|
||||
$scope = "any";
|
||||
|
||||
?>
|
||||
<p> The search service indexes the libvir APIs and documentation as well as the libvir-list@redhat.com mailing-list archives. To use it simply provide a set of keywords:
|
||||
<p> The search service indexes the libvirt APIs and documentation as well as the libvir-list@redhat.com mailing-list archives. To use it simply provide a set of keywords:
|
||||
<p>
|
||||
<form action="<?php echo "$PHP_SELF", "?query=", rawurlencode($query) ?>"
|
||||
enctype="application/x-www-form-urlencoded" method="GET">
|
||||
@@ -91,7 +91,7 @@
|
||||
$result = NULL;
|
||||
$j = 0;
|
||||
if ($word) {
|
||||
$result = mysql_query ("SELECT wordsArchive.relevance, wordsArchive.name, 'xml-list', archives.resource, archives.title FROM wordsArchive, archives WHERE LCASE(wordsArchive.name) LIKE LCASE('$word') and wordsArchive.ID = archives.ID ORDER BY relevance DESC LIMIT 75");
|
||||
$result = mysql_query ("SELECT wordsArchive.relevance, wordsArchive.name, 'libvir-list', archives.resource, archives.title FROM wordsArchive, archives WHERE LCASE(wordsArchive.name) LIKE LCASE('$word') and wordsArchive.ID = archives.ID ORDER BY relevance DESC LIMIT 75");
|
||||
if ($result) {
|
||||
$j = mysql_num_rows($result);
|
||||
if ($j == 0)
|
||||
@@ -135,7 +135,7 @@
|
||||
} else {
|
||||
$id = $name;
|
||||
$m = strtolower($module);
|
||||
$url = "html/libvir-$module.html#$id";
|
||||
$url = "html/libvirt-$module.html#$id";
|
||||
$results[$name] = array($relevance,$type,
|
||||
$module, $desc, $name, $url);
|
||||
}
|
||||
@@ -180,7 +180,7 @@
|
||||
$id = $name;
|
||||
$m = strtolower($module);
|
||||
$u = str_replace(
|
||||
"http://mail.gnome.org/archives/xml/", "", $url);
|
||||
"http://www.redhat.com/archives/libvir-list/", "", $url);
|
||||
$results[$url] = array($relevance,$type,
|
||||
$u, $desc, $name, $url);
|
||||
}
|
||||
@@ -207,7 +207,7 @@
|
||||
} else {
|
||||
$id = $name;
|
||||
$m = strtolower($module);
|
||||
$url = "html/libvir-$module.html#$id";
|
||||
$url = "html/libvirt-$module.html#$id";
|
||||
$results[$name] = array($relevance,$type,
|
||||
$module, $desc, $name, $url);
|
||||
}
|
||||
@@ -258,7 +258,7 @@
|
||||
<a href="intro.html">Introduction</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="architecture.html">libvir architecture</a>
|
||||
<a href="architecture.html">libvirt architecture</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="downloads.html">Downloads</a>
|
||||
|
||||
188
docs/site.xsl
188
docs/site.xsl
@@ -9,104 +9,6 @@
|
||||
<!--
|
||||
- returns the filename associated to an ID in the original file
|
||||
-->
|
||||
<xsl:template name="tocfilename">
|
||||
<xsl:param name="name" select="string(@href)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$name = '#Introducti'">
|
||||
<xsl:text>intro.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Documentat'">
|
||||
<xsl:text>docs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Reporting'">
|
||||
<xsl:text>bugs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#help'">
|
||||
<xsl:text>help.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Help'">
|
||||
<xsl:text>help.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Downloads'">
|
||||
<xsl:text>downloads.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#News'">
|
||||
<xsl:text>news.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Contributi'">
|
||||
<xsl:text>contribs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#xsltproc'">
|
||||
<xsl:text>xsltproc2.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#API'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XSLT'">
|
||||
<xsl:text>XSLT.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XML'">
|
||||
<xsl:text>XMLinfo.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Validation'">
|
||||
<xsl:text>xmldtd.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#tree'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#library'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#interface'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Example'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Entities'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#architecture'">
|
||||
<xsl:text>architecture.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Namespaces'">
|
||||
<xsl:text>namespaces.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#DOM'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Catalog'">
|
||||
<xsl:text>catalog.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Upgrading'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Encodings'">
|
||||
<xsl:text>encoding.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#IO'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Memory'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Thread'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#FAQ'">
|
||||
<xsl:text>FAQ.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = ''">
|
||||
<xsl:text>unknown.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$name"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="filename">
|
||||
<xsl:param name="name" select="string(@href)"/>
|
||||
<xsl:choose>
|
||||
@@ -125,6 +27,9 @@
|
||||
<xsl:when test="$name = '#Help'">
|
||||
<xsl:text>help.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Errors'">
|
||||
<xsl:text>errors.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Downloads'">
|
||||
<xsl:text>downloads.html</xsl:text>
|
||||
</xsl:when>
|
||||
@@ -134,69 +39,18 @@
|
||||
<xsl:when test="$name = '#Contributi'">
|
||||
<xsl:text>contribs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#xsltproc'">
|
||||
<xsl:text>xsltproc2.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#API'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XSLT'">
|
||||
<xsl:text>XSLT.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XML'">
|
||||
<xsl:text>XMLinfo.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Validation'">
|
||||
<xsl:text>xmldtd.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#tree'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#library'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#interface'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Example'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Entities'">
|
||||
<xsl:text></xsl:text>
|
||||
<xsl:when test="$name = '#Format'">
|
||||
<xsl:text>format.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#architecture'">
|
||||
<xsl:text>architecture.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Namespaces'">
|
||||
<xsl:text>namespaces.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#DOM'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Catalog'">
|
||||
<xsl:text>catalog.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Upgrading'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Encodings'">
|
||||
<xsl:text>encoding.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#IO'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Memory'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Thread'">
|
||||
<xsl:text></xsl:text>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text>python.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#FAQ'">
|
||||
<xsl:text>FAQ.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = ''">
|
||||
<xsl:text>unknown.html</xsl:text>
|
||||
</xsl:when>
|
||||
@@ -221,7 +75,7 @@
|
||||
<li>Home</li>
|
||||
<xsl:for-each select="/html/body/h2">
|
||||
<xsl:variable name="filename">
|
||||
<xsl:call-template name="tocfilename">
|
||||
<xsl:call-template name="filename">
|
||||
<xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
@@ -239,8 +93,8 @@
|
||||
</li>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<li><a style="font-weight:bold"
|
||||
href="{$href_base}html/index.html">API Menu</a></li>
|
||||
<li><a href="{$href_base}html/index.html">API Menu</a></li>
|
||||
<li><a href="{$href_base}examples/index.html">C code examples</a></li>
|
||||
<li><a href="{$href_base}ChangeLog.html">Recent Changes</a></li>
|
||||
|
||||
</ul>
|
||||
@@ -249,8 +103,10 @@
|
||||
<h3 class="links"><span>related links</span></h3>
|
||||
<ul>
|
||||
<li> <a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li>
|
||||
<li> <a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li>
|
||||
<li> <a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li>
|
||||
<li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li>
|
||||
<li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<li><form action="{$href_base}search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" />
|
||||
</form></li>
|
||||
<li><a href="http://xmlsoft.org/"> <img src="{$href_base}Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li>
|
||||
@@ -267,7 +123,7 @@
|
||||
<li><a href="{$href_base}index.html">Home</a></li>
|
||||
<xsl:for-each select="/html/body/h2">
|
||||
<xsl:variable name="filename">
|
||||
<xsl:call-template name="tocfilename">
|
||||
<xsl:call-template name="filename">
|
||||
<xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
@@ -285,8 +141,8 @@
|
||||
</li>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<li><a style="font-weight:bold"
|
||||
href="{$href_base}html/index.html">API Menu</a></li>
|
||||
<li><a href="{$href_base}html/index.html">API Menu</a></li>
|
||||
<li><a href="{$href_base}examples/index.html">C code examples</a></li>
|
||||
<li><a href="{$href_base}ChangeLog.html">Recent Changes</a></li>
|
||||
|
||||
</ul>
|
||||
@@ -295,8 +151,10 @@
|
||||
<h3 class="links2"><span>related links</span></h3>
|
||||
<ul>
|
||||
<li> <a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li>
|
||||
<li> <a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li>
|
||||
<li> <a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li>
|
||||
<li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li>
|
||||
<li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<li><form action="{$href_base}search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" />
|
||||
</form></li>
|
||||
<li><a href="http://xmlsoft.org/"> <img src="{$href_base}Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li>
|
||||
@@ -311,7 +169,7 @@
|
||||
-->
|
||||
<xsl:template name="develtoc">
|
||||
<div class="left">
|
||||
<form action="search.php"
|
||||
<form action="{$href_base}search.php"
|
||||
enctype="application/x-www-form-urlencoded" method="get">
|
||||
<input name="query" type="text" size="20" value=""/>
|
||||
<input name="submit" type="submit" value="Search ..."/>
|
||||
@@ -334,6 +192,8 @@
|
||||
<h2 class="box_title">related links</h2>
|
||||
</div>
|
||||
<p><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></p>
|
||||
<p> <a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></p>
|
||||
<p> <a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></p>
|
||||
<p><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></p>
|
||||
<a href="http://xmlsoft.org/"><img src="{$href_base}Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo"/></a>
|
||||
</div>
|
||||
@@ -360,8 +220,10 @@
|
||||
<h3 class="links2"><span>related links</span></h3>
|
||||
<ul>
|
||||
<li> <a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li>
|
||||
<li> <a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li>
|
||||
<li> <a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li>
|
||||
<li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li>
|
||||
<li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<li><form action="{$href_base}search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" />
|
||||
</form></li>
|
||||
<li><a href="http://xmlsoft.org/"> <img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li>
|
||||
|
||||
25
docs/testdomfc4.xml
Normal file
25
docs/testdomfc4.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<domain type='test'>
|
||||
<name>fc4</name>
|
||||
<uuid>EF86180145B911CB88E3AFBFE5370493</uuid>
|
||||
<os>
|
||||
<type>linux</type>
|
||||
<kernel>/boot/vmlinuz-2.6.15-1.43_FC5guest</kernel>
|
||||
<initrd>/boot/initrd-2.6.15-1.43_FC5guest.img</initrd>
|
||||
<root>/dev/sda1</root>
|
||||
<cmdline> ro selinux=0 3</cmdline>
|
||||
</os>
|
||||
<memory>131072</memory>
|
||||
<vcpu>1</vcpu>
|
||||
<devices>
|
||||
<disk type='file'>
|
||||
<source file='/u/fc4.img'/>
|
||||
<target dev='sda1'/>
|
||||
</disk>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='aa:00:00:00:00:11'/>
|
||||
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||
</interface>
|
||||
<console tty='/dev/pts/5'/>
|
||||
</devices>
|
||||
</domain>
|
||||
42
docs/testdomfv0.xml
Normal file
42
docs/testdomfv0.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<domain type='test'>
|
||||
<name>fv0</name>
|
||||
<uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
|
||||
<os>
|
||||
<type>hvm</type>
|
||||
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<memory>524288</memory>
|
||||
<maxMemory>1524288</maxMemory>
|
||||
<vcpu>4</vcpu>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<features>
|
||||
<pae/>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
</features>
|
||||
<devices>
|
||||
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
<interface type='bridge'>
|
||||
<source bridge='xenbr0'/>
|
||||
<mac address='00:16:3e:5d:c7:9e'/>
|
||||
<script path='vif-bridge'/>
|
||||
</interface>
|
||||
<disk type='file'>
|
||||
<source file='/root/fv0'/>
|
||||
<target dev='hda'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<source file='/root/fc5-x86_64-boot.iso'/>
|
||||
<target dev='hdc'/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<disk type='file' device='floppy'>
|
||||
<source file='/root/fd.img'/>
|
||||
<target dev='fda'/>
|
||||
</disk>
|
||||
<graphics type='vnc' port='5904'/>
|
||||
</devices>
|
||||
</domain>
|
||||
23
docs/testnode.xml
Normal file
23
docs/testnode.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<node>
|
||||
<!-- This file gives an example config for the mock 'test' backend
|
||||
driver to libvirt. This is intended to allow relible unit testing
|
||||
of applications using libvirt. To use this with virsh, run something
|
||||
like:
|
||||
|
||||
virsh -connect test:////path/to/this/dir/testnode.xml nodeinfo
|
||||
|
||||
-->
|
||||
<domain file="testdomfv0.xml"/>
|
||||
<domain file="testdomfc4.xml"/>
|
||||
|
||||
<cpu>
|
||||
<mhz>6000</mhz>
|
||||
<model>i986</model>
|
||||
<active>50</active>
|
||||
<nodes>4</nodes>
|
||||
<sockets>4</sockets>
|
||||
<cores>4</cores>
|
||||
<threads>2</threads>
|
||||
</cpu>
|
||||
<memory>137438953472</memory>
|
||||
</node>
|
||||
2
include/.cvsignore
Normal file
2
include/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,10 +1,2 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
virincdir = $(includedir)/libvirt
|
||||
|
||||
virinc_HEADERS = libvirt.h
|
||||
|
||||
install-exec-hook:
|
||||
$(mkinstalldirs) $(DESTDIR)$(virincdir)
|
||||
|
||||
EXTRA_DIST = libvirt.h.in
|
||||
SUBDIRS=libvirt
|
||||
|
||||
@@ -1,254 +0,0 @@
|
||||
/*
|
||||
* libvirt.h:
|
||||
* Summary: core interfaces for the libvirt library
|
||||
* Description: Provides the interfaces of the libvirt library to handle
|
||||
* Xen domains from a process running in domain 0
|
||||
*
|
||||
* Copy: Copyright (C) 2005,2006 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
* Author: Daniel Veillard <veillard@redhat.com>
|
||||
*/
|
||||
|
||||
#ifndef __VIR_VIRLIB_H__
|
||||
#define __VIR_VIRLIB_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* virConnect:
|
||||
*
|
||||
* a virConnect is a private structure representing a connection to
|
||||
* the Xen Hypervisor.
|
||||
*/
|
||||
typedef struct _virConnect virConnect;
|
||||
|
||||
/**
|
||||
* virConnectPtr:
|
||||
*
|
||||
* a virConnectPtr is pointer to a virConnect private structure, this is the
|
||||
* type used to reference a connection to the Xen Hypervisor in the API.
|
||||
*/
|
||||
typedef virConnect *virConnectPtr;
|
||||
|
||||
/**
|
||||
* virDomain:
|
||||
*
|
||||
* a virDomain is a private structure representing a Xen domain.
|
||||
*/
|
||||
typedef struct _virDomain virDomain;
|
||||
|
||||
/**
|
||||
* virDomainPtr:
|
||||
*
|
||||
* a virDomainPtr is pointer to a virDomain private structure, this is the
|
||||
* type used to reference a Xen domain in the API.
|
||||
*/
|
||||
typedef virDomain *virDomainPtr;
|
||||
|
||||
/**
|
||||
* virDomainState:
|
||||
*
|
||||
* A domain may be in different states at a given point in time
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_NOSTATE = 0, /* no state */
|
||||
VIR_DOMAIN_RUNNING = 1, /* the domain is running */
|
||||
VIR_DOMAIN_BLOCKED = 2, /* the domain is blocked on resource */
|
||||
VIR_DOMAIN_PAUSED = 3, /* the domain is paused by user */
|
||||
VIR_DOMAIN_SHUTDOWN= 4, /* the domain is being shut down */
|
||||
VIR_DOMAIN_SHUTOFF = 5, /* the domain is shut off */
|
||||
VIR_DOMAIN_CRASHED = 6 /* the domain is crashed */
|
||||
} virDomainState;
|
||||
|
||||
/**
|
||||
* virDomainRestart:
|
||||
*
|
||||
* Flags that determine the action to take on a shutdown or crash of a domain
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_DESTROY = 1, /* destroy the domain */
|
||||
VIR_DOMAIN_RESTART = 2, /* restart the domain */
|
||||
VIR_DOMAIN_PRESERVE= 3, /* keep as is, need manual destroy, for debug */
|
||||
VIR_DOMAIN_RENAME_RESTART= 4/* restart under an new unique name */
|
||||
} virDomainRestart;
|
||||
|
||||
/**
|
||||
* virDeviceMode:
|
||||
*
|
||||
* Flags that determine permission to expose a device to the guest
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DEVICE_DEFAULT = 0, /* Default mode */
|
||||
VIR_DEVICE_RO = 1, /* Access read-only */
|
||||
VIR_DEVICE_RW = 2, /* Access read-write */
|
||||
VIR_DEVICE_RW_FORCE= 3 /* Forced read-write even if already used */
|
||||
} virDeviceMode;
|
||||
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo()
|
||||
*/
|
||||
|
||||
typedef struct _virDomainInfo virDomainInfo;
|
||||
|
||||
struct _virDomainInfo {
|
||||
unsigned char state; /* the running state, one of virDomainFlags */
|
||||
unsigned long maxMem; /* the maximum memory in KBytes allowed */
|
||||
unsigned long memory; /* the memory in KBytes used by the domain */
|
||||
unsigned short nrVirtCpu; /* the number of virtual CPUs for the domain */
|
||||
|
||||
/*
|
||||
* Informations below are only available to clients with a connection
|
||||
* with full access to the hypervisor
|
||||
*/
|
||||
unsigned long long cpuTime; /* the CPU time used in nanoseconds */
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - check what can be extracted publicly from xenstore
|
||||
* and what's private limited to the hypervisor call.
|
||||
* - add padding to this structure for ABI long term protection
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfoPtr is a pointer to a virDomainInfo structure.
|
||||
*/
|
||||
|
||||
typedef virDomainInfo *virDomainInfoPtr;
|
||||
|
||||
/**
|
||||
* virDomainKernel:
|
||||
*
|
||||
* a virDomainImage is the set of kernel related informations associated
|
||||
* to a domain
|
||||
*/
|
||||
|
||||
typedef struct _virDomainKernel virDomainKernel;
|
||||
|
||||
struct _virDomainKernel {
|
||||
const char *kernel; /* filename pointing to the kernel image */
|
||||
const char *ramdisk; /* an optional init ramdisk */
|
||||
const char *root; /* an optional root block device */
|
||||
const char *extra; /* optional kernel command line parameters */
|
||||
};
|
||||
|
||||
/**
|
||||
* virDomainKernelPtr:
|
||||
*
|
||||
* a virDomainKernelPtr is a pointer to a virDomainKernel structure.
|
||||
*/
|
||||
|
||||
typedef virDomainKernel *virDomainKernelPtr;
|
||||
|
||||
/**
|
||||
* virDomainCreateFlags:
|
||||
*
|
||||
* Flags OR'ed together to provide specific behaviour when creating a
|
||||
* Domain.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_NONE = 0
|
||||
} virDomainCreateFlags;
|
||||
|
||||
/* library versionning */
|
||||
|
||||
/**
|
||||
* LIBVIR_VERSION_NUMBER:
|
||||
*
|
||||
* Macro providing the version of the library as
|
||||
* version * 1,000,000 + minor * 1000 + micro
|
||||
*/
|
||||
|
||||
#define LIBVIR_VERSION_NUMBER 3
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
unsigned long *typeVer);
|
||||
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
|
||||
/*
|
||||
* Gather list of running domains
|
||||
*/
|
||||
int virConnectListDomains (virConnectPtr conn,
|
||||
int *ids,
|
||||
int maxids);
|
||||
|
||||
/*
|
||||
* Number of domains
|
||||
*/
|
||||
int virConnectNumOfDomains (virConnectPtr conn);
|
||||
|
||||
|
||||
/*
|
||||
* Domain creation and destruction
|
||||
*/
|
||||
virDomainPtr virDomainCreateLinux (virConnectPtr conn,
|
||||
const char *kernel_path,
|
||||
const char *initrd_path,
|
||||
const char *cmdline,
|
||||
unsigned long memory,
|
||||
unsigned int flags);
|
||||
virDomainPtr virDomainLookupByName (virConnectPtr conn,
|
||||
const char *name);
|
||||
virDomainPtr virDomainLookupByID (virConnectPtr conn,
|
||||
int id);
|
||||
int virDomainShutdown (virDomainPtr domain);
|
||||
int virDomainDestroy (virDomainPtr domain);
|
||||
int virDomainFree (virDomainPtr domain);
|
||||
|
||||
/*
|
||||
* Domain suspend/resume
|
||||
*/
|
||||
int virDomainSuspend (virDomainPtr domain);
|
||||
int virDomainResume (virDomainPtr domain);
|
||||
|
||||
/*
|
||||
* Domain save/restore
|
||||
*/
|
||||
int virDomainSave (virDomainPtr domain,
|
||||
const char *to);
|
||||
int virDomainRestore (virConnectPtr conn,
|
||||
const char *from);
|
||||
|
||||
/*
|
||||
* Domain runtime informations
|
||||
*/
|
||||
int virDomainGetInfo (virDomainPtr domain,
|
||||
virDomainInfoPtr info);
|
||||
|
||||
/*
|
||||
* Dynamic control of domains
|
||||
*/
|
||||
const char * virDomainGetName (virDomainPtr domain);
|
||||
unsigned int virDomainGetID (virDomainPtr domain);
|
||||
char * virDomainGetOSType (virDomainPtr domain);
|
||||
unsigned long virDomainGetMaxMemory (virDomainPtr domain);
|
||||
int virDomainSetMaxMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
/*
|
||||
* XML domain description
|
||||
*/
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain, int flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __VIR_VIRLIB_H__ */
|
||||
@@ -1,254 +0,0 @@
|
||||
/*
|
||||
* libvirt.h:
|
||||
* Summary: core interfaces for the libvirt library
|
||||
* Description: Provides the interfaces of the libvirt library to handle
|
||||
* Xen domains from a process running in domain 0
|
||||
*
|
||||
* Copy: Copyright (C) 2005,2006 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
* Author: Daniel Veillard <veillard@redhat.com>
|
||||
*/
|
||||
|
||||
#ifndef __VIR_VIRLIB_H__
|
||||
#define __VIR_VIRLIB_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* virConnect:
|
||||
*
|
||||
* a virConnect is a private structure representing a connection to
|
||||
* the Xen Hypervisor.
|
||||
*/
|
||||
typedef struct _virConnect virConnect;
|
||||
|
||||
/**
|
||||
* virConnectPtr:
|
||||
*
|
||||
* a virConnectPtr is pointer to a virConnect private structure, this is the
|
||||
* type used to reference a connection to the Xen Hypervisor in the API.
|
||||
*/
|
||||
typedef virConnect *virConnectPtr;
|
||||
|
||||
/**
|
||||
* virDomain:
|
||||
*
|
||||
* a virDomain is a private structure representing a Xen domain.
|
||||
*/
|
||||
typedef struct _virDomain virDomain;
|
||||
|
||||
/**
|
||||
* virDomainPtr:
|
||||
*
|
||||
* a virDomainPtr is pointer to a virDomain private structure, this is the
|
||||
* type used to reference a Xen domain in the API.
|
||||
*/
|
||||
typedef virDomain *virDomainPtr;
|
||||
|
||||
/**
|
||||
* virDomainState:
|
||||
*
|
||||
* A domain may be in different states at a given point in time
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_NOSTATE = 0, /* no state */
|
||||
VIR_DOMAIN_RUNNING = 1, /* the domain is running */
|
||||
VIR_DOMAIN_BLOCKED = 2, /* the domain is blocked on resource */
|
||||
VIR_DOMAIN_PAUSED = 3, /* the domain is paused by user */
|
||||
VIR_DOMAIN_SHUTDOWN= 4, /* the domain is being shut down */
|
||||
VIR_DOMAIN_SHUTOFF = 5, /* the domain is shut off */
|
||||
VIR_DOMAIN_CRASHED = 6 /* the domain is crashed */
|
||||
} virDomainState;
|
||||
|
||||
/**
|
||||
* virDomainRestart:
|
||||
*
|
||||
* Flags that determine the action to take on a shutdown or crash of a domain
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_DESTROY = 1, /* destroy the domain */
|
||||
VIR_DOMAIN_RESTART = 2, /* restart the domain */
|
||||
VIR_DOMAIN_PRESERVE= 3, /* keep as is, need manual destroy, for debug */
|
||||
VIR_DOMAIN_RENAME_RESTART= 4/* restart under an new unique name */
|
||||
} virDomainRestart;
|
||||
|
||||
/**
|
||||
* virDeviceMode:
|
||||
*
|
||||
* Flags that determine permission to expose a device to the guest
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DEVICE_DEFAULT = 0, /* Default mode */
|
||||
VIR_DEVICE_RO = 1, /* Access read-only */
|
||||
VIR_DEVICE_RW = 2, /* Access read-write */
|
||||
VIR_DEVICE_RW_FORCE= 3 /* Forced read-write even if already used */
|
||||
} virDeviceMode;
|
||||
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo()
|
||||
*/
|
||||
|
||||
typedef struct _virDomainInfo virDomainInfo;
|
||||
|
||||
struct _virDomainInfo {
|
||||
unsigned char state; /* the running state, one of virDomainFlags */
|
||||
unsigned long maxMem; /* the maximum memory in KBytes allowed */
|
||||
unsigned long memory; /* the memory in KBytes used by the domain */
|
||||
unsigned short nrVirtCpu; /* the number of virtual CPUs for the domain */
|
||||
|
||||
/*
|
||||
* Informations below are only available to clients with a connection
|
||||
* with full access to the hypervisor
|
||||
*/
|
||||
unsigned long long cpuTime; /* the CPU time used in nanoseconds */
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - check what can be extracted publicly from xenstore
|
||||
* and what's private limited to the hypervisor call.
|
||||
* - add padding to this structure for ABI long term protection
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfoPtr is a pointer to a virDomainInfo structure.
|
||||
*/
|
||||
|
||||
typedef virDomainInfo *virDomainInfoPtr;
|
||||
|
||||
/**
|
||||
* virDomainKernel:
|
||||
*
|
||||
* a virDomainImage is the set of kernel related informations associated
|
||||
* to a domain
|
||||
*/
|
||||
|
||||
typedef struct _virDomainKernel virDomainKernel;
|
||||
|
||||
struct _virDomainKernel {
|
||||
const char *kernel; /* filename pointing to the kernel image */
|
||||
const char *ramdisk; /* an optional init ramdisk */
|
||||
const char *root; /* an optional root block device */
|
||||
const char *extra; /* optional kernel command line parameters */
|
||||
};
|
||||
|
||||
/**
|
||||
* virDomainKernelPtr:
|
||||
*
|
||||
* a virDomainKernelPtr is a pointer to a virDomainKernel structure.
|
||||
*/
|
||||
|
||||
typedef virDomainKernel *virDomainKernelPtr;
|
||||
|
||||
/**
|
||||
* virDomainCreateFlags:
|
||||
*
|
||||
* Flags OR'ed together to provide specific behaviour when creating a
|
||||
* Domain.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_DOMAIN_NONE = 0
|
||||
} virDomainCreateFlags;
|
||||
|
||||
/* library versionning */
|
||||
|
||||
/**
|
||||
* LIBVIR_VERSION_NUMBER:
|
||||
*
|
||||
* Macro providing the version of the library as
|
||||
* version * 1,000,000 + minor * 1000 + micro
|
||||
*/
|
||||
|
||||
#define LIBVIR_VERSION_NUMBER @LIBVIR_VERSION_NUMBER@
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
unsigned long *typeVer);
|
||||
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
|
||||
/*
|
||||
* Gather list of running domains
|
||||
*/
|
||||
int virConnectListDomains (virConnectPtr conn,
|
||||
int *ids,
|
||||
int maxids);
|
||||
|
||||
/*
|
||||
* Number of domains
|
||||
*/
|
||||
int virConnectNumOfDomains (virConnectPtr conn);
|
||||
|
||||
|
||||
/*
|
||||
* Domain creation and destruction
|
||||
*/
|
||||
virDomainPtr virDomainCreateLinux (virConnectPtr conn,
|
||||
const char *kernel_path,
|
||||
const char *initrd_path,
|
||||
const char *cmdline,
|
||||
unsigned long memory,
|
||||
unsigned int flags);
|
||||
virDomainPtr virDomainLookupByName (virConnectPtr conn,
|
||||
const char *name);
|
||||
virDomainPtr virDomainLookupByID (virConnectPtr conn,
|
||||
int id);
|
||||
int virDomainShutdown (virDomainPtr domain);
|
||||
int virDomainDestroy (virDomainPtr domain);
|
||||
int virDomainFree (virDomainPtr domain);
|
||||
|
||||
/*
|
||||
* Domain suspend/resume
|
||||
*/
|
||||
int virDomainSuspend (virDomainPtr domain);
|
||||
int virDomainResume (virDomainPtr domain);
|
||||
|
||||
/*
|
||||
* Domain save/restore
|
||||
*/
|
||||
int virDomainSave (virDomainPtr domain,
|
||||
const char *to);
|
||||
int virDomainRestore (virConnectPtr conn,
|
||||
const char *from);
|
||||
|
||||
/*
|
||||
* Domain runtime informations
|
||||
*/
|
||||
int virDomainGetInfo (virDomainPtr domain,
|
||||
virDomainInfoPtr info);
|
||||
|
||||
/*
|
||||
* Dynamic control of domains
|
||||
*/
|
||||
const char * virDomainGetName (virDomainPtr domain);
|
||||
unsigned int virDomainGetID (virDomainPtr domain);
|
||||
char * virDomainGetOSType (virDomainPtr domain);
|
||||
unsigned long virDomainGetMaxMemory (virDomainPtr domain);
|
||||
int virDomainSetMaxMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
/*
|
||||
* XML domain description
|
||||
*/
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain, int flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __VIR_VIRLIB_H__ */
|
||||
2
include/libvirt/.cvsignore
Normal file
2
include/libvirt/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
virincdir = $(includedir)/libvirt
|
||||
|
||||
virinc_HEADERS = libvirt.h
|
||||
virinc_HEADERS = libvirt.h \
|
||||
virterror.h
|
||||
|
||||
install-exec-hook:
|
||||
$(mkinstalldirs) $(DESTDIR)$(virincdir)
|
||||
|
||||
@@ -91,7 +91,8 @@ typedef enum {
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo()
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
|
||||
* runtime informations for a given active Domain
|
||||
*/
|
||||
|
||||
typedef struct _virDomainInfo virDomainInfo;
|
||||
@@ -101,19 +102,7 @@ struct _virDomainInfo {
|
||||
unsigned long maxMem; /* the maximum memory in KBytes allowed */
|
||||
unsigned long memory; /* the memory in KBytes used by the domain */
|
||||
unsigned short nrVirtCpu; /* the number of virtual CPUs for the domain */
|
||||
|
||||
/*
|
||||
* Informations below are only available to clients with a connection
|
||||
* with full access to the hypervisor
|
||||
*/
|
||||
unsigned long long cpuTime; /* the CPU time used in nanoseconds */
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - check what can be extracted publicly from xenstore
|
||||
* and what's private limited to the hypervisor call.
|
||||
* - add padding to this structure for ABI long term protection
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -158,6 +147,46 @@ typedef enum {
|
||||
VIR_DOMAIN_NONE = 0
|
||||
} virDomainCreateFlags;
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfo is a structure filled by virNodeGetInfo() and providing
|
||||
* the informations for the Node.
|
||||
*/
|
||||
|
||||
typedef struct _virNodeInfo virNodeInfo;
|
||||
|
||||
struct _virNodeInfo {
|
||||
char model[32]; /* string indicating the CPU model */
|
||||
unsigned long memory;/* memory size in kilobytes */
|
||||
unsigned int cpus; /* the number of active CPUs */
|
||||
unsigned int mhz; /* expected CPU frequency */
|
||||
unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */
|
||||
unsigned int sockets;/* number of CPU socket per node */
|
||||
unsigned int cores; /* number of core per socket */
|
||||
unsigned int threads;/* number of threads per core */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* VIR_NODEINFO_MAXCPUS:
|
||||
* @nodeinfo: virNodeInfo instance
|
||||
*
|
||||
* This macro is to calculate the total number of CPUs supported
|
||||
* but not neccessarily active in the host.
|
||||
*/
|
||||
|
||||
|
||||
#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfoPtr is a pointer to a virNodeInfo structure.
|
||||
*/
|
||||
|
||||
typedef virNodeInfo *virNodeInfoPtr;
|
||||
|
||||
/* library versionning */
|
||||
|
||||
/**
|
||||
@@ -167,7 +196,7 @@ typedef enum {
|
||||
* version * 1,000,000 + minor * 1000 + micro
|
||||
*/
|
||||
|
||||
#define LIBVIR_VERSION_NUMBER 3
|
||||
#define LIBVIR_VERSION_NUMBER 1004
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
@@ -176,12 +205,16 @@ int virGetVersion (unsigned long *libVer,
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
int virInitialize (void);
|
||||
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
int virNodeGetInfo (virConnectPtr conn,
|
||||
virNodeInfoPtr info);
|
||||
|
||||
/*
|
||||
* Gather list of running domains
|
||||
@@ -200,16 +233,20 @@ int virConnectNumOfDomains (virConnectPtr conn);
|
||||
* Domain creation and destruction
|
||||
*/
|
||||
virDomainPtr virDomainCreateLinux (virConnectPtr conn,
|
||||
const char *kernel_path,
|
||||
const char *initrd_path,
|
||||
const char *cmdline,
|
||||
unsigned long memory,
|
||||
const char *xmlDesc,
|
||||
unsigned int flags);
|
||||
virDomainPtr virDomainLookupByName (virConnectPtr conn,
|
||||
const char *name);
|
||||
virDomainPtr virDomainLookupByID (virConnectPtr conn,
|
||||
int id);
|
||||
virDomainPtr virDomainLookupByUUID (virConnectPtr conn,
|
||||
const unsigned char *uuid);
|
||||
virDomainPtr virDomainLookupByUUIDString (virConnectPtr conn,
|
||||
const char *uuid);
|
||||
|
||||
int virDomainShutdown (virDomainPtr domain);
|
||||
int virDomainReboot (virDomainPtr domain,
|
||||
unsigned int flags);
|
||||
int virDomainDestroy (virDomainPtr domain);
|
||||
int virDomainFree (virDomainPtr domain);
|
||||
|
||||
@@ -238,14 +275,145 @@ int virDomainGetInfo (virDomainPtr domain,
|
||||
*/
|
||||
const char * virDomainGetName (virDomainPtr domain);
|
||||
unsigned int virDomainGetID (virDomainPtr domain);
|
||||
int virDomainGetUUID (virDomainPtr domain,
|
||||
unsigned char *uuid);
|
||||
int virDomainGetUUIDString (virDomainPtr domain,
|
||||
char *buf);
|
||||
char * virDomainGetOSType (virDomainPtr domain);
|
||||
unsigned long virDomainGetMaxMemory (virDomainPtr domain);
|
||||
int virDomainSetMaxMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
int virDomainSetMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
/*
|
||||
* XML domain description
|
||||
*/
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain, int flags);
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain,
|
||||
int flags);
|
||||
|
||||
/*
|
||||
* defined but not running domains
|
||||
*/
|
||||
virDomainPtr virDomainDefineXML (virConnectPtr conn,
|
||||
const char *xml);
|
||||
int virDomainUndefine (virDomainPtr domain);
|
||||
int virConnectListDefinedDomains(virConnectPtr conn,
|
||||
const char **names,
|
||||
int maxnames);
|
||||
int virDomainCreate (virDomainPtr domain);
|
||||
|
||||
/**
|
||||
* virVcpuInfo: structure for information about a virtual CPU in a domain.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
VIR_VCPU_OFFLINE = 0, /* the virtual CPU is offline */
|
||||
VIR_VCPU_RUNNING = 1, /* the virtual CPU is running */
|
||||
VIR_VCPU_BLOCKED = 2, /* the virtual CPU is blocked on resource */
|
||||
} virVcpuState;
|
||||
|
||||
typedef struct _virVcpuInfo virVcpuInfo;
|
||||
struct _virVcpuInfo {
|
||||
unsigned int number; /* virtual CPU number */
|
||||
int state; /* value from virVcpuState */
|
||||
unsigned long long cpuTime; /* CPU time used, in nanoseconds */
|
||||
int cpu; /* real CPU number, or -1 if offline */
|
||||
};
|
||||
typedef virVcpuInfo *virVcpuInfoPtr;
|
||||
|
||||
int virDomainSetVcpus (virDomainPtr domain,
|
||||
unsigned int nvcpus);
|
||||
|
||||
int virDomainPinVcpu (virDomainPtr domain,
|
||||
unsigned int vcpu,
|
||||
unsigned char *cpumap,
|
||||
int maplen);
|
||||
|
||||
/**
|
||||
* VIR_USE_CPU:
|
||||
* @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainPinVcpu() API.
|
||||
* USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.
|
||||
*/
|
||||
|
||||
#define VIR_USE_CPU(cpumap,cpu) (cpumap[(cpu)/8] |= (1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_UNUSE_CPU:
|
||||
* @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainPinVcpu() API.
|
||||
* USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.
|
||||
*/
|
||||
|
||||
#define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_CPU_MAPLEN:
|
||||
* @cpu: number of physical CPUs
|
||||
*
|
||||
* 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 & all physical CPUs of a domain.
|
||||
*/
|
||||
|
||||
#define VIR_CPU_MAPLEN(cpu) (((cpu)+7)/8)
|
||||
|
||||
|
||||
int virDomainGetVcpus (virDomainPtr domain,
|
||||
virVcpuInfoPtr info,
|
||||
int maxinfo,
|
||||
unsigned char *cpumaps,
|
||||
int maplen);
|
||||
|
||||
/**
|
||||
* VIR_CPU_USABLE:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \
|
||||
(cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_COPY_CPUMAP:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
* @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT)
|
||||
* This cpumap must be previously allocated by the caller
|
||||
* (ie: malloc(maplen))
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainGetVcpus() and
|
||||
* virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of
|
||||
* the specified vcpu from cpumaps array and copy it into cpumap to be used
|
||||
* later by virDomainPinVcpu() API.
|
||||
*/
|
||||
#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
|
||||
memcpy(cpumap, &(cpumaps[(vcpu)*(maplen)]), (maplen))
|
||||
|
||||
|
||||
/**
|
||||
* VIR_GET_CPUMAP:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainGetVcpus() and
|
||||
* virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the
|
||||
* cpumap of the specified vcpu from cpumaps array.
|
||||
*/
|
||||
#define VIR_GET_CPUMAP(cpumaps,maplen,vcpu) &(cpumaps[(vcpu)*(maplen)])
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -91,7 +91,8 @@ typedef enum {
|
||||
/**
|
||||
* virDomainInfoPtr:
|
||||
*
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo()
|
||||
* a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
|
||||
* runtime informations for a given active Domain
|
||||
*/
|
||||
|
||||
typedef struct _virDomainInfo virDomainInfo;
|
||||
@@ -101,19 +102,7 @@ struct _virDomainInfo {
|
||||
unsigned long maxMem; /* the maximum memory in KBytes allowed */
|
||||
unsigned long memory; /* the memory in KBytes used by the domain */
|
||||
unsigned short nrVirtCpu; /* the number of virtual CPUs for the domain */
|
||||
|
||||
/*
|
||||
* Informations below are only available to clients with a connection
|
||||
* with full access to the hypervisor
|
||||
*/
|
||||
unsigned long long cpuTime; /* the CPU time used in nanoseconds */
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - check what can be extracted publicly from xenstore
|
||||
* and what's private limited to the hypervisor call.
|
||||
* - add padding to this structure for ABI long term protection
|
||||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -158,6 +147,46 @@ typedef enum {
|
||||
VIR_DOMAIN_NONE = 0
|
||||
} virDomainCreateFlags;
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfo is a structure filled by virNodeGetInfo() and providing
|
||||
* the informations for the Node.
|
||||
*/
|
||||
|
||||
typedef struct _virNodeInfo virNodeInfo;
|
||||
|
||||
struct _virNodeInfo {
|
||||
char model[32]; /* string indicating the CPU model */
|
||||
unsigned long memory;/* memory size in kilobytes */
|
||||
unsigned int cpus; /* the number of active CPUs */
|
||||
unsigned int mhz; /* expected CPU frequency */
|
||||
unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */
|
||||
unsigned int sockets;/* number of CPU socket per node */
|
||||
unsigned int cores; /* number of core per socket */
|
||||
unsigned int threads;/* number of threads per core */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* VIR_NODEINFO_MAXCPUS:
|
||||
* @nodeinfo: virNodeInfo instance
|
||||
*
|
||||
* This macro is to calculate the total number of CPUs supported
|
||||
* but not neccessarily active in the host.
|
||||
*/
|
||||
|
||||
|
||||
#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfoPtr is a pointer to a virNodeInfo structure.
|
||||
*/
|
||||
|
||||
typedef virNodeInfo *virNodeInfoPtr;
|
||||
|
||||
/* library versionning */
|
||||
|
||||
/**
|
||||
@@ -167,7 +196,7 @@ typedef enum {
|
||||
* version * 1,000,000 + minor * 1000 + micro
|
||||
*/
|
||||
|
||||
#define LIBVIR_VERSION_NUMBER @LIBVIR_VERSION_NUMBER@
|
||||
#define LIBVIR_VERSION_NUMBER @LIBVIRT_VERSION_NUMBER@
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
@@ -176,12 +205,16 @@ int virGetVersion (unsigned long *libVer,
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
int virInitialize (void);
|
||||
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
int virNodeGetInfo (virConnectPtr conn,
|
||||
virNodeInfoPtr info);
|
||||
|
||||
/*
|
||||
* Gather list of running domains
|
||||
@@ -200,16 +233,20 @@ int virConnectNumOfDomains (virConnectPtr conn);
|
||||
* Domain creation and destruction
|
||||
*/
|
||||
virDomainPtr virDomainCreateLinux (virConnectPtr conn,
|
||||
const char *kernel_path,
|
||||
const char *initrd_path,
|
||||
const char *cmdline,
|
||||
unsigned long memory,
|
||||
const char *xmlDesc,
|
||||
unsigned int flags);
|
||||
virDomainPtr virDomainLookupByName (virConnectPtr conn,
|
||||
const char *name);
|
||||
virDomainPtr virDomainLookupByID (virConnectPtr conn,
|
||||
int id);
|
||||
virDomainPtr virDomainLookupByUUID (virConnectPtr conn,
|
||||
const unsigned char *uuid);
|
||||
virDomainPtr virDomainLookupByUUIDString (virConnectPtr conn,
|
||||
const char *uuid);
|
||||
|
||||
int virDomainShutdown (virDomainPtr domain);
|
||||
int virDomainReboot (virDomainPtr domain,
|
||||
unsigned int flags);
|
||||
int virDomainDestroy (virDomainPtr domain);
|
||||
int virDomainFree (virDomainPtr domain);
|
||||
|
||||
@@ -238,14 +275,145 @@ int virDomainGetInfo (virDomainPtr domain,
|
||||
*/
|
||||
const char * virDomainGetName (virDomainPtr domain);
|
||||
unsigned int virDomainGetID (virDomainPtr domain);
|
||||
int virDomainGetUUID (virDomainPtr domain,
|
||||
unsigned char *uuid);
|
||||
int virDomainGetUUIDString (virDomainPtr domain,
|
||||
char *buf);
|
||||
char * virDomainGetOSType (virDomainPtr domain);
|
||||
unsigned long virDomainGetMaxMemory (virDomainPtr domain);
|
||||
int virDomainSetMaxMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
int virDomainSetMemory (virDomainPtr domain,
|
||||
unsigned long memory);
|
||||
/*
|
||||
* XML domain description
|
||||
*/
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain, int flags);
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain,
|
||||
int flags);
|
||||
|
||||
/*
|
||||
* defined but not running domains
|
||||
*/
|
||||
virDomainPtr virDomainDefineXML (virConnectPtr conn,
|
||||
const char *xml);
|
||||
int virDomainUndefine (virDomainPtr domain);
|
||||
int virConnectListDefinedDomains(virConnectPtr conn,
|
||||
const char **names,
|
||||
int maxnames);
|
||||
int virDomainCreate (virDomainPtr domain);
|
||||
|
||||
/**
|
||||
* virVcpuInfo: structure for information about a virtual CPU in a domain.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
VIR_VCPU_OFFLINE = 0, /* the virtual CPU is offline */
|
||||
VIR_VCPU_RUNNING = 1, /* the virtual CPU is running */
|
||||
VIR_VCPU_BLOCKED = 2, /* the virtual CPU is blocked on resource */
|
||||
} virVcpuState;
|
||||
|
||||
typedef struct _virVcpuInfo virVcpuInfo;
|
||||
struct _virVcpuInfo {
|
||||
unsigned int number; /* virtual CPU number */
|
||||
int state; /* value from virVcpuState */
|
||||
unsigned long long cpuTime; /* CPU time used, in nanoseconds */
|
||||
int cpu; /* real CPU number, or -1 if offline */
|
||||
};
|
||||
typedef virVcpuInfo *virVcpuInfoPtr;
|
||||
|
||||
int virDomainSetVcpus (virDomainPtr domain,
|
||||
unsigned int nvcpus);
|
||||
|
||||
int virDomainPinVcpu (virDomainPtr domain,
|
||||
unsigned int vcpu,
|
||||
unsigned char *cpumap,
|
||||
int maplen);
|
||||
|
||||
/**
|
||||
* VIR_USE_CPU:
|
||||
* @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainPinVcpu() API.
|
||||
* USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.
|
||||
*/
|
||||
|
||||
#define VIR_USE_CPU(cpumap,cpu) (cpumap[(cpu)/8] |= (1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_UNUSE_CPU:
|
||||
* @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainPinVcpu() API.
|
||||
* USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.
|
||||
*/
|
||||
|
||||
#define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_CPU_MAPLEN:
|
||||
* @cpu: number of physical CPUs
|
||||
*
|
||||
* 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 & all physical CPUs of a domain.
|
||||
*/
|
||||
|
||||
#define VIR_CPU_MAPLEN(cpu) (((cpu)+7)/8)
|
||||
|
||||
|
||||
int virDomainGetVcpus (virDomainPtr domain,
|
||||
virVcpuInfoPtr info,
|
||||
int maxinfo,
|
||||
unsigned char *cpumaps,
|
||||
int maplen);
|
||||
|
||||
/**
|
||||
* VIR_CPU_USABLE:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
* @cpu: the physical CPU number
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \
|
||||
(cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))
|
||||
|
||||
/**
|
||||
* VIR_COPY_CPUMAP:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
* @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT)
|
||||
* This cpumap must be previously allocated by the caller
|
||||
* (ie: malloc(maplen))
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainGetVcpus() and
|
||||
* virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of
|
||||
* the specified vcpu from cpumaps array and copy it into cpumap to be used
|
||||
* later by virDomainPinVcpu() API.
|
||||
*/
|
||||
#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
|
||||
memcpy(cpumap, &(cpumaps[(vcpu)*(maplen)]), (maplen))
|
||||
|
||||
|
||||
/**
|
||||
* VIR_GET_CPUMAP:
|
||||
* @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
|
||||
* @maplen: the length (in bytes) of one cpumap
|
||||
* @vcpu: the virtual CPU number
|
||||
*
|
||||
* This macro is to be used in conjonction with virDomainGetVcpus() and
|
||||
* virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the
|
||||
* cpumap of the specified vcpu from cpumaps array.
|
||||
*/
|
||||
#define VIR_GET_CPUMAP(cpumaps,maplen,vcpu) &(cpumaps[(vcpu)*(maplen)])
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
147
include/libvirt/virterror.h
Normal file
147
include/libvirt/virterror.h
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* virterror.h:
|
||||
* Summary: error handling interfaces for the libvirt library
|
||||
* Description: Provides the interfaces of the libvirt library to handle
|
||||
* errors raised while using the library.
|
||||
*
|
||||
* Copy: Copyright (C) 2006 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
* Author: Daniel Veillard <veillard@redhat.com>
|
||||
*/
|
||||
|
||||
#ifndef __VIR_VIRERR_H__
|
||||
#define __VIR_VIRERR_H__
|
||||
|
||||
#include <libvirt/libvirt.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* virErrorLevel:
|
||||
*
|
||||
* Indicates the level of an error
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_ERR_NONE = 0,
|
||||
VIR_ERR_WARNING = 1, /* A simple warning */
|
||||
VIR_ERR_ERROR = 2 /* An error */
|
||||
} virErrorLevel;
|
||||
|
||||
/**
|
||||
* virErrorDomain:
|
||||
*
|
||||
* Indicates where an error may have come from
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_FROM_NONE = 0,
|
||||
VIR_FROM_XEN, /* Error at Xen hypervisor layer */
|
||||
VIR_FROM_XEND, /* Error at connection with xend daemon */
|
||||
VIR_FROM_XENSTORE, /* Error at connection with xen store */
|
||||
VIR_FROM_SEXPR, /* Error in the S-Epression code */
|
||||
VIR_FROM_XML, /* Error in the XML code */
|
||||
VIR_FROM_DOM, /* Error when operating on a domain */
|
||||
VIR_FROM_RPC, /* Error in the XML-RPC code */
|
||||
VIR_FROM_PROXY /* Error in the proxy code */
|
||||
} virErrorDomain;
|
||||
|
||||
|
||||
/**
|
||||
* virError:
|
||||
*
|
||||
* A libvirt Error instance.
|
||||
*/
|
||||
|
||||
typedef struct _virError virError;
|
||||
typedef virError *virErrorPtr;
|
||||
struct _virError {
|
||||
int code; /* The error code, a virErrorNumber */
|
||||
int domain; /* What part of the library raised this error */
|
||||
char *message;/* human-readable informative error message */
|
||||
virErrorLevel level;/* how consequent is the error */
|
||||
virConnectPtr conn; /* the connection if available */
|
||||
virDomainPtr dom; /* the domain if available */
|
||||
char *str1; /* extra string information */
|
||||
char *str2; /* extra string information */
|
||||
char *str3; /* extra string information */
|
||||
int int1; /* extra number information */
|
||||
int int2; /* extra number information */
|
||||
};
|
||||
|
||||
/**
|
||||
* virErrorNumber:
|
||||
*
|
||||
* The full list of errors the library can generate
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_ERR_OK = 0,
|
||||
VIR_ERR_INTERNAL_ERROR, /* internal error */
|
||||
VIR_ERR_NO_MEMORY, /* memory allocation failure */
|
||||
VIR_ERR_NO_SUPPORT, /* no support for this connection */
|
||||
VIR_ERR_UNKNOWN_HOST,/* could not resolve hostname */
|
||||
VIR_ERR_NO_CONNECT, /* can't connect to hypervisor */
|
||||
VIR_ERR_INVALID_CONN,/* invalid connection object */
|
||||
VIR_ERR_INVALID_DOMAIN,/* invalid domain object */
|
||||
VIR_ERR_INVALID_ARG,/* invalid function argument */
|
||||
VIR_ERR_OPERATION_FAILED,/* a command to hypervisor failed */
|
||||
VIR_ERR_GET_FAILED,/* a HTTP GET command to failed */
|
||||
VIR_ERR_POST_FAILED,/* a HTTP POST command to failed */
|
||||
VIR_ERR_HTTP_ERROR,/* unexpected HTTP error code */
|
||||
VIR_ERR_SEXPR_SERIAL,/* failure to serialize an S-Expr */
|
||||
VIR_ERR_NO_XEN,/* could not open Xen hypervisor control */
|
||||
VIR_ERR_XEN_CALL,/* failure doing an hypervisor call */
|
||||
VIR_ERR_OS_TYPE, /* unknown OS type */
|
||||
VIR_ERR_NO_KERNEL, /* missing kernel information */
|
||||
VIR_ERR_NO_ROOT, /* missing root device information */
|
||||
VIR_ERR_NO_SOURCE, /* missing source device information */
|
||||
VIR_ERR_NO_TARGET, /* missing target device information */
|
||||
VIR_ERR_NO_NAME, /* missing domain name information */
|
||||
VIR_ERR_NO_OS, /* missing domain OS information */
|
||||
VIR_ERR_NO_DEVICE, /* missing domain devices information */
|
||||
VIR_ERR_NO_XENSTORE,/* could not open Xen Store control */
|
||||
VIR_ERR_DRIVER_FULL, /* too many drivers registered */
|
||||
VIR_ERR_CALL_FAILED, /* not supported by the drivers */
|
||||
VIR_ERR_XML_ERROR, /* an XML description is not well formed or broken */
|
||||
VIR_ERR_DOM_EXIST,/* the domain already exist */
|
||||
VIR_ERR_OPERATION_DENIED /* operation forbidden on read-only connections */
|
||||
} virErrorNumber;
|
||||
|
||||
/**
|
||||
* virErrorFunc:
|
||||
* @userData: user provided data for the error callback
|
||||
* @error: the error being raised.
|
||||
*
|
||||
* Signature of a function to use when there is an error raised by the library.
|
||||
*/
|
||||
typedef void (*virErrorFunc) (void *userData, virErrorPtr error);
|
||||
|
||||
/*
|
||||
* Errors can be handled as asynchronous callbacks or after the routine
|
||||
* failed. They can also be handled globally at the library level, or
|
||||
* at the connection level (which then has priority
|
||||
*/
|
||||
|
||||
virErrorPtr virGetLastError (void);
|
||||
void virResetLastError (void);
|
||||
void virResetError (virErrorPtr err);
|
||||
|
||||
virErrorPtr virConnGetLastError (virConnectPtr conn);
|
||||
void virConnResetLastError (virConnectPtr conn);
|
||||
int virCopyLastError (virErrorPtr to);
|
||||
|
||||
void virDefaultErrorFunc (virErrorPtr err);
|
||||
void virSetErrorFunc (void *userData,
|
||||
virErrorFunc handler);
|
||||
void virConnSetErrorFunc (virConnectPtr conn,
|
||||
void *userData,
|
||||
virErrorFunc handler);
|
||||
int virConnCopyLastError (virConnectPtr conn,
|
||||
virErrorPtr to);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __VIR_VIRERR_H__ */
|
||||
@@ -3,9 +3,9 @@ exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: libvir
|
||||
Name: libvirt
|
||||
Version: @VERSION@
|
||||
Description: libvir library
|
||||
Description: libvirt library
|
||||
Requires:
|
||||
Libs: -L${libdir} -lvir @LIBS@
|
||||
Cflags:
|
||||
Libs: -L${libdir} -lvirt @LIBS@
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -9,8 +9,15 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||
URL: http://libvir.org/
|
||||
BuildRequires: xen python python-devel
|
||||
Requires: xen
|
||||
Requires: libxml2
|
||||
Requires: readline
|
||||
Requires: ncurses
|
||||
BuildRequires: xen-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: ncurses-devel
|
||||
Obsoletes: libvir
|
||||
ExclusiveArch: i386 x86_64
|
||||
ExclusiveArch: i386 x86_64 ia64
|
||||
|
||||
%description
|
||||
This C library provides an API to use the Xen virtualization framework,
|
||||
@@ -49,6 +56,7 @@ make
|
||||
rm -fr %{buildroot}
|
||||
|
||||
%makeinstall
|
||||
(cd docs/examples ; make clean ; rm -rf .deps)
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
|
||||
@@ -67,8 +75,10 @@ rm -fr %{buildroot}
|
||||
%defattr(-, root, root)
|
||||
|
||||
%doc AUTHORS ChangeLog NEWS README COPYING.LIB TODO
|
||||
%doc %{_mandir}/man1/virsh.1*
|
||||
%{_bindir}/virsh
|
||||
%{_libdir}/lib*.so.*
|
||||
%attr(4755, root, root) %{_libexecdir}/libvirt_proxy
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root)
|
||||
@@ -76,8 +86,13 @@ rm -fr %{buildroot}
|
||||
%{_libdir}/lib*.so
|
||||
%{_includedir}/libvirt/*.h
|
||||
%{_libdir}/pkgconfig/libvirt.pc
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.html
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.png
|
||||
%doc %{_datadir}/gtk-doc/html/libvirt/*.css
|
||||
|
||||
%doc docs/*.html docs/html docs/*.gif
|
||||
%doc docs/examples
|
||||
%doc docs/libvirt-api.xml
|
||||
|
||||
%files python
|
||||
@@ -86,10 +101,57 @@ rm -fr %{buildroot}
|
||||
%doc AUTHORS NEWS README COPYING.LIB
|
||||
%{_libdir}/python*/site-packages/libvirt.py*
|
||||
%{_libdir}/python*/site-packages/libvirtmod*
|
||||
%doc python/tests/*.py
|
||||
%doc python/TODO
|
||||
%doc python/libvirtclass.txt
|
||||
%doc docs/examples/python
|
||||
|
||||
%changelog
|
||||
* Mon Jul 24 2006 Mark McLoughlin <markmc@redhat.com> - 0.1.3-2
|
||||
- Add BuildRequires: xen-devel
|
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.1.3-1.1
|
||||
- rebuild
|
||||
|
||||
* Tue Jul 11 2006 Daniel Veillard <veillard@redhat.com> 0.1.3-1
|
||||
- support for HVM Xen guests
|
||||
- various bugfixes
|
||||
|
||||
* Mon Jul 3 2006 Daniel Veillard <veillard@redhat.com> 0.1.2-1
|
||||
- added a proxy mechanism for read only access using httpu
|
||||
- fixed header includes paths
|
||||
|
||||
* Wed Jun 21 2006 Daniel Veillard <veillard@redhat.com> 0.1.1-1
|
||||
- extend and cleanup the driver infrastructure and code
|
||||
- python examples
|
||||
- extend uuid support
|
||||
- bug fixes, buffer handling cleanups
|
||||
- support for new Xen hypervisor API
|
||||
- test driver for unit testing
|
||||
- virsh --conect argument
|
||||
|
||||
* Mon Apr 10 2006 Daniel Veillard <veillard@redhat.com> 0.1.0-1
|
||||
- various fixes
|
||||
- new APIs: for Node information and Reboot
|
||||
- virsh improvements and extensions
|
||||
- documentation updates and man page
|
||||
- enhancement and fixes of the XML description format
|
||||
|
||||
* Tue Feb 28 2006 Daniel Veillard <veillard@redhat.com> 0.0.6-1
|
||||
- added error handling APIs
|
||||
- small bug fixes
|
||||
- improve python bindings
|
||||
- augment documentation and regression tests
|
||||
|
||||
* Thu Feb 23 2006 Daniel Veillard <veillard@redhat.com> 0.0.5-1
|
||||
- new domain creation API
|
||||
- new UUID based APIs
|
||||
- more tests, documentation, devhelp
|
||||
- bug fixes
|
||||
|
||||
* Fri Feb 10 2006 Daniel Veillard <veillard@redhat.com> 0.0.4-1
|
||||
- fixes some problems in 0.0.3 due to the change of names
|
||||
|
||||
* Wed Feb 8 2006 Daniel Veillard <veillard@redhat.com> 0.0.3-1
|
||||
- changed library name to libvirt from libvir, complete and test the python
|
||||
bindings
|
||||
|
||||
5
proxy/.cvsignore
Normal file
5
proxy/.cvsignore
Normal file
@@ -0,0 +1,5 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
.deps
|
||||
.libs
|
||||
libvirt_proxy
|
||||
19
proxy/Makefile.am
Normal file
19
proxy/Makefile.am
Normal file
@@ -0,0 +1,19 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I@top_srcdir@/include \
|
||||
-I@top_srcdir@/proxy -I@top_srcdir@/src @LIBXML_CFLAGS@ \
|
||||
-DPROXY
|
||||
|
||||
|
||||
libexec_PROGRAMS = libvirt_proxy
|
||||
|
||||
libvirt_proxy_SOURCES = libvirt_proxy.c @top_srcdir@/src/xend_internal.c \
|
||||
@top_srcdir@/src/xen_internal.c @top_srcdir@/src/virterror.c \
|
||||
@top_srcdir@/src/sexpr.c @top_srcdir@/src/xml.c \
|
||||
@top_srcdir@/src/xs_internal.c
|
||||
libvirt_proxy_LDFLAGS =
|
||||
libvirt_proxy_DEPENDENCIES =
|
||||
libvirt_proxy_LDADD =
|
||||
|
||||
install-exec-hook:
|
||||
chmod u+s $(DESTDIR)$(libexecdir)/libvirt_proxy
|
||||
752
proxy/libvirt_proxy.c
Normal file
752
proxy/libvirt_proxy.c
Normal file
@@ -0,0 +1,752 @@
|
||||
/*
|
||||
* proxy_svr.c: root suid proxy server for Xen access to APIs with no
|
||||
* side effects from unauthenticated clients.
|
||||
*
|
||||
* Copyright (C) 2006 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
* Daniel Veillard <veillard@redhat.com>
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include "internal.h"
|
||||
#include "proxy_internal.h"
|
||||
#include "xen_internal.h"
|
||||
#include "xend_internal.h"
|
||||
#include "xs_internal.h"
|
||||
|
||||
static int fdServer = -1;
|
||||
static int debug = 0;
|
||||
static int persist = 0;
|
||||
static int done = 0;
|
||||
|
||||
#define MAX_CLIENT 64
|
||||
|
||||
static int nbClients = 0; /* client 0 is the unix listen socket */
|
||||
static struct pollfd pollInfos[MAX_CLIENT + 1];
|
||||
|
||||
static virConnect conninfos;
|
||||
static virConnectPtr conn = &conninfos;
|
||||
|
||||
static unsigned long xenVersion = 0;
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Interfaces with the Xen hypervisor *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
/**
|
||||
* proxyInitXen:
|
||||
*
|
||||
* Initialize the communication layer with Xen
|
||||
*
|
||||
* Returns 0 or -1 in case of error
|
||||
*/
|
||||
static int
|
||||
proxyInitXen(void) {
|
||||
int ret;
|
||||
unsigned long xenVersion2;
|
||||
|
||||
ret = xenHypervisorOpen(conn, NULL, VIR_DRV_OPEN_QUIET);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Failed to open Xen hypervisor\n");
|
||||
return(-1);
|
||||
} else {
|
||||
ret = xenHypervisorGetVersion(conn, &xenVersion);
|
||||
if (ret != 0) {
|
||||
fprintf(stderr, "Failed to get Xen hypervisor version\n");
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
ret = xenDaemonOpen_unix(conn, "/var/lib/xend/xend-socket");
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Failed to connect to Xen daemon\n");
|
||||
return(-1);
|
||||
}
|
||||
ret = xenStoreOpen(conn, NULL, VIR_DRV_OPEN_QUIET | VIR_DRV_OPEN_RO);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "Failed to open XenStore connection");
|
||||
return (-1);
|
||||
}
|
||||
ret = xenDaemonGetVersion(conn, &xenVersion2);
|
||||
if (ret != 0) {
|
||||
fprintf(stderr, "Failed to get Xen daemon version\n");
|
||||
return(-1);
|
||||
}
|
||||
if (debug)
|
||||
fprintf(stderr, "Connected to hypervisor %lu and daemon %lu\n",
|
||||
xenVersion, xenVersion2);
|
||||
if (xenVersion2 > xenVersion)
|
||||
xenVersion = xenVersion2;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Processing of the unix socket to listen for clients *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
/**
|
||||
* proxyCloseUnixSocket:
|
||||
*
|
||||
* close the unix socket
|
||||
*
|
||||
* Returns 0 or -1 in case of error
|
||||
*/
|
||||
static int
|
||||
proxyCloseUnixSocket(void) {
|
||||
int ret;
|
||||
|
||||
if (fdServer < 0)
|
||||
return(0);
|
||||
|
||||
ret = close(fdServer);
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "closing unix socket %d: %d\n", fdServer, ret);
|
||||
fdServer = -1;
|
||||
pollInfos[0].fd = -1;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* proxyListenUnixSocket:
|
||||
* @path: the fileame for the socket
|
||||
*
|
||||
* create a new abstract socket based on that path and listen on it
|
||||
*
|
||||
* Returns the associated file descriptor or -1 in case of failure
|
||||
*/
|
||||
static int
|
||||
proxyListenUnixSocket(const char *path) {
|
||||
int fd;
|
||||
struct sockaddr_un addr;
|
||||
|
||||
if (fdServer >= 0)
|
||||
return(fdServer);
|
||||
|
||||
fd = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "Failed to create unix socket");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Abstract socket do not hit the filesystem, way more secure and
|
||||
* garanteed to be atomic
|
||||
*/
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sun_family = AF_UNIX;
|
||||
addr.sun_path[0] = '\0';
|
||||
strncpy(&addr.sun_path[1], path, (sizeof(addr) - 4) - 2);
|
||||
|
||||
/*
|
||||
* now bind the socket to that address and listen on it
|
||||
*/
|
||||
if (bind(fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
|
||||
fprintf(stderr, "Failed to bind to socket %s\n", path);
|
||||
close(fd);
|
||||
return (-1);
|
||||
}
|
||||
if (listen(fd, 30 /* backlog */ ) < 0) {
|
||||
fprintf(stderr, "Failed to listen to socket %s\n", path);
|
||||
close(fd);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "opened and bound unix socket %d\n", fd);
|
||||
|
||||
fdServer = fd;
|
||||
pollInfos[0].fd = fd;
|
||||
pollInfos[0].events = POLLIN | POLLERR | POLLHUP | POLLNVAL;
|
||||
return (fd);
|
||||
}
|
||||
|
||||
/**
|
||||
* proxyAcceptClientSocket:
|
||||
*
|
||||
* Process a request to the unix socket
|
||||
*
|
||||
* Returns the filedescriptor of the new client or -1 in case of error
|
||||
*/
|
||||
static int
|
||||
proxyAcceptClientSocket(void) {
|
||||
int client;
|
||||
socklen_t client_addrlen;
|
||||
struct sockaddr client_addr;
|
||||
|
||||
retry:
|
||||
client_addrlen = sizeof(client_addr);
|
||||
client = accept(pollInfos[0].fd, &client_addr, &client_addrlen);
|
||||
if (client < 0) {
|
||||
if (errno == EINTR) {
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "accept connection on socket %d interrupted\n",
|
||||
pollInfos[0].fd);
|
||||
goto retry;
|
||||
}
|
||||
fprintf(stderr, "Failed to accept incoming connection on socket %d\n",
|
||||
pollInfos[0].fd);
|
||||
done = 1;
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if (nbClients >= MAX_CLIENT) {
|
||||
fprintf(stderr, "Too many client registered\n");
|
||||
close(client);
|
||||
return(-1);
|
||||
}
|
||||
nbClients++;
|
||||
pollInfos[nbClients].fd = client;
|
||||
pollInfos[nbClients].events = POLLIN | POLLERR | POLLHUP | POLLNVAL;
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "accept connection on socket %d for client %d\n",
|
||||
client, nbClients);
|
||||
return(client);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Processing of client sockets *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
/**
|
||||
* proxyCloseClientSocket:
|
||||
* @nr: client number
|
||||
*
|
||||
* Close the socket from that client, and recompact the pollInfo array
|
||||
*
|
||||
* Returns 0 in case of success and -1 in case of error
|
||||
*/
|
||||
static int
|
||||
proxyCloseClientSocket(int nr) {
|
||||
int ret;
|
||||
|
||||
ret = close(pollInfos[nr].fd);
|
||||
if (ret != 0)
|
||||
fprintf(stderr, "Failed to close socket %d from client %d\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
else if (debug > 0)
|
||||
fprintf(stderr, "Closed socket %d from client %d\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
if (nr < nbClients) {
|
||||
memmove(&pollInfos[nr], &pollInfos[nr + 1],
|
||||
(nbClients - nr) * sizeof(pollInfos[0]));
|
||||
}
|
||||
nbClients--;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* proxyCloseClientSockets:
|
||||
*
|
||||
* Close all the sockets from the clients
|
||||
*/
|
||||
static void
|
||||
proxyCloseClientSockets(void) {
|
||||
int i, ret;
|
||||
|
||||
for (i = 1;i <= nbClients;i++) {
|
||||
ret = close(pollInfos[i].fd);
|
||||
if (ret != 0)
|
||||
fprintf(stderr, "Failed to close socket %d from client %d\n",
|
||||
pollInfos[i].fd, i);
|
||||
else if (debug > 0)
|
||||
fprintf(stderr, "Closed socket %d from client %d\n",
|
||||
pollInfos[i].fd, i);
|
||||
}
|
||||
nbClients = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* proxyWriteClientSocket:
|
||||
* @nr: the client number
|
||||
* @req: pointer to the packet
|
||||
*
|
||||
* Send back a packet to the client. If it seems write would be blocking
|
||||
* then try to disconnect from it.
|
||||
*
|
||||
* Return 0 in case of success and -1 in case of error.
|
||||
*/
|
||||
static int
|
||||
proxyWriteClientSocket(int nr, virProxyPacketPtr req) {
|
||||
int ret;
|
||||
|
||||
if ((nr <= 0) || (nr > nbClients) || (req == NULL) ||
|
||||
(req->len < sizeof(virProxyPacket)) ||
|
||||
(req->len > sizeof(virProxyFullPacket)) ||
|
||||
(pollInfos[nr].fd < 0)) {
|
||||
fprintf(stderr, "write to client %d in error", nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
retry:
|
||||
ret = write(pollInfos[nr].fd, (char *) req, req->len);
|
||||
if (ret < 0) {
|
||||
if (errno == EINTR) {
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "write socket %d to client %d interrupted\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
goto retry;
|
||||
}
|
||||
fprintf(stderr, "write %d bytes to socket %d from client %d failed\n",
|
||||
req->len, pollInfos[nr].fd, nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
if (ret == 0) {
|
||||
if (debug)
|
||||
fprintf(stderr, "end of stream from client %d on socket %d\n",
|
||||
nr, pollInfos[nr].fd);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if (ret != req->len) {
|
||||
fprintf(stderr, "write %d of %d bytes to socket %d from client %d\n",
|
||||
ret, req->len, pollInfos[nr].fd, nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
if (debug)
|
||||
fprintf(stderr, "wrote %d bytes to client %d on socket %d\n",
|
||||
ret, nr, pollInfos[nr].fd);
|
||||
|
||||
return(0);
|
||||
}
|
||||
/**
|
||||
* proxyReadClientSocket:
|
||||
* @nr: the client number
|
||||
*
|
||||
* Process a read from a client socket
|
||||
*/
|
||||
static int
|
||||
proxyReadClientSocket(int nr) {
|
||||
virProxyFullPacket request;
|
||||
virProxyPacketPtr req = (virProxyPacketPtr) &request;
|
||||
int ret;
|
||||
char *xml;
|
||||
|
||||
retry:
|
||||
ret = read(pollInfos[nr].fd, req, sizeof(virProxyPacket));
|
||||
if (ret < 0) {
|
||||
if (errno == EINTR) {
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "read socket %d from client %d interrupted\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
goto retry;
|
||||
}
|
||||
fprintf(stderr, "Failed to read socket %d from client %d\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
if (ret == 0) {
|
||||
if (debug)
|
||||
fprintf(stderr, "end of stream from client %d on socket %d\n",
|
||||
nr, pollInfos[nr].fd);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if (debug)
|
||||
fprintf(stderr, "read %d bytes from client %d on socket %d\n",
|
||||
ret, nr, pollInfos[nr].fd);
|
||||
|
||||
if ((req->version != PROXY_PROTO_VERSION) ||
|
||||
(req->len < sizeof(virProxyPacket)) ||
|
||||
(req->len > sizeof(virProxyFullPacket)))
|
||||
goto comm_error;
|
||||
|
||||
|
||||
if (debug)
|
||||
fprintf(stderr, "Got command %d from client %d\n", req->command, nr);
|
||||
|
||||
/*
|
||||
* complete reading the packet.
|
||||
* TODO: we should detect when blocking and abort connection if this happen
|
||||
*/
|
||||
if (req->len > ret) {
|
||||
int total, extra;
|
||||
char *base = (char *) &request;
|
||||
|
||||
total = ret;
|
||||
while (total < req->len) {
|
||||
extra = req->len - total;
|
||||
retry2:
|
||||
ret = read(pollInfos[nr].fd, base + total, extra);
|
||||
if (ret < 0) {
|
||||
if (errno == EINTR) {
|
||||
if (debug > 0)
|
||||
fprintf(stderr,
|
||||
"read socket %d from client %d interrupted\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
goto retry2;
|
||||
}
|
||||
fprintf(stderr, "Failed to read socket %d from client %d\n",
|
||||
pollInfos[nr].fd, nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
if (ret == 0) {
|
||||
if (debug)
|
||||
fprintf(stderr,
|
||||
"end of stream from client %d on socket %d\n",
|
||||
nr, pollInfos[nr].fd);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
total += ret;
|
||||
}
|
||||
}
|
||||
switch (req->command) {
|
||||
case VIR_PROXY_NONE:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
break;
|
||||
case VIR_PROXY_VERSION:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
req->data.larg = xenVersion;
|
||||
break;
|
||||
case VIR_PROXY_LIST: {
|
||||
int maxids;
|
||||
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
maxids = sizeof(request.extra.arg) / sizeof(int);
|
||||
ret = xenHypervisorListDomains(conn, &request.extra.arg[0],
|
||||
maxids);
|
||||
if (ret < 0) {
|
||||
req->len = sizeof(virProxyPacket);
|
||||
req->data.arg = 0;
|
||||
} else {
|
||||
req->len = sizeof(virProxyPacket) + ret * sizeof(int);
|
||||
req->data.arg = ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VIR_PROXY_NUM_DOMAIN:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
req->data.arg = xenHypervisorNumOfDomains(conn);
|
||||
break;
|
||||
case VIR_PROXY_MAX_MEMORY:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
req->data.larg = xenHypervisorGetDomMaxMemory(conn, req->data.arg);
|
||||
break;
|
||||
case VIR_PROXY_DOMAIN_INFO:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
memset(&request.extra.dinfo, 0, sizeof(virDomainInfo));
|
||||
ret = xenHypervisorGetDomInfo(conn, req->data.arg,
|
||||
&request.extra.dinfo);
|
||||
if (ret < 0) {
|
||||
req->data.arg = -1;
|
||||
} else {
|
||||
req->len += sizeof(virDomainInfo);
|
||||
}
|
||||
break;
|
||||
case VIR_PROXY_LOOKUP_ID: {
|
||||
char *name = NULL;
|
||||
unsigned char uuid[16];
|
||||
int len;
|
||||
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
|
||||
if (xenDaemonDomainLookupByID(conn, req->data.arg, &name, uuid) < 0) {
|
||||
req->data.arg = -1;
|
||||
} else {
|
||||
len = strlen(name);
|
||||
if (len > 1000) {
|
||||
len = 1000;
|
||||
name[1000] = 0;
|
||||
}
|
||||
req->len += 16 + len + 1;
|
||||
memcpy(&request.extra.str[0], uuid, 16);
|
||||
strcpy(&request.extra.str[16], name);
|
||||
}
|
||||
if (name)
|
||||
free(name);
|
||||
break;
|
||||
}
|
||||
case VIR_PROXY_LOOKUP_UUID: {
|
||||
char **names;
|
||||
char **tmp;
|
||||
int ident, len;
|
||||
char *name = NULL;
|
||||
unsigned char uuid[16];
|
||||
|
||||
if (req->len != sizeof(virProxyPacket) + 16)
|
||||
goto comm_error;
|
||||
|
||||
/*
|
||||
* Xend API forces to collect the full domain list by names, and
|
||||
* then query each of them until the id is found
|
||||
*/
|
||||
names = xenDaemonListDomainsOld(conn);
|
||||
tmp = names;
|
||||
|
||||
if (names != NULL) {
|
||||
while (*tmp != NULL) {
|
||||
ident = xenDaemonDomainLookupByName_ids(conn, *tmp, &uuid[0]);
|
||||
if (!memcmp(uuid, &request.extra.str[0], 16)) {
|
||||
name = *tmp;
|
||||
break;
|
||||
}
|
||||
tmp++;
|
||||
}
|
||||
}
|
||||
if (name == NULL) {
|
||||
/* not found */
|
||||
req->data.arg = -1;
|
||||
req->len = sizeof(virProxyPacket);
|
||||
} else {
|
||||
len = strlen(name);
|
||||
if (len > 1000) {
|
||||
len = 1000;
|
||||
name[1000] = 0;
|
||||
}
|
||||
req->len = sizeof(virProxyPacket) + len + 1;
|
||||
strcpy(&request.extra.str[0], name);
|
||||
req->data.arg = ident;
|
||||
}
|
||||
free(names);
|
||||
break;
|
||||
}
|
||||
case VIR_PROXY_LOOKUP_NAME: {
|
||||
int ident;
|
||||
unsigned char uuid[16];
|
||||
|
||||
if (req->len > sizeof(virProxyPacket) + 1000)
|
||||
goto comm_error;
|
||||
|
||||
ident = xenDaemonDomainLookupByName_ids(conn,
|
||||
&request.extra.str[0], &uuid[0]);
|
||||
if (ident < 0) {
|
||||
/* not found */
|
||||
req->data.arg = -1;
|
||||
req->len = sizeof(virProxyPacket);
|
||||
} else {
|
||||
req->len = sizeof(virProxyPacket) + 16;
|
||||
memcpy(&request.extra.str[0], uuid, 16);
|
||||
req->data.arg = ident;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VIR_PROXY_NODE_INFO:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
|
||||
/*
|
||||
* Hum, could we expect those informations to be unmutable and
|
||||
* cache them ? Since it's probably an unfrequent call better
|
||||
* not make assumption and do the xend RPC each call.
|
||||
*/
|
||||
ret = xenDaemonNodeGetInfo(conn, &request.extra.ninfo);
|
||||
if (ret < 0) {
|
||||
req->data.arg = -1;
|
||||
req->len = sizeof(virProxyPacket);
|
||||
} else {
|
||||
req->data.arg = 0;
|
||||
req->len = sizeof(virProxyPacket) + sizeof(virNodeInfo);
|
||||
}
|
||||
break;
|
||||
case VIR_PROXY_DOMAIN_XML:
|
||||
if (req->len != sizeof(virProxyPacket))
|
||||
goto comm_error;
|
||||
|
||||
xml = xenDaemonDomainDumpXMLByID(conn, request.data.arg);
|
||||
if (!xml) {
|
||||
req->data.arg = -1;
|
||||
req->len = sizeof(virProxyPacket);
|
||||
} else {
|
||||
int xmllen = strlen(xml);
|
||||
if (xmllen > sizeof(request.extra.str)) {
|
||||
req->data.arg = -2;
|
||||
req->len = sizeof(virProxyPacket);
|
||||
} else {
|
||||
req->data.arg = 0;
|
||||
memmove(&request.extra.str[0], xml, xmllen);
|
||||
req->len = sizeof(virProxyPacket) + xmllen;
|
||||
}
|
||||
free(xml);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto comm_error;
|
||||
}
|
||||
ret = proxyWriteClientSocket(nr, req);
|
||||
return(ret);
|
||||
|
||||
comm_error:
|
||||
fprintf(stderr,
|
||||
"Communication error with client %d: malformed packet\n", nr);
|
||||
proxyCloseClientSocket(nr);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Main loop processing *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
/**
|
||||
* proxyProcessRequests:
|
||||
*
|
||||
* process requests and timers
|
||||
*/
|
||||
static void
|
||||
proxyProcessRequests(void) {
|
||||
int exit_timeout = 30;
|
||||
int ret, i;
|
||||
|
||||
while (!done) {
|
||||
/*
|
||||
* wait for requests, with a one second timeout
|
||||
*/
|
||||
ret = poll(&pollInfos[0], nbClients + 1, 1000);
|
||||
if (ret == 0) { /* timeout */
|
||||
if ((nbClients == 0) && (persist == 0)) {
|
||||
exit_timeout--;
|
||||
if (exit_timeout == 0) {
|
||||
done = 1;
|
||||
if (debug > 0) {
|
||||
fprintf(stderr, "Exitting after 30s without clients\n");
|
||||
}
|
||||
}
|
||||
} else
|
||||
exit_timeout = 30;
|
||||
if (debug > 1)
|
||||
fprintf(stderr, "poll timeout\n");
|
||||
continue;
|
||||
} else if (ret < 0) {
|
||||
if (errno == EINTR) {
|
||||
if (debug > 0)
|
||||
fprintf(stderr, "poll syscall interrupted\n");
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "poll syscall failed\n");
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* there have been I/O to process
|
||||
*/
|
||||
exit_timeout = 30;
|
||||
if (pollInfos[0].revents != 0) {
|
||||
if (pollInfos[0].revents & POLLIN) {
|
||||
proxyAcceptClientSocket();
|
||||
} else {
|
||||
fprintf(stderr, "Got an error %d on incoming socket %d\n",
|
||||
pollInfos[0].revents, pollInfos[0].fd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* process the clients in reverse order since on error or disconnect
|
||||
* pollInfos is compacted to remove the given client.
|
||||
*/
|
||||
for (i = nbClients;i > 0;i--) {
|
||||
if (pollInfos[i].revents & POLLIN) {
|
||||
proxyReadClientSocket(i);
|
||||
} else if (pollInfos[i].revents != 0) {
|
||||
fprintf(stderr, "Got an error %d on client %d socket %d\n",
|
||||
pollInfos[i].revents, i, pollInfos[i].fd);
|
||||
proxyCloseClientSocket(i);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* proxyMainLoop:
|
||||
*
|
||||
* main loop for the proxy, continually try to keep the unix socket
|
||||
* open, serve client requests, and process timing events.
|
||||
*/
|
||||
|
||||
static void
|
||||
proxyMainLoop(void) {
|
||||
while (! done) {
|
||||
if (proxyListenUnixSocket(PROXY_SOCKET_PATH) < 0)
|
||||
break;
|
||||
proxyProcessRequests();
|
||||
}
|
||||
proxyCloseClientSockets();
|
||||
}
|
||||
|
||||
/**
|
||||
* usage:
|
||||
*
|
||||
* dump on stdout informations about the program
|
||||
*/
|
||||
static void
|
||||
usage(const char *progname) {
|
||||
printf("Usage: %s [-v] [-v]\n", progname);
|
||||
printf(" option -v increase the verbosity level for debugging\n");
|
||||
printf("This is a proxy for xen services used by libvirt to offer\n");
|
||||
printf("safe and fast status information on the Xen virtualization.\n");
|
||||
printf("This need not be run manually it's started automatically.\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* main:
|
||||
*
|
||||
* Check that we are running with root priviledges, initialize the
|
||||
* connections to the daemon and or hypervisor, and then run the main loop
|
||||
*/
|
||||
int main(int argc, char **argv) {
|
||||
int i;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i], "-v")) {
|
||||
debug++;
|
||||
} else if (!strcmp(argv[i], "-no-timeout")) {
|
||||
persist = 1;
|
||||
} else {
|
||||
usage(argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (geteuid() != 0) {
|
||||
fprintf(stderr, "%s must be run as root or suid\n", argv[0]);
|
||||
/* exit(1); */
|
||||
}
|
||||
|
||||
/*
|
||||
* setup a connection block
|
||||
*/
|
||||
memset(conn, 0, sizeof(conninfos));
|
||||
conn->magic = VIR_CONNECT_MAGIC;
|
||||
|
||||
/*
|
||||
* very fist thing, use the socket as an exclusive lock, this then
|
||||
* allow to do timed exits, avoiding constant CPU usage in case of
|
||||
* failure.
|
||||
*/
|
||||
if (proxyListenUnixSocket(PROXY_SOCKET_PATH) < 0)
|
||||
exit(0);
|
||||
if (proxyInitXen() == 0)
|
||||
proxyMainLoop();
|
||||
sleep(1);
|
||||
proxyCloseUnixSocket();
|
||||
exit(0);
|
||||
}
|
||||
12
python/.cvsignore
Normal file
12
python/.cvsignore
Normal file
@@ -0,0 +1,12 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
.deps
|
||||
.libs
|
||||
*.lo
|
||||
*.la
|
||||
libvirt.py
|
||||
libvirt-export.c
|
||||
libvirtclass.txt
|
||||
libvirt-py.[ch]
|
||||
libvirtclass.py
|
||||
gen_prog
|
||||
@@ -1,12 +1,14 @@
|
||||
# Makefile for libvirt python library
|
||||
|
||||
SUBDIRS= . tests
|
||||
|
||||
INCLUDES = \
|
||||
-I$(PYTHON_INCLUDES) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_builddir)/$(subdir)
|
||||
|
||||
DOCS_DIR = $(datadir)/doc/libvirt-python-$(LIBVIR_VERSION)
|
||||
DOCS_DIR = $(datadir)/doc/libvirt-python-$(LIBVIRT_VERSION)
|
||||
|
||||
DOCS = ${srcdir}/TODO
|
||||
|
||||
@@ -16,6 +18,7 @@ EXTRA_DIST = \
|
||||
generator.py \
|
||||
libvirt_wrap.h \
|
||||
libvirt.py \
|
||||
libvir.py \
|
||||
libvirt-python-api.xml \
|
||||
$(DOCS)
|
||||
|
||||
@@ -31,6 +34,8 @@ python_LTLIBRARIES = libvirtmod.la
|
||||
libvirtmod_la_SOURCES = libvir.c types.c libvirt-py.c libvirt-py.h
|
||||
libvirtmod_la_LIBADD = $(mylibs)
|
||||
|
||||
libvirt.py: $(srcdir)/libvir.py libvirtclass.py
|
||||
cat $(srcdir)/libvir.py libvirtclass.py > libvirt.py
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(pythondir)
|
||||
@@ -45,7 +50,8 @@ GENERATED= libvirt.py \
|
||||
libvirt-export.c \
|
||||
libvirtclass.txt \
|
||||
libvirt-py.c \
|
||||
libvirt-py.h
|
||||
libvirt-py.h \
|
||||
libvirtclass.py
|
||||
|
||||
CLEANFILES= $(GENERATED) gen_prog libvirt.py
|
||||
|
||||
@@ -60,3 +66,8 @@ $(libvirtmod_la_OBJECTS): $(GENERATED)
|
||||
else
|
||||
all:
|
||||
endif
|
||||
|
||||
dummy:
|
||||
|
||||
tests test: all dummy
|
||||
-@(cd tests && $(MAKE) MAKEFLAGS+=--silent tests)
|
||||
|
||||
@@ -203,7 +203,9 @@ def enum(type, name, value):
|
||||
#######################################################################
|
||||
|
||||
functions_failed = []
|
||||
functions_skipped = []
|
||||
functions_skipped = [
|
||||
"virConnectListDomains"
|
||||
]
|
||||
|
||||
skipped_modules = {
|
||||
}
|
||||
@@ -222,10 +224,10 @@ skipped_types = {
|
||||
py_types = {
|
||||
'void': (None, None, None, None),
|
||||
'int': ('i', None, "int", "int"),
|
||||
'long': ('i', None, "int", "int"),
|
||||
'long': ('l', None, "long", "long"),
|
||||
'double': ('d', None, "double", "double"),
|
||||
'unsigned int': ('i', None, "int", "int"),
|
||||
'unsigned long': ('i', None, "int", "int"),
|
||||
'unsigned long': ('l', None, "long", "long"),
|
||||
'unsigned char *': ('z', None, "charPtr", "char *"),
|
||||
'char *': ('z', None, "charPtr", "char *"),
|
||||
'const char *': ('z', None, "charPtrConst", "const char *"),
|
||||
@@ -249,7 +251,7 @@ foreign_encoding_args = (
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# This part writes the C <-> Python stubs libxml2-py.[ch] and
|
||||
# This part writes the C <-> Python stubs libvirt2-py.[ch] and
|
||||
# the table libxml2-export.c to add when registrering the Python module
|
||||
#
|
||||
#######################################################################
|
||||
@@ -259,6 +261,9 @@ foreign_encoding_args = (
|
||||
skip_impl = (
|
||||
'virConnectListDomainsID',
|
||||
'virDomainGetInfo',
|
||||
'virNodeGetInfo',
|
||||
'virDomainGetUUID',
|
||||
'virDomainLookupByUUID',
|
||||
)
|
||||
|
||||
def skip_function(name):
|
||||
@@ -475,7 +480,7 @@ def buildStubs():
|
||||
wrapper = open("libvirt-py.c", "w")
|
||||
wrapper.write("/* Generated */\n\n")
|
||||
wrapper.write("#include <Python.h>\n")
|
||||
wrapper.write("#include <libvirt.h>\n")
|
||||
wrapper.write("#include <libvirt/libvirt.h>\n")
|
||||
wrapper.write("#include \"libvirt_wrap.h\"\n")
|
||||
wrapper.write("#include \"libvirt-py.h\"\n\n")
|
||||
for function in functions.keys():
|
||||
@@ -558,6 +563,9 @@ def nameFixup(name, classe, type, file):
|
||||
elif name[0:9] == "virDomain":
|
||||
func = name[9:]
|
||||
func = string.lower(func[0:1]) + func[1:]
|
||||
elif name[0:7] == "virNode":
|
||||
func = name[7:]
|
||||
func = string.lower(func[0:1]) + func[1:]
|
||||
elif name[0:10] == "virConnect":
|
||||
func = name[10:]
|
||||
func = string.lower(func[0:1]) + func[1:]
|
||||
@@ -568,6 +576,8 @@ def nameFixup(name, classe, type, file):
|
||||
func = name
|
||||
if func == "iD":
|
||||
func = "ID"
|
||||
if func == "uUID":
|
||||
func = "UUID"
|
||||
if func == "oSType":
|
||||
func = "OSType"
|
||||
if func == "xMLDesc":
|
||||
@@ -685,17 +695,7 @@ def buildWrappers():
|
||||
info = (0, func, name, ret, args, file)
|
||||
function_classes['None'].append(info)
|
||||
|
||||
classes = open("libvirt.py", "w")
|
||||
classes.write("""#!/usr/bin/python -u
|
||||
#
|
||||
# Those are the autogenerated Python bindings for libvirt.
|
||||
# Check python/generator.py in the source distribution of libvirt
|
||||
# to find out more about the generation process
|
||||
#
|
||||
""")
|
||||
|
||||
classes.write("import libvirtmod\n")
|
||||
classes.write("import types\n\n")
|
||||
classes = open("libvirtclass.py", "w")
|
||||
|
||||
txt = open("libvirtclass.txt", "w")
|
||||
txt.write(" Generated Classes for libvir-python\n\n")
|
||||
@@ -748,7 +748,12 @@ def buildWrappers():
|
||||
# Raise an exception
|
||||
#
|
||||
if functions_noexcept.has_key(name):
|
||||
classes.write(" if ret is None:return None\n");
|
||||
classes.write(" if ret is None:return None\n");
|
||||
else:
|
||||
classes.write(
|
||||
" if ret is None:raise libvirtError('%s() failed')\n" %
|
||||
(name))
|
||||
|
||||
classes.write(" return ");
|
||||
classes.write(classes_type[ret[0]][1] % ("ret"));
|
||||
classes.write("\n");
|
||||
@@ -861,6 +866,10 @@ def buildWrappers():
|
||||
if functions_noexcept.has_key(name):
|
||||
classes.write(
|
||||
" if ret is None:return None\n");
|
||||
else:
|
||||
classes.write(
|
||||
" if ret is None:raise libvirtError('%s() failed')\n" %
|
||||
(name))
|
||||
|
||||
#
|
||||
# generate the returned class wrapper for the object
|
||||
|
||||
183
python/libvir.c
183
python/libvir.c
@@ -10,12 +10,109 @@
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
#include <libvirt.h>
|
||||
#include <libvirt/libvirt.h>
|
||||
#include <libvirt/virterror.h>
|
||||
#include "libvirt_wrap.h"
|
||||
#include "libvirt-py.h"
|
||||
|
||||
void initlibvirmod(void);
|
||||
|
||||
PyObject *libvirt_virDomainGetUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
||||
/************************************************************************
|
||||
* *
|
||||
* Global error handler at the Python level *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
static PyObject *libvirt_virPythonErrorFuncHandler = NULL;
|
||||
static PyObject *libvirt_virPythonErrorFuncCtxt = NULL;
|
||||
|
||||
static void
|
||||
libvirt_virErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, virErrorPtr err)
|
||||
{
|
||||
PyObject *list, *info;
|
||||
PyObject *result;
|
||||
|
||||
#ifdef DEBUG_ERROR
|
||||
printf("libvirt_virErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
|
||||
#endif
|
||||
|
||||
if ((err == NULL) || (err->code == VIR_ERR_OK))
|
||||
return;
|
||||
|
||||
if ((libvirt_virPythonErrorFuncHandler == NULL) ||
|
||||
(libvirt_virPythonErrorFuncHandler == Py_None)) {
|
||||
virDefaultErrorFunc(err);
|
||||
} else {
|
||||
list = PyTuple_New(2);
|
||||
info = PyTuple_New(9);
|
||||
PyTuple_SetItem(list, 0, libvirt_virPythonErrorFuncCtxt);
|
||||
PyTuple_SetItem(list, 1, info);
|
||||
Py_XINCREF(libvirt_virPythonErrorFuncCtxt);
|
||||
PyTuple_SetItem(info, 0, PyInt_FromLong((long) err->code));
|
||||
PyTuple_SetItem(info, 1, PyInt_FromLong((long) err->domain));
|
||||
PyTuple_SetItem(info, 2, libvirt_charPtrWrap(err->message));
|
||||
PyTuple_SetItem(info, 3, PyInt_FromLong((long) err->level));
|
||||
PyTuple_SetItem(info, 4, libvirt_charPtrWrap(err->str1));
|
||||
PyTuple_SetItem(info, 5, libvirt_charPtrWrap(err->str2));
|
||||
PyTuple_SetItem(info, 6, libvirt_charPtrWrap(err->str3));
|
||||
PyTuple_SetItem(info, 7, PyInt_FromLong((long) err->int1));
|
||||
PyTuple_SetItem(info, 8, PyInt_FromLong((long) err->int2));
|
||||
/* TODO pass conn and dom if available */
|
||||
result = PyEval_CallObject(libvirt_virPythonErrorFuncHandler, list);
|
||||
Py_XDECREF(list);
|
||||
Py_XDECREF(result);
|
||||
}
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
libvirt_virRegisterErrorHandler(ATTRIBUTE_UNUSED PyObject * self,
|
||||
PyObject * args)
|
||||
{
|
||||
PyObject *py_retval;
|
||||
PyObject *pyobj_f;
|
||||
PyObject *pyobj_ctx;
|
||||
|
||||
if (!PyArg_ParseTuple
|
||||
(args, (char *) "OO:xmlRegisterErrorHandler", &pyobj_f,
|
||||
&pyobj_ctx))
|
||||
return (NULL);
|
||||
|
||||
#ifdef DEBUG_ERROR
|
||||
printf("libvirt_virRegisterErrorHandler(%p, %p) called\n", pyobj_ctx,
|
||||
pyobj_f);
|
||||
#endif
|
||||
|
||||
virSetErrorFunc(NULL, libvirt_virErrorFuncHandler);
|
||||
if (libvirt_virPythonErrorFuncHandler != NULL) {
|
||||
Py_XDECREF(libvirt_virPythonErrorFuncHandler);
|
||||
}
|
||||
if (libvirt_virPythonErrorFuncCtxt != NULL) {
|
||||
Py_XDECREF(libvirt_virPythonErrorFuncCtxt);
|
||||
}
|
||||
|
||||
if ((pyobj_f == Py_None) && (pyobj_ctx == Py_None)) {
|
||||
libvirt_virPythonErrorFuncHandler = NULL;
|
||||
libvirt_virPythonErrorFuncCtxt = NULL;
|
||||
} else {
|
||||
Py_XINCREF(pyobj_ctx);
|
||||
Py_XINCREF(pyobj_f);
|
||||
|
||||
/* TODO: check f is a function ! */
|
||||
libvirt_virPythonErrorFuncHandler = pyobj_f;
|
||||
libvirt_virPythonErrorFuncCtxt = pyobj_ctx;
|
||||
}
|
||||
|
||||
py_retval = libvirt_intWrap(1);
|
||||
return (py_retval);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Wrappers for functions where generator fails *
|
||||
* *
|
||||
************************************************************************/
|
||||
|
||||
static PyObject *
|
||||
libvirt_virDomainFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
|
||||
PyObject *py_retval;
|
||||
@@ -100,6 +197,82 @@ libvirt_virDomainGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
|
||||
return(py_retval);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
libvirt_virNodeGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
|
||||
PyObject *py_retval;
|
||||
int c_retval;
|
||||
virConnectPtr conn;
|
||||
PyObject *pyobj_conn;
|
||||
virNodeInfo info;
|
||||
|
||||
if (!PyArg_ParseTuple(args, (char *)"O:virDomainGetInfo", &pyobj_conn))
|
||||
return(NULL);
|
||||
conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
|
||||
|
||||
c_retval = virNodeGetInfo(conn, &info);
|
||||
if (c_retval < 0) {
|
||||
Py_INCREF(Py_None);
|
||||
return(Py_None);
|
||||
}
|
||||
py_retval = PyList_New(8);
|
||||
PyList_SetItem(py_retval, 0, libvirt_constcharPtrWrap(&info.model[0]));
|
||||
PyList_SetItem(py_retval, 1, libvirt_longWrap((long) info.memory >> 10));
|
||||
PyList_SetItem(py_retval, 2, libvirt_intWrap((int) info.cpus));
|
||||
PyList_SetItem(py_retval, 3, libvirt_intWrap((int) info.mhz));
|
||||
PyList_SetItem(py_retval, 4, libvirt_intWrap((int) info.nodes));
|
||||
PyList_SetItem(py_retval, 5, libvirt_intWrap((int) info.sockets));
|
||||
PyList_SetItem(py_retval, 6, libvirt_intWrap((int) info.cores));
|
||||
PyList_SetItem(py_retval, 7, libvirt_intWrap((int) info.threads));
|
||||
return(py_retval);
|
||||
}
|
||||
|
||||
PyObject *
|
||||
libvirt_virDomainGetUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
|
||||
PyObject *py_retval;
|
||||
unsigned char uuid[16];
|
||||
virDomainPtr domain;
|
||||
PyObject *pyobj_domain;
|
||||
|
||||
if (!PyArg_ParseTuple(args, (char *)"O:virDomainGetUUID", &pyobj_domain))
|
||||
return(NULL);
|
||||
domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
|
||||
|
||||
if (domain == NULL) {
|
||||
Py_INCREF(Py_None);
|
||||
return(Py_None);
|
||||
}
|
||||
if (virDomainGetUUID(domain, &uuid[0]) < 0) {
|
||||
Py_INCREF(Py_None);
|
||||
return(Py_None);
|
||||
}
|
||||
py_retval = PyString_FromStringAndSize((char *) &uuid[0], 16);
|
||||
|
||||
return(py_retval);
|
||||
}
|
||||
|
||||
PyObject *
|
||||
libvirt_virDomainLookupByUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
|
||||
PyObject *py_retval;
|
||||
virDomainPtr c_retval;
|
||||
virConnectPtr conn;
|
||||
PyObject *pyobj_conn;
|
||||
unsigned char * uuid;
|
||||
int len;
|
||||
|
||||
if (!PyArg_ParseTuple(args, (char *)"Oz#:virDomainLookupByUUID", &pyobj_conn, &uuid, &len))
|
||||
return(NULL);
|
||||
conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
|
||||
|
||||
if ((uuid == NULL) || (len != 16)) {
|
||||
Py_INCREF(Py_None);
|
||||
return(Py_None);
|
||||
}
|
||||
|
||||
c_retval = virDomainLookupByUUID(conn, uuid);
|
||||
py_retval = libvirt_virDomainPtrWrap((virDomainPtr) c_retval);
|
||||
return(py_retval);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* The registration stuff *
|
||||
@@ -111,17 +284,23 @@ static PyMethodDef libvirtMethods[] = {
|
||||
{(char *) "virConnectClose", libvirt_virConnectClose, METH_VARARGS, NULL},
|
||||
{(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},
|
||||
{(char *) "virDomainGetInfo", libvirt_virDomainGetInfo, METH_VARARGS, NULL},
|
||||
{(char *) "virNodeGetInfo", libvirt_virNodeGetInfo, METH_VARARGS, NULL},
|
||||
{(char *) "virDomainGetUUID", libvirt_virDomainGetUUID, METH_VARARGS, NULL},
|
||||
{(char *) "virDomainLookupByUUID", libvirt_virDomainLookupByUUID, METH_VARARGS, NULL},
|
||||
{(char *) "virRegisterErrorHandler", libvirt_virRegisterErrorHandler, METH_VARARGS, NULL},
|
||||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
void
|
||||
initlibvirmod(void)
|
||||
initlibvirtmod(void)
|
||||
{
|
||||
static int initialized = 0;
|
||||
|
||||
if (initialized != 0)
|
||||
return;
|
||||
|
||||
virInitialize();
|
||||
|
||||
/* intialize the python extension module */
|
||||
Py_InitModule((char *) "libvirtmod", libvirtMethods);
|
||||
|
||||
|
||||
30
python/libvir.py
Normal file
30
python/libvir.py
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/python -u
|
||||
#
|
||||
# Those are the autogenerated Python bindings for libvirt.
|
||||
# Check python/generator.py in the source distribution of libvir
|
||||
# to find out more about the generation process
|
||||
#
|
||||
import libvirtmod
|
||||
import types
|
||||
|
||||
# The root of all libxml2 errors.
|
||||
class libvirtError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
#
|
||||
# register the libvirt global error handler
|
||||
#
|
||||
def registerErrorHandler(f, ctx):
|
||||
"""Register a Python written function to for error reporting.
|
||||
The function is called back as f(ctx, error), with error
|
||||
being a list of informations about the error being raised.
|
||||
Returns 1 in case of success."""
|
||||
return libvirtmod.virRegisterErrorHandler(f,ctx)
|
||||
|
||||
# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
||||
#
|
||||
# Everything before this line comes from libvir.py
|
||||
# Everything after this line is automatically generated
|
||||
#
|
||||
# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
||||
@@ -6,10 +6,26 @@
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<return type='int *' info="the list of ID or None in case of error"/>
|
||||
</function>
|
||||
<function name='virDomainGetInfo' file='libvir' module='libvir'>
|
||||
<info>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the informations can be extracted.</info>
|
||||
<function name='virDomainLookupByUUID' file='python'>
|
||||
<info>Try to lookup a domain on the given hypervisor based on its UUID.</info>
|
||||
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='uuid' type='const unsigned char *' info='the UUID string for the domain, must be 16 bytes'/>
|
||||
</function>
|
||||
<function name='virDomainGetInfo' file='python'>
|
||||
<info>Extract informations about a domain. Note that if the connection used to get the domain is limited only a partial set of the informations can be extracted.</info>
|
||||
<return type='int *' info='the list of informations or None in case of error'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
<function name='virNodeGetInfo' file='python'>
|
||||
<info>Extract hardware informations about the Node.</info>
|
||||
<return type='int *' info='the list of informations or None in case of error'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
</function>
|
||||
<function name='virDomainGetUUID' file='python'>
|
||||
<info>Extract the UUID unique Identifier of a domain.</info>
|
||||
<return type='char *' info='the 16 bytes string or None in case of error'/>
|
||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||
</function>
|
||||
</symbols>
|
||||
</api>
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
#include <libvirt.h>
|
||||
#include <libvirt/libvirt.h>
|
||||
#include <libvirt/virterror.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#ifdef ATTRIBUTE_UNUSED
|
||||
|
||||
2
python/tests/.cvsignore
Normal file
2
python/tests/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user