提交 0f579f78 编写于 作者: K Karel Zak

XML-RPC tests

上级 bfee5cd2
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
......
## Process this file with automake to produce Makefile.in
SUBDIRS = src include docs @PYTHON_SUBDIR@
SUBDIRS = src include docs @PYTHON_SUBDIR@ tests
EXTRA_DIST = libvirt.spec.in libvirt.spec COPYING.LIB \
libvirt.pc.in libvirt.pc TODO AUTHORS ChangeLog \
......@@ -19,5 +19,4 @@ check-local: all tests
tests:
@(cd docs/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
$(MAKE) MAKEFLAGS+=--silent tests ; fi)
$(MAKE) MAKEFLAGS+=--silent tests ; fi)
......@@ -94,7 +94,7 @@ 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
......@@ -254,4 +254,5 @@ AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
docs/examples/Makefile docs/devhelp/Makefile \
docs/examples/python/Makefile \
libvirt.pc libvirt.spec include/libvirt.h \
python/Makefile python/tests/Makefile)
python/Makefile python/tests/Makefile \
tests/Makefile)
......@@ -46,6 +46,7 @@
<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#virDomainDefineXML">virDomainDefineXML</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 />
......@@ -101,13 +102,15 @@
</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 />
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
</dd></dl><h2>Letter U:</h2><dl><dt>UTF-8</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
</dd></dl><h2>Letter U:</h2><dl><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#virDomainLookupByUUID">virDomainLookupByUUID</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 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#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 />
......@@ -156,7 +159,8 @@
<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>array</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#virDomainGetUUID">virDomainGetUUID</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-virterror.html#_virError">_virError</a><br />
......@@ -177,12 +181,15 @@
</dd><dt>better</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</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-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>bytes</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetUUID">virDomainGetUUID</a><br />
</dd></dl><h2>Letter c:</h2><dl><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#virInitialize">virInitialize</a><br />
......@@ -227,11 +234,13 @@
<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#virDomainCreateLinux">virDomainCreateLinux</a><br />
<a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</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 />
......
......@@ -12,16 +12,25 @@
</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>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#virDomainDestroy">virDomainDestroy</a><br />
</dd><dt>domains</dt><dd><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</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#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></dl><h2>Letter e:</h2><dl><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 />
......@@ -59,6 +68,7 @@
<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 />
......@@ -83,7 +93,8 @@
<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#virDomainResume">virDomainResume</a><br />
</dd><dt>from</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</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 />
......@@ -160,6 +171,7 @@
<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#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
</dd><dt>launch</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</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 />
......@@ -180,7 +192,8 @@
</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 />
</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#virConnectListDomains">virConnectListDomains</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>lookup</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
......@@ -219,6 +232,7 @@
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</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>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 />
......
......@@ -7,6 +7,7 @@
</h2><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 />
</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 />
......@@ -25,6 +26,7 @@
</dd><dt>not</dt><dd><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 />
<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 />
......@@ -32,11 +34,13 @@
<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 />
<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><dt>number</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</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#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#virDomainGetID">virDomainGetID</a><br />
......@@ -78,6 +82,7 @@
<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 />
......@@ -95,32 +100,11 @@
<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>pointer</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#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-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</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#virDomainGetUUID">virDomainGetUUID</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#virDomainRestore">virDomainRestore</a><br />
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
<a href="html/libvirt-virterror.html#virResetError">virResetError</a><br />
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</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>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 />
......@@ -133,6 +117,7 @@
</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 />
......@@ -187,9 +172,11 @@
</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 />
......@@ -210,12 +197,14 @@
</dd><dt>shutdown</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
</dd><dt>similar</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</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#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>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 />
......@@ -225,10 +214,13 @@
<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#virConnectListDomains">virConnectListDomains</a><br />
</dd><dt>store</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#virConnectOpen">virConnectOpen</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 />
......@@ -239,7 +231,9 @@
<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>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 />
......@@ -252,6 +246,7 @@
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</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 />
......
......@@ -40,7 +40,8 @@
</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>uniform</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
</dd></dl><h2>Letter u:</h2><dl><dt>undefine</dt><dd><a href="html/libvirt-libvirt.html#virDomainUndefine">virDomainUndefine</a><br />
</dd><dt>uniform</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</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 />
......@@ -129,4 +130,4 @@
<a href="APIchunk1.html">d-m</a>
<a href="APIchunk2.html">n-s</a>
<a href="APIchunk3.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&amp;component=libvirt&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=MODIFIED&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://hg.berrange.com/libraries/sys-virt">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>
</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&amp;component=libvirt&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=MODIFIED&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;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,7 @@
</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 />
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
......
......@@ -24,6 +24,7 @@
<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 />
......@@ -31,8 +32,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 />
......@@ -60,12 +63,14 @@
<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 />
<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 />
</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 />
......@@ -95,6 +100,7 @@
<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_SEXPR">VIR_FROM_SEXPR</a><br />
......
<?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 const unsigned char *:</h2><p><a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</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 />
</p><h2>Type unsigned int:</h2><p><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
......@@ -16,16 +17,19 @@
<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#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 />
......@@ -41,6 +45,7 @@
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</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 />
</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 />
......
......@@ -18,6 +18,7 @@
<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 />
......@@ -47,6 +48,7 @@
<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_SEXPR">VIR_FROM_SEXPR</a><br />
......@@ -66,6 +68,7 @@
<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 />
......@@ -75,8 +78,10 @@
<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 />
......@@ -104,6 +109,7 @@
<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 />
......
.memdump
Makefile.in
Makefile
info1
suspend
info1
......@@ -18,24 +18,24 @@ install-data-local:
EXTRA_DIST=examples.xsl index.py examples.xml
noinst_PROGRAMS=info1 suspend
info1_SOURCES=info1.c
info1_LDFLAGS=
info1_DEPENDENCIES= $(DEPS)
info1_LDADD= $(LDADDS)
noinst_PROGRAMS=suspend info1
suspend_SOURCES=suspend.c
suspend_LDFLAGS=
suspend_DEPENDENCIES= $(DEPS)
suspend_LDADD= $(LDADDS)
info1_SOURCES=info1.c
info1_LDFLAGS=
info1_DEPENDENCIES= $(DEPS)
info1_LDADD= $(LDADDS)
valgrind:
$(MAKE) CHECKER='valgrind' tests
tests: $(noinst_PROGRAMS)
@(echo '## examples regression tests')
@($(CHECKER) ./info1)
@($(CHECKER) ./suspend)
@($(CHECKER) ./info1)
<examples>
<example filename='info1.c'>
<synopsis>Extract informations about Xen domain 0</synopsis>
<purpose>Demonstrate the basic use of the library to connect to the hypervisor and extract domain informations.</purpose>
<usage>info1</usage>
<test>info1</test>
<author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
<section>Informations</section>
<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'/>
</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>
......@@ -40,33 +21,52 @@
<function line='100' file='libvirt' name='virConnectOpenReadOnly'/>
</uses>
</example>
<example filename='info1.c'>
<synopsis>Extract informations about Xen domain 0</synopsis>
<purpose>Demonstrate the basic use of the library to connect to the hypervisor and extract domain informations.</purpose>
<usage>info1</usage>
<test>info1</test>
<author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
<section>Informations</section>
<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'/>
</uses>
</example>
<symbols>
<symbol name='virConnectClose'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virConnectListDomains'>
<ref filename='suspend.c'/>
</symbol>
<symbol name='virConnectOpenReadOnly'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virDomainFree'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virDomainGetInfo'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virDomainInfo'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virDomainLookupByID'>
<ref filename='info1.c'/>
<ref filename='suspend.c'/>
<ref filename='info1.c'/>
</symbol>
<symbol name='virDomainResume'>
<ref filename='suspend.c'/>
......
......@@ -19,11 +19,14 @@ The content of this structure is not made public by the API.
</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>
......@@ -44,6 +47,7 @@ The content of this structure is not made public by the API.
<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="#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>
......@@ -113,7 +117,9 @@ The content of this structure is not made public by the API.
</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="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 />
<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>
......@@ -121,9 +127,13 @@ The content of this structure is not made public by the API.
</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="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 />
<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="virDomainDestroy" id="virDomainDestroy"></a>Function: virDomainDestroy</h3><pre class="programlisting">int virDomainDestroy (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain)<br />
<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>
......@@ -163,7 +173,9 @@ The content of this structure is not made public by the API.
</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="virGetVersion" id="virGetVersion"></a>Function: virGetVersion</h3><pre class="programlisting">int virGetVersion (unsigned long * libVer, <br /> const char * type, <br /> unsigned long * typeVer)<br />
<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>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><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>
......
......@@ -73,6 +73,8 @@ void <a href="#virErrorFunc">virErrorFunc</a> (void * userData, <br /> <a
<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
}
</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>
......
......@@ -40,12 +40,16 @@
<exports symbol='_virDomainKernel' type='struct'/>
<exports symbol='_virNodeInfo' 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='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='virDomainLookupByID' type='function'/>
......@@ -83,6 +87,7 @@
<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_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'/>
......@@ -100,12 +105,13 @@
<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_SEXPR_SERIAL' 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_INTERNAL_ERROR' type='enum'/>
<exports symbol='VIR_ERR_NO_SUPPORT' type='enum'/>
<exports symbol='VIR_FROM_XEND' 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'/>
......@@ -151,7 +157,8 @@
<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_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'/>
......@@ -181,6 +188,7 @@
<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_SEXPR' file='virterror' value='4' type='virErrorDomain' info='Error in the S-Epression code'/>
......@@ -288,6 +296,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'/>
......@@ -320,6 +335,11 @@
<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, 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'/>
......@@ -327,6 +347,12 @@
<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.'/>
......@@ -438,6 +464,11 @@
<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'/>
......
......@@ -19,6 +19,7 @@
<reference name='VIR_DOMAIN_SHUTDOWN' href='html/libvirt-libvirt.html#VIR_DOMAIN_SHUTDOWN'/>
<reference name='VIR_DOMAIN_SHUTOFF' href='html/libvirt-libvirt.html#VIR_DOMAIN_SHUTOFF'/>
<reference name='VIR_ERR_CALL_FAILED' href='html/libvirt-virterror.html#VIR_ERR_CALL_FAILED'/>
<reference name='VIR_ERR_DOM_EXIST' href='html/libvirt-virterror.html#VIR_ERR_DOM_EXIST'/>
<reference name='VIR_ERR_DRIVER_FULL' href='html/libvirt-virterror.html#VIR_ERR_DRIVER_FULL'/>
<reference name='VIR_ERR_ERROR' href='html/libvirt-virterror.html#VIR_ERR_ERROR'/>
<reference name='VIR_ERR_GET_FAILED' href='html/libvirt-virterror.html#VIR_ERR_GET_FAILED'/>
......@@ -48,6 +49,7 @@
<reference name='VIR_ERR_UNKNOWN_HOST' href='html/libvirt-virterror.html#VIR_ERR_UNKNOWN_HOST'/>
<reference name='VIR_ERR_WARNING' href='html/libvirt-virterror.html#VIR_ERR_WARNING'/>
<reference name='VIR_ERR_XEN_CALL' href='html/libvirt-virterror.html#VIR_ERR_XEN_CALL'/>
<reference name='VIR_ERR_XML_ERROR' href='html/libvirt-virterror.html#VIR_ERR_XML_ERROR'/>
<reference name='VIR_FROM_DOM' href='html/libvirt-virterror.html#VIR_FROM_DOM'/>
<reference name='VIR_FROM_NONE' href='html/libvirt-virterror.html#VIR_FROM_NONE'/>
<reference name='VIR_FROM_SEXPR' href='html/libvirt-virterror.html#VIR_FROM_SEXPR'/>
......@@ -67,6 +69,7 @@
<reference name='virConnectClose' href='html/libvirt-libvirt.html#virConnectClose'/>
<reference name='virConnectGetType' href='html/libvirt-libvirt.html#virConnectGetType'/>
<reference name='virConnectGetVersion' href='html/libvirt-libvirt.html#virConnectGetVersion'/>
<reference name='virConnectListDefinedDomains' href='html/libvirt-libvirt.html#virConnectListDefinedDomains'/>
<reference name='virConnectListDomains' href='html/libvirt-libvirt.html#virConnectListDomains'/>
<reference name='virConnectNumOfDomains' href='html/libvirt-libvirt.html#virConnectNumOfDomains'/>
<reference name='virConnectOpen' href='html/libvirt-libvirt.html#virConnectOpen'/>
......@@ -76,8 +79,10 @@
<reference name='virDefaultErrorFunc' href='html/libvirt-virterror.html#virDefaultErrorFunc'/>
<reference name='virDeviceMode' href='html/libvirt-libvirt.html#virDeviceMode'/>
<reference name='virDomain' href='html/libvirt-libvirt.html#virDomain'/>
<reference name='virDomainCreate' href='html/libvirt-libvirt.html#virDomainCreate'/>
<reference name='virDomainCreateFlags' href='html/libvirt-libvirt.html#virDomainCreateFlags'/>
<reference name='virDomainCreateLinux' href='html/libvirt-libvirt.html#virDomainCreateLinux'/>
<reference name='virDomainDefineXML' href='html/libvirt-libvirt.html#virDomainDefineXML'/>
<reference name='virDomainDestroy' href='html/libvirt-libvirt.html#virDomainDestroy'/>
<reference name='virDomainFree' href='html/libvirt-libvirt.html#virDomainFree'/>
<reference name='virDomainGetID' href='html/libvirt-libvirt.html#virDomainGetID'/>
......@@ -105,6 +110,7 @@
<reference name='virDomainShutdown' href='html/libvirt-libvirt.html#virDomainShutdown'/>
<reference name='virDomainState' href='html/libvirt-libvirt.html#virDomainState'/>
<reference name='virDomainSuspend' href='html/libvirt-libvirt.html#virDomainSuspend'/>
<reference name='virDomainUndefine' href='html/libvirt-libvirt.html#virDomainUndefine'/>
<reference name='virError' href='html/libvirt-virterror.html#virError'/>
<reference name='virErrorDomain' href='html/libvirt-virterror.html#virErrorDomain'/>
<reference name='virErrorFunc' href='html/libvirt-virterror.html#virErrorFunc'/>
......@@ -143,6 +149,7 @@
<ref name='VIR_DOMAIN_SHUTDOWN'/>
<ref name='VIR_DOMAIN_SHUTOFF'/>
<ref name='VIR_ERR_CALL_FAILED'/>
<ref name='VIR_ERR_DOM_EXIST'/>
<ref name='VIR_ERR_DRIVER_FULL'/>
<ref name='VIR_ERR_ERROR'/>
<ref name='VIR_ERR_GET_FAILED'/>
......@@ -172,6 +179,7 @@
<ref name='VIR_ERR_UNKNOWN_HOST'/>
<ref name='VIR_ERR_WARNING'/>
<ref name='VIR_ERR_XEN_CALL'/>
<ref name='VIR_ERR_XML_ERROR'/>
<ref name='VIR_FROM_DOM'/>
<ref name='VIR_FROM_NONE'/>
<ref name='VIR_FROM_SEXPR'/>
......@@ -195,6 +203,7 @@
<ref name='virConnectClose'/>
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectOpen'/>
......@@ -204,8 +213,10 @@
<ref name='virDefaultErrorFunc'/>
<ref name='virDeviceMode'/>
<ref name='virDomain'/>
<ref name='virDomainCreate'/>
<ref name='virDomainCreateFlags'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainGetID'/>
......@@ -233,6 +244,7 @@
<ref name='virDomainShutdown'/>
<ref name='virDomainState'/>
<ref name='virDomainSuspend'/>
<ref name='virDomainUndefine'/>
<ref name='virError'/>
<ref name='virErrorDomain'/>
<ref name='virErrorFunc'/>
......@@ -263,6 +275,7 @@
</type>
<type name='virDomainPtr'>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainLookupByID'/>
<ref name='virDomainLookupByName'/>
<ref name='virDomainLookupByUUID'/>
......@@ -273,6 +286,9 @@
</type>
</constructors>
<functions>
<type name='const char **'>
<ref name='virConnectListDefinedDomains'/>
</type>
<type name='const unsigned char *'>
<ref name='virDomainLookupByUUID'/>
</type>
......@@ -302,9 +318,11 @@
<ref name='virConnectClose'/>
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainLookupByID'/>
<ref name='virDomainLookupByName'/>
<ref name='virDomainLookupByUUID'/>
......@@ -315,6 +333,7 @@
<ref name='virDomainGetInfo'/>
</type>
<type name='virDomainPtr'>
<ref name='virDomainCreate'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainGetID'/>
......@@ -331,6 +350,7 @@
<ref name='virDomainSetMemory'/>
<ref name='virDomainShutdown'/>
<ref name='virDomainSuspend'/>
<ref name='virDomainUndefine'/>
</type>
<type name='virErrorFunc'>
<ref name='virConnSetErrorFunc'/>
......@@ -378,6 +398,7 @@
<ref name='virConnectClose'/>
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectOpen'/>
......@@ -385,8 +406,10 @@
<ref name='virConnectPtr'/>
<ref name='virDeviceMode'/>
<ref name='virDomain'/>
<ref name='virDomainCreate'/>
<ref name='virDomainCreateFlags'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainGetID'/>
......@@ -414,6 +437,7 @@
<ref name='virDomainShutdown'/>
<ref name='virDomainState'/>
<ref name='virDomainSuspend'/>
<ref name='virDomainUndefine'/>
<ref name='virGetVersion'/>
<ref name='virInitialize'/>
<ref name='virNodeGetInfo'/>
......@@ -422,6 +446,7 @@
</file>
<file name='virterror'>
<ref name='VIR_ERR_CALL_FAILED'/>
<ref name='VIR_ERR_DOM_EXIST'/>
<ref name='VIR_ERR_DRIVER_FULL'/>
<ref name='VIR_ERR_ERROR'/>
<ref name='VIR_ERR_GET_FAILED'/>
......@@ -451,6 +476,7 @@
<ref name='VIR_ERR_UNKNOWN_HOST'/>
<ref name='VIR_ERR_WARNING'/>
<ref name='VIR_ERR_XEN_CALL'/>
<ref name='VIR_ERR_XML_ERROR'/>
<ref name='VIR_FROM_DOM'/>
<ref name='VIR_FROM_NONE'/>
<ref name='VIR_FROM_SEXPR'/>
......@@ -585,6 +611,7 @@
<ref name='virConnectOpen'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetMaxMemory'/>
<ref name='virDomainGetName'/>
<ref name='virDomainGetOSType'/>
......@@ -692,6 +719,7 @@
</letter>
<letter name='U'>
<word name='UTF-8'>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetXMLDesc'/>
</word>
<word name='UUID'>
......@@ -711,6 +739,7 @@
<letter name='X'>
<word name='XML'>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetXMLDesc'/>
</word>
<word name='Xen'>
......@@ -801,6 +830,7 @@
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='array'>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virDomainGetUUID'/>
</word>
......@@ -844,9 +874,11 @@
</word>
<word name='but'>
<ref name='virConnGetLastError'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainReboot'/>
<ref name='virDomainShutdown'/>
<ref name='virDomainSuspend'/>
<ref name='virDomainUndefine'/>
<ref name='virGetLastError'/>
</word>
<word name='bytes'>
......@@ -856,6 +888,7 @@
<letter name='c'>
<word name='call'>
<ref name='virConnectGetVersion'/>
<ref name='virDomainCreate'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainSave'/>
<ref name='virInitialize'/>
......@@ -932,11 +965,13 @@
<ref name='virConnectClose'/>
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetInfo'/>
<ref name='virDomainLookupByID'/>
<ref name='virDomainLookupByName'/>
......@@ -990,8 +1025,17 @@
<ref name='virConnSetErrorFunc'/>
<ref name='virSetErrorFunc'/>
</word>
<word name='define'>
<ref name='virDomainDefineXML'/>
</word>
<word name='defined'>
<ref name='virConnectListDefinedDomains'/>
<ref name='virDomainCreate'/>
<ref name='virDomainUndefine'/>
</word>
<word name='description'>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetXMLDesc'/>
</word>
<word name='device'>
......@@ -1005,12 +1049,16 @@
<ref name='virDomainShutdown'/>
</word>
<word name='does'>
<ref name='virDomainDefineXML'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainUndefine'/>
</word>
<word name='domains'>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainCreate'/>
</word>
<word name='down'>
<ref name='virDomainDestroy'/>
......@@ -1080,6 +1128,7 @@
<ref name='_virNodeInfo'/>
<ref name='virConnGetLastError'/>
<ref name='virConnectGetVersion'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainGetID'/>
<ref name='virDomainGetName'/>
<ref name='virDomainGetUUID'/>
......@@ -1116,6 +1165,7 @@
<ref name='_virNodeInfo'/>
</word>
<word name='from'>
<ref name='virDomainCreate'/>
<ref name='virDomainResume'/>
</word>
<word name='frozen'>
......@@ -1272,6 +1322,9 @@
<word name='later'>
<ref name='virDomainGetXMLDesc'/>
</word>
<word name='launch'>
<ref name='virDomainCreate'/>
</word>
<word name='level'>
<ref name='virConnectGetVersion'/>
<ref name='virCopyLastError'/>
......@@ -1305,6 +1358,7 @@
<ref name='_virDomainKernel'/>
</word>
<word name='list'>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
</word>
<word name='listed'>
......@@ -1375,6 +1429,9 @@
<word name='monitoring'>
<ref name='virConnectClose'/>
</word>
<word name='moves'>
<ref name='virDomainCreate'/>
</word>
<word name='multithreaded'>
<ref name='virConnGetLastError'/>
<ref name='virGetLastError'/>
......@@ -1393,6 +1450,9 @@
<ref name='virDomainGetName'/>
<ref name='virDomainLookupByName'/>
</word>
<word name='names'>
<ref name='virConnectListDefinedDomains'/>
</word>
<word name='nanoseconds'>
<ref name='_virDomainInfo'/>
</word>
......@@ -1424,6 +1484,7 @@
<ref name='virConnGetLastError'/>
<ref name='virConnectClose'/>
<ref name='virConnectGetVersion'/>
<ref name='virDomainDefineXML'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainGetName'/>
......@@ -1431,6 +1492,7 @@
<ref name='virDomainReboot'/>
<ref name='virDomainSave'/>
<ref name='virDomainShutdown'/>
<ref name='virDomainUndefine'/>
<ref name='virGetLastError'/>
<ref name='virGetVersion'/>
</word>
......@@ -1438,6 +1500,7 @@
<ref name='_virDomainInfo'/>
<ref name='_virError'/>
<ref name='_virNodeInfo'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virDomainGetID'/>
......@@ -1497,6 +1560,7 @@
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virCopyLastError'/>
<ref name='virDomainDefineXML'/>
<ref name='virGetVersion'/>
</word>
<word name='output'>
......@@ -1537,38 +1601,21 @@
<word name='pointed'>
<ref name='virResetError'/>
</word>
<word name='pointer'>
<ref name='virConnCopyLastError'/>
<ref name='virConnGetLastError'/>
<ref name='virConnResetLastError'/>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectClose'/>
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDefaultErrorFunc'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainGetInfo'/>
<ref name='virDomainGetName'/>
<ref name='virDomainGetUUID'/>
<ref name='virDomainLookupByID'/>
<ref name='virDomainLookupByName'/>
<ref name='virDomainLookupByUUID'/>
<ref name='virDomainRestore'/>
<ref name='virGetLastError'/>
<ref name='virNodeGetInfo'/>
<ref name='virResetError'/>
<ref name='virSetErrorFunc'/>
<word name='pointers'>
<ref name='virConnectListDefinedDomains'/>
</word>
<word name='pointing'>
<ref name='_virDomainKernel'/>
</word>
<word name='pools'>
<ref name='virDomainCreate'/>
</word>
<word name='potential'>
<ref name='virInitialize'/>
</word>
<word name='preferably'>
<ref name='virDomainDefineXML'/>
</word>
<word name='printing'>
<ref name='virSetErrorFunc'/>
</word>
......@@ -1590,6 +1637,7 @@
</word>
<word name='provided'>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virErrorFunc'/>
<ref name='virSetErrorFunc'/>
</word>
......@@ -1702,9 +1750,11 @@
<ref name='_virDomainInfo'/>
<ref name='virConnectClose'/>
<ref name='virConnectGetVersion'/>
<ref name='virDomainCreate'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainSave'/>
<ref name='virDomainUndefine'/>
</word>
<word name='runs'>
<ref name='virDomainGetMaxMemory'/>
......@@ -1747,6 +1797,7 @@
</word>
<word name='size'>
<ref name='_virNodeInfo'/>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virDomainGetMaxMemory'/>
<ref name='virDomainSetMaxMemory'/>
......@@ -1758,6 +1809,9 @@
<word name='software'>
<ref name='virConnectGetType'/>
</word>
<word name='start'>
<ref name='virDomainDefineXML'/>
</word>
<word name='startup'>
<ref name='virInitialize'/>
</word>
......@@ -1779,14 +1833,21 @@
<ref name='virDomainReboot'/>
<ref name='virDomainShutdown'/>
</word>
<word name='stop'>
<ref name='virDomainUndefine'/>
</word>
<word name='stopped'>
<ref name='virDomainReboot'/>
<ref name='virDomainShutdown'/>
</word>
<word name='store'>
<ref name='virConnectListDefinedDomains'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectOpen'/>
</word>
<word name='stores'>
<ref name='virConnectListDefinedDomains'/>
</word>
<word name='string'>
<ref name='_virError'/>
<ref name='_virNodeInfo'/>
......@@ -1801,8 +1862,12 @@
<ref name='virDomainGetInfo'/>
<ref name='virNodeGetInfo'/>
</word>
<word name='succeed'>
<ref name='virDomainCreate'/>
</word>
<word name='success'>
<ref name='virConnectClose'/>
<ref name='virDomainCreate'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainFree'/>
<ref name='virDomainGetInfo'/>
......@@ -1815,6 +1880,7 @@
<ref name='virDomainSetMemory'/>
<ref name='virDomainShutdown'/>
<ref name='virDomainSuspend'/>
<ref name='virDomainUndefine'/>
<ref name='virInitialize'/>
<ref name='virNodeGetInfo'/>
</word>
......@@ -1902,6 +1968,9 @@
</word>
</letter>
<letter name='u'>
<word name='undefine'>
<ref name='virDomainUndefine'/>
</word>
<word name='uniform'>
<ref name='_virNodeInfo'/>
</word>
......
......@@ -9,8 +9,10 @@ EXTRA_DIST = libvirt_sym.version
lib_LTLIBRARIES = libvirt.la
libvirt_la_LIBADD = @LIBXML_LIBS@
libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \
-version-info @LIBVIRT_VERSION_INFO@
libvirt_la_SOURCES = \
libvirt.c internal.h \
hash.c hash.h \
......@@ -22,10 +24,10 @@ libvirt_la_SOURCES = \
virterror.c \
driver.h
bin_PROGRAMS=virsh
bin_PROGRAMS = virsh
virsh_SOURCES=virsh.c
virsh_SOURCES = virsh.c
virsh_LDFLAGS =
virsh_DEPENDENCIES = $(DEPS)
virsh_LDADD= $(LDADDS) $(VIRSH_LIBS)
virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
......@@ -114,6 +114,16 @@ virBufferAdd(virBufferPtr buf, const char *str, int len)
return (0);
}
void
virBufferFree(virBufferPtr buf)
{
if (buf) {
if (buf->content)
free(buf->content);
free(buf);
}
}
/**
* virBufferVSprintf:
* @buf: the buffer to dump
......
......@@ -24,6 +24,7 @@ struct _virBuffer {
unsigned int size; /* The buffer size */
};
void virBufferFree(virBufferPtr buf);
int virBufferAdd(virBufferPtr buf, const char *str, int len);
int virBufferVSprintf(virBufferPtr buf, const char *format, ...);
char *virDomainParseXMLDesc(const char *xmldesc, char **name);
......
......@@ -64,7 +64,7 @@ static xmlNodePtr xmlNextElement(xmlNodePtr node)
return node;
}
static xmlRpcValuePtr xmlRpcValueUnmarshalDateTime(xmlNodePtr node)
static xmlRpcValuePtr xmlRpcValueUnmarshalDateTime(xmlNodePtr node ATTRIBUTE_UNUSED)
{
/* we don't need this */
TODO;
......@@ -78,7 +78,7 @@ static xmlRpcValuePtr xmlRpcValueUnmarshalString(xmlNodePtr node)
return ret;
}
static xmlRpcValuePtr xmlRpcValueUnmarshalBase64(xmlNodePtr node)
static xmlRpcValuePtr xmlRpcValueUnmarshalBase64(xmlNodePtr node ATTRIBUTE_UNUSED)
{
/* we don't need this */
TODO;
......@@ -187,7 +187,7 @@ static xmlRpcValuePtr xmlRpcValueUnmarshalDict(xmlNodePtr node)
xmlRpcValuePtr xmlRpcValueUnmarshal(xmlNodePtr node)
{
xmlNodePtr n;
xmlRpcValuePtr ret;
xmlRpcValuePtr ret = NULL;
if (xmlStrEqual(node->name, BAD_CAST "value")) {
n = xmlFirstElement(node);
......@@ -371,7 +371,7 @@ xmlRpcValuePtr xmlRpcUnmarshalResponse(xmlNodePtr node, bool *is_fault)
static char *xmlRpcCallRaw(const char *url, const char *request)
{
void *cxt;
char *contentType = "text/xml";
char *contentType = (char *) "text/xml";
int len, ret, serrno;
char *response = NULL;
......@@ -442,7 +442,7 @@ static char **xmlRpcStringArray(xmlRpcValuePtr value)
ret[i] = ptr;
ptr += strlen(s) + 1;
} else
ret[i] = "";
ret[i] = (char *) "";
}
ret[i] = NULL;
......@@ -450,29 +450,15 @@ static char **xmlRpcStringArray(xmlRpcValuePtr value)
return ret;
}
int xmlRpcCall(xmlRpcContextPtr context, const char *method,
const char *retfmt, const char *fmt, ...)
xmlRpcValuePtr *
xmlRpcArgvNew(const char *fmt, va_list ap, int *argc)
{
va_list ap;
const char *ptr;
int argc;
xmlRpcValuePtr *argv;
virBufferPtr buf;
const char *ptr;
int i;
char *ret;
xmlDocPtr xml;
xmlNodePtr node;
bool fault;
xmlRpcValuePtr value;
void *retval;
argc = strlen(fmt);
argv = malloc(sizeof(*argv) * argc);
va_start(ap, fmt);
if (retfmt && *retfmt)
retval = va_arg(ap, void *);
*argc = strlen(fmt);
argv = malloc(sizeof(*argv) * *argc);
i = 0;
for (ptr = fmt; *ptr; ptr++) {
......@@ -494,23 +480,54 @@ int xmlRpcCall(xmlRpcContextPtr context, const char *method,
argv[i]->value.string = strdup(va_arg(ap, const char *));
break;
default:
return -1;
xmlRpcArgvFree(i, argv);
return NULL;
}
i++;
}
va_end(ap);
buf = xmlRpcMarshalRequest(method, argc, argv);
return argv;
}
void
xmlRpcArgvFree(int argc, xmlRpcValuePtr *argv)
{
int i;
for (i = 0; i < argc; i++)
xmlRpcValueFree(argv[i]);
free(argv);
}
int xmlRpcCall(xmlRpcContextPtr context, const char *method,
const char *retfmt, const char *fmt, ...)
{
va_list ap;
int argc;
xmlRpcValuePtr *argv;
virBufferPtr buf;
char *ret;
xmlDocPtr xml;
xmlNodePtr node;
bool fault;
xmlRpcValuePtr value;
void *retval = NULL;
va_start(ap, fmt);
if (retfmt && *retfmt)
retval = va_arg(ap, void *);
argv = xmlRpcArgvNew(fmt, ap, &argc);
va_end(ap);
buf = xmlRpcMarshalRequest(method, argc, argv);
xmlRpcArgvFree(argc, argv);
ret = xmlRpcCallRaw(context->uri, buf->content);
free(buf->content);
free(buf);
virBufferFree(buf);
xml = xmlReadDoc((const xmlChar *)ret, "response.xml", NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
......
......@@ -17,6 +17,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <time.h>
#include <stdarg.h>
#include "xml.h"
......@@ -85,6 +86,9 @@ struct _xmlRpcValue {
struct _xmlRpcContext;
xmlRpcValuePtr *xmlRpcArgvNew(const char *fmt, va_list ap, int *argc);
void xmlRpcArgvFree(int argc, xmlRpcValuePtr *argv);
virBufferPtr xmlRpcMarshalRequest(const char *request,
int argc, xmlRpcValuePtr *argv);
......
## Process this file with automake to produce Makefile.in
LIBVIRT = $(top_builddir)/src/.libs/libvirt.a
INCLUDES = \
-I$(top_builddir)/include \
-I$(top_builddir)/src \
-I@top_srcdir@/include \
@LIBXML_CFLAGS@
LDADDS = \
@STATIC_BINARIES@ \
@LIBXML_LIBS@ \
$(LIBVIRT)
EXTRA_DIST = xmlrpcserver.py
noinst_PROGRAMS = xmlrpctest
# Note: xmlrpc.[c|h] is not in libvirt yet
xmlrpctest_SOURCES = \
xmlrpctest.c \
testutils.c testutils.h \
$(top_builddir)/src/xmlrpc.c \
$(top_builddir)/src/xmlrpc.h
xmlrpctest_LDFLAGS =
xmlrpctest_LDADD = $(LDADDS)
$(LIBVIRT):
-@(cd $(top_builddir)/src && $(MAKE) MAKEFLAGS+=--silent)
#!/bin/bash
./xmlrpcserver.py >/dev/null 2>&1 &
sleep 1
./xmlrpctest
pkill -f xmlrpcserver.py >/dev/null 2>&1 &
/*
* utils.c: basic test utils
*
* Copyright (C) 2005 Red Hat, Inc.
*
* See COPYING.LIB for the License of this software
*
* Karel Zak <kzak@redhat.com>
*
* $Id$
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include "testutils.h"
#define GETTIMEOFDAY(T) gettimeofday(T, NULL)
#define DIFF_MSEC(T, U) \
((((int) ((T)->tv_sec - (U)->tv_sec)) * 1000000.0 + \
((int) ((T)->tv_usec - (U)->tv_usec))) / 1000.0)
double
virtTestCountAverage(double *items, int nitems)
{
long double sum = 0;
int i;
for (i=1; i < nitems; i++)
sum += items[i];
return (double) (sum / nitems);
}
/*
* Runs test anf count average time (if the nloops is grater than 1)
*
* returns: -1 = error, 0 = success
*/
int
virtTestRun(const char *title, int nloops, int (*body)(void *data), void *data)
{
int i, ret = 0;
double *ts = NULL;
if (nloops > 1 && (ts = calloc(nloops,
sizeof(double)))==NULL)
return -1;
for (i=0; i < nloops; i++) {
struct timeval before, after;
if (ts)
GETTIMEOFDAY(&before);
if ((ret = body(data)) != 0)
break;
if (ts) {
GETTIMEOFDAY(&after);
ts[i] = DIFF_MSEC(&after, &before);
}
}
if (ret == 0 && ts)
fprintf(stderr, "%-50s ... OK [%.5f ms]\n", title,
virtTestCountAverage(ts, nloops));
else if (ret == 0)
fprintf(stderr, "%-50s ... OK\n", title);
else
fprintf(stderr, "%-50s ... FAILED\n", title);
if (ts)
free(ts);
return ret;
}
/*
* utils.c: test utils
*
* Copyright (C) 2005 Red Hat, Inc.
*
* See COPYING.LIB for the License of this software
*
* Karel Zak <kzak@redhat.com>
*
* $Id$
*/
#ifndef __VIT_TEST_UTILS_H__
#define __VIT_TEST_UTILS_H__
#ifdef __cplusplus
extern "C" {
#endif
double virtTestCountAverage (double *items,
int nitems);
int virtTestRun (const char *title,
int nloops,
int (*body)(void *data),
void *data);
#ifdef __cplusplus
}
#endif
#endif /* __VIT_TEST_UTILS_H__ */
#!/usr/bin/env python
#
# xmlrpcserver.py: simple server for XML-RPC tests
#
# Copyright (C) 2005 Red Hat, Inc.
#
# See COPYING.LIB for the License of this software
#
# Karel Zak <kzak@redhat.com>
#
# $Id$
#
#
# simple client:
#
# >>> import xmlrpclib
# >>> s=xmlrpclib.Server('http://localhost:8000')
# >>> s.plus(10,10)
# 20
#
import sys
from SimpleXMLRPCServer import SimpleXMLRPCServer
SERVER_PORT = 8000
class VirtRPCServer(SimpleXMLRPCServer):
def _dispatch(self, method, params):
try:
func = getattr(self, 'test_' + method)
except AttributeError:
raise Exception('method "%s" is not supported' % method)
else:
return func(*params)
def test_plus(self, x, y):
return x + y
server = VirtRPCServer(("localhost", SERVER_PORT))
server.serve_forever()
# vim: set tabstop=4:
# vim: set shiftwidth=4:
# vim: set expandtab:
/*
* xmlrpctest.c: simple client for XML-RPC tests
*
* Copyright (C) 2005 Red Hat, Inc.
*
* See COPYING.LIB for the License of this software
*
* Karel Zak <kzak@redhat.com>
*
* $Id$
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <limits.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
#include "libvirt.h"
#include "xml.h"
#include "xmlrpc.h"
#include "testutils.h"
#define NLOOPS 100 /* default number of loops per test */
static char *progname;
static int
testMethodPlusINT(void *data)
{
int retval = 0;
xmlRpcContextPtr cxt = (xmlRpcContextPtr) data;
if (xmlRpcCall(cxt, "plus", "i", "ii",
(const char *) &retval, 10, 10) < 0)
return -1;
return retval==(10+10) ? 0 : -1;
}
static int
testMethodPlusDOUBLE(void *data)
{
double retval = 0;
xmlRpcContextPtr cxt = (xmlRpcContextPtr) data;
if (xmlRpcCall(cxt, "plus", "f", "ff",
(const char *) &retval, 10.1234, 10.1234) < 0)
return -1;
return retval==(10.1234+10.1234) ? 0 : -1;
}
static virBufferPtr
marshalRequest(const char *fmt, ...)
{
int argc;
xmlRpcValuePtr *argv;
virBufferPtr buf;
va_list ap;
va_start(ap, fmt);
argv = xmlRpcArgvNew(fmt, ap, &argc);
va_end(ap);
buf = xmlRpcMarshalRequest("test", argc, argv);
xmlRpcArgvFree(argc, argv);
return buf;
}
static int
checkRequestValue(const char *xmlstr, const char *xpath, int type, void *expected)
{
xmlDocPtr xml = NULL;
xmlXPathContextPtr ctxt = NULL;
xmlXPathObjectPtr obj = NULL;
int ret = -1;
xml = xmlReadDoc((const xmlChar *) xmlstr, "xmlrpctest.xml", NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOERROR | XML_PARSE_NOWARNING);
if (!xml)
goto error;
if (!(ctxt = xmlXPathNewContext(xml)))
goto error;
if (!(obj = xmlXPathEval(BAD_CAST xpath, ctxt)))
goto error;
switch(type) {
case XML_RPC_INTEGER:
if ((obj->type != XPATH_NUMBER) ||
((int) obj->floatval != *((int *)expected)))
goto error;
break;
case XML_RPC_DOUBLE:
if ((obj->type != XPATH_NUMBER) ||
((double) obj->floatval != *((double *)expected)))
goto error;
break;
case XML_RPC_STRING:
if ((obj->type != XPATH_STRING) ||
(strcmp((const char *)obj->stringval, (const char *)expected)))
goto error;
break;
default:
goto error;
}
ret = 0;
error:
if (obj)
xmlXPathFreeObject(obj);
if (ctxt)
xmlXPathFreeContext(ctxt);
if (xml)
xmlFreeDoc(xml);
return ret;
}
static int
testMarshalRequestINT(void *data)
{
int num = INT_MAX;
int ret = 0;
int check = data ? *((int *)data) : 0;
virBufferPtr buf = marshalRequest("i", num);
if (check)
ret = checkRequestValue(buf->content,
"number(/methodCall/params/param[1]/value/int)",
XML_RPC_INTEGER, (void *) &num);
virBufferFree(buf);
return ret;
}
static int
testMarshalRequestSTRING(void *data ATTRIBUTE_UNUSED)
{
const char *str = "This library will be really sexy.";
int ret = 0;
int check = data ? *((int *)data) : 0;
virBufferPtr buf = marshalRequest("s", str);
if (check)
ret = checkRequestValue(buf->content,
"string(/methodCall/params/param[1]/value/string)",
XML_RPC_STRING, (void *) str);
virBufferFree(buf);
return ret;
}
static int
testMarshalRequestDOUBLE(void *data)
{
double num = 123456789.123;
int ret = 0;
int check = data ? *((int *)data) : 0;
virBufferPtr buf = marshalRequest("f", num);
if (check)
ret = checkRequestValue(buf->content,
"number(/methodCall/params/param[1]/value/double)",
XML_RPC_DOUBLE, (void *) &num);
virBufferFree(buf);
return ret;
}
int
main(int argc, char **argv)
{
xmlRpcContextPtr cxt = NULL;
int check = 1;
int ret = 0;
const char *url = "http://localhost:8000";
progname = argv[0];
if (argc > 2)
{
fprintf(stderr, "Usage: %s [url]\n", progname);
exit(EXIT_FAILURE);
}
if (argc == 2)
url = argv[1];
if (!(cxt = xmlRpcContextNew(url)))
{
fprintf(stderr, "%s: failed create new RPC context\n", progname);
exit(EXIT_FAILURE);
}
/* client-server tests */
if (virtTestRun("XML-RPC methodCall INT+INT",
NLOOPS, testMethodPlusINT, (void *) cxt) != 0)
ret = -1;
if (virtTestRun("XML-RPC methodCall DOUBLE+DOUBLE",
NLOOPS, testMethodPlusDOUBLE, (void *) cxt) != 0)
ret = -1;
/* regression / performance tests */
if (virtTestRun("XML-RPC request marshalling: INT (check)",
1, testMarshalRequestINT, (void *) &check) != 0)
ret = -1;
if (virtTestRun("XML-RPC request marshalling: INT",
NLOOPS, testMarshalRequestINT, NULL) != 0)
ret = -1;
if (virtTestRun("XML-RPC request marshalling: DOUBLE (check)",
1, testMarshalRequestDOUBLE, (void *) &check) != 0)
ret = -1;
if (virtTestRun("XML-RPC request marshalling: DOUBLE",
NLOOPS, testMarshalRequestDOUBLE, NULL) != 0)
ret = -1;
if (virtTestRun("XML-RPC request marshalling: STRING (check)",
1, testMarshalRequestSTRING, (void *) &check) != 0)
ret = -1;
if (virtTestRun("XML-RPC request marshalling: STRING",
NLOOPS, testMarshalRequestSTRING, NULL) != 0)
ret = -1;
xmlRpcContextFree(cxt);
exit(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
}
/*
* vim: set tabstop=4:
* vim: set shiftwidth=4:
* vim: set expandtab:
*/
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册