[libvirt] [PATCH 00/12] Cleanup website generation & add favicons

This started as an attempt to add modern favicon support to the website. This requires use of HTML5 only syntax, which lead to the massive cleanup to stop using XHTML 1.0, which forms all of this series except the last patch Daniel P. Berrange (12): docs: switch to using 'id' attribute instead of 'name' for links docs: drop XHTML 1.0 validation of website docs: make xmllint & xsltproc compulsory docs: fix typo s/∧/&/ docs: remove use of in docs docs: remove use of — entity docs: use UTF-8 instead of HTML entities for decorated letters docs: switch to using HTML5 doctype declaration docs: generate pretty indented HTML for API docs docs: remove bogus 'shape' attribute on links docs: explicitly declare pages as being UTF-8 format docs: add full set of "favicon" files to support modern clients .travis.yml | 1 - docs/404.html.in | 2 +- docs/Makefile.am | 52 +-- docs/acl.html.in | 8 +- docs/aclpolkit.html.in | 34 +- docs/android-chrome-192x192.png | Bin 0 -> 13057 bytes docs/android-chrome-256x256.png | Bin 0 -> 16597 bytes docs/api.html.in | 10 +- docs/api_extension.html.in | 14 +- docs/apple-touch-icon.png | Bin 0 -> 10489 bytes docs/apps.html.in | 38 +-- docs/architecture.html.in | 8 +- docs/auditlog.html.in | 40 +-- docs/auth.html.in | 16 +- docs/bindings.html.in | 2 +- docs/browserconfig.xml | 9 + docs/bugs.html.in | 12 +- docs/cgroups.html.in | 26 +- docs/compiling.html.in | 8 +- docs/contact.html.in | 8 +- docs/contribute.html.in | 12 +- docs/csharp.html.in | 634 +++++++++++++++++------------------ docs/devguide.html.in | 2 +- docs/docs.html.in | 2 +- docs/downloads.html.in | 14 +- docs/drivers.html.in | 6 +- docs/drvbhyve.html.in | 22 +- docs/drvesx.html.in | 46 +-- docs/drvhyperv.html.in | 12 +- docs/drvlxc.html.in | 54 +-- docs/drvnodedev.html.in | 10 +- docs/drvopenvz.html.in | 14 +- docs/drvphyp.html.in | 8 +- docs/drvqemu.html.in | 34 +- docs/drvremote.html.in | 2 +- docs/drvtest.html.in | 2 +- docs/drvuml.html.in | 4 +- docs/drvvbox.html.in | 6 +- docs/drvvirtuozzo.html.in | 8 +- docs/drvvmware.html.in | 6 +- docs/drvxen.html.in | 16 +- docs/errors.html.in | 2 +- docs/favicon-16x16.png | Bin 0 -> 872 bytes docs/favicon-32x32.png | Bin 0 -> 1793 bytes docs/favicon.ico | Bin 0 -> 15086 bytes docs/firewall.html.in | 8 +- docs/format.html.in | 22 +- docs/formatcaps.html.in | 10 +- docs/formatdomain.html.in | 228 ++++++------- docs/formatdomaincaps.html.in | 26 +- docs/formatnetwork.html.in | 36 +- docs/formatnode.html.in | 6 +- docs/formatnwfilter.html.in | 70 ++-- docs/formatsecret.html.in | 12 +- docs/formatsnapshot.html.in | 6 +- docs/formatstorage.html.in | 30 +- docs/formatstorageencryption.html.in | 12 +- docs/genaclperms.pl | 2 +- docs/goals.html.in | 2 +- docs/governance.html.in | 14 +- docs/hacking.html.in | 42 +-- docs/hooks.html.in | 34 +- docs/hvsupport.pl | 2 +- docs/index.html.in | 22 +- docs/internals.html.in | 2 +- docs/internals/command.html.in | 34 +- docs/internals/eventloop.html.in | 8 +- docs/internals/locking.html.in | 18 +- docs/internals/oomtesting.html.in | 10 +- docs/internals/rpc.html.in | 44 +-- docs/java.html.in | 2 +- docs/locking-lockd.html.in | 10 +- docs/locking-sanlock.html.in | 12 +- docs/locking.html.in | 4 +- docs/logging.html.in | 16 +- docs/manifest.json | 18 + docs/migration.html.in | 38 +-- docs/mstile-150x150.png | Bin 0 -> 7579 bytes docs/newapi.xsl | 19 +- docs/news-2005.html.in | 6 +- docs/news-2006.html.in | 6 +- docs/news-2007.html.in | 6 +- docs/news-2008.html.in | 6 +- docs/news-2009.html.in | 6 +- docs/news-2010.html.in | 6 +- docs/news-2011.html.in | 6 +- docs/news-2012.html.in | 6 +- docs/news-2013.html.in | 6 +- docs/news-2014.html.in | 2 +- docs/news-2015.html.in | 2 +- docs/news-2016.html.in | 2 +- docs/news-html.xsl | 2 +- docs/nss.html.in | 12 +- docs/page.xsl | 23 +- docs/php.html.in | 2 +- docs/python.html.in | 2 +- docs/remote.html.in | 30 +- docs/search.php.in | 2 +- docs/secureusage.html.in | 16 +- docs/securityprocess.html.in | 14 +- docs/site.xsl | 4 +- docs/storage.html.in | 28 +- docs/subsite.xsl | 4 +- docs/testapi.html.in | 2 +- docs/testsuites.html.in | 2 +- docs/testtck.html.in | 2 +- docs/uri.html.in | 30 +- docs/virshcmdref.html.in | 16 +- docs/windows.html.in | 20 +- libvirt.spec.in | 1 - m4/virt-external-programs.m4 | 13 +- 111 files changed, 1150 insertions(+), 1158 deletions(-) create mode 100644 docs/android-chrome-192x192.png create mode 100644 docs/android-chrome-256x256.png create mode 100644 docs/apple-touch-icon.png create mode 100644 docs/browserconfig.xml create mode 100644 docs/favicon-16x16.png create mode 100644 docs/favicon-32x32.png create mode 100644 docs/favicon.ico create mode 100644 docs/manifest.json create mode 100644 docs/mstile-150x150.png -- 2.13.3

The 'name' attribute on <a...> elements is deprecated in favour of the 'id' attribute which is allowed on any element. HTML5 drops 'name' support entirely. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/acl.html.in | 6 +- docs/aclpolkit.html.in | 32 +++--- docs/api.html.in | 8 +- docs/api_extension.html.in | 12 +-- docs/apps.html.in | 30 +++--- docs/architecture.html.in | 6 +- docs/auditlog.html.in | 38 +++---- docs/auth.html.in | 14 +-- docs/bugs.html.in | 10 +- docs/cgroups.html.in | 24 ++--- docs/compiling.html.in | 6 +- docs/contact.html.in | 6 +- docs/contribute.html.in | 10 +- docs/csharp.html.in | 18 ++-- docs/downloads.html.in | 12 +-- docs/drivers.html.in | 4 +- docs/drvbhyve.html.in | 20 ++-- docs/drvesx.html.in | 44 ++++---- docs/drvhyperv.html.in | 10 +- docs/drvlxc.html.in | 52 +++++----- docs/drvnodedev.html.in | 8 +- docs/drvopenvz.html.in | 12 +-- docs/drvphyp.html.in | 6 +- docs/drvqemu.html.in | 32 +++--- docs/drvuml.html.in | 2 +- docs/drvvbox.html.in | 4 +- docs/drvvirtuozzo.html.in | 6 +- docs/drvvmware.html.in | 4 +- docs/drvxen.html.in | 14 +-- docs/firewall.html.in | 6 +- docs/formatcaps.html.in | 8 +- docs/formatdomain.html.in | 192 +++++++++++++++++------------------ docs/formatdomaincaps.html.in | 24 ++--- docs/formatnetwork.html.in | 32 +++--- docs/formatnode.html.in | 4 +- docs/formatnwfilter.html.in | 68 ++++++------- docs/formatsecret.html.in | 10 +- docs/formatsnapshot.html.in | 4 +- docs/formatstorage.html.in | 28 ++--- docs/formatstorageencryption.html.in | 10 +- docs/governance.html.in | 12 +-- docs/hacking.html.in | 40 ++++---- docs/hooks.html.in | 30 +++--- docs/internals/command.html.in | 32 +++--- docs/internals/eventloop.html.in | 6 +- docs/internals/locking.html.in | 16 +-- docs/internals/oomtesting.html.in | 8 +- docs/internals/rpc.html.in | 42 ++++---- docs/locking-lockd.html.in | 8 +- docs/locking-sanlock.html.in | 10 +- docs/locking.html.in | 2 +- docs/logging.html.in | 14 +-- docs/migration.html.in | 36 +++---- docs/nss.html.in | 10 +- docs/page.xsl | 14 +-- docs/remote.html.in | 28 ++--- docs/secureusage.html.in | 14 +-- docs/securityprocess.html.in | 12 +-- docs/storage.html.in | 26 ++--- docs/uri.html.in | 28 ++--- docs/virshcmdref.html.in | 8 +- docs/windows.html.in | 18 ++-- 62 files changed, 624 insertions(+), 626 deletions(-) diff --git a/docs/acl.html.in b/docs/acl.html.in index 6d280c194..5936c6d20 100644 --- a/docs/acl.html.in +++ b/docs/acl.html.in @@ -12,7 +12,7 @@ <ul id="toc"></ul> - <h2><a name="intro">Access control introduction</a></h2> + <h2><a id="intro">Access control introduction</a></h2> <p> In a default configuration, the libvirtd daemon has three levels @@ -42,7 +42,7 @@ <code>getattr</code> permission. </p> - <h2><a name="drivers">Access control drivers</a></h2> + <h2><a id="drivers">Access control drivers</a></h2> <p> The access control framework is designed as a pluggable @@ -83,7 +83,7 @@ the libvirtd daemon be restarted. </p> - <h2><a name="perms">Objects and permissions</a></h2> + <h2><a id="perms">Objects and permissions</a></h2> <p> Libvirt applies access control to all the main object diff --git a/docs/aclpolkit.html.in b/docs/aclpolkit.html.in index 7967a0f3d..d1f327c70 100644 --- a/docs/aclpolkit.html.in +++ b/docs/aclpolkit.html.in @@ -14,7 +14,7 @@ <ul id="toc"></ul> - <h2><a name="intro">Introduction</a></h2> + <h2><a id="intro">Introduction</a></h2> <p> A default install of libvirt will typically use @@ -27,7 +27,7 @@ object. </p> - <h2><a name="perms">Permission names</a></h2> + <h2><a id="perms">Permission names</a></h2> <p> The libvirt <a href="acl.html#perms">object names and permission names</a> @@ -53,7 +53,7 @@ permissions default to deny access. </p> - <h2><a name="attrs">Object identity attributes</a></h2> + <h2><a id="attrs">Object identity attributes</a></h2> <p> To allow polkit authorization rules to be written to match @@ -63,7 +63,7 @@ of object being checked </p> - <h3><a name="object_connect">virConnectPtr</a></h3> + <h3><a id="object_connect">virConnectPtr</a></h3> <table class="acl"> <thead> <tr> @@ -79,7 +79,7 @@ </tbody> </table> - <h3><a name="object_domain">virDomainPtr</a></h3> + <h3><a id="object_domain">virDomainPtr</a></h3> <table class="acl"> <thead> <tr> @@ -103,7 +103,7 @@ </tbody> </table> - <h3><a name="object_interface">virInterfacePtr</a></h3> + <h3><a id="object_interface">virInterfacePtr</a></h3> <table class="acl"> <thead> <tr> @@ -127,7 +127,7 @@ </tbody> </table> - <h3><a name="object_network">virNetworkPtr</a></h3> + <h3><a id="object_network">virNetworkPtr</a></h3> <table class="acl"> <thead> <tr> @@ -151,7 +151,7 @@ </tbody> </table> - <h3><a name="object_node_device">virNodeDevicePtr</a></h3> + <h3><a id="object_node_device">virNodeDevicePtr</a></h3> <table class="acl"> <thead> <tr> @@ -171,7 +171,7 @@ </tbody> </table> - <h3><a name="object_nwfilter">virNWFilterPtr</a></h3> + <h3><a id="object_nwfilter">virNWFilterPtr</a></h3> <table class="acl"> <thead> <tr> @@ -195,7 +195,7 @@ </tbody> </table> - <h3><a name="object_secret">virSecretPtr</a></h3> + <h3><a id="object_secret">virSecretPtr</a></h3> <table class="acl"> <thead> <tr> @@ -231,7 +231,7 @@ </tbody> </table> - <h3><a name="object_storage_pool">virStoragePoolPtr</a></h3> + <h3><a id="object_storage_pool">virStoragePoolPtr</a></h3> <table class="acl"> <thead> <tr> @@ -255,7 +255,7 @@ </tbody> </table> - <h3><a name="object_storage_vol">virStorageVolPtr</a></h3> + <h3><a id="object_storage_vol">virStorageVolPtr</a></h3> <table class="acl"> <thead> <tr> @@ -288,7 +288,7 @@ </table> - <h2><a name="user">User identity attributes</a></h2> + <h2><a id="user">User identity attributes</a></h2> <p> At this point in time, the only attribute provided by @@ -307,7 +307,7 @@ </p> - <h2><a name="checks">Writing access control policies</a></h2> + <h2><a id="checks">Writing access control policies</a></h2> <p> If using versions of polkit prior to 0.106 then it is only @@ -358,7 +358,7 @@ polkit.addRule(function(action, subject) { for a more complex example. </p> - <h3><a name="exconnect">Example: restricting ability to connect to drivers</a></h3> + <h3><a id="exconnect">Example: restricting ability to connect to drivers</a></h3> <p> Consider a local user <code>berrange</code> @@ -386,7 +386,7 @@ polkit.addRule(function(action, subject) { }); </pre> - <h3><a name="exdomain">Example: restricting access to a single domain</a></h3> + <h3><a id="exdomain">Example: restricting access to a single domain</a></h3> <p> Consider a local user <code>berrange</code> diff --git a/docs/api.html.in b/docs/api.html.in index c38bed28c..1cd166364 100644 --- a/docs/api.html.in +++ b/docs/api.html.in @@ -9,7 +9,7 @@ <ul id="toc"></ul> - <h2><a name="Objects">Objects Exposed</a></h2> + <h2><a id="Objects">Objects Exposed</a></h2> <p> As defined in the <a href="goals.html">goals section</a>, the libvirt API is designed to expose all the resources needed to manage the virtualization support of recent operating systems. The first object @@ -121,7 +121,7 @@ set of nodes.</p></li> </ul> - <h2><a name="Functions">Functions and Naming Conventions</a></h2> + <h2><a id="Functions">Functions and Naming Conventions</a></h2> <p> The naming of the functions present in the library is usually composed by a prefix describing the object associated to the function and a verb describing the action on that object.</p> @@ -297,7 +297,7 @@ <p> For more in-depth details of the storage related APIs see <a href="storage.html">the storage management page</a>. </p> - <h2><a name="Drivers">The libvirt Drivers</a></h2> + <h2><a id="Drivers">The libvirt Drivers</a></h2> <p>Drivers are the basic building block for libvirt functionality to support the capability to handle specific hypervisor driver calls. Drivers are discovered and registered during connection processing as @@ -325,7 +325,7 @@ the various functions and support found in each driver by the version support was added into libvirt. </p> - <h2><a name="Remote">Daemon and Remote Access</a></h2> + <h2><a id="Remote">Daemon and Remote Access</a></h2> <p>Access to libvirt drivers is primarily handled by the libvirtd daemon through the <a href="remote.html">remote</a> driver via an <a href="internals/rpc.html">RPC</a>. Some hypervisors do support diff --git a/docs/api_extension.html.in b/docs/api_extension.html.in index ac7097b91..fdc7eb296 100644 --- a/docs/api_extension.html.in +++ b/docs/api_extension.html.in @@ -273,7 +273,7 @@ <li>unlocks the remote driver.</li> </ol> - <h3><a name="serverdispatch">Implement the server side dispatcher</a></h3> + <h3><a id="serverdispatch">Implement the server side dispatcher</a></h3> <p> Implementing the server side of the remote function call is simply a @@ -300,7 +300,7 @@ <p class="example">See <a href="api_extension/0005-implement-the-remote-protocol.patch">0005-implement-the-remote-protocol.patch</a></p> - <h2><a name="internaluseapi">Use the new API internally</a></h2> + <h2><a id="internaluseapi">Use the new API internally</a></h2> <p> Sometimes, a new API serves as a superset of existing API, by @@ -314,7 +314,7 @@ <p class="example">See <a href="api_extension/0006-make-old-API-trivially-wrap-to-new-API.patch">0006-make-old-API-trivially-wrap-to-new-API.patch</a></p> - <h2><a name="virshuseapi">Expose the new API in virsh</a></h2> + <h2><a id="virshuseapi">Expose the new API in virsh</a></h2> <p> All new API should be manageable from the virsh command line @@ -345,7 +345,7 @@ <p class="example">See <a href="api_extension/0007-add-virsh-support.patch">0007-add-virsh-support.patch</a></p> - <h2><a name="driverimpl">Implement the driver methods</a></h2> + <h2><a id="driverimpl">Implement the driver methods</a></h2> <p> So, after all that, we get to the fun part. All functionality in @@ -356,7 +356,7 @@ adding. </p> - <h3><a name="commonimpl">Implement common handling</a></h3> + <h3><a id="commonimpl">Implement common handling</a></h3> <p> If the new API is applicable to more than one driver, it may @@ -373,7 +373,7 @@ <p class="example">See <a href="api_extension/0008-support-new-xml.patch">0008-support-new-xml.patch</a></p> - <h3><a name="drivercode">Implement driver handling</a></h3> + <h3><a id="drivercode">Implement driver handling</a></h3> <p> The remaining patches should only touch one driver at a time. diff --git a/docs/apps.html.in b/docs/apps.html.in index 44e5b644f..760004715 100644 --- a/docs/apps.html.in +++ b/docs/apps.html.in @@ -11,7 +11,7 @@ <ul id="toc"></ul> - <h2><a name="add">Add an application</a></h2> + <h2><a id="add">Add an application</a></h2> <p> To add an application not listed on this page, send a message @@ -30,7 +30,7 @@ <img src="logos/logo-square-powered-256.png" alt="libvirt powered"/> </p> - <h2><a name="clientserver">Client/Server applications</a></h2> + <h2><a id="clientserver">Client/Server applications</a></h2> <dl> <dt><a href="http://archipelproject.org">Archipel</a></dt> @@ -50,7 +50,7 @@ </dd> </dl> - <h2><a name="command">Command line tools</a></h2> + <h2><a id="command">Command line tools</a></h2> <dl> <dt><a href="http://libguestfs.org">guestfish</a></dt> @@ -121,7 +121,7 @@ </dd> </dl> - <h2><a name="configmgmt">Configuration Management</a></h2> + <h2><a id="configmgmt">Configuration Management</a></h2> <dl> <dt><a href="https://wiki.lcfg.org/bin/view/LCFG/LcfgLibvirt">LCFG</a></dt> @@ -139,7 +139,7 @@ </dd> </dl> - <h2><a name="continuousintegration">Continuous Integration</a></h2> + <h2><a id="continuousintegration">Continuous Integration</a></h2> <dl> <dt><a href="http://buildbot.net/buildbot/docs/current/Libvirt.html">BuildBot</a></dt> @@ -163,7 +163,7 @@ </dd> </dl> - <h2><a name="conversion">Conversion</a></h2> + <h2><a id="conversion">Conversion</a></h2> <dl> <dt><a href="http://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt> @@ -194,7 +194,7 @@ </dd> </dl> - <h2><a name="desktop">Desktop applications</a></h2> + <h2><a id="desktop">Desktop applications</a></h2> <dl> <dt><a href="http://virt-manager.org/">virt-manager</a></dt> @@ -224,7 +224,7 @@ </dd> </dl> - <h2><a name="iaas">Infrastructure as a Service (IaaS)</a></h2> + <h2><a id="iaas">Infrastructure as a Service (IaaS)</a></h2> <dl> <dt><a href="http://cc1.ifj.edu.pl">Cracow Cloud One</a></dt> @@ -288,7 +288,7 @@ </dd> </dl> - <h2><a name="libraries">Libraries</a></h2> + <h2><a id="libraries">Libraries</a></h2> <dl> <dt><a href="http://libguestfs.org">libguestfs</a></dt> @@ -321,7 +321,7 @@ </dd> </dl> - <h2><a name="livecd">LiveCD / Appliances</a></h2> + <h2><a id="livecd">LiveCD / Appliances</a></h2> <dl> <dt><a href="http://et.redhat.com/~rjones/virt-p2v/">virt-p2v</a></dt> @@ -334,7 +334,7 @@ </dd> </dl> - <h2><a name="monitoring">Monitoring</a></h2> + <h2><a id="monitoring">Monitoring</a></h2> <dl> <dt><a href="http://collectd.org/plugins/libvirt.shtml">collectd</a></dt> <dd> @@ -381,7 +381,7 @@ </dd> </dl> - <h2><a name="provisioning">Provisioning</a></h2> + <h2><a id="provisioning">Provisioning</a></h2> <dl> <dt><a href="http://www.ibm.com/software/tivoli/products/prov-mgr/">Tivoli Provisioning Manager</a></dt> @@ -415,7 +415,7 @@ </dl> - <h2><a name="web">Web applications</a></h2> + <h2><a id="web">Web applications</a></h2> <dl> <dt><a href="http://community.abiquo.com/display/AbiCloud">AbiCloud</a></dt> @@ -468,7 +468,7 @@ </dd> </dl> - <h2><a name="mobile">Mobile applications</a></h2> + <h2><a id="mobile">Mobile applications</a></h2> <dl> <dt><a href="https://market.android.com/details?id=vm.manager">VM Manager</a></dt> @@ -479,7 +479,7 @@ </dd> </dl> - <h2><a name="other">Other</a></h2> + <h2><a id="other">Other</a></h2> <dl> <dt><a href="http://cuckoosandbox.org/">Cuckoo Sandbox</a></dt> diff --git a/docs/architecture.html.in b/docs/architecture.html.in index 5d3d441ba..33a4ccb97 100644 --- a/docs/architecture.html.in +++ b/docs/architecture.html.in @@ -13,7 +13,7 @@ <ul id="toc"></ul> - <h2><a name="Xen">Xen support</a></h2> + <h2><a id="Xen">Xen support</a></h2> <p>When running in a Xen environment, programs using libvirt have to execute in "Domain 0", which is the primary Linux OS loaded on the machine. That OS @@ -46,7 +46,7 @@ connect to initialize the library. It will then fork a libvirt_proxy program running as root and providing read_only access to the API, this is then only useful for reporting and monitoring.</p> - <h2><a name="QEmu">QEmu and KVM support</a></h2> + <h2><a id="QEmu">QEmu and KVM support</a></h2> <p>The model for QEmu and KVM is completely similar, basically KVM is based on QEmu for the process controlling a new domain, only small details differs @@ -60,7 +60,7 @@ domain, by specifying the architecture and machine type targeted.</p> <p>The code controlling the QEmu process is available in the <code>qemud/</code> directory.</p> - <h2><a name="drivers">Driver based architecture</a></h2> + <h2><a id="drivers">Driver based architecture</a></h2> <p>As the previous section explains, libvirt can communicate using different channels with the current hypervisor, and should also be able to use diff --git a/docs/auditlog.html.in b/docs/auditlog.html.in index 0c778aafe..54da12b5c 100644 --- a/docs/auditlog.html.in +++ b/docs/auditlog.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="intro">Introduction</a></h2> + <h2><a id="intro">Introduction</a></h2> <p> A number of the libvirt virtualization drivers (QEMU/KVM and LXC) include @@ -17,7 +17,7 @@ the logs will usually end up in <code>/var/log/audit/audit.log</code> </p> - <h2><a name="config">Configuration</a></h2> + <h2><a id="config">Configuration</a></h2> <p> The libvirt audit integration is enabled by default on any host which has @@ -48,7 +48,7 @@ mentioned above. </p> - <h2><a name="types">Message types</a></h2> + <h2><a id="types">Message types</a></h2> <p> Libvirt defines three core audit message types each of which will @@ -90,7 +90,7 @@ <dd>Result of the action, either <code>success</code> or <code>failed</code></dd> </dl> - <h3><a name="typecontrol">VIRT_CONTROL</a></h3> + <h3><a id="typecontrol">VIRT_CONTROL</a></h3> <p> Reports change in the lifecycle state of a virtual machine. The <code>msg</code> @@ -110,7 +110,7 @@ <dd>Namespace ID of the <code>init</code> process in a container. Only if <code>op=init</code> and <code>virt=lxc</code></dd> </dl> - <h3><a name="typemachine">VIRT_MACHINE_ID</a></h3> + <h3><a id="typemachine">VIRT_MACHINE_ID</a></h3> <p> Reports the association of a security context with a guest. The <code>msg</code> @@ -126,7 +126,7 @@ <dd>Security context for the guest disk images and other assigned host resources</dd> </dl> - <h3><a name="typeresource">VIRT_RESOURCE</a></h3> + <h3><a id="typeresource">VIRT_RESOURCE</a></h3> <p> Reports the usage of a host resource by a guest. The fields include will @@ -137,7 +137,7 @@ be generated. </p> - <h4><a name="typeresourcevcpu">Virtual CPU</a></h4> + <h4><a id="typeresourcevcpu">Virtual CPU</a></h4> <p> The <code>msg</code> field will include the following sub-fields @@ -155,7 +155,7 @@ </dl> - <h4><a name="typeresourcemem">Memory</a></h4> + <h4><a id="typeresourcemem">Memory</a></h4> <p> The <code>msg</code> field will include the following sub-fields @@ -172,7 +172,7 @@ <dd>Updated memory size in bytes</dd> </dl> - <h4><a name="typeresourcedisk">Disk</a></h4> + <h4><a id="typeresourcedisk">Disk</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -188,7 +188,7 @@ <dd>Updated host file or device path acting as the disk backing file</dd> </dl> - <h4><a name="typeresourcenic">Network interface</a></h4> + <h4><a id="typeresourcenic">Network interface</a></h4> <p> The <code>msg</code> field will include the following sub-fields @@ -221,7 +221,7 @@ <dd>Name of the host network interface</dd> </dl> - <h4><a name="typeresourcefs">Filesystem</a></h4> + <h4><a id="typeresourcefs">Filesystem</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -237,7 +237,7 @@ <dd>Updated host directory, file or device path backing the filesystem</dd> </dl> - <h4><a name="typeresourcehost">Host device</a></h4> + <h4><a id="typeresourcehost">Host device</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -255,7 +255,7 @@ <dd>The path of the character device assigned to the guest, if <code>resrc=hostdev</code></dd> </dl> - <h4><a name="typeresourcetpm">TPM</a></h4> + <h4><a id="typeresourcetpm">TPM</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -269,7 +269,7 @@ <dd>The path of the host TPM device assigned to the guest</dd> </dl> - <h4><a name="typeresourcerng">RNG</a></h4> + <h4><a id="typeresourcerng">RNG</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -285,7 +285,7 @@ <dd>Updated path of the host entropy source for the RNG</dd> </dl> - <h4><a name="typeresourcechardev">console/serial/parallel/channel</a></h4> + <h4><a id="typeresourcechardev">console/serial/parallel/channel</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -301,7 +301,7 @@ <dd>Updated path of the backing character device for given emulated device</dd> </dl> - <h4><a name="typeresourcesmartcard">smartcard</a></h4> + <h4><a id="typeresourcesmartcard">smartcard</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -321,7 +321,7 @@ </dd> </dl> - <h4><a name="typeresourceredir">Redirected device</a></h4> + <h4><a id="typeresourceredir">Redirected device</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> @@ -337,7 +337,7 @@ <dd>The device type, only <code>USB redir</code> allowed</dd> </dl> - <h4><a name="typeresourcecgroup">Control group</a></h4> + <h4><a id="typeresourcecgroup">Control group</a></h4> <p> The <code>msg</code> field will include the following sub-fields @@ -353,7 +353,7 @@ </dl> - <h4><a name="typeresourceshmem">Shared memory</a></h4> + <h4><a id="typeresourceshmem">Shared memory</a></h4> <p> The <code>msg</code> field will include the following sub-fields </p> diff --git a/docs/auth.html.in b/docs/auth.html.in index f75454416..9c9afe7b4 100644 --- a/docs/auth.html.in +++ b/docs/auth.html.in @@ -14,7 +14,7 @@ <ul id="toc"></ul> - <h2><a name="Auth_client_config">Client configuration</a></h2> + <h2><a id="Auth_client_config">Client configuration</a></h2> <p> When connecting to a remote hypervisor which requires authentication, @@ -142,7 +142,7 @@ credentials=defgrp</pre> to storage VNC or SPICE login credentials </p> - <h2><a name="ACL_server_config">Server configuration</a></h2> + <h2><a id="ACL_server_config">Server configuration</a></h2> <p> The libvirt daemon allows the administrator to choose the authentication mechanisms used for client connections on each network socket independently. @@ -153,7 +153,7 @@ currently a choice of <code>none</code>, <code>polkit</code>, and <code>sasl</co The SASL scheme can be further configured to choose between a large number of different mechanisms. </p> - <h2><a name="ACL_server_unix_perms">UNIX socket permissions/group</a></h2> + <h2><a id="ACL_server_unix_perms">UNIX socket permissions/group</a></h2> <p> If libvirt does not contain support for PolicyKit, then access control for the UNIX domain socket is done using traditional file user/group ownership @@ -170,7 +170,7 @@ parameter. For example, setting the former to mode <code>0770</code> and the latter <code>wheel</code> would let any user in the wheel group connect to the libvirt daemon. </p> - <h2><a name="ACL_server_polkit">UNIX socket PolicyKit auth</a></h2> + <h2><a id="ACL_server_polkit">UNIX socket PolicyKit auth</a></h2> <p> If libvirt contains support for PolicyKit, then access control options are more advanced. The <code>auth_unix_rw</code> parameter will default to @@ -204,7 +204,7 @@ ResultActive=yes</pre> Further examples of PolicyKit setup can be found on the <a href="http://wiki.libvirt.org/page/SSHPolicyKitSetup">wiki page</a>. </p> - <h2><a name="ACL_server_sasl">SASL pluggable authentication</a></h2> + <h2><a id="ACL_server_sasl">SASL pluggable authentication</a></h2> <p> Libvirt integrates with the cyrus-sasl library to provide a pluggable authentication @@ -255,7 +255,7 @@ GSSAPI plugin is considered acceptably secure by modern standards: TLS or UNIX socket listeners. </p> - <h3><a name="ACL_server_username">Username/password auth</a></h3> + <h3><a id="ACL_server_username">Username/password auth</a></h3> <p> As noted above, the DIGEST-MD5 mechanism is considered obsolete and should not be used anymore. To provide a simple username/password auth scheme on @@ -297,7 +297,7 @@ again: <pre> # saslpasswd2 -a libvirt -d fred </pre> - <h3><a name="ACL_server_kerberos">GSSAPI/Kerberos auth</a></h3> + <h3><a id="ACL_server_kerberos">GSSAPI/Kerberos auth</a></h3> <p> The plain TCP listener of the libvirt daemon defaults to using SASL for authentication. The libvirt SASL config also defaults to GSSAPI, so there is no need to edit the diff --git a/docs/bugs.html.in b/docs/bugs.html.in index 55ceb6007..7ba8dd6a4 100644 --- a/docs/bugs.html.in +++ b/docs/bugs.html.in @@ -7,7 +7,7 @@ <ul id="toc"></ul> - <h2><a name="security">Security Issues</a></h2> + <h2><a id="security">Security Issues</a></h2> <p> If you think that an issue with libvirt may have security @@ -19,7 +19,7 @@ <a href="securityprocess.html">security process</a> instead. </p> - <h2><a name="bugzilla">Bug Tracking</a></h2> + <h2><a id="bugzilla">Bug Tracking</a></h2> <p> If you are using libvirt binaries from a Linux distribution @@ -27,7 +27,7 @@ first. </p> - <h2><a name="general">General libvirt bug reports</a></h2> + <h2><a id="general">General libvirt bug reports</a></h2> <p> The <a href="http://bugzilla.redhat.com">Red Hat Bugzilla Server</a> @@ -69,7 +69,7 @@ <li><a href="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Virtualization%20Tools&component=libvirt">New libvirt ticket</a></li> </ul> - <h2><a name="distribution">Linux Distribution specific bug reports</a></h2> + <h2><a id="distribution">Linux Distribution specific bug reports</a></h2> <ul> <li> If you are using binaries from <strong>Fedora</strong>, enter @@ -107,7 +107,7 @@ </ul> - <h2><a name="quality">How to file high quality bug reports</a></h2> + <h2><a id="quality">How to file high quality bug reports</a></h2> <p> To increase the likelihood of your bug report being addressed it is diff --git a/docs/cgroups.html.in b/docs/cgroups.html.in index 60b47da1f..ac6390960 100644 --- a/docs/cgroups.html.in +++ b/docs/cgroups.html.in @@ -11,7 +11,7 @@ for applying resource management to their virtual machines and containers. </p> - <h2><a name="requiredControllers">Required controllers</a></h2> + <h2><a id="requiredControllers">Required controllers</a></h2> <p> The control groups filesystem supports multiple "controllers". By default @@ -42,7 +42,7 @@ which use them will cease to operate. </p> - <h2><a name="currentLayout">Current cgroups layout</a></h2> + <h2><a id="currentLayout">Current cgroups layout</a></h2> <p> As of libvirt 1.0.5 or later, the cgroups layout created by libvirt has been @@ -63,14 +63,14 @@ in two, one describing systemd hosts and the other non-systemd hosts. </p> - <h3><a name="currentLayoutSystemd">Systemd cgroups integration</a></h3> + <h3><a id="currentLayoutSystemd">Systemd cgroups integration</a></h3> <p> On hosts which use systemd, each consumer maps to a systemd scope unit, while partitions map to a system slice unit. </p> - <h4><a name="systemdScope">Systemd scope naming</a></h4> + <h4><a id="systemdScope">Systemd scope naming</a></h4> <p> The systemd convention is for the scope name of virtual machines / containers @@ -83,7 +83,7 @@ The scope names map directly to the cgroup directory names. </p> - <h4><a name="systemdSlice">Systemd slice naming</a></h4> + <h4><a id="systemdSlice">Systemd slice naming</a></h4> <p> The systemd convention for slice naming is that a slice should include the @@ -96,7 +96,7 @@ by libvirt will be associated with <code>machine.slice</code> by default. </p> - <h4><a name="systemdLayout">Systemd cgroup layout</a></h4> + <h4><a id="systemdLayout">Systemd cgroup layout</a></h4> <p> Given this, a possible systemd cgroups layout involving 3 qemu guests, @@ -145,7 +145,7 @@ $ROOT +- machine-lxc\x2dcontainer3.scope </pre> - <h3><a name="currentLayoutGeneric">Non-systemd cgroups layout</a></h3> + <h3><a id="currentLayoutGeneric">Non-systemd cgroups layout</a></h3> <p> On hosts which do not use systemd, each consumer has a corresponding cgroup @@ -206,7 +206,7 @@ $ROOT +- container3.libvirt-lxc </pre> - <h2><a name="customPartiton">Using custom partitions</a></h2> + <h2><a id="customPartiton">Using custom partitions</a></h2> <p> If there is a need to apply resource constraints to groups of @@ -255,7 +255,7 @@ $ROOT later in this document did not support customization per guest. </p> - <h3><a name="createSystemd">Creating custom partitions (systemd)</a></h3> + <h3><a id="createSystemd">Creating custom partitions (systemd)</a></h3> <p> Given the XML config above, the admin on a systemd based host would @@ -272,7 +272,7 @@ EOF # systemctl start machine-testing.slice </pre> - <h3><a name="createNonSystemd">Creating custom partitions (non-systemd)</a></h3> + <h3><a id="createNonSystemd">Creating custom partitions (non-systemd)</a></h3> <p> Given the XML config above, the admin on a non-systemd based host @@ -291,7 +291,7 @@ EOF done </pre> - <h2><a name="resourceAPIs">Resource management APIs/commands</a></h2> + <h2><a id="resourceAPIs">Resource management APIs/commands</a></h2> <p> Since libvirt aims to provide an API which is portable across @@ -354,7 +354,7 @@ swap_hard_limit: unlimited network interfaces. </p> - <h2><a name="legacyLayout">Legacy cgroups layout</a></h2> + <h2><a id="legacyLayout">Legacy cgroups layout</a></h2> <p> Prior to libvirt 1.0.5, the cgroups layout created by libvirt was different diff --git a/docs/compiling.html.in b/docs/compiling.html.in index 3a0c7fdd1..af22199ef 100644 --- a/docs/compiling.html.in +++ b/docs/compiling.html.in @@ -2,11 +2,11 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> - <h1><a name="installation">libvirt Installation</a></h1> + <h1><a id="installation">libvirt Installation</a></h1> <ul id="toc"></ul> - <h2><a name="compiling">Compiling a release tarball</a></h2> + <h2><a id="compiling">Compiling a release tarball</a></h2> <p> libvirt uses the standard configure/make/install steps: @@ -58,7 +58,7 @@ $ <b>sudo</b> <i>make install</i></pre> to update your list of installed shared libs. </p> - <h2><a name="building">Building from a GIT checkout</a></h2> + <h2><a id="building">Building from a GIT checkout</a></h2> <p> The libvirt build process uses GNU autotools, so after obtaining a diff --git a/docs/contact.html.in b/docs/contact.html.in index 9ea16748a..1f84527b2 100644 --- a/docs/contact.html.in +++ b/docs/contact.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="security">Security Issues</a></h2> + <h2><a id="security">Security Issues</a></h2> <p> If you think that an issue with libvirt may have security @@ -18,7 +18,7 @@ <a href="securityprocess.html">security process</a> instead. </p> - <h2><a name="email">Mailing lists</a></h2> + <h2><a id="email">Mailing lists</a></h2> <p> There are three mailing-lists: @@ -95,7 +95,7 @@ page. </p> - <h2><a name="irc">IRC discussion</a></h2> + <h2><a id="irc">IRC discussion</a></h2> <p> Some of the libvirt developers may be found on IRC on the <a href="http://oftc.net">OFTC IRC</a> diff --git a/docs/contribute.html.in b/docs/contribute.html.in index 32935b1fa..c169b6700 100644 --- a/docs/contribute.html.in +++ b/docs/contribute.html.in @@ -11,7 +11,7 @@ <ul id="toc"></ul> - <h2><a name="skills">Contributions required</a></h2> + <h2><a id="skills">Contributions required</a></h2> <p> The libvirt project is always looking for new contributors to @@ -97,7 +97,7 @@ these help forums.</li> </ul> - <h2><a name="comms">Communication</a></h2> + <h2><a id="comms">Communication</a></h2> <p> For full details on contacting other project contributors @@ -106,7 +106,7 @@ between contributors: </p> - <h3><a name="email">Mailing lists</a></h3> + <h3><a id="email">Mailing lists</a></h3> <p> The project has a number of @@ -118,7 +118,7 @@ to follow the traffic. </p> - <h3><a name="irc">Instant messaging / chat</a></h3> + <h3><a id="irc">Instant messaging / chat</a></h3> <p> Contributors to libvirt are encouraged to join the @@ -127,7 +127,7 @@ with others members. </p> - <h2><a name="outreach">Student / outreach coding programs</a></h2> + <h2><a id="outreach">Student / outreach coding programs</a></h2> <p> Since 2016, the libvirt project directly participates as an diff --git a/docs/csharp.html.in b/docs/csharp.html.in index 4c35c871d..e1c0fefba 100644 --- a/docs/csharp.html.in +++ b/docs/csharp.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="description">Description</a></h2> + <h2><a id="description">Description</a></h2> <p> The C# libvirt bindings are a class library. They use a Microsoft @@ -21,7 +21,7 @@ <p> </p> - <h2><a name="requirements">Requirements</a></h2> + <h2><a id="requirements">Requirements</a></h2> <p> These bindings depend upon the libvirt libraries being installed. @@ -34,7 +34,7 @@ <p> </p> <!-- 2010-10-19 JC: Commented out until we have C# tarballs to download - <h2><a name="getting">Getting them</a></h2> + <h2><a id="getting">Getting them</a></h2> <p> The latest versions of the libvirt C# bindings can be downloaded from: @@ -46,7 +46,7 @@ </ul> --> - <h2><a name="git">GIT source repository</a></h2> + <h2><a id="git">GIT source repository</a></h2> <p> The C# bindings source code is maintained in a <a href="http://git-scm.com/">git</a> repository available on @@ -67,7 +67,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> </p> - <h2><a name="usage">Usage</a></h2> + <h2><a id="usage">Usage</a></h2> <p> The libvirt C# bindings class library exposes the <b>Libvirt</b> @@ -118,7 +118,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> </p> - <h2><a name="authors">Authors</a></h2> + <h2><a id="authors">Authors</a></h2> <p> The C# bindings are the work of Arnaud Champion @@ -128,7 +128,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> </p> - <h2><a name="notes">Test Configuration</a></h2> + <h2><a id="notes">Test Configuration</a></h2> <p> Testing is performed using the following configurations: @@ -141,7 +141,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> </p> - <h2><a name="type">Type Coverage</a></h2> + <h2><a id="type">Type Coverage</a></h2> <p> Coverage of the libvirt types is: @@ -219,7 +219,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> </p> - <h2><a name="funccover">Function Coverage</a></h2> + <h2><a id="funccover">Function Coverage</a></h2> <p> Coverage of the libvirt functions is: diff --git a/docs/downloads.html.in b/docs/downloads.html.in index 030694549..21d79df4e 100644 --- a/docs/downloads.html.in +++ b/docs/downloads.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="releases">Project modules</a></h2> + <h2><a id="releases">Project modules</a></h2> <p> The libvirt project maintains a number of inter-related modules beyond @@ -435,7 +435,7 @@ <li><a href="https://libvirt.org/sources/">libvirt.org HTTPS server</a></li> </ul> - <h2><a name="hourly">Hourly development snapshots</a></h2> + <h2><a id="hourly">Hourly development snapshots</a></h2> <p> Once an hour, an automated snapshot is made from the git server @@ -450,7 +450,7 @@ <li><a href="http://libvirt.org/sources/libvirt-git-snapshot.tar.xz">libvirt.org HTTP server</a></li> </ul> - <h2><a name="schedule">Primary release schedule</a></h2> + <h2><a id="schedule">Primary release schedule</a></h2> <p> The core libvirt module follows a time based plan, with releases made @@ -462,7 +462,7 @@ independant ad-hoc releases with no fixed time schedle. </p> - <h2><a name="numbering">Release numbering</a></h2> + <h2><a id="numbering">Release numbering</a></h2> <p> Since libvirt 2.0.0, a time based version numbering rule @@ -497,7 +497,7 @@ digits. </p> - <h2><a name="maintenance">Maintenance releases</a></h2> + <h2><a id="maintenance">Maintenance releases</a></h2> <p> In the git repository are several stable maintenance branches for the core library, matching the @@ -525,7 +525,7 @@ wiki page</a>. </p> - <h2><a name="git">GIT source repository</a></h2> + <h2><a id="git">GIT source repository</a></h2> <p> All modules maintained by the libvirt project have their primary diff --git a/docs/drivers.html.in b/docs/drivers.html.in index 61993861e..79b204d1a 100644 --- a/docs/drivers.html.in +++ b/docs/drivers.html.in @@ -18,7 +18,7 @@ network and storage driver active. </p> - <h2><a name="hypervisor">Hypervisor drivers</a></h2> + <h2><a id="hypervisor">Hypervisor drivers</a></h2> <p> The hypervisor drivers currently supported by libvirt are: @@ -40,7 +40,7 @@ <li><strong><a href="drvbhyve.html">Bhyve</a></strong> - The BSD Hypervisor</li> </ul> - <h2><a name="storage">Storage drivers</a></h2> + <h2><a id="storage">Storage drivers</a></h2> <ul> <li><strong><a href="storage.html#StorageBackendDir">Directory backend</a></strong></li> diff --git a/docs/drvbhyve.html.in b/docs/drvbhyve.html.in index f083db91c..7b1829b65 100644 --- a/docs/drvbhyve.html.in +++ b/docs/drvbhyve.html.in @@ -31,7 +31,7 @@ $ Additional information on bhyve could be obtained on <a href="http://bhyve.org/">bhyve.org</a>. </p> -<h2><a name="uri">Connections to the Bhyve driver</a></h2> +<h2><a id="uri">Connections to the Bhyve driver</a></h2> <p> The libvirt bhyve driver is a single-instance privileged driver. Some sample connection URIs are: @@ -43,7 +43,7 @@ bhyve+unix:///system (local access) bhyve+ssh://root@example.com/system (remote access, SSH tunnelled) </pre> -<h2><a name="exconfig">Example guest domain XML configurations</a></h2> +<h2><a id="exconfig">Example guest domain XML configurations</a></h2> <h3>Example config</h3> <p> @@ -206,9 +206,9 @@ Note the addition of <bootloader>. <p>Please refer to the <a href="#uefi">UEFI</a> section for a more detailed explanation.</p> -<h2><a name="usage">Guest usage / management</a></h2> +<h2><a id="usage">Guest usage / management</a></h2> -<h3><a name="console">Connecting to a guest console</a></h3> +<h3><a id="console">Connecting to a guest console</a></h3> <p> Guest console connection is supported through the <code>nmdm</code> device. It could be enabled by adding @@ -253,7 +253,7 @@ device) is:</p> <pre>cu -l /dev/nmdm0B</pre> -<h3><a name="xmltonative">Converting from domain XML to Bhyve args</a></h3> +<h3><a id="xmltonative">Converting from domain XML to Bhyve args</a></h3> <p> The <code>virsh domxml-to-native</code> command can preview the actual @@ -275,7 +275,7 @@ tweak them.</p> /usr/sbin/bhyve -c 2 -m 214 -A -I -H -P -s 0:0,hostbridge -s 3:0,virtio-net,tap0,mac=52:54:00:5d:74:e3 -s 2:0,virtio-blk,/home/user/vm1.img -s 1,lpc -l com1,/dev/nmdm0A vm1 </pre> -<h3><a name="zfsvolume">Using ZFS volumes</a></h3> +<h3><a id="zfsvolume">Using ZFS volumes</a></h3> <p>It's possible to use ZFS volumes as disk devices <span class="since">since 1.2.8</span>. An example of domain XML device entry for that will look like:</p> @@ -291,7 +291,7 @@ An example of domain XML device entry for that will look like:</p> <p>Please refer to the <a href="storage.html">Storage documentation</a> for more details on storage management.</p> -<h3><a name="grubbhyve">Using grub2-bhyve or Alternative Bootloaders</a></h3> +<h3><a id="grubbhyve">Using grub2-bhyve or Alternative Bootloaders</a></h3> <p>It's possible to boot non-FreeBSD guests by specifying an explicit bootloader, e.g. <code>grub-bhyve(1)</code>. Arguments to the bootloader may be @@ -312,7 +312,7 @@ attempt to boot from the first partition in the disk image.</p> <p>Caveat: <code>bootloader_args</code> does not support any quoting. Filenames, etc, must not have spaces or they will be tokenized incorrectly.</p> -<h3><a name="uefi">Using UEFI bootrom, VNC, and USB tablet</a></h3> +<h3><a id="uefi">Using UEFI bootrom, VNC, and USB tablet</a></h3> <p><span class="since">Since 3.2.0</span>, in addition to <a href="#grubbhyve">grub-bhyve</a>, non-FreeBSD guests could be also booted using an UEFI boot ROM, provided both guest OS and @@ -381,7 +381,7 @@ will be used. Please refer to the manual page and the <a href="https://wiki.freebsd.org/bhyve">bhyve wiki</a> for more details on using the <code>vgaconf</code> option.</p> -<h3><a name="clockconfig">Clock configuration</a></h3> +<h3><a id="clockconfig">Clock configuration</a></h3> <p>Originally bhyve supported only localtime for RTC. Support for UTC time was introduced in <a href="http://svnweb.freebsd.org/changeset/base/284894">r284894</a> for <i>10-STABLE</i> and @@ -409,7 +409,7 @@ you'll need to explicitly specify 'localtime' in this case:</p> </domain> </pre> -<h3><a name="e1000">e1000 NIC</a></h3> +<h3><a id="e1000">e1000 NIC</a></h3> <p>As of <a href="https://svnweb.freebsd.org/changeset/base/302504">r302504</a> bhyve supports Intel e1000 network adapter emulation. It's supported in libvirt diff --git a/docs/drvesx.html.in b/docs/drvesx.html.in index 5ba7bc121..d503d65b8 100644 --- a/docs/drvesx.html.in +++ b/docs/drvesx.html.in @@ -11,7 +11,7 @@ connect to a VMware vCenter 2.5/4.x/5.x (VPX). </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -20,7 +20,7 @@ </li> </ul> - <h2><a name="prereq">Deployment pre-requisites</a></h2> + <h2><a id="prereq">Deployment pre-requisites</a></h2> <p> None. Any out-of-the-box installation of VPX/ESX(i)/GSX should work. No preparations are required on the server side, no libvirtd must be @@ -34,7 +34,7 @@ VMware vSphere API</a>. </p> - <h2><a name="uri">Connections to the VMware ESX driver</a></h2> + <h2><a id="uri">Connections to the VMware ESX driver</a></h2> <p> Some example remote connection URIs for the driver are: </p> @@ -54,7 +54,7 @@ esx://example-esx.com/?no_verify=1 (ESX over HTTPS, but doesn't verify the s </p> - <h3><a name="uriformat">URI Format</a></h3> + <h3><a id="uriformat">URI Format</a></h3> <p> URIs have this general form (<code>[...]</code> marks an optional part). </p> @@ -93,7 +93,7 @@ vpx://example-vcenter.com/folder1/dc1/folder2/example-esx.com </pre> - <h4><a name="extraparams">Extra parameters</a></h4> + <h4><a id="extraparams">Extra parameters</a></h4> <p> Extra parameters can be added to a URI as part of the query string (the part following <code>?</code>). A single parameter is formed by a @@ -188,7 +188,7 @@ vpx://example-vcenter.com/folder1/dc1/folder2/example-esx.com </table> - <h3><a name="auth">Authentication</a></h3> + <h3><a id="auth">Authentication</a></h3> <p> In order to perform any useful operation the driver needs to log into the ESX server. Therefore, only <code>virConnectOpenAuth</code> can be @@ -208,7 +208,7 @@ vpx://example-vcenter.com/folder1/dc1/folder2/example-esx.com </p> - <h3><a name="certificates">Certificates for HTTPS</a></h3> + <h3><a id="certificates">Certificates for HTTPS</a></h3> <p> By default the ESX driver uses HTTPS to communicate with an ESX server. Proper HTTPS communication requires correctly configured SSL @@ -244,7 +244,7 @@ error: internal error curl_easy_perform() returned an error: Peer certificate ca </ul> - <h3><a name="connproblems">Connection problems</a></h3> + <h3><a id="connproblems">Connection problems</a></h3> <p> There are also other causes for connection problems than the <a href="#certificates">HTTPS certificate</a> related ones. @@ -303,7 +303,7 @@ error: invalid argument in libvirt was built without the 'esx' driver </ul> - <h2><a name="questions">Questions blocking tasks</a></h2> + <h2><a id="questions">Questions blocking tasks</a></h2> <p> Some methods of the VI API start tasks, for example <code>PowerOnVM_Task()</code>. Such tasks may be blocked by questions @@ -322,12 +322,12 @@ error: invalid argument in libvirt was built without the 'esx' driver </p> - <h2><a name="xmlspecial">Specialties in the domain XML config</a></h2> + <h2><a id="xmlspecial">Specialties in the domain XML config</a></h2> <p> There are several specialties in the domain XML config for ESX domains. </p> - <h3><a name="restrictions">Restrictions</a></h3> + <h3><a id="restrictions">Restrictions</a></h3> <p> There are some restrictions for some values of the domain XML config. The driver will complain if this restrictions are violated. @@ -347,7 +347,7 @@ error: invalid argument in libvirt was built without the 'esx' driver </ul> - <h3><a name="datastore">Datastore references</a></h3> + <h3><a id="datastore">Datastore references</a></h3> <p> Storage is managed in datastores. VMware uses a special path format to reference files in a datastore. Basically, the datastore name is put @@ -366,7 +366,7 @@ error: invalid argument in libvirt was built without the 'esx' driver </p> - <h3><a name="macaddresses">MAC addresses</a></h3> + <h3><a id="macaddresses">MAC addresses</a></h3> <p> VMware has registered two MAC address prefixes for domains: <code>00:0c:29</code> and <code>00:50:56</code>. These prefixes are @@ -427,7 +427,7 @@ ethernet0.checkMACAddress = "false" </pre> - <h3><a name="hardware">Available hardware</a></h3> + <h3><a id="hardware">Available hardware</a></h3> <p> VMware ESX supports different models of SCSI controllers and network cards. @@ -523,14 +523,14 @@ ethernet0.checkMACAddress = "false" </pre> - <h2><a name="importexport">Import and export of domain XML configs</a></h2> + <h2><a id="importexport">Import and export of domain XML configs</a></h2> <p> The ESX driver currently supports a native config format known as <code>vmware-vmx</code> to handle VMware VMX configs. </p> - <h3><a name="xmlimport">Converting from VMware VMX config to domain XML config</a></h3> + <h3><a id="xmlimport">Converting from VMware VMX config to domain XML config</a></h3> <p> The <code>virsh domxml-from-native</code> provides a way to convert an existing VMware VMX config into a domain XML config that can then be @@ -621,7 +621,7 @@ Enter root password for example.com: </pre> - <h3><a name="xmlexport">Converting from domain XML config to VMware VMX config</a></h3> + <h3><a id="xmlexport">Converting from domain XML config to VMware VMX config</a></h3> <p> The <code>virsh domxml-to-native</code> provides a way to convert a domain XML config into a VMware VMX config. @@ -675,7 +675,7 @@ ethernet0.address = "00:50:56:25:48:C7" </pre> - <h2><a name="xmlconfig">Example domain XML configs</a></h2> + <h2><a id="xmlconfig">Example domain XML configs</a></h2> <h3>Fedora11 on x86_64</h3> <pre> @@ -704,7 +704,7 @@ ethernet0.address = "00:50:56:25:48:C7" </pre> - <h2><a name="migration">Migration</a></h2> + <h2><a id="migration">Migration</a></h2> <p> A migration cannot be initiated on an ESX server directly, a VMware vCenter is necessary for this. The <code>vcenter</code> query @@ -749,7 +749,7 @@ Enter administrator password for example-vcenter.com: </pre> - <h2><a name="scheduler">Scheduler configuration</a></h2> + <h2><a id="scheduler">Scheduler configuration</a></h2> <p> The driver exposes the ESX CPU scheduler. The parameters listed below are available to control the scheduler. @@ -780,7 +780,7 @@ Enter administrator password for example-vcenter.com: </dl> - <h2><a name="tools">VMware tools</a></h2> + <h2><a id="tools">VMware tools</a></h2> <p> Some actions require installed VMware tools. If the VMware tools are not installed in the guest and one of the actions below is to be @@ -796,7 +796,7 @@ Enter administrator password for example-vcenter.com: </ul> - <h2><a name="links">Links</a></h2> + <h2><a id="links">Links</a></h2> <ul> <li> <a href="http://www.vmware.com/support/developer/vc-sdk/"> diff --git a/docs/drvhyperv.html.in b/docs/drvhyperv.html.in index e87d8cbc1..ac2fa7017 100644 --- a/docs/drvhyperv.html.in +++ b/docs/drvhyperv.html.in @@ -9,7 +9,7 @@ </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> The <a href="http://www.microsoft.com/hyper-v-server/">Microsoft Hyper-V</a> @@ -18,7 +18,7 @@ </ul> - <h2><a name="uri">Connections to the Microsoft Hyper-V driver</a></h2> + <h2><a id="uri">Connections to the Microsoft Hyper-V driver</a></h2> <p> Some example remote connection URIs for the driver are: </p> @@ -36,7 +36,7 @@ hyperv://example-hyperv.com/?transport=http (over HTTP) </p> - <h3><a name="uriformat">URI Format</a></h3> + <h3><a id="uriformat">URI Format</a></h3> <p> URIs have this general form (<code>[...]</code> marks an optional part). </p> @@ -49,7 +49,7 @@ hyperv://[username@]hostname[:port]/[?extraparameters] </p> - <h4><a name="extraparams">Extra parameters</a></h4> + <h4><a id="extraparams">Extra parameters</a></h4> <p> Extra parameters can be added to a URI as part of the query string (the part following <code>?</code>). A single parameter is formed by a @@ -83,7 +83,7 @@ hyperv://[username@]hostname[:port]/[?extraparameters] </table> - <h3><a name="auth">Authentication</a></h3> + <h3><a id="auth">Authentication</a></h3> <p> In order to perform any useful operation the driver needs to log into the Hyper-V server. Therefore, only <code>virConnectOpenAuth</code> can diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in index c0c26ca35..180dc6834 100644 --- a/docs/drvlxc.html.in +++ b/docs/drvlxc.html.in @@ -18,7 +18,7 @@ particular sVirt for mandatory access control, auditing of operations, integration with control groups and many other features. </p> -<h2><a name="cgroups">Control groups Requirements</a></h2> +<h2><a id="cgroups">Control groups Requirements</a></h2> <p> In order to control the resource usage of processes inside containers, the @@ -32,7 +32,7 @@ init service will be required. For further information, consult the general libvirt <a href="cgroups.html">cgroups documentation</a>. </p> -<h2><a name="namespaces">Namespace requirements</a></h2> +<h2><a id="namespaces">Namespace requirements</a></h2> <p> In order to separate processes inside a container from those in the @@ -47,9 +47,9 @@ configured UID/GID mapping is a pre-requisite to making containers secure, in the absence of sVirt confinement.</strong> </p> -<h2><a name="init">Default container setup</a></h2> +<h2><a id="init">Default container setup</a></h2> -<h3><a name="cliargs">Command line arguments</a></h3> +<h3><a id="cliargs">Command line arguments</a></h3> <p> When the container "init" process is started, it will typically @@ -70,7 +70,7 @@ would use the following XML </os> </pre> -<h3><a name="envvars">Environment variables</a></h3> +<h3><a id="envvars">Environment variables</a></h3> <p> When the container "init" process is started, it will be given several useful @@ -108,7 +108,7 @@ Use of this is discouraged, in favour of passing arguments directly to the container init process via the <code>initarg</code> config element.</dd> </dl> -<h3><a name="fsmounts">Filesystem mounts</a></h3> +<h3><a id="fsmounts">Filesystem mounts</a></h3> <p> In the absence of any explicit configuration, the container will @@ -131,7 +131,7 @@ only expose the sub-tree associated with the container</li> </ul> -<h3><a name="devnodes">Device nodes</a></h3> +<h3><a id="devnodes">Device nodes</a></h3> <p> The container init process will be started with <code>CAP_MKNOD</code> @@ -178,7 +178,7 @@ Further block or character devices will be made available to containers depending on their configuration. </p> -<h2><a name="security">Security considerations</a></h2> +<h2><a id="security">Security considerations</a></h2> <p> The libvirt LXC driver is fairly flexible in how it can be configured, @@ -190,7 +190,7 @@ isolation between a container and the host must ensure that they are writing a suitable configuration. </p> -<h3><a name="securenetworking">Network isolation</a></h3> +<h3><a id="securenetworking">Network isolation</a></h3> <p> If the guest configuration does not list any network interfaces, @@ -205,7 +205,7 @@ namespace is not wanted, then applications should set the <code><features>....</features></code> element. </p> -<h3><a name="securefs">Filesystem isolation</a></h3> +<h3><a id="securefs">Filesystem isolation</a></h3> <p> If the guest configuration does not list any filesystems, then @@ -250,7 +250,7 @@ a bind mount to hide them. This is particularly important for the </p> -<h3><a name="secureusers">User and group isolation</a></h3> +<h3><a id="secureusers">User and group isolation</a></h3> <p> If the guest configuration does not list any ID mapping, then the @@ -281,7 +281,7 @@ causes libvirt to activate the user namespace feature. </p> -<h2><a name="activation">Systemd Socket Activation Integration</a></h2> +<h2><a id="activation">Systemd Socket Activation Integration</a></h2> <p> The libvirt LXC driver provides the ability to pass across pre-opened file @@ -477,7 +477,7 @@ configured to block read/write/mknod from all devices except those that a container is authorized to use. </p> -<h2><a name="exconfig">Example configurations</a></h2> +<h2><a id="exconfig">Example configurations</a></h2> <h3>Example config version 1</h3> <p></p> @@ -542,7 +542,7 @@ debootstrap, whatever) under /opt/vm-1-root: </domain> </pre> -<h2><a name="capabilities">Altering the available capabilities</a></h2> +<h2><a id="capabilities">Altering the available capabilities</a></h2> <p> By default the libvirt LXC driver drops some capabilities among which CAP_MKNOD. @@ -590,7 +590,7 @@ Note that allowing capabilities that are normally dropped by default can serious affect the security of the container and the host. </p> -<h2><a name="share">Inherit namespaces</a></h2> +<h2><a id="share">Inherit namespaces</a></h2> <p> Libvirt allows you to inherit the namespace from container/process just like lxc tools @@ -615,7 +615,7 @@ ignored. The use of namespace passthrough requires libvirt >= 1.2.19 </p> -<h2><a name="usage">Container usage / management</a></h2> +<h2><a id="usage">Container usage / management</a></h2> <p> As with any libvirt virtualization driver, LXC containers can be @@ -629,7 +629,7 @@ and LXC. For further details about usage of virsh consult its manual page. </p> -<h3><a name="usageSave">Defining (saving) container configuration</a></h3> +<h3><a id="usageSave">Defining (saving) container configuration</a></h3> <p> The <code>virsh define</code> command takes an XML configuration @@ -640,7 +640,7 @@ document and loads it into libvirt, saving the configuration on disk # virsh -c lxc:/// define myguest.xml </pre> -<h3><a name="usageView">Viewing container configuration</a></h3> +<h3><a id="usageView">Viewing container configuration</a></h3> <p> The <code>virsh dumpxml</code> command can be used to view the @@ -655,7 +655,7 @@ using the <code>--inactive</code> flag # virsh -c lxc:/// dumpxml myguest </pre> -<h3><a name="usageStart">Starting containers</a></h3> +<h3><a id="usageStart">Starting containers</a></h3> <p> The <code>virsh start</code> command can be used to start a @@ -677,7 +677,7 @@ by libvirt, using the <code>virsh create</code> command. </pre> -<h3><a name="usageStop">Stopping containers</a></h3> +<h3><a id="usageStop">Stopping containers</a></h3> <p> The <code>virsh shutdown</code> command can be used @@ -702,7 +702,7 @@ request, it can be forcibly stopped using the <code>virsh destroy</code> </pre> -<h3><a name="usageReboot">Rebooting a container</a></h3> +<h3><a id="usageReboot">Rebooting a container</a></h3> <p> The <code>virsh reboot</code> command can be used @@ -717,7 +717,7 @@ to PID 1 inside the container. # virsh -c lxc:/// reboot myguest </pre> -<h3><a name="usageDelete">Undefining (deleting) a container configuration</a></h3> +<h3><a id="usageDelete">Undefining (deleting) a container configuration</a></h3> <p> The <code>virsh undefine</code> command can be used to delete the @@ -729,7 +729,7 @@ running, this will turn it into a "transient" guest. # virsh -c lxc:/// undefine myguest </pre> -<h3><a name="usageConnect">Connecting to a container console</a></h3> +<h3><a id="usageConnect">Connecting to a container console</a></h3> <p> The <code>virsh console</code> command can be used to connect @@ -752,7 +752,7 @@ as 'console0', 'console1', 'console2', etc. # virsh -c lxc:/// console myguest --devname console1 </pre> -<h3><a name="usageEnter">Running commands in a container</a></h3> +<h3><a id="usageEnter">Running commands in a container</a></h3> <p> The <code>virsh lxc-enter-namespace</code> command can be used @@ -764,7 +764,7 @@ and then execute an arbitrary command. # virsh -c lxc:/// lxc-enter-namespace myguest -- /bin/ls -al /dev </pre> -<h3><a name="usageTop">Monitoring container utilization</a></h3> +<h3><a id="usageTop">Monitoring container utilization</a></h3> <p> The <code>virt-top</code> command can be used to monitor the @@ -776,7 +776,7 @@ host # virt-top -c lxc:/// </pre> -<h3><a name="usageConvert">Converting LXC container configuration</a></h3> +<h3><a id="usageConvert">Converting LXC container configuration</a></h3> <p> The <code>virsh domxml-from-native</code> command can be used to convert diff --git a/docs/drvnodedev.html.in b/docs/drvnodedev.html.in index 26c52dd0d..439bbe7d0 100644 --- a/docs/drvnodedev.html.in +++ b/docs/drvnodedev.html.in @@ -98,7 +98,7 @@ <ul id="toc"/> - <h2><a name="PCI">PCI host devices</a></h2> + <h2><a id="PCI">PCI host devices</a></h2> <dl> <dt><code>capability</code></dt> <dd> @@ -139,7 +139,7 @@ element will be included for each capability the device supports. </p> - <h3><a name="SRIOVCap">SR-IOV capability</a></h3> + <h3><a id="SRIOVCap">SR-IOV capability</a></h3> <p> Single root input/output virtualization (SR-IOV) allows sharing of the PCIe resources by multiple virtual environments. That is achieved by @@ -186,7 +186,7 @@ ... <device></pre> - <h3><a name="MDEVCap">MDEV capability</a></h3> + <h3><a id="MDEVCap">MDEV capability</a></h3> <p> A PCI device capable of creating mediated devices will include a nested capability <code>mdev_types</code> which enumerates all supported mdev @@ -252,7 +252,7 @@ </capability> </device></pre> - <h2><a name="MDEV">Mediated devices (MDEVs)</a></h2> + <h2><a id="MDEV">Mediated devices (MDEVs)</a></h2> <p> Mediated devices (<span class="since">Since 3.2.0</span>) are software devices defining resource allocation on the backing physical device which diff --git a/docs/drvopenvz.html.in b/docs/drvopenvz.html.in index e2e72e7a3..30e0c6b7e 100644 --- a/docs/drvopenvz.html.in +++ b/docs/drvopenvz.html.in @@ -15,7 +15,7 @@ undue trouble. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -24,7 +24,7 @@ </li> </ul> - <h2><a name="connections">Connections to OpenVZ driver</a></h2> + <h2><a id="connections">Connections to OpenVZ driver</a></h2> <p> The libvirt OpenVZ driver is a single-instance privileged driver, @@ -40,7 +40,7 @@ openvz+tcp://example.com/system (remote access, SASl/Kerberos) openvz+ssh://root@example.com/system (remote access, SSH tunnelled) </pre> - <h2><a name="notes">Notes on bridged networking</a></h2> + <h2><a id="notes">Notes on bridged networking</a></h2> <p> Bridged networking enables a guest domain (ie container) to have its @@ -49,7 +49,7 @@ openvz+ssh://root@example.com/system (remote access, SSH tunnelled) the host OS. </p> - <h3><a name="host">Host network devices</a></h3> + <h3><a id="host">Host network devices</a></h3> <p> One or more of the physical devices must be attached to a bridge. The @@ -60,7 +60,7 @@ openvz+ssh://root@example.com/system (remote access, SSH tunnelled) physical device "eth0", or a bonding device "bond0". </p> - <h3><a name="tools">OpenVZ tools configuration</a></h3> + <h3><a id="tools">OpenVZ tools configuration</a></h3> <p> OpenVZ releases later than 3.0.23 ship with a standard network device @@ -85,7 +85,7 @@ EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr" </p> - <h2><a name="example">Example guest domain XML configuration</a></h2> + <h2><a id="example">Example guest domain XML configuration</a></h2> <p> The current libvirt OpenVZ driver has a restriction that the diff --git a/docs/drvphyp.html.in b/docs/drvphyp.html.in index bb1f69e51..c75a830c4 100644 --- a/docs/drvphyp.html.in +++ b/docs/drvphyp.html.in @@ -10,7 +10,7 @@ </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> The <a href="http://www-03.ibm.com/systems/power/software/virtualization/index.html">IBM @@ -19,7 +19,7 @@ </ul> - <h2><a name="uri">Connections to the PowerVM driver</a></h2> + <h2><a id="uri">Connections to the PowerVM driver</a></h2> <p> Some example remote connection URIs for the driver are: </p> @@ -38,7 +38,7 @@ phyp://user@ivm/system (IVM connection) </p> - <h3><a name="uriformat">URI Format</a></h3> + <h3><a id="uriformat">URI Format</a></h3> <p> URIs have this general form (<code>[...]</code> marks an optional part, <code>{...|...}</code> marks a mandatory choice). diff --git a/docs/drvqemu.html.in b/docs/drvqemu.html.in index fa1eca78a..a2a830a23 100644 --- a/docs/drvqemu.html.in +++ b/docs/drvqemu.html.in @@ -11,7 +11,7 @@ version 0.12.0 or later. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -23,7 +23,7 @@ </li> </ul> - <h2><a name="prereq">Deployment pre-requisites</a></h2> + <h2><a id="prereq">Deployment pre-requisites</a></h2> <ul> <li> @@ -43,7 +43,7 @@ </li> </ul> - <h2><a name="uris">Connections to QEMU driver</a></h2> + <h2><a id="uris">Connections to QEMU driver</a></h2> <p> The libvirt QEMU driver is a multi-instance driver, providing a single @@ -63,14 +63,14 @@ qemu+tcp://example.com/system (remote access, SASl/Kerberos) qemu+ssh://root@example.com/system (remote access, SSH tunnelled) </pre> - <h2><a name="security">Driver security architecture</a></h2> + <h2><a id="security">Driver security architecture</a></h2> <p> There are multiple layers to security in the QEMU driver, allowing for flexibility in the use of QEMU based virtual machines. </p> - <h3><a name="securitydriver">Driver instances</a></h3> + <h3><a id="securitydriver">Driver instances</a></h3> <p> As explained above there are two ways to access the QEMU driver @@ -94,7 +94,7 @@ qemu+ssh://root@example.com/system (remote access, SSH tunnelled) elevated privileges. </p> - <h3><a name="securitydac">POSIX users/groups</a></h3> + <h3><a id="securitydac">POSIX users/groups</a></h3> <p> In the "session" instance, the POSIX users/groups model restricts QEMU @@ -187,7 +187,7 @@ chmod o+x /path/to/directory </li> </ul> - <h3><a name="securitycap">Linux process capabilities</a></h3> + <h3><a id="securitycap">Linux process capabilities</a></h3> <p> The libvirt QEMU driver has a build time option allowing it to use @@ -224,7 +224,7 @@ chmod o+x /path/to/directory to changing the <code>/etc/libvirt/qemu.conf</code> settings. </p> - <h3><a name="securityselinux">SELinux basic confinement</a></h3> + <h3><a id="securityselinux">SELinux basic confinement</a></h3> <p> The basic SELinux protection for QEMU virtual machines is intended to @@ -255,7 +255,7 @@ chmod o+x /path/to/directory SELinux boolean. </p> - <h3><a name="securitysvirt">SELinux sVirt confinement</a></h3> + <h3><a id="securitysvirt">SELinux sVirt confinement</a></h3> <p> The SELinux sVirt protection for QEMU virtual machines builds to the @@ -305,7 +305,7 @@ chmod o+x /path/to/directory file can be used to change the setting to <code>security_driver="none"</code> </p> - <h3><a name="securitysvirtaa">AppArmor sVirt confinement</a></h3> + <h3><a id="securitysvirtaa">AppArmor sVirt confinement</a></h3> <p> When using basic AppArmor protection for the libvirtd daemon and @@ -373,7 +373,7 @@ chmod o+x /path/to/directory </p> - <h3><a name="securityacl">Cgroups device ACLs</a></h3> + <h3><a id="securityacl">Cgroups device ACLs</a></h3> <p> Recent Linux kernels have a capability known as "cgroups" which is used @@ -416,7 +416,7 @@ mount -t cgroup none /dev/cgroup -o devices <code>/dev/cgroup/libvirt/qemu/$VMNAME/</code> </p> - <h2><a name="imex">Import and export of libvirt domain XML configs</a></h2> + <h2><a id="imex">Import and export of libvirt domain XML configs</a></h2> <p>The QEMU driver currently supports a single native config format known as <code>qemu-argv</code>. The data for this format @@ -424,7 +424,7 @@ mount -t cgroup none /dev/cgroup -o devices then the QEMu binary name, finally followed by the QEMU command line arguments</p> - <h3><a name="xmlimport">Converting from QEMU args to domain XML</a></h3> + <h3><a id="xmlimport">Converting from QEMU args to domain XML</a></h3> <p> The <code>virsh domxml-from-native</code> provides a way to @@ -473,7 +473,7 @@ $ virsh domxml-from-native qemu-argv demo.args <p>NB, don't include the literal \ in the args, put everything on one line</p> - <h3><a name="xmlexport">Converting from domain XML to QEMU args</a></h3> + <h3><a id="xmlexport">Converting from domain XML to QEMU args</a></h3> <p> The <code>virsh domxml-to-native</code> provides a way to convert a @@ -515,7 +515,7 @@ $ virsh domxml-to-native qemu-argv demo.xml -serial none -parallel none -usb </pre> - <h2><a name="qemucommand">Pass-through of arbitrary qemu + <h2><a id="qemucommand">Pass-through of arbitrary qemu commands</a></h2> <p>Libvirt provides an XML namespace and an optional @@ -582,7 +582,7 @@ $ virsh domxml-to-native qemu-argv demo.xml </domain> </pre> - <h2><a name="xmlconfig">Example domain XML config</a></h2> + <h2><a id="xmlconfig">Example domain XML config</a></h2> <h3>QEMU emulated guest on x86_64</h3> diff --git a/docs/drvuml.html.in b/docs/drvuml.html.in index 03c04eff4..832592024 100644 --- a/docs/drvuml.html.in +++ b/docs/drvuml.html.in @@ -13,7 +13,7 @@ has pre-created TAP devices. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> diff --git a/docs/drvvbox.html.in b/docs/drvvbox.html.in index 4888dd266..d6ed6aabf 100644 --- a/docs/drvvbox.html.in +++ b/docs/drvvbox.html.in @@ -8,7 +8,7 @@ from version 2.2 onwards. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -43,7 +43,7 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled) work is completed to get the libvirtd daemon working there.</strong> </p> - <h2><a name="xmlconfig">Example domain XML config</a></h2> + <h2><a id="xmlconfig">Example domain XML config</a></h2> <pre> <domain type='vbox'> diff --git a/docs/drvvirtuozzo.html.in b/docs/drvvirtuozzo.html.in index 28c8242a1..3c4a85fe0 100644 --- a/docs/drvvirtuozzo.html.in +++ b/docs/drvvirtuozzo.html.in @@ -9,7 +9,7 @@ </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> The <a href="http://www.odin.com/products/virtuozzo/">Virtuozzo</a> Solution. @@ -17,7 +17,7 @@ </ul> - <h2><a name="uri">Connections to the Virtuozzo driver</a></h2> + <h2><a id="uri">Connections to the Virtuozzo driver</a></h2> <p> The libvirt Virtuozzo driver is a single-instance privileged driver, with a driver name of 'virtuozzo'. Some example connection URIs for the libvirt driver are: </p> @@ -29,7 +29,7 @@ vz+tcp://example.com/system (remote access, SASl/Kerberos) vz+ssh://root@example.com/system (remote access, SSH tunnelled) </pre> - <h2><a name="example">Example guest domain XML configuration</a></h2> + <h2><a id="example">Example guest domain XML configuration</a></h2> <p> Virtuozzo driver require at least one hard disk for new domains diff --git a/docs/drvvmware.html.in b/docs/drvvmware.html.in index 240afd005..45f6fe261 100644 --- a/docs/drvvmware.html.in +++ b/docs/drvvmware.html.in @@ -15,7 +15,7 @@ from <a href="http://www.vmware.com/support/developer/vix-api/">here</a>. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -51,7 +51,7 @@ vmwarews+tcp://user@example.com/session (remote access to VMware Workstation, S vmwarews+ssh://user@example.com/session (remote access to VMware Workstation, SSH tunnelled) </pre> - <h2><a name="xmlconfig">Example domain XML config</a></h2> + <h2><a id="xmlconfig">Example domain XML config</a></h2> <pre> <domain type='vmware'> diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in index 649ba42bf..6af15f44b 100644 --- a/docs/drvxen.html.in +++ b/docs/drvxen.html.in @@ -11,7 +11,7 @@ on any Xen release from 3.0.1 onwards. </p> - <h2><a name="project">Project Links</a></h2> + <h2><a id="project">Project Links</a></h2> <ul> <li> @@ -20,7 +20,7 @@ </li> </ul> - <h2><a name="prereq">Deployment pre-requisites</a></h2> + <h2><a id="prereq">Deployment pre-requisites</a></h2> <p> The libvirt Xen driver uses a combination of channels to manage Xen @@ -65,7 +65,7 @@ </li> </ul> - <h2><a name="uri">Connections to Xen driver</a></h2> + <h2><a id="uri">Connections to Xen driver</a></h2> <p> The libvirt Xen driver is a single-instance privileged driver, @@ -81,7 +81,7 @@ xen+tcp://example.com/ (remote access, SASl/Kerberos) xen+ssh://root@example.com/ (remote access, SSH tunnelled) </pre> - <h2><a name="imex">Import and export of libvirt domain XML configs</a></h2> + <h2><a id="imex">Import and export of libvirt domain XML configs</a></h2> <p>The Xen driver currently supports two native config formats. The first known as <code>xen-xm</code> is the format @@ -89,7 +89,7 @@ xen+ssh://root@example.com/ (remote access, SSH tunnelled) known as <code>xen-sxpr</code>, is the format used for interacting with the XenD's legacy HTTP RPC service.</p> - <h3><a name="xmlimport">Converting from XM config files to domain XML</a></h3> + <h3><a id="xmlimport">Converting from XM config files to domain XML</a></h3> <p> The <code>virsh domxml-from-native</code> provides a way to convert an @@ -135,7 +135,7 @@ xen+ssh://root@example.com/ (remote access, SSH tunnelled) </devices> </domain></pre> - <h3><a name="xmlexport">Converting from domain XML to XM config files</a></h3> + <h3><a id="xmlexport">Converting from domain XML to XM config files</a></h3> <p> The <code>virsh domxml-to-native</code> provides a way to convert a @@ -163,7 +163,7 @@ vnclisten = "0.0.0.0" disk = [ "tap:aio:/var/lib/xen/images/rhel5pv.img,xvda,w", "tap:qcow:/root/qcow1-xen.img,xvdd,w" ] vif = [ "mac=00:16:3e:60:36:ba,bridge=virbr0,script=vif-bridge,vifname=vif5.0" ]</pre> - <h2><a name="xmlconfig">Example domain XML config</a></h2> + <h2><a id="xmlconfig">Example domain XML config</a></h2> <p> Below are some example XML configurations for Xen guest domains. diff --git a/docs/firewall.html.in b/docs/firewall.html.in index 5bb6dc143..b21891ac9 100644 --- a/docs/firewall.html.in +++ b/docs/firewall.html.in @@ -35,8 +35,7 @@ </li> </ul> - <h3><a name="name-fw-virtual-network-driver" - id="id-fw-virtual-network-driver">The virtual network driver</a> + <h3><a id="fw-virtual-network-driver">The virtual network driver</a> </h3> <p>The typical configuration for guests is to use bridging of the physical NIC on the host to connect the guest directly to the LAN. @@ -130,8 +129,7 @@ MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24</pre> </li> </ul> - <h3><a name="name-fw-network-filter-driver" - id="id-fw-network-filter-driver">The network filter driver</a> + <h3><a id="fw-network-filter-driver">The network filter driver</a> </h3> <p>This driver provides a fully configurable network filtering capability that leverages ebtables, iptables and ip6tables. This was written by diff --git a/docs/formatcaps.html.in b/docs/formatcaps.html.in index bc4511c66..d224523ef 100644 --- a/docs/formatcaps.html.in +++ b/docs/formatcaps.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="elements">Element and attribute overview</a></h2> + <h2><a id="elements">Element and attribute overview</a></h2> <p>As new virtualization engine support gets added to libvirt, and to handle cases like QEMU supporting a variety of emulations, a query @@ -28,7 +28,7 @@ the set of architectures the host can run at the moment.</p> - <h3><a name="elementHost">Host capabilities</a></h3> + <h3><a id="elementHost">Host capabilities</a></h3> <p>The <code><host/></code> element consists of the following child elements:</p> @@ -61,7 +61,7 @@ </dl> - <h3><a name="elementGuest">Guest capabilities</a></h3> + <h3><a id="elementGuest">Guest capabilities</a></h3> <p>While the <a href="#elementHost">previous section</a> aims at host capabilities, this one focuses on capabilities available to a guest @@ -138,7 +138,7 @@ </dd> </dl> - <h3><a name="elementExamples">Examples</a></h3> + <h3><a id="elementExamples">Examples</a></h3> <p>For example, in the case of a 64-bit machine with hardware virtualization capabilities enabled in the chip and diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index bceddd2aa..fb22dd1db 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -14,7 +14,7 @@ </p> - <h2><a name="elements">Element and attribute overview</a></h2> + <h2><a id="elements">Element and attribute overview</a></h2> <p> The root element required for all virtual machines is @@ -28,7 +28,7 @@ </p> - <h3><a name="elementsMetadata">General metadata</a></h3> + <h3><a id="elementsMetadata">General metadata</a></h3> <pre> <domain type='xen' id='3'> @@ -82,14 +82,14 @@ element). <span class="since">Since 0.9.10</span></dd> </dl> - <h3><a name="elementsOS">Operating system booting</a></h3> + <h3><a id="elementsOS">Operating system booting</a></h3> <p> There are a number of different ways to boot virtual machines each with their own pros and cons. </p> - <h4><a name="elementsOSBIOS">BIOS bootloader</a></h4> + <h4><a id="elementsOSBIOS">BIOS bootloader</a></h4> <p> Booting via the BIOS is available for hypervisors supporting @@ -229,7 +229,7 @@ </dd> </dl> - <h4><a name="elementsOSBootloader">Host bootloader</a></h4> + <h4><a id="elementsOSBootloader">Host bootloader</a></h4> <p> Hypervisors employing paravirtualization do not usually emulate @@ -262,7 +262,7 @@ </dl> - <h4><a name="elementsOSKernel">Direct kernel boot</a></h4> + <h4><a id="elementsOSKernel">Direct kernel boot</a></h4> <p> When installing a new guest OS it is often useful to boot directly @@ -315,7 +315,7 @@ <span class="since">Since 1.3.5 (QEMU only)</span></dd> </dl> - <h4><a name="elementsOSContainer">Container boot</a></h4> + <h4><a id="elementsOSContainer">Container boot</a></h4> <p> When booting a domain using container based virtualization, instead @@ -379,7 +379,7 @@ </pre> - <h3><a name="elementsSysinfo">SMBIOS System Information</a></h3> + <h3><a id="elementsSysinfo">SMBIOS System Information</a></h3> <p> Some hypervisors allow control over what system information is @@ -502,7 +502,7 @@ </dd> </dl> - <h3><a name="elementsCPUAllocation">CPU Allocation</a></h3> + <h3><a id="elementsCPUAllocation">CPU Allocation</a></h3> <pre> <domain> @@ -610,7 +610,7 @@ </dd> </dl> - <h3><a name="elementsIOThreadsAllocation">IOThreads Allocation</a></h3> + <h3><a id="elementsIOThreadsAllocation">IOThreads Allocation</a></h3> <p> IOThreads are dedicated event loop threads for supported disk devices to perform block I/O requests in order to improve @@ -667,7 +667,7 @@ </dd> </dl> - <h3><a name="elementsCPUTuning">CPU Tuning</a></h3> + <h3><a id="elementsCPUTuning">CPU Tuning</a></h3> <pre> <domain> @@ -837,7 +837,7 @@ </dl> - <h3><a name="elementsMemoryAllocation">Memory Allocation</a></h3> + <h3><a id="elementsMemoryAllocation">Memory Allocation</a></h3> <pre> <domain> @@ -910,7 +910,7 @@ </dl> - <h3><a name="elementsMemoryBacking">Memory Backing</a></h3> + <h3><a id="elementsMemoryBacking">Memory Backing</a></h3> <pre> <domain> @@ -980,7 +980,7 @@ </dl> - <h3><a name="elementsMemoryTuning">Memory Tuning</a></h3> + <h3><a id="elementsMemoryTuning">Memory Tuning</a></h3> <pre> <domain> @@ -1044,7 +1044,7 @@ </dl> - <h3><a name="elementsNUMATuning">NUMA Node Tuning</a></h3> + <h3><a id="elementsNUMATuning">NUMA Node Tuning</a></h3> <pre> <domain> @@ -1105,7 +1105,7 @@ </dl> - <h3><a name="elementsBlockTuning">Block I/O Tuning</a></h3> + <h3><a id="elementsBlockTuning">Block I/O Tuning</a></h3> <pre> <domain> ... @@ -1174,7 +1174,7 @@ </dl></dd></dl> - <h3><a name="resPartition">Resource partitioning</a></h3> + <h3><a id="resPartition">Resource partitioning</a></h3> <p> Hypervisors may allow for virtual machines to be placed into @@ -1203,7 +1203,7 @@ in all mounted controllers. <span class="since">Since 1.0.5</span> </p> - <h3><a name="elementsCPU">CPU model and topology</a></h3> + <h3><a id="elementsCPU">CPU model and topology</a></h3> <p> Requirements for CPU model, its features and topology can be specified @@ -1532,7 +1532,7 @@ This guest NUMA specification is currently available only for QEMU/KVM. </p> - <h3><a name="elementsEvents">Events configuration</a></h3> + <h3><a id="elementsEvents">Events configuration</a></h3> <p> It is sometimes necessary to override the default actions taken @@ -1643,7 +1643,7 @@ <dd>Keep the domain running as if nothing happened.</dd> </dl> - <h3><a name="elementsPowerManagement">Power Management</a></h3> + <h3><a id="elementsPowerManagement">Power Management</a></h3> <p> <span class="since">Since 0.10.2</span> it is possible to @@ -1667,7 +1667,7 @@ left with its default value.</dd> </dl> - <h3><a name="elementsFeatures">Hypervisor features</a></h3> + <h3><a id="elementsFeatures">Hypervisor features</a></h3> <p> Hypervisors may allow certain CPU / machine features to be @@ -1869,7 +1869,7 @@ </dd> </dl> - <h3><a name="elementsTime">Time keeping</a></h3> + <h3><a id="elementsTime">Time keeping</a></h3> <p> The guest clock is typically initialized from the host clock. @@ -2037,7 +2037,7 @@ </dd> </dl> - <h3><a name="elementsPerf">Performance monitoring events</a></h3> + <h3><a id="elementsPerf">Performance monitoring events</a></h3> <p> Some platforms allow monitoring of performance of the virtual machine and @@ -2218,7 +2218,7 @@ </tr> </table> - <h3><a name="elementsDevices">Devices</a></h3> + <h3><a id="elementsDevices">Devices</a></h3> <p> The final set of XML elements are all used to describe devices @@ -2245,7 +2245,7 @@ </dd> </dl> - <h4><a name="elementsDisks">Hard drives, floppy disks, CDROMs</a></h4> + <h4><a id="elementsDisks">Hard drives, floppy disks, CDROMs</a></h4> <p> Any device that looks like a disk, be it a floppy, harddisk, @@ -3185,7 +3185,7 @@ </dd> </dl> - <h4><a name="elementsFilesystems">Filesystems</a></h4> + <h4><a id="elementsFilesystems">Filesystems</a></h4> <p> A directory on the host that can be accessed directly from the guest. @@ -3368,7 +3368,7 @@ </dd> </dl> - <h4><a name="elementsAddress">Device Addresses</a></h4> + <h4><a id="elementsAddress">Device Addresses</a></h4> <p> Many devices have an optional <code><address></code> @@ -3485,7 +3485,7 @@ </dd> </dl> - <h4><a name="elementsVirtio">Virtio-related options</a></h4> + <h4><a id="elementsVirtio">Virtio-related options</a></h4> <p> QEMU's virtio devices have some attributes related to the virtio transport under @@ -3498,7 +3498,7 @@ <span class="since">Since 3.5.0</span> </p> - <h4><a name="elementsControllers">Controllers</a></h4> + <h4><a id="elementsControllers">Controllers</a></h4> <p> Depending on the guest architecture, some device buses can @@ -3884,7 +3884,7 @@ </devices> ...</pre> - <h4><a name="elementsLease">Device leases</a></h4> + <h4><a id="elementsLease">Device leases</a></h4> <p> When using a lock manager, it may be desirable to record device leases @@ -3924,9 +3924,9 @@ </dd> </dl> - <h4><a name="elementsHostDev">Host device assignment</a></h4> + <h4><a id="elementsHostDev">Host device assignment</a></h4> - <h5><a name="elementsHostDevSubsys">USB / PCI / SCSI devices</a></h5> + <h5><a id="elementsHostDevSubsys">USB / PCI / SCSI devices</a></h5> <p> USB, PCI and SCSI devices attached to the host can be passed through @@ -4237,7 +4237,7 @@ </dl> - <h5><a name="elementsHostDevCaps">Block / character devices</a></h5> + <h5><a id="elementsHostDevCaps">Block / character devices</a></h5> <p> Block / character devices from the host can be passed through @@ -4294,7 +4294,7 @@ </dd> </dl> - <h4><a name="elementsRedir">Redirected devices</a></h4> + <h4><a id="elementsRedir">Redirected devices</a></h4> <p> USB device redirection through a character device is @@ -4361,7 +4361,7 @@ </dd> </dl> - <h4><a name="elementsSmartcard">Smartcard devices</a></h4> + <h4><a id="elementsSmartcard">Smartcard devices</a></h4> <p> A virtual smartcard device can be supplied to the guest via the @@ -4454,7 +4454,7 @@ smartcard, with an address of bus=0 slot=0. </p> - <h4><a name="elementsNICS">Network interfaces</a></h4> + <h4><a id="elementsNICS">Network interfaces</a></h4> <pre> ... @@ -4494,7 +4494,7 @@ as <a href="#elementsAddress">documented above</a>. </p> - <h5><a name="elementsNICSVirtual">Virtual network</a></h5> + <h5><a id="elementsNICSVirtual">Virtual network</a></h5> <p> <strong><em> @@ -4600,7 +4600,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSBridge">Bridge to LAN</a></h5> + <h5><a id="elementsNICSBridge">Bridge to LAN</a></h5> <p> <strong><em> @@ -4691,7 +4691,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSSlirp">Userspace SLIRP stack</a></h5> + <h5><a id="elementsNICSSlirp">Userspace SLIRP stack</a></h5> <p> Provides a virtual LAN with NAT to the outside world. The virtual @@ -4714,7 +4714,7 @@ ...</pre> - <h5><a name="elementsNICSEthernet">Generic ethernet connection</a></h5> + <h5><a id="elementsNICSEthernet">Generic ethernet connection</a></h5> <p> Provides a means for the administrator to execute an arbitrary script @@ -4738,7 +4738,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSDirect">Direct attachment to physical interface</a></h5> + <h5><a id="elementsNICSDirect">Direct attachment to physical interface</a></h5> <p> Provides direct attachment of the virtual machine's NIC to the given @@ -4883,7 +4883,7 @@ </pre> - <h5><a name="elementsNICSHostdev">PCI Passthrough</a></h5> + <h5><a id="elementsNICSHostdev">PCI Passthrough</a></h5> <p> A PCI network device (specified by the <source> element) @@ -4956,7 +4956,7 @@ ...</pre> - <h5><a name="elementsNICSMulticast">Multicast tunnel</a></h5> + <h5><a id="elementsNICSMulticast">Multicast tunnel</a></h5> <p> A multicast group is setup to represent a virtual network. Any VMs @@ -4980,7 +4980,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSTCP">TCP tunnel</a></h5> + <h5><a id="elementsNICSTCP">TCP tunnel</a></h5> <p> A TCP client/server architecture provides a virtual network. One VM @@ -5006,7 +5006,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSUDP">UDP unicast tunnel</a></h5> + <h5><a id="elementsNICSUDP">UDP unicast tunnel</a></h5> <p> A UDP unicast architecture provides a virtual network which enables @@ -5030,7 +5030,7 @@ </devices> ...</pre> - <h5><a name="elementsNICSModel">Setting the NIC model</a></h5> + <h5><a id="elementsNICSModel">Setting the NIC model</a></h5> <pre> ... @@ -5065,7 +5065,7 @@ qemu-kvm -net nic,model=? /dev/null ne2k_isa i82551 i82557b i82559er ne2k_pci pcnet rtl8139 e1000 virtio </p> - <h5><a name="elementsDriverBackendOptions">Setting NIC driver-specific options</a></h5> + <h5><a id="elementsDriverBackendOptions">Setting NIC driver-specific options</a></h5> <pre> ... @@ -5240,7 +5240,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h5><a name="elementsBackendOptions">Setting network backend-specific options</a></h5> + <h5><a id="elementsBackendOptions">Setting network backend-specific options</a></h5> <pre> ... @@ -5271,7 +5271,7 @@ qemu-kvm -net nic,model=? /dev/null adjust the size of send buffer in the host. <span class="since">Since 0.8.8</span> </p> - <h5><a name="elementsNICSTargetOverride">Overriding the target element</a></h5> + <h5><a id="elementsNICSTargetOverride">Overriding the target element</a></h5> <pre> ... @@ -5309,7 +5309,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h5><a name="elementsNICSBoot">Specifying boot order</a></h5> + <h5><a id="elementsNICSBoot">Specifying boot order</a></h5> <pre> ... @@ -5332,7 +5332,7 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 0.8.8</span> </p> - <h5><a name="elementsNICSROM">Interface ROM BIOS configuration</a></h5> + <h5><a id="elementsNICSROM">Interface ROM BIOS configuration</a></h5> <pre> ... @@ -5361,7 +5361,7 @@ qemu-kvm -net nic,model=? /dev/null network device. <span class="since">Since 0.9.10 (QEMU and KVM only)</span>. </p> - <h5><a name="elementDomain">Setting up a network backend in a driver domain</a></h5> + <h5><a id="elementDomain">Setting up a network backend in a driver domain</a></h5> <pre> ... <devices> @@ -5385,7 +5385,7 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 1.2.13 (Xen only)</span> </p> - <h5><a name="elementQoS">Quality of service</a></h5> + <h5><a id="elementQoS">Quality of service</a></h5> <pre> ... @@ -5409,7 +5409,7 @@ qemu-kvm -net nic,model=? /dev/null the Network XML. </p> - <h5><a name="elementVlanTag">Setting VLAN tag (on supported network types only)</a></h5> + <h5><a id="elementVlanTag">Setting VLAN tag (on supported network types only)</a></h5> <pre> ... @@ -5477,7 +5477,7 @@ qemu-kvm -net nic,model=? /dev/null traffic for that VLAN will be tagged. </p> - <h5><a name="elementLink">Modifying virtual link state</a></h5> + <h5><a id="elementLink">Modifying virtual link state</a></h5> <pre> ... <devices> @@ -5498,7 +5498,7 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 0.9.5</span> </p> - <h5><a name="mtu">MTU configuration</a></h5> + <h5><a id="mtu">MTU configuration</a></h5> <pre> ... <devices> @@ -5517,7 +5517,7 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 3.1.0</span> </p> - <h5><a name="coalesce">Coalesce settings</a></h5> + <h5><a id="coalesce">Coalesce settings</a></h5> <pre> ... <devices> @@ -5544,7 +5544,7 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 3.3.0</span> </p> - <h5><a name="ipconfig">IP configuration</a></h5> + <h5><a id="ipconfig">IP configuration</a></h5> <pre> ... <devices> @@ -5623,7 +5623,7 @@ qemu-kvm -net nic,model=? /dev/null configure the guest side of the interface (described above). </p> - <h5><a name="elementVhostuser">vhost-user interface</a></h5> + <h5><a id="elementVhostuser">vhost-user interface</a></h5> <p> <span class="since">Since 1.2.7</span> the vhost-user enables the @@ -5660,7 +5660,7 @@ qemu-kvm -net nic,model=? /dev/null <code><model></code> element is mandatory. </p> - <h5><a name="elementNwfilter">Traffic filtering with NWFilter</a></h5> + <h5><a id="elementNwfilter">Traffic filtering with NWFilter</a></h5> <p> <span class="since">Since 0.8.0</span> an <code>nwfilter</code> profile @@ -5700,7 +5700,7 @@ qemu-kvm -net nic,model=? /dev/null </p> - <h4><a name="elementsInput">Input devices</a></h4> + <h4><a id="elementsInput">Input devices</a></h4> <p> Input devices allow interaction with the graphical framebuffer @@ -5755,7 +5755,7 @@ qemu-kvm -net nic,model=? /dev/null set. (<span class="since">Since 3.5.0</span>) </p> - <h4><a name="elementsHub">Hub devices</a></h4> + <h4><a id="elementsHub">Hub devices</a></h4> <p> A hub is a device that expands a single port into several so @@ -5784,7 +5784,7 @@ qemu-kvm -net nic,model=? /dev/null above</a>. </p> - <h4><a name="elementsGraphics">Graphical framebuffers</a></h4> + <h4><a id="elementsGraphics">Graphical framebuffers</a></h4> <p> A graphics device allows for graphical interaction with the @@ -6082,7 +6082,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsVideo">Video devices</a></h4> + <h4><a id="elementsVideo">Video devices</a></h4> <p> A video device. </p> @@ -6197,7 +6197,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsConsole">Consoles, serial, parallel & channel devices</a></h4> + <h4><a id="elementsConsole">Consoles, serial, parallel & channel devices</a></h4> <p> A character device provides a way to interact with the virtual machine. @@ -6283,14 +6283,14 @@ qemu-kvm -net nic,model=? /dev/null slot. </p> - <h5><a name="elementsCharGuestInterface">Guest interface</a></h5> + <h5><a id="elementsCharGuestInterface">Guest interface</a></h5> <p> A character device presents itself to the guest as one of the following types. </p> - <h6><a name="elementCharParallel">Parallel port</a></h6> + <h6><a id="elementCharParallel">Parallel port</a></h6> <pre> ... @@ -6308,7 +6308,7 @@ qemu-kvm -net nic,model=? /dev/null usually 0, 1 or 2 parallel ports. </p> - <h6><a name="elementCharSerial">Serial port</a></h6> + <h6><a id="elementCharSerial">Serial port</a></h6> <pre> ... @@ -6337,7 +6337,7 @@ qemu-kvm -net nic,model=? /dev/null <code>type='pci'</code> to select desired location on the PCI bus. </p> - <h6><a name="elementCharConsole">Console</a></h6> + <h6><a id="elementCharConsole">Console</a></h6> <p> The console element is used to represent interactive consoles. Depending @@ -6409,7 +6409,7 @@ qemu-kvm -net nic,model=? /dev/null only 1 console. </p> - <h6><a name="elementCharChannel">Channel</a></h6> + <h6><a id="elementCharChannel">Channel</a></h6> <p> This represents a private communication channel between the host and the @@ -6501,14 +6501,14 @@ qemu-kvm -net nic,model=? /dev/null <span class="since">Since 0.8.8</span></dd> </dl> - <h5><a name="elementsCharHostInterface">Host interface</a></h5> + <h5><a id="elementsCharHostInterface">Host interface</a></h5> <p> A character device presents itself to the host as one of the following types. </p> - <h6><a name="elementsCharSTDIO">Domain logfile</a></h6> + <h6><a id="elementsCharSTDIO">Domain logfile</a></h6> <p> This disables all input on the character device, and sends output @@ -6525,7 +6525,7 @@ qemu-kvm -net nic,model=? /dev/null ...</pre> - <h6><a name="elementsCharFle">Device logfile</a></h6> + <h6><a id="elementsCharFle">Device logfile</a></h6> <p> A file is opened and all data sent to the character @@ -6542,7 +6542,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharVC">Virtual console</a></h6> + <h6><a id="elementsCharVC">Virtual console</a></h6> <p> Connects the character device to the graphical framebuffer in @@ -6559,7 +6559,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharNull">Null device</a></h6> + <h6><a id="elementsCharNull">Null device</a></h6> <p> Connects the character device to the void. No data is ever @@ -6575,7 +6575,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharPTY">Pseudo TTY</a></h6> + <h6><a id="elementsCharPTY">Pseudo TTY</a></h6> <p> A Pseudo TTY is allocated using /dev/ptmx. A suitable client @@ -6600,7 +6600,7 @@ qemu-kvm -net nic,model=? /dev/null with existing syntax for <console> tags. </p> - <h6><a name="elementsCharHost">Host device proxy</a></h6> + <h6><a id="elementsCharHost">Host device proxy</a></h6> <p> The character device is passed through to the underlying @@ -6620,7 +6620,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharPipe">Named pipe</a></h6> + <h6><a id="elementsCharPipe">Named pipe</a></h6> <p> The character device writes output to a named pipe. See pipe(7) for @@ -6637,7 +6637,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharTCP">TCP client/server</a></h6> + <h6><a id="elementsCharTCP">TCP client/server</a></h6> <p> The character device acts as a TCP client connecting to a @@ -6726,7 +6726,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharUDP">UDP network console</a></h6> + <h6><a id="elementsCharUDP">UDP network console</a></h6> <p> The character device acts as a UDP netconsole service, @@ -6744,7 +6744,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharUNIX">UNIX domain socket client/server</a></h6> + <h6><a id="elementsCharUNIX">UNIX domain socket client/server</a></h6> <p> The character device acts as a UNIX domain socket server, @@ -6761,7 +6761,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsCharSpiceport">Spice channel</a></h6> + <h6><a id="elementsCharSpiceport">Spice channel</a></h6> <p> The character device is accessible through spice connection @@ -6784,7 +6784,7 @@ qemu-kvm -net nic,model=? /dev/null </devices> ...</pre> - <h6><a name="elementsNmdm">Nmdm device</a></h6> + <h6><a id="elementsNmdm">Nmdm device</a></h6> <p> The nmdm device driver, available on FreeBSD, provides two @@ -6815,7 +6815,7 @@ qemu-kvm -net nic,model=? /dev/null to the guest console. Device is specified by a fully qualified path.</dd> </dl> - <h4><a name="elementsSound">Sound devices</a></h4> + <h4><a id="elementsSound">Sound devices</a></h4> <p> A virtual sound card can be attached to the host via the @@ -6868,7 +6868,7 @@ qemu-kvm -net nic,model=? /dev/null slot, <a href="#elementsAddress">documented above</a>. </p> - <h4><a name="elementsWatchdog">Watchdog device</a></h4> + <h4><a id="elementsWatchdog">Watchdog device</a></h4> <p> A virtual hardware watchdog device can be added to the guest via @@ -6958,7 +6958,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsMemBalloon">Memory balloon device</a></h4> + <h4><a id="elementsMemBalloon">Memory balloon device</a></h4> <p> A virtual memory balloon device is added to all Xen and KVM/QEMU @@ -7043,7 +7043,7 @@ qemu-kvm -net nic,model=? /dev/null set. (<span class="since">Since 3.5.0</span>) </dd> </dl> - <h4><a name="elementsRng">Random number generator device</a></h4> + <h4><a id="elementsRng">Random number generator device</a></h4> <p> The virtual random number generator device allows the host to pass @@ -7137,7 +7137,7 @@ qemu-kvm -net nic,model=? /dev/null </dl> - <h4><a name="elementsTpm">TPM device</a></h4> + <h4><a id="elementsTpm">TPM device</a></h4> <p> The TPM device enables a QEMU guest to have access to TPM @@ -7197,7 +7197,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsNVRAM">NVRAM device</a></h4> + <h4><a id="elementsNVRAM">NVRAM device</a></h4> <p> nvram device is always added to pSeries guest on PPC64, and its address is allowed to be changed. Element <code>nvram</code> (only valid for @@ -7231,7 +7231,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsPanic">panic device</a></h4> + <h4><a id="elementsPanic">panic device</a></h4> <p> panic device enables libvirt to receive panic notification from a QEMU guest. @@ -7288,7 +7288,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsShmem">Shared memory device</a></h4> + <h4><a id="elementsShmem">Shared memory device</a></h4> <p> A shared memory device allows to share a memory region between @@ -7352,7 +7352,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsMemory">Memory devices</a></h4> + <h4><a id="elementsMemory">Memory devices</a></h4> <p> In addition to the initial memory assigned to the guest, memory devices @@ -7495,7 +7495,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h4><a name="elementsIommu">IOMMU devices</a></h4> + <h4><a id="elementsIommu">IOMMU devices</a></h4> <p> The <code>iommu</code> element can be used to add an IOMMU device. @@ -7575,7 +7575,7 @@ qemu-kvm -net nic,model=? /dev/null </dd> </dl> - <h3><a name="seclabel">Security label</a></h3> + <h3><a id="seclabel">Security label</a></h3> <p> The <code>seclabel</code> element allows control over the @@ -7704,7 +7704,7 @@ qemu-kvm -net nic,model=? /dev/null being on a file system that lacks security labeling. </p> - <h3><a name="keywrap">Key Wrap</a></h3> + <h3><a id="keywrap">Key Wrap</a></h3> <p>The content of the optional <code>keywrap</code> element specifies whether the guest will be allowed to perform the S390 cryptographic key @@ -7743,7 +7743,7 @@ qemu-kvm -net nic,model=? /dev/null <p>Note: DEA/TDEA is synonymous with DES/TDES.</p> - <h2><a name="examples">Example configs</a></h2> + <h2><a id="examples">Example configs</a></h2> <p> Example configurations for each driver are provide on the diff --git a/docs/formatdomaincaps.html.in b/docs/formatdomaincaps.html.in index 007cab62d..5e63fb7ca 100644 --- a/docs/formatdomaincaps.html.in +++ b/docs/formatdomaincaps.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="Overview">Overview</a></h2> + <h2><a id="Overview">Overview</a></h2> <p>Sometimes, when a new domain is to be created it may come handy to know the capabilities of the hypervisor so the correct combination of devices and @@ -37,7 +37,7 @@ management application to choose an appropriate mode for a pass-through host device as well as which adapter to utilize.</p> - <h2><a name="elements">Element and attribute overview</a></h2> + <h2><a id="elements">Element and attribute overview</a></h2> <p> A new query interface was added to the virConnect API's to retrieve the XML listing of the set of domain capabilities (<span class="since">Since @@ -79,7 +79,7 @@ </dl> - <h3><a name="elementsCPUAllocation">CPU Allocation</a></h3> + <h3><a id="elementsCPUAllocation">CPU Allocation</a></h3> <p>Before any devices capability occurs, there might be a info on domain wide capabilities, e.g. virtual CPUs:</p> @@ -97,7 +97,7 @@ <dd>The maximum number of supported virtual CPUs</dd> </dl> - <h3><a name="elementsOSBIOS">BIOS bootloader</a></h3> + <h3><a id="elementsOSBIOS">BIOS bootloader</a></h3> <p>Sometimes users might want to tweak some BIOS knobs or use UEFI. For cases like that, <a @@ -143,7 +143,7 @@ <loader/> element.</dd> </dl> - <h3><a name="elementsCPU">CPU configuration</a></h3> + <h3><a id="elementsCPU">CPU configuration</a></h3> <p> The <code>cpu</code> element exposes options usable for configuring @@ -208,7 +208,7 @@ </dd> </dl> - <h3><a name="elementsDevices">Devices</a></h3> + <h3><a id="elementsDevices">Devices</a></h3> <p> Another set of XML elements describe the supported devices and their @@ -240,7 +240,7 @@ support the values <code>disk</code>, <code>cdrom</code>, <code>floppy</code>, or <code>lun</code>.</p> - <h4><a name="elementsDisks">Hard drives, floppy disks, CDROMs</a></h4> + <h4><a id="elementsDisks">Hard drives, floppy disks, CDROMs</a></h4> <p>Disk capabilities are exposed under the <code>disk</code> element. For instance:</p> @@ -283,7 +283,7 @@ </dl> - <h4><a name="elementsGraphics">Graphical framebuffers</a></h4> + <h4><a id="elementsGraphics">Graphical framebuffers</a></h4> <p>Graphics device capabilities are exposed under the <code>graphics</code> element. For instance:</p> @@ -310,7 +310,7 @@ </dl> - <h4><a name="elementsVideo">Video device</a></h4> + <h4><a id="elementsVideo">Video device</a></h4> <p>Video device capabilities are exposed under the <code>video</code> element. For instance:</p> @@ -339,7 +339,7 @@ </dl> - <h4><a name="elementsHostDev">Host device assignment</a></h4> + <h4><a id="elementsHostDev">Host device assignment</a></h4> <p>Some host devices can be passed through to a guest (e.g. USB, PCI and SCSI). Well, only if the following is enabled:</p> @@ -401,7 +401,7 @@ element.</dd> </dl> - <h3><a name="elementsFeatures">Features</a></h3> + <h3><a id="elementsFeatures">Features</a></h3> <p>One more set of XML elements describe the supported features and their capabilities. All features occur as children of the main @@ -431,7 +431,7 @@ the domain XML documentation. </p> - <h4><a name="elementsGIC">GIC capabilities</a></h4> + <h4><a id="elementsGIC">GIC capabilities</a></h4> <p>GIC capabilities are exposed under the <code>gic</code> element.</p> diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in index b410dd64e..e8e618e42 100644 --- a/docs/formatnetwork.html.in +++ b/docs/formatnetwork.html.in @@ -13,7 +13,7 @@ <a href="https://wiki.libvirt.org/page/Networking">relevant wiki page</a>. </p> - <h2><a name="elements">Element and attribute overview</a></h2> + <h2><a id="elements">Element and attribute overview</a></h2> <p> The root element required for all virtual networks is @@ -27,7 +27,7 @@ available <span class="since">since 0.3.0</span> </p> - <h3><a name="elementsMetadata">General metadata</a></h3> + <h3><a id="elementsMetadata">General metadata</a></h3> <p> The first elements provide basic metadata about the virtual @@ -83,7 +83,7 @@ override the setting in the network.</dd> </dl> - <h3><a name="elementsConnect">Connectivity</a></h3> + <h3><a id="elementsConnect">Connectivity</a></h3> <p> The next set of elements control how a virtual network is @@ -514,7 +514,7 @@ </dd> </dl> - <h5><a name="elementQoS">Quality of service</a></h5> + <h5><a id="elementQoS">Quality of service</a></h5> <pre> ... @@ -634,7 +634,7 @@ <span class="since">since 1.0.1</span>. </p> - <h5><a name="elementVlanTag">Setting VLAN tag (on supported network types only)</a></h5> + <h5><a id="elementVlanTag">Setting VLAN tag (on supported network types only)</a></h5> <pre> <network> @@ -712,7 +712,7 @@ or <code><interface></code>. </p> - <h5><a name="elementsPortgroup">Portgroups</a></h5> + <h5><a id="elementsPortgroup">Portgroups</a></h5> <pre> ... @@ -790,7 +790,7 @@ setting in the portgroup. </p> - <h5><a name="elementsStaticroute">Static Routes</a></h5> + <h5><a id="elementsStaticroute">Static Routes</a></h5> <p> Static route definitions are used to provide routing information to the virtualization host for networks which are not directly @@ -845,7 +845,7 @@ ... </pre> - <h3><a name="elementsAddress">Addressing</a></h3> + <h3><a id="elementsAddress">Addressing</a></h3> <p> The final set of elements define the addresses (IPv4 and/or @@ -1079,9 +1079,9 @@ </dd> </dl> - <h2><a name="examples">Example configuration</a></h2> + <h2><a id="examples">Example configuration</a></h2> - <h3><a name="examplesNAT">NAT based network</a></h3> + <h3><a id="examplesNAT">NAT based network</a></h3> <p> This example is the so called "default" virtual network. It is @@ -1129,7 +1129,7 @@ </ip> </network></pre> - <h3><a name="examplesRoute">Routed network config</a></h3> + <h3><a id="examplesRoute">Routed network config</a></h3> <p> This is a variant on the default network which routes traffic @@ -1211,7 +1211,7 @@ <route family="ipv6" address="2001:db8:ca2:8::" prefix="64" gateway="2001:db8:ca2:7::4"/> </network></pre> - <h3><a name="examplesPrivate">Isolated network config</a></h3> + <h3><a id="examplesPrivate">Isolated network config</a></h3> <p> This variant provides a completely isolated private network @@ -1233,7 +1233,7 @@ <ip family="ipv6" address="2001:db8:ca2:3::1" prefix="64"/> </network></pre> - <h3><a name="examplesPrivate6">Isolated IPv6 network config</a></h3> + <h3><a id="examplesPrivate6">Isolated IPv6 network config</a></h3> <p> This variation of an isolated network defines only IPv6. @@ -1259,7 +1259,7 @@ </ip> </network></pre> - <h3><a name="examplesBridge">Using an existing host bridge</a></h3> + <h3><a id="examplesBridge">Using an existing host bridge</a></h3> <p> <span class="since">Since 0.9.4</span> @@ -1277,7 +1277,7 @@ <bridge name="br0"/> </network></pre> - <h3><a name="examplesDirect">Using a macvtap "direct" connection</a></h3> + <h3><a id="examplesDirect">Using a macvtap "direct" connection</a></h3> <p> <span class="since">Since 0.9.4, QEMU and KVM only, requires @@ -1312,7 +1312,7 @@ </forward> </network></pre> - <h3><a name="examplesNoGateway">Network config with no gateway addresses</a></h3> + <h3><a id="examplesNoGateway">Network config with no gateway addresses</a></h3> <p> A valid network definition can contain no IPv4 or IPv6 addresses. Such a definition diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in index 32451d557..f82aecf3a 100644 --- a/docs/formatnode.html.in +++ b/docs/formatnode.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="NodedevAttributes">Node Device XML</a></h2> + <h2><a id="NodedevAttributes">Node Device XML</a></h2> <p> There are several libvirt functions, all with the @@ -340,7 +340,7 @@ </dd> </dl> - <h2><a name="nodeExample">Examples</a></h2> + <h2><a id="nodeExample">Examples</a></h2> <p>The following are some example node device XML outputs:</p> <pre> diff --git a/docs/formatnwfilter.html.in b/docs/formatnwfilter.html.in index 0d32893cb..5eb60e12c 100644 --- a/docs/formatnwfilter.html.in +++ b/docs/formatnwfilter.html.in @@ -12,7 +12,7 @@ their goals, concepts and XML format. </p> - <h2><a name="goals">Goals and background</a></h2> + <h2><a id="goals">Goals and background</a></h2> <p> The goal of the network filtering XML is to enable administrators @@ -43,7 +43,7 @@ (QEMU, KVM)</span> </p> - <h2><a name="nwfconcepts">Concepts</a></h2> + <h2><a id="nwfconcepts">Concepts</a></h2> <p> The network traffic filtering subsystem enables configuration of network traffic filtering rules on individual network @@ -111,7 +111,7 @@ <br/><br/> </p> - <h3><a name="nwfconceptschains">Filtering chains</a></h3> + <h3><a id="nwfconceptschains">Filtering chains</a></h3> <p> Filtering rules are organized in filter chains. These chains can be thought of as having a tree structure with packet @@ -192,7 +192,7 @@ traverse the ARP chain. <br/><br/> </p> - <h3><a name="nwfconceptschainpriorities">Filtering chain priorities</a></h3> + <h3><a id="nwfconceptschainpriorities">Filtering chain priorities</a></h3> <p> All chains are connected to the <code>root</code> chain. The order in which those chains are accessed is influenced by the priority of the @@ -236,7 +236,7 @@ node. The above example filter shows the default priority of -500 for <code>arp</code> chains. </p> - <h3><a name="nwfconceptsvars">Usage of variables in filters</a></h3> + <h3><a id="nwfconceptsvars">Usage of variables in filters</a></h3> <p> Two variables names have so far been reserved for usage by the @@ -374,7 +374,7 @@ DSTPORTS = [ 80, 8080 ] former notation always assumes the iterator with Id '0'. </p> - <h3><a name="nwfelemsRulesAdvIPAddrDetection">Automatic IP address detection</a></h3> + <h3><a id="nwfelemsRulesAdvIPAddrDetection">Automatic IP address detection</a></h3> <p> The detection of IP addresses used on a virtual machine's interface is automatically activated if the variable <code>IP</code> is referenced @@ -448,7 +448,7 @@ DSTPORTS = [ 80, 8080 ] </interface> </pre> - <h3><a name="nwfelemsReservedVars">Reserved Variables</a></h3> + <h3><a id="nwfelemsReservedVars">Reserved Variables</a></h3> <p> The following table lists reserved variables in use by libvirt. </p> @@ -485,7 +485,7 @@ DSTPORTS = [ 80, 8080 ] </tr> </table> - <h2><a name="nwfelems">Element and attribute overview</a></h2> + <h2><a id="nwfelems">Element and attribute overview</a></h2> <p> The root element required for all network filters is @@ -498,7 +498,7 @@ DSTPORTS = [ 80, 8080 ] ipv4, ipv6, arp and rarp</code>. </p> - <h3><a name="nwfelemsRefs">References to other filters</a></h3> + <h3><a id="nwfelemsRefs">References to other filters</a></h3> <p> Any filter may hold references to other filters. Individual filters may be referenced multiple times in a filter tree but @@ -536,7 +536,7 @@ DSTPORTS = [ 80, 8080 ] attached. </p> - <h3><a name="nwfelemsRules">Filter rules</a></h3> + <h3><a id="nwfelemsRules">Filter rules</a></h3> <p> The following XML shows a simple example of a network traffic filter implementing a rule to drop traffic if @@ -618,7 +618,7 @@ DSTPORTS = [ 80, 8080 ] filtered. </p> - <h4><a name="nwfelemsRulesProto">Supported protocols</a></h4> + <h4><a id="nwfelemsRulesProto">Supported protocols</a></h4> <p> The following sections enumerate the list of protocols that are supported by the network filtering subsystem. The @@ -677,7 +677,7 @@ DSTPORTS = [ 80, 8080 ] </p> - <h5><a name="nwfelemsRulesProtoMAC">MAC (Ethernet)</a></h5> + <h5><a id="nwfelemsRulesProtoMAC">MAC (Ethernet)</a></h5> <p> Protocol ID: <code>mac</code> <br/> @@ -729,7 +729,7 @@ DSTPORTS = [ 80, 8080 ] [...] </pre> - <h5><a name="nwfelemsRulesProtoVLAN">VLAN (802.1Q)</a> + <h5><a id="nwfelemsRulesProtoVLAN">VLAN (802.1Q)</a> <span class="since">(Since 0.9.8)</span> </h5> <p> @@ -784,7 +784,7 @@ DSTPORTS = [ 80, 8080 ] Valid Strings for <code>encap-protocol</code> are: arp, ipv4, ipv6 </p> - <h5><a name="nwfelemsRulesProtoSTP">STP (Spanning Tree Protocol)</a> + <h5><a id="nwfelemsRulesProtoSTP">STP (Spanning Tree Protocol)</a> <span class="since">(Since 0.9.8)</span> </h5> <p> @@ -926,7 +926,7 @@ DSTPORTS = [ 80, 8080 ] </tr> </table> - <h5><a name="nwfelemsRulesProtoARP">ARP/RARP</a></h5> + <h5><a id="nwfelemsRulesProtoARP">ARP/RARP</a></h5> <p> Protocol ID: <code>arp</code> or <code>rarp</code> <br/> @@ -1022,7 +1022,7 @@ DSTPORTS = [ 80, 8080 ] <br/><br/> </p> - <h5><a name="nwfelemsRulesProtoIP">IPv4</a></h5> + <h5><a id="nwfelemsRulesProtoIP">IPv4</a></h5> <p> Protocol ID: <code>ip</code> <br/> @@ -1118,7 +1118,7 @@ DSTPORTS = [ 80, 8080 ] </p> - <h5><a name="nwfelemsRulesProtoIPv6">IPv6</a></h5> + <h5><a id="nwfelemsRulesProtoIPv6">IPv6</a></h5> <p> Protocol ID: <code>ipv6</code> <br/> @@ -1228,7 +1228,7 @@ DSTPORTS = [ 80, 8080 ] <br/><br/> </p> - <h5><a name="nwfelemsRulesProtoTCP-ipv4">TCP/UDP/SCTP</a></h5> + <h5><a id="nwfelemsRulesProtoTCP-ipv4">TCP/UDP/SCTP</a></h5> <p> Protocol ID: <code>tcp</code>, <code>udp</code>, <code>sctp</code> <br/> @@ -1344,7 +1344,7 @@ DSTPORTS = [ 80, 8080 ] </p> - <h5><a name="nwfelemsRulesProtoICMP">ICMP</a></h5> + <h5><a id="nwfelemsRulesProtoICMP">ICMP</a></h5> <p> Protocol ID: <code>icmp</code> <br/> @@ -1458,7 +1458,7 @@ DSTPORTS = [ 80, 8080 ] <br/><br/> </p> - <h5><a name="nwfelemsRulesProtoMisc">IGMP, ESP, AH, UDPLITE, 'ALL'</a></h5> + <h5><a id="nwfelemsRulesProtoMisc">IGMP, ESP, AH, UDPLITE, 'ALL'</a></h5> <p> Protocol ID: <code>igmp</code>, <code>esp</code>, <code>ah</code>, <code>udplite</code>, <code>all</code> <br/> @@ -1563,7 +1563,7 @@ DSTPORTS = [ 80, 8080 ] </p> - <h5><a name="nwfelemsRulesProtoTCP-ipv6">TCP/UDP/SCTP over IPV6</a></h5> + <h5><a id="nwfelemsRulesProtoTCP-ipv6">TCP/UDP/SCTP over IPV6</a></h5> <p> Protocol ID: <code>tcp-ipv6</code>, <code>udp-ipv6</code>, <code>sctp-ipv6</code> <br/> @@ -1679,7 +1679,7 @@ DSTPORTS = [ 80, 8080 ] </p> - <h5><a name="nwfelemsRulesProtoICMPv6">ICMPv6</a></h5> + <h5><a id="nwfelemsRulesProtoICMPv6">ICMPv6</a></h5> <p> Protocol ID: <code>icmpv6</code> <br/> @@ -1779,7 +1779,7 @@ DSTPORTS = [ 80, 8080 ] <br/><br/> </p> - <h5><a name="nwfelemsRulesProtoMiscv6">ESP, AH, UDPLITE, 'ALL' over IPv6</a></h5> + <h5><a id="nwfelemsRulesProtoMiscv6">ESP, AH, UDPLITE, 'ALL' over IPv6</a></h5> <p> Protocol ID: <code>esp-ipv6</code>, <code>ah-ipv6</code>, <code>udplite-ipv6</code>, <code>all-ipv6</code> <br/> @@ -1868,13 +1868,13 @@ DSTPORTS = [ 80, 8080 ] <br/><br/> </p> - <h3><a name="nwfelemsRulesAdv">Advanced Filter Configuration Topics</a></h3> + <h3><a id="nwfelemsRulesAdv">Advanced Filter Configuration Topics</a></h3> <p> The following sections discuss advanced filter configuration topics. </p> - <h4><a name="nwfelemsRulesAdvTracking">Connection tracking</a></h4> + <h4><a id="nwfelemsRulesAdvTracking">Connection tracking</a></h4> <p> The network filtering subsystem (on Linux) makes use of the connection tracking support of iptables. This helps in enforcing the @@ -1908,7 +1908,7 @@ DSTPORTS = [ 80, 8080 ] which may or may not be desirable. </p> - <h4><a name="nwfelemsRulesAdvLimiting">Limiting Number of Connections</a></h4> + <h4><a id="nwfelemsRulesAdvLimiting">Limiting Number of Connections</a></h4> <p> To limit the number of connections a VM may establish, a rule must be provided that sets a limit of connections for a given @@ -1981,7 +1981,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout traffic behavior in relation to idle connections. </p> - <h2><a name="nwfcli">Command line tools</a></h2> + <h2><a id="nwfcli">Command line tools</a></h2> <p> The libvirt command line tool <code>virsh</code> has been extended with life-cycle support for network filters. All commands related @@ -1996,7 +1996,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout <li>nwfilter-edit : edit a network filter given its name</li> </ul> - <h2><a name="nwfexamples">Pre-existing network filters</a></h2> + <h2><a id="nwfexamples">Pre-existing network filters</a></h2> <p> The following is a list of example network filters that are automatically installed with libvirt.</p> @@ -2051,7 +2051,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout on top of the prevention of packet spoofing. </p> - <h2><a name="nwfwrite">Writing your own filters</a></h2> + <h2><a id="nwfwrite">Writing your own filters</a></h2> <p> Since libvirt only provides a couple of example networking filters, you @@ -2124,7 +2124,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout <code>udp-ipv6</code> traffic filtering node. </p> - <h3><a name="nwfwriteexample">Example custom filter</a></h3> + <h3><a id="nwfwriteexample">Example custom filter</a></h3> <p> As an example we want to now build a filter that fulfills the following list of requirements: @@ -2227,7 +2227,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout </rule> </pre> - <h3><a name="nwfwriteexample2nd">Second example custom filter</a></h3> + <h3><a id="nwfwriteexample2nd">Second example custom filter</a></h3> <p> In this example we now want to build a similar filter as in the example above, but extend the list of requirements with an @@ -2400,13 +2400,13 @@ modprobe ip_conntrack_ftp # if above is not available </pre> - <h2><a name="nwflimits">Limitations</a></h2> + <h2><a id="nwflimits">Limitations</a></h2> <p> The following sections list (current) limitations of the network filtering subsystem. </p> - <h3><a name="nwflimitsmigr">VM Migration</a></h3> + <h3><a id="nwflimitsmigr">VM Migration</a></h3> <p> VM migration is only supported if the whole filter tree that is referenced by a virtual machine's top level filter @@ -2424,7 +2424,7 @@ modprobe ip_conntrack_ftp # if above is not available 0.8.1 or later in order not to lose the network traffic filters associated with an interface. </p> - <h3><a name="nwflimitsvlan">VLAN filtering on Linux</a></h3> + <h3><a id="nwflimitsvlan">VLAN filtering on Linux</a></h3> <p> VLAN (802.1Q) packets, if sent by a virtual machine, cannot be filtered with rules for protocol IDs <code>arp</code>, <code>rarp</code>, diff --git a/docs/formatsecret.html.in b/docs/formatsecret.html.in index 21b93397c..86b8de5b9 100644 --- a/docs/formatsecret.html.in +++ b/docs/formatsecret.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="SecretAttributes">Secret XML</a></h2> + <h2><a id="SecretAttributes">Secret XML</a></h2> <p> Secrets stored by libvirt may have attributes associated with them, using @@ -47,7 +47,7 @@ </dd> </dl> - <h3><a name="VolumeUsageType">Usage type "volume"</a></h3> + <h3><a id="VolumeUsageType">Usage type "volume"</a></h3> <p> This secret is associated with a volume, whether the format is either @@ -120,7 +120,7 @@ Secret value set # </pre> - <h3><a name="CephUsageType">Usage type "ceph"</a></h3> + <h3><a id="CephUsageType">Usage type "ceph"</a></h3> <p> This secret is associated with a Ceph RBD (rados block device). The <code><usage type='ceph'></code> element must contain @@ -187,7 +187,7 @@ Secret value set </auth> </pre> - <h3><a name="iSCSIUsageType">Usage type "iscsi"</a></h3> + <h3><a id="iSCSIUsageType">Usage type "iscsi"</a></h3> <p> This secret is associated with an iSCSI target for CHAP authentication. @@ -272,7 +272,7 @@ Secret value set </auth> </pre> - <h3><a name="tlsUsageType">Usage type "tls"</a></h3> + <h3><a id="tlsUsageType">Usage type "tls"</a></h3> <p> This secret may be used in order to provide the passphrase for the diff --git a/docs/formatsnapshot.html.in b/docs/formatsnapshot.html.in index 5e8e21c8a..52682646b 100644 --- a/docs/formatsnapshot.html.in +++ b/docs/formatsnapshot.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="SnapshotAttributes">Snapshot XML</a></h2> + <h2><a id="SnapshotAttributes">Snapshot XML</a></h2> <p> There are several types of snapshots: @@ -243,7 +243,7 @@ </dd> </dl> - <h2><a name="example">Examples</a></h2> + <h2><a id="example">Examples</a></h2> <p>Using this XML to create a disk snapshot of just vda on a qemu domain with two disks:</p> diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in index 4946ddf70..c6eab0278 100644 --- a/docs/formatstorage.html.in +++ b/docs/formatstorage.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="StoragePool">Storage pool XML</a></h2> + <h2><a id="StoragePool">Storage pool XML</a></h2> <p> Although all storage pool backends share the same public APIs and @@ -29,7 +29,7 @@ 3.1.0</span>). This corresponds to the storage backend drivers listed further along in this document. </p> - <h3><a name="StoragePoolFirst">General metadata</a></h3> + <h3><a id="StoragePoolFirst">General metadata</a></h3> <pre> <pool type="iscsi"> @@ -66,7 +66,7 @@ pool. <span class="since">Since 0.4.1</span></dd> </dl> - <h3><a name="StoragePoolSource">Source elements</a></h3> + <h3><a id="StoragePoolSource">Source elements</a></h3> <p> A single <code>source</code> element is contained within the top level @@ -394,7 +394,7 @@ is backend specific. <span class="since">Since 0.8.4</span></dd> </dl> - <h3><a name="StoragePoolTarget">Target elements</a></h3> + <h3><a id="StoragePoolTarget">Target elements</a></h3> <p> A single <code>target</code> element is contained within the top level @@ -458,7 +458,7 @@ </dd> </dl> - <h3><a name="StoragePoolExtents">Device extents</a></h3> + <h3><a id="StoragePoolExtents">Device extents</a></h3> <p> If a storage pool exposes information about its underlying @@ -478,7 +478,7 @@ device, measured in bytes. <span class="since">Since 0.4.1</span> </p> - <h2><a name="StorageVol">Storage volume XML</a></h2> + <h2><a id="StorageVol">Storage volume XML</a></h2> <p> A storage volume will generally be either a file or a device node; <span class="since">since 1.2.0</span>, an optional @@ -488,7 +488,7 @@ XML format is available <span class="since">since 0.4.1</span> </p> - <h3><a name="StorageVolFirst">General metadata</a></h3> + <h3><a id="StorageVolFirst">General metadata</a></h3> <pre> <volume type='file'> @@ -567,7 +567,7 @@ on the local host. <span class="since">Since 0.4.1</span></dd> </dl> - <h3><a name="StorageVolTarget">Target elements</a></h3> + <h3><a id="StorageVolTarget">Target elements</a></h3> <p> A single <code>target</code> element is contained within the top level @@ -683,7 +683,7 @@ </dd> </dl> - <h3><a name="StorageVolBacking">Backing store elements</a></h3> + <h3><a id="StorageVolBacking">Backing store elements</a></h3> <p> A single <code>backingStore</code> element is contained within the top level @@ -729,14 +729,14 @@ </dd> </dl> - <h2><a name="examples">Example configuration</a></h2> + <h2><a id="examples">Example configuration</a></h2> <p> Here are a couple of examples, for a more complete set demonstrating every type of storage pool, consult the <a href="storage.html">storage driver page</a> </p> - <h3><a name="exampleFile">File based storage pool</a></h3> + <h3><a id="exampleFile">File based storage pool</a></h3> <pre> <pool type="dir"> @@ -746,7 +746,7 @@ </target> </pool></pre> - <h3><a name="exampleISCSI">iSCSI based storage pool</a></h3> + <h3><a id="exampleISCSI">iSCSI based storage pool</a></h3> <pre> <pool type="iscsi"> @@ -763,7 +763,7 @@ </target> </pool></pre> - <h3><a name="exampleVol">Storage volume</a></h3> + <h3><a id="exampleVol">Storage volume</a></h3> <pre> <volume> @@ -781,7 +781,7 @@ </target> </volume></pre> - <h3><a name="exampleLuks">Storage volume using LUKS</a></h3> + <h3><a id="exampleLuks">Storage volume using LUKS</a></h3> <pre> <volume> diff --git a/docs/formatstorageencryption.html.in b/docs/formatstorageencryption.html.in index ec09bc661..ba19e268a 100644 --- a/docs/formatstorageencryption.html.in +++ b/docs/formatstorageencryption.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="StorageEncryption">Storage volume encryption XML</a></h2> + <h2><a id="StorageEncryption">Storage volume encryption XML</a></h2> <p> Storage volumes may be encrypted, the XML snippet described below is used @@ -37,7 +37,7 @@ secret value at the time of volume creation, and store it using the specified <code>uuid</code>. </p> - <h3><a name="StorageEncryptionDefault">"default" format</a></h3> + <h3><a id="StorageEncryptionDefault">"default" format</a></h3> <p> <code><encryption format="default"/></code> can be specified only when creating a qcow volume. If the volume is successfully created, the @@ -47,7 +47,7 @@ in later operations with the volume, or when setting up a domain that uses the volume. </p> - <h3><a name="StorageEncryptionQcow">"qcow" format</a></h3> + <h3><a id="StorageEncryptionQcow">"qcow" format</a></h3> <p> The <code>qcow</code> format specifies that the built-in encryption support in <code>qcow</code>- or <code>qcow2</code>-formatted volume @@ -56,7 +56,7 @@ the <code>secret</code> element is not present during volume creation, a secret is automatically generated and attached to the volume. </p> - <h3><a name="StorageEncryptionLuks">"luks" format</a></h3> + <h3><a id="StorageEncryptionLuks">"luks" format</a></h3> <p> The <code>luks</code> format is specific to a luks encrypted volume and the secret is used in order to either encrypt during volume creation @@ -119,7 +119,7 @@ </dl> - <h2><a name="example">Examples</a></h2> + <h2><a id="example">Examples</a></h2> <p> Here is a simple example, specifying use of the <code>qcow</code> format: diff --git a/docs/governance.html.in b/docs/governance.html.in index 2f0428130..81c093bbd 100644 --- a/docs/governance.html.in +++ b/docs/governance.html.in @@ -14,7 +14,7 @@ influence, within the community. </p> - <h2><a name="codeofconduct">Code of conduct</a></h2> + <h2><a id="codeofconduct">Code of conduct</a></h2> <p> The libvirt project community covers people from a wide variety of @@ -49,7 +49,7 @@ from them. Playing a blame game doesn't help anyone.</li> </ul> - <h2><a name="roles">Roles and responsibilities</a></h2> + <h2><a id="roles">Roles and responsibilities</a></h2> <h3><a href="users">Users</a></h3> @@ -91,7 +91,7 @@ ways listed in the next section. </p> - <h3><a name="contributors">Contributors</a></h3> + <h3><a id="contributors">Contributors</a></h3> <p> The contributors are community members who have some concrete impact @@ -156,7 +156,7 @@ covered are found in the source repositories, or website in question. </p> - <h3><a name="committers">Committers</a></h3> + <h3><a id="committers">Committers</a></h3> <p> The committers are the subset of contributors who have direct access @@ -227,7 +227,7 @@ to retain their role as a committer. </p> - <h3><a name="secteam">Security team</a></h3> + <h3><a id="secteam">Security team</a></h3> <p> The security team consists of a subset of the project committers @@ -252,7 +252,7 @@ before disclosing a private issue. </p> - <h2><a name="roughconsensus">Rough consensus</a></h2> + <h2><a id="roughconsensus">Rough consensus</a></h2> <p> A core concept for governance of the project described above is diff --git a/docs/hacking.html.in b/docs/hacking.html.in index 975ee6935..efd053d16 100644 --- a/docs/hacking.html.in +++ b/docs/hacking.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="patches">General tips for contributing patches</a></h2> + <h2><a id="patches">General tips for contributing patches</a></h2> <ol> <li> <p>Discuss any large changes on the mailing list first. Post patches @@ -336,7 +336,7 @@ Richard Jones' guide to working with open source projects</a>. </p> - <h2><a name="tooling">Tooling</a></h2> + <h2><a id="tooling">Tooling</a></h2> <p> libvirt includes support for some useful development tools right in its @@ -356,7 +356,7 @@ </li> </ul> - <h2><a name="naming">Naming conventions</a></h2> + <h2><a id="naming">Naming conventions</a></h2> <p> When reading libvirt code, a number of different naming conventions will @@ -450,7 +450,7 @@ </dd> </dl> - <h2><a name="indent">Code indentation</a></h2> + <h2><a id="indent">Code indentation</a></h2> <p> Libvirt's C source code generally adheres to some basic code-formatting conventions. The existing code base is not totally consistent on this @@ -487,7 +487,7 @@ which will load the .lvimrc only when you edit libvirt code. </p> - <h2><a name="formatting">Code formatting (especially for new code)</a></h2> + <h2><a id="formatting">Code formatting (especially for new code)</a></h2> <p> With new code, we can be even more strict. @@ -523,7 +523,7 @@ </p> - <h2><a name="bracket_spacing">Bracket spacing</a></h2> + <h2><a id="bracket_spacing">Bracket spacing</a></h2> <p> The keywords <code>if</code>, <code>for</code>, <code>while</code>, @@ -572,7 +572,7 @@ int foo(int wizz); // Good </pre> - <h2><a name="comma">Commas</a></h2> + <h2><a id="comma">Commas</a></h2> <p> Commas should always be followed by a space or end of line, and @@ -609,7 +609,7 @@ }; </pre> - <h2><a name="semicolon">Semicolons</a></h2> + <h2><a id="semicolon">Semicolons</a></h2> <p> Semicolons should never have a space beforehand. Inside the @@ -638,7 +638,7 @@ } </pre> - <h2><a name="curly_braces">Curly braces</a></h2> + <h2><a id="curly_braces">Curly braces</a></h2> <p> Omit the curly braces around an <code>if</code>, <code>while</code>, @@ -819,7 +819,7 @@ } </pre> - <h2><a name="preprocessor">Preprocessor</a></h2> + <h2><a id="preprocessor">Preprocessor</a></h2> <p>Macros defined with an ALL_CAPS name should generally be assumed to be unsafe with regards to arguments with side-effects @@ -844,7 +844,7 @@ #endif </pre> - <h2><a name="types">C types</a></h2> + <h2><a id="types">C types</a></h2> <p> Use the right type. @@ -919,7 +919,7 @@ it points to, or it is aliased to another pointer that is. </p> - <h2><a name="memalloc">Low level memory management</a></h2> + <h2><a id="memalloc">Low level memory management</a></h2> <p> Use of the malloc/free/realloc/calloc APIs is deprecated in the libvirt @@ -1013,7 +1013,7 @@ </li> </ul> - <h2><a name="file_handling">File handling</a></h2> + <h2><a id="file_handling">File handling</a></h2> <p> Usage of the <code>fdopen()</code>, <code>close()</code>, <code>fclose()</code> @@ -1059,7 +1059,7 @@ </li> </ul> - <h2><a name="string_comparision">String comparisons</a></h2> + <h2><a id="string_comparision">String comparisons</a></h2> <p> Do not use the strcmp, strncmp, etc functions directly. Instead use @@ -1109,7 +1109,7 @@ </ul> - <h2><a name="string_copying">String copying</a></h2> + <h2><a id="string_copying">String copying</a></h2> <p> Do not use the strncpy function. According to the man page, it @@ -1169,7 +1169,7 @@ and usually considered a flaw. </p> - <h2><a name="strbuf">Variable length string buffer</a></h2> + <h2><a id="strbuf">Variable length string buffer</a></h2> <p> If there is a need for complex string concatenations, avoid using @@ -1202,7 +1202,7 @@ </pre> - <h2><a name="includes">Include files</a></h2> + <h2><a id="includes">Include files</a></h2> <p> There are now quite a large number of include files, both libvirt @@ -1251,7 +1251,7 @@ </p> - <h2><a name="printf">Printf-style functions</a></h2> + <h2><a id="printf">Printf-style functions</a></h2> <p> Whenever you add a new printf-style function, i.e., one with a format @@ -1280,7 +1280,7 @@ does for snprintf. </p> - <h2><a name="goto">Use of goto</a></h2> + <h2><a id="goto">Use of goto</a></h2> <p> The use of goto is not forbidden, and goto is widely used @@ -1363,7 +1363,7 @@ int foo() - <h2><a name="committers">Libvirt committer guidelines</a></h2> + <h2><a id="committers">Libvirt committer guidelines</a></h2> <p> The AUTHORS files indicates the list of people with commit access right diff --git a/docs/hooks.html.in b/docs/hooks.html.in index 11073cb78..7a04ac198 100644 --- a/docs/hooks.html.in +++ b/docs/hooks.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="intro">Custom event scripts</a></h2> + <h2><a id="intro">Custom event scripts</a></h2> <p>Beginning with libvirt 0.8.0, specific events on a host system will trigger custom scripts.</p> <p>These custom <b>hook</b> scripts are executed when any of the following @@ -26,7 +26,7 @@ (<span class="since">since 1.2.2</span>)<br/><br/></li> </ul> - <h2><a name="location">Script location</a></h2> + <h2><a id="location">Script location</a></h2> <p>The libvirt hook scripts are located in the directory <code>$SYSCONFDIR/libvirt/hooks/</code>.</p> <ul> @@ -42,7 +42,7 @@ them executable.</p> <br/> - <h2><a name="names">Script names</a></h2> + <h2><a id="names">Script names</a></h2> <p>At present, there are five hook scripts that can be called:</p> <ul> <li><code>/etc/libvirt/hooks/daemon</code><br/><br/> @@ -61,7 +61,7 @@ </ul> <br/> - <h2><a name="structure">Script structure</a></h2> + <h2><a id="structure">Script structure</a></h2> <p>The hook scripts are executed using standard Linux process creation functions. Therefore, they must begin with the declaration of the command interpreter to use.</p> @@ -73,7 +73,7 @@ binary, so you are welcome to use your favourite languages.</p> <br/> - <h2><a name="arguments">Script arguments</a></h2> + <h2><a id="arguments">Script arguments</a></h2> <p>The hook scripts are called with specific command line arguments, depending upon the script, and the operation being performed.</p> <p>The guest hook scripts, qemu and lxc, are also given the <b>full</b> @@ -128,10 +128,10 @@ none.</li> </ol> - <h4><a name="arguments_specifics">Specifics</a></h4> + <h4><a id="arguments_specifics">Specifics</a></h4> <p>This translates to the following specifics for each hook script:</p> - <h5><a name="daemon">/etc/libvirt/hooks/daemon</a></h5> + <h5><a id="daemon">/etc/libvirt/hooks/daemon</a></h5> <ul> <li>When the libvirt daemon is started, this script is called as:<br/> <pre>/etc/libvirt/hooks/daemon - start - start</pre></li> @@ -146,7 +146,7 @@ with the "start" operation. There is no specific operation to indicate a "restart" is occurring.</p> - <h5><a name="qemu">/etc/libvirt/hooks/qemu</a></h5> + <h5><a id="qemu">/etc/libvirt/hooks/qemu</a></h5> <ul> <li>Before a QEMU guest is started, the qemu hook script is called in three locations; if any location fails, the guest @@ -206,7 +206,7 @@ </li> </ul> - <h5><a name="lxc">/etc/libvirt/hooks/lxc</a></h5> + <h5><a id="lxc">/etc/libvirt/hooks/lxc</a></h5> <ul> <li>Before a LXC guest is started, the lxc hook script is called in three locations; if any location fails, the guest @@ -240,7 +240,7 @@ </li> </ul> - <h5><a name="libxl">/etc/libvirt/hooks/libxl</a></h5> + <h5><a id="libxl">/etc/libvirt/hooks/libxl</a></h5> <ul> <li>Before a Xen guest is started using libxl driver, the libxl hook script is called in three locations; if any location fails, the guest @@ -284,7 +284,7 @@ </li> </ul> - <h5><a name="network">/etc/libvirt/hooks/network</a></h5> + <h5><a id="network">/etc/libvirt/hooks/network</a></h5> <ul> <li><span class="since">Since 1.2.2</span>, before a network is started, this script is called as:<br/> @@ -310,7 +310,7 @@ <br/> - <h2><a name="execution">Script execution</a></h2> + <h2><a id="execution">Script execution</a></h2> <ul> <li>The "start" operation for the guest and network hook scripts, executes <b>prior</b> to the object (guest or network) being created. @@ -335,7 +335,7 @@ </ul> <br/> - <h2><a name="qemu_migration">QEMU guest migration</a></h2> + <h2><a id="qemu_migration">QEMU guest migration</a></h2> <p>Migration of a QEMU guest involves running hook scripts on both the source and destination hosts:</p> <ol> @@ -357,14 +357,14 @@ </ol> <br/> - <h2><a name="recursive">Calling libvirt functions from within a hook script</a></h2> + <h2><a id="recursive">Calling libvirt functions from within a hook script</a></h2> <p><b>DO NOT DO THIS!</b></p> <p>A hook script must not call back into libvirt, as the libvirt daemon is already waiting for the script to exit.</p> <p>A deadlock is likely to occur.</p> <br/> - <h2><a name="return_codes">Return codes and logging</a></h2> + <h2><a id="return_codes">Return codes and logging</a></h2> <p>If a hook script returns with an exit code of 0, the libvirt daemon regards this as successful and performs no logging of it.</p> <p>However, if a hook script returns with a non zero exit code, the libvirt diff --git a/docs/internals/command.html.in b/docs/internals/command.html.in index 2d8b09308..e21b12e53 100644 --- a/docs/internals/command.html.in +++ b/docs/internals/command.html.in @@ -12,7 +12,7 @@ All code is required to use these APIs </p> - <h2><a name="posix">Problems with standard POSIX APIs</a></h2> + <h2><a id="posix">Problems with standard POSIX APIs</a></h2> <p> The POSIX specification includes a number of APIs for @@ -62,7 +62,7 @@ error prone, particularly wrt memory leak / OOM handling. </p> - <h2><a name="api">The libvirt command execution API</a></h2> + <h2><a id="api">The libvirt command execution API</a></h2> <p> There is now a high level API that provides a safe and @@ -72,7 +72,7 @@ header which can be imported using <code>#include "vircommand.h"</code> </p> - <h3><a name="initial">Defining commands in libvirt</a></h3> + <h3><a id="initial">Defining commands in libvirt</a></h3> <p> The first step is to declare what command is to be @@ -92,7 +92,7 @@ virCommandPtr cmd = virCommandNew("/usr/bin/dnsmasq"); reported at a later time. </p> - <h3><a name="args">Adding arguments to the command</a></h3> + <h3><a id="args">Adding arguments to the command</a></h3> <p> There are a number of APIs for adding arguments to a @@ -150,7 +150,7 @@ virCommandPtr cmd2 = virCommandNewArgList("/usr/bin/dnsmasq", "--domain", "localdomain", NULL); </pre> - <h3><a name="env">Setting up the environment</a></h3> + <h3><a id="env">Setting up the environment</a></h3> <p> By default a command will inherit all environment variables @@ -199,7 +199,7 @@ virCommandAddEnvPair(cmd, "TERM", "xterm"); virCommandAddEnvString(cmd, "TERM=xterm"); </pre> - <h3><a name="misc">Miscellaneous other options</a></h3> + <h3><a id="misc">Miscellaneous other options</a></h3> <p> Normally the spawned command will retain the current @@ -229,7 +229,7 @@ virCommandSetPidFile(cmd, "/var/run/dnsmasq.pid"); the intermediate process exits. </p> - <h3><a name="privs">Reducing command privileges</a></h3> + <h3><a id="privs">Reducing command privileges</a></h3> <p> Normally a command will inherit all privileges of @@ -243,7 +243,7 @@ virCommandSetPidFile(cmd, "/var/run/dnsmasq.pid"); virCommandClearCaps(cmd); </pre> - <h3><a name="fds">Managing file handles</a></h3> + <h3><a id="fds">Managing file handles</a></h3> <p> To prevent unintended resource leaks to child processes, the @@ -329,7 +329,7 @@ virCommandSetErrorFD(cmd, &errfd); virCommandNonblockingFDs(cmd); </pre> - <h3><a name="buffers">Feeding & capturing strings to/from the child</a></h3> + <h3><a id="buffers">Feeding & capturing strings to/from the child</a></h3> <p> Often dealing with file handles for stdin/out/err is @@ -382,7 +382,7 @@ virCommandSetErrorBuffer(cmd, &errors); case the child process interleaves output into a single string. </p> - <h3><a name="directory">Setting working directory</a></h3> + <h3><a id="directory">Setting working directory</a></h3> <p> Daemonized commands are always run with "/" as the current @@ -395,7 +395,7 @@ virCommandSetErrorBuffer(cmd, &errors); virCommandSetWorkingDirectory(cmd, LOCALSTATEDIR); </pre> - <h3><a name="hooks">Any additional hooks</a></h3> + <h3><a id="hooks">Any additional hooks</a></h3> <p> If anything else is needed, it is possible to request a hook @@ -409,7 +409,7 @@ virCommandSetWorkingDirectory(cmd, LOCALSTATEDIR); virCommandSetPreExecHook(cmd, hook, opaque); </pre> - <h3><a name="logging">Logging commands</a></h3> + <h3><a id="logging">Logging commands</a></h3> <p> Sometimes, it is desirable to log what command will be run, or @@ -434,7 +434,7 @@ if (virCommandRun(cmd, NULL) < 0) return -1; </pre> - <h3><a name="sync">Running commands synchronously</a></h3> + <h3><a id="sync">Running commands synchronously</a></h3> <p> For most commands, the desired behaviour is to spawn @@ -480,7 +480,7 @@ if (WIFEXITED(status) && WEXITSTATUS(status) == 1) { } </pre> - <h3><a name="async">Running commands asynchronously</a></h3> + <h3><a id="async">Running commands asynchronously</a></h3> <p> In certain complex scenarios, particularly special @@ -530,7 +530,7 @@ if (WEXITSTATUS(status)...) { virCommandAbort to reap the process. </p> - <h3><a name="release">Releasing resources</a></h3> + <h3><a id="release">Releasing resources</a></h3> <p> Once the command has been executed, or if execution @@ -550,7 +550,7 @@ virCommandFree(cmd); it will be forcibly killed and cleaned up (via waitpid). </p> - <h2><a name="example">Complete examples</a></h2> + <h2><a id="example">Complete examples</a></h2> <p> This shows a complete example usage of the APIs roughly diff --git a/docs/internals/eventloop.html.in b/docs/internals/eventloop.html.in index a01e104e8..fe7bf3aaf 100644 --- a/docs/internals/eventloop.html.in +++ b/docs/internals/eventloop.html.in @@ -11,7 +11,7 @@ libvirt. Both server and client. </p> - <h2><a name="event_loop">Event driven programming</a></h2> + <h2><a id="event_loop">Event driven programming</a></h2> <p>Traditionally, a program simply ran once, then terminated. This type of program was very common in the early days of @@ -38,7 +38,7 @@ file descriptor which is then watched for incoming events, e.g. messages. </p> - <h2><a name="api">The event loop API</a></h2> + <h2><a id="api">The event loop API</a></h2> <p>To work with event loop from our code we have plenty of APIs.</p> @@ -62,7 +62,7 @@ <p>For more information on these APIs continue reading <a href="../html/libvirt-libvirt-event.html">here</a>.</p> - <h2><a name="worker_pool">Worker pool</a></h2> + <h2><a id="worker_pool">Worker pool</a></h2> <p>Looking back at the image above we can see one big limitation. While processing a message event loop is blocked diff --git a/docs/internals/locking.html.in b/docs/internals/locking.html.in index 09cc2ba4a..4222c44d3 100644 --- a/docs/internals/locking.html.in +++ b/docs/internals/locking.html.in @@ -12,7 +12,7 @@ access to content. </p> - <h2><a name="goals">Goals</a></h2> + <h2><a id="goals">Goals</a></h2> <p> The high level goal is to prevent the same disk image being @@ -36,7 +36,7 @@ </li> </ol> - <h2><a name="requirement">Requirements</a></h2> + <h2><a id="requirement">Requirements</a></h2> <p> The high level goal leads to a set of requirements @@ -67,7 +67,7 @@ </li> </ol> - <h2><a name="design">Design</a></h2> + <h2><a id="design">Design</a></h2> <p> Within a lock manager the following series of operations @@ -102,7 +102,7 @@ </li> </ul> - <h2><a name="impl">Plugin Implementations</a></h2> + <h2><a id="impl">Plugin Implementations</a></h2> <p> Lock manager implementations are provided as LGPLv2+ @@ -132,7 +132,7 @@ in the previously mentioned header file </p> - <h2><a name="qemuIntegrate">QEMU Driver integration</a></h2> + <h2><a id="qemuIntegrate">QEMU Driver integration</a></h2> <p> With the QEMU driver, the lock plugin will be set @@ -149,7 +149,7 @@ lockManager="sanlock" for backwards compatibility </p> - <h2><a name="usagePatterns">Lock usage patterns</a></h2> + <h2><a id="usagePatterns">Lock usage patterns</a></h2> <p> The following pseudo code illustrates the common @@ -157,7 +157,7 @@ lockManager="sanlock" manager plugin callbacks. </p> - <h3><a name="usageLockAcquire">Lock acquisition</a></h3> + <h3><a id="usageLockAcquire">Lock acquisition</a></h3> <p> Initial lock acquisition will be performed from the @@ -205,7 +205,7 @@ if (virLockManagerAcquire(lock, NULL, 0) < 0); ...abort... </pre> - <h3><a name="usageLockAttach">Lock release</a></h3> + <h3><a id="usageLockAttach">Lock release</a></h3> <p> The locks are all implicitly released when the process diff --git a/docs/internals/oomtesting.html.in b/docs/internals/oomtesting.html.in index c5edacff6..aca8fde13 100644 --- a/docs/internals/oomtesting.html.in +++ b/docs/internals/oomtesting.html.in @@ -26,7 +26,7 @@ $ ./configure --enable-test-oom </pre> - <h2><a name="basicoom">Basic OOM testing support</a></h2> + <h2><a id="basicoom">Basic OOM testing support</a></h2> <p> The first step in validating OOM usage is to run a test suite @@ -64,7 +64,7 @@ $ VIR_TEST_OOM=1 ./qemuxml2argvtest of memory allocations from that test case. </p> - <h3><a name="valgrind">Tracking failures with valgrind</a></h3> + <h3><a id="valgrind">Tracking failures with valgrind</a></h3> <p> The test suite should obviously *not* crash during OOM testing. @@ -88,7 +88,7 @@ $ VIR_TEST_OOM=1 VIR_TEST_RANGE=5 ../run valgrind ./qemuxml2argvtest access. </p> - <h3><a name="stacktraces">Tracking failures with stack traces</a></h3> + <h3><a id="stacktraces">Tracking failures with stack traces</a></h3> <p> With some really difficult bugs valgrind is not sufficient to @@ -191,7 +191,7 @@ _start ??:? </pre> - <h3><a name="noncrash">Non-crash related problems</a></h3> + <h3><a id="noncrash">Non-crash related problems</a></h3> <p> Not all memory allocation bugs result in code crashing. Sometimes diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in index 9107b97a2..98f8be07b 100644 --- a/docs/internals/rpc.html.in +++ b/docs/internals/rpc.html.in @@ -17,7 +17,7 @@ </p> - <h2><a name="protocol">RPC protocol</a></h2> + <h2><a id="protocol">RPC protocol</a></h2> <p> libvirt uses a simple, variable length, packet based RPC protocol. @@ -193,14 +193,14 @@ definition for the program+version in question </p> - <h3><a name="wireexamples">Wire examples</a></h3> + <h3><a id="wireexamples">Wire examples</a></h3> <p> The following diagrams illustrate some example packet exchanges between a client and server </p> - <h4><a name="wireexamplescall">Method call</a></h4> + <h4><a id="wireexamplescall">Method call</a></h4> <p> A single method call and successful @@ -219,7 +219,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) +--+-----------------------+--------+ </pre> - <h4><a name="wireexamplescallerr">Method call with error</a></h4> + <h4><a id="wireexamplescallerr">Method call with error</a></h4> <p> An unsuccessful method call will instead return an error object @@ -235,7 +235,7 @@ C <-- |48| 8 | 1 | 3 | 2 | 1 | 0 | .o.oOo.o.oOo.o.oOo.o.oOo | <-- S (er +--+-----------------------+--------------------------+ </pre> - <h4><a name="wireexamplescallup">Method call with upload stream</a></h4> + <h4><a id="wireexamplescallup">Method call with upload stream</a></h4> <p> A method call which also involves uploading some data over @@ -272,7 +272,7 @@ C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish) +--+-----------------------+ </pre> - <h4><a name="wireexamplescallbi">Method call bidirectional stream</a></h4> + <h4><a id="wireexamplescallbi">Method call bidirectional stream</a></h4> <p> A method call which also involves a bi-directional stream will @@ -328,7 +328,7 @@ C <-- |24| 8 | 1 | 3 | 3 | 1 | 0 | <-- S (stream finish) </pre> - <h4><a name="wireexamplescallmany">Method calls overlapping</a></h4> + <h4><a id="wireexamplescallmany">Method calls overlapping</a></h4> <pre> +--+-----------------------+-----------+ C --> |38| 8 | 1 | 3 | 0 | 1 | 0 | .o.oOo.o. | --> S (call 1) @@ -356,7 +356,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 4 | 0 | .o.oOo | <-- S (reply 4) +--+-----------------------+--------+ </pre> - <h4><a name="wireexamplescallfd">Method call with passed FD</a></h4> + <h4><a id="wireexamplescallfd">Method call with passed FD</a></h4> <p> A single method call with 2 passed file descriptors and successful @@ -378,14 +378,14 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) </pre> - <h2><a name="security">RPC security</a></h2> + <h2><a id="security">RPC security</a></h2> <p> There are various things to consider to ensure an implementation of the RPC protocol can be satisfactorily secured </p> - <h3><a name="securitytls">Authentication/encryption</a></h3> + <h3><a id="securitytls">Authentication/encryption</a></h3> <p> The basic RPC protocol does not define or require any specific @@ -399,7 +399,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) stream can of course be tunnelled over transports such as SSH. </p> - <h3><a name="securitylimits">Data limits</a></h3> + <h3><a id="securitylimits">Data limits</a></h3> <p> Although the protocol itself defines many arbitrary sized data values in the @@ -411,7 +411,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) breaking compatibility of the RPC data on the wire. </p> - <h3><a name="securityvalidate">Data validation</a></h3> + <h3><a id="securityvalidate">Data validation</a></h3> <p> It is important that all data be fully validated before performing @@ -427,7 +427,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) execution API (e.g. corresponding libvirt public API). </p> - <h2><a name="internals">RPC internal APIs</a></h2> + <h2><a id="internals">RPC internal APIs</a></h2> <p> The generic internal RPC library code lives in the <code>src/rpc/</code> @@ -436,7 +436,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) purposes are: </p> - <h3><a name="apioverview">Overview of RPC objects</a></h3> + <h3><a id="apioverview">Overview of RPC objects</a></h3> <p> The following is a high level overview of the role of each @@ -568,7 +568,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) </dd> </dl> - <h3><a name="apiclientdispatch">Client RPC dispatch</a></h3> + <h3><a id="apiclientdispatch">Client RPC dispatch</a></h3> <p> The client RPC code must allow for multiple overlapping RPC method @@ -601,7 +601,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) grabs the buck, and re-enabled when the buck is released. </p> - <h4><a name="apiclientdispatchex1">Example with buck passing</a></h4> + <h4><a id="apiclientdispatchex1">Example with buck passing</a></h4> <p> In the first example, a second thread issues an API call @@ -649,7 +649,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) Return API2() </pre> - <h4><a name="apiclientdispatchex2">Example without buck passing</a></h4> + <h4><a id="apiclientdispatchex2">Example without buck passing</a></h4> <p> In this second example, a second thread issues an API call @@ -699,7 +699,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) Return API1() </pre> - <h4><a name="apiclientdispatchex3">Example with async events</a></h4> + <h4><a id="apiclientdispatchex3">Example with async events</a></h4> <p> In this example, only one thread is present and it has to @@ -739,7 +739,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) ... </pre> - <h3><a name="apiserverdispatch">Server RPC dispatch</a></h3> + <h3><a id="apiserverdispatch">Server RPC dispatch</a></h3> <p> The RPC server code must support receipt of incoming RPC requests from @@ -827,7 +827,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) queue. </p> - <h4><a name="apiserverdispatchex1">Example with overlapping methods</a></h4> + <h4><a id="apiserverdispatchex1">Example with overlapping methods</a></h4> <p> This example illustrates processing of two incoming methods with @@ -874,7 +874,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) ... </pre> - <h4><a name="apiserverdispatchex2">Example with stream data</a></h4> + <h4><a id="apiserverdispatchex2">Example with stream data</a></h4> <p> This example illustrates processing of stream data diff --git a/docs/locking-lockd.html.in b/docs/locking-lockd.html.in index fe007b107..42fcf0e68 100644 --- a/docs/locking-lockd.html.in +++ b/docs/locking-lockd.html.in @@ -12,7 +12,7 @@ plugin for virtual machine disk mutual exclusion. </p> - <h2><a name="background">virtlockd background</a></h2> + <h2><a id="background">virtlockd background</a></h2> <p> The virtlockd daemon is a single purpose binary which @@ -26,7 +26,7 @@ commonly used filesystems. </p> - <h2><a name="sanlock">virtlockd daemon setup</a></h2> + <h2><a id="sanlock">virtlockd daemon setup</a></h2> <p> In most OS, the virtlockd daemon itself will not require @@ -53,7 +53,7 @@ setup at all. </p> - <h2><a name="lockdplugin">libvirt lockd plugin configuration</a></h2> + <h2><a id="lockdplugin">libvirt lockd plugin configuration</a></h2> <p> Once the virtlockd daemon is running, or setup to autostart, @@ -127,7 +127,7 @@ $ su - root the same locking mechanism </p> - <h2><a name="qemuconfig">QEMU/KVM driver configuration</a></h2> + <h2><a id="qemuconfig">QEMU/KVM driver configuration</a></h2> <p> The QEMU driver is capable of using the virtlockd plugin diff --git a/docs/locking-sanlock.html.in b/docs/locking-sanlock.html.in index 12fc3d724..08182065d 100644 --- a/docs/locking-sanlock.html.in +++ b/docs/locking-sanlock.html.in @@ -13,7 +13,7 @@ plugin for virtual machine disk mutual exclusion. </p> - <h2><a name="sanlock">Sanlock daemon setup</a></h2> + <h2><a id="sanlock">Sanlock daemon setup</a></h2> <p> On many operating systems, the <strong>sanlock</strong> plugin @@ -68,7 +68,7 @@ SANLOCKOPTS="-w 0" steps as necessary. </p> - <h2><a name="sanlockplugin">libvirt sanlock plugin configuration</a></h2> + <h2><a id="sanlockplugin">libvirt sanlock plugin configuration</a></h2> <p> Once the sanlock daemon is running, the next step is to @@ -91,7 +91,7 @@ $ su - root unique value for the host. </p> - <h2><a name="sanlockstorage">libvirt sanlock storage configuration</a></h2> + <h2><a id="sanlockstorage">libvirt sanlock storage configuration</a></h2> <p> The sanlock plugin needs to create leases in a directory @@ -152,7 +152,7 @@ augtool -s set /files/etc/libvirt/qemu-sanlock.conf/group sanlock it should be sufficient to run the cleanup once a week. </p> - <h2><a name="qemuconfig">QEMU/KVM driver configuration</a></h2> + <h2><a id="qemuconfig">QEMU/KVM driver configuration</a></h2> <p> The QEMU/KVM driver is fully integrated with the lock @@ -219,7 +219,7 @@ __LIBVIRT__DISKS__ </pool> </pre> - <h2><a name="domainconfig">Domain configuration</a></h2> + <h2><a id="domainconfig">Domain configuration</a></h2> <p> In case sanlock loses access to disk locks for some reason, it will diff --git a/docs/locking.html.in b/docs/locking.html.in index aca18113d..f0e0a3868 100644 --- a/docs/locking.html.in +++ b/docs/locking.html.in @@ -15,7 +15,7 @@ aware filesystem. </p> - <h2><a name="plugins">Lock manager plugins</a></h2> + <h2><a id="plugins">Lock manager plugins</a></h2> <p> The lock manager framework has a pluggable architecture, diff --git a/docs/logging.html.in b/docs/logging.html.in index bcec17940..534afa1cd 100644 --- a/docs/logging.html.in +++ b/docs/logging.html.in @@ -12,7 +12,7 @@ <ul id="toc"/> <h2> - <a name="log_library">Logging in the library</a> + <a id="log_library">Logging in the library</a> </h2> <p>The logging functionalities in libvirt are based on 3 key concepts, similar to the one present in other generic logging facilities like @@ -40,7 +40,7 @@ </ul> <h2> - <a name="log_config">Configuring logging in the library</a> + <a id="log_config">Configuring logging in the library</a> </h2> <p>The library configuration of logging is through 3 environment variables allowing to control the logging behaviour:</p> @@ -61,7 +61,7 @@ have an error in a filter or output string, some of the settings may be applied up to the point at which libvirt encountered the error.</p> <h2> - <a name="log_daemon">Logging in the daemon</a> + <a id="log_daemon">Logging in the daemon</a> </h2> <p>Similarly the daemon logging behaviour can be tuned using 3 config variables, stored in the configuration file:</p> @@ -96,7 +96,7 @@ for debugging purposes by sending the daemon a USR2 signal:</p> <pre>killall -USR2 libvirtd</pre> <h2> - <a name="log_syntax">Syntax for filters and output values</a> + <a id="log_syntax">Syntax for filters and output values</a> </h2> <p>The syntax for filters and outputs is the same for both types of variables.</p> @@ -149,7 +149,7 @@ x:+name (log message + stack trace)</pre> but also log all debug and information included in the file <code>/tmp/libvirt.log</code></p> - <h2><a name="journald">Systemd journal fields</a></h2> + <h2><a id="journald">Systemd journal fields</a></h2> <p> When logging to the systemd journal, the following fields @@ -176,7 +176,7 @@ x:+name (log message + stack trace)</pre> <dd>The libvirt error code (values from virErrorCode enum), if LIBVIRT_SOURCE="error"</dd> </dl> - <h3><a name="journaldids">Well known message ID values</a></h3> + <h3><a id="journaldids">Well known message ID values</a></h3> <p> Certain areas of the code will emit log records tagged with well known @@ -221,7 +221,7 @@ $ journalctl MESSAGE_ID=8ae2f3fb-2dbe-498e-8fbd-012d40afa361 --output=json </pre> <h2> - <a name="log_examples">Examples</a> + <a id="log_examples">Examples</a> </h2> <p>For example setting up the following:</p> <pre>export LIBVIRT_DEBUG=1 diff --git a/docs/migration.html.in b/docs/migration.html.in index a57f27918..d82fb54b4 100644 --- a/docs/migration.html.in +++ b/docs/migration.html.in @@ -13,7 +13,7 @@ libvirt implements several options for migration. </p> - <h2><a name="transport">Network data transports</a></h2> + <h2><a id="transport">Network data transports</a></h2> <p> There are two options for the data transport used during migration, either @@ -21,7 +21,7 @@ over a libvirtd connection. </p> - <h3><a name="transportnative">Hypervisor native transport</a></h3> + <h3><a id="transportnative">Hypervisor native transport</a></h3> <p> <em>Native</em> data transports may or may not support encryption, depending on the hypervisor in question, but will typically have the lowest computational costs @@ -35,7 +35,7 @@ <img class="diagram" src="migration-native.png" alt="Migration native path"/> </p> - <h3><a name="transporttunnel">libvirt tunnelled transport</a></h3> + <h3><a id="transporttunnel">libvirt tunnelled transport</a></h3> <p> <em>Tunnelled</em> data transports will always be capable of strong encryption since they are able to leverage the capabilities built in to the libvirt RPC protocol. @@ -53,7 +53,7 @@ <img class="diagram" src="migration-tunnel.png" alt="Migration tunnel path"/> </p> - <h2><a name="flow">Communication control paths/flows</a></h2> + <h2><a id="flow">Communication control paths/flows</a></h2> <p> Migration of virtual machines requires close co-ordination of the two @@ -61,7 +61,7 @@ which may be on the source, the destination, or a third host. </p> - <h3><a name="flowmanageddirect">Managed direct migration</a></h3> + <h3><a id="flowmanageddirect">Managed direct migration</a></h3> <p> With <em>managed direct</em> migration, the libvirt client process @@ -81,7 +81,7 @@ </p> - <h3><a name="flowpeer2peer">Managed peer to peer migration</a></h3> + <h3><a id="flowpeer2peer">Managed peer to peer migration</a></h3> <p> With <em>peer to peer</em> migration, the libvirt client process only @@ -103,7 +103,7 @@ </p> - <h3><a name="flowunmanageddirect">Unmanaged direct migration</a></h3> + <h3><a id="flowunmanageddirect">Unmanaged direct migration</a></h3> <p> With <em>unmanaged direct</em> migration, neither the libvirt client @@ -119,7 +119,7 @@ </p> - <h2><a name="security">Data security</a></h2> + <h2><a id="security">Data security</a></h2> <p> Since the migration data stream includes a complete copy of the guest @@ -138,7 +138,7 @@ facility should be used. </p> - <h2><a name="offline">Offline migration</a></h2> + <h2><a id="offline">Offline migration</a></h2> <p> Offline migration transfers inactive the definition of a domain @@ -153,7 +153,7 @@ offline migration. </p> - <h2><a name="uris">Migration URIs</a></h2> + <h2><a id="uris">Migration URIs</a></h2> <p> Initiating a guest migration requires the client application to @@ -203,7 +203,7 @@ to comply with local firewall policies.</li> </ol> - <h2><a name="config">Configuration file handling</a></h2> + <h2><a id="config">Configuration file handling</a></h2> <p> There are two types of virtual machine known to libvirt. A <em>transient</em> @@ -446,10 +446,10 @@ </tbody> </table> - <h2><a name="scenarios">Migration scenarios</a></h2> + <h2><a id="scenarios">Migration scenarios</a></h2> - <h3><a name="scenarionativedirect">Native migration, client to two libvirtd servers</a></h3> + <h3><a id="scenarionativedirect">Native migration, client to two libvirtd servers</a></h3> <p> At an API level this requires use of virDomainMigrate, without the @@ -479,7 +479,7 @@ virsh migrate web1 xen+tcp://desthost/system xenmigr:10.0.0.1/ Supported by Xen, QEMU, VMware and VirtualBox drivers </p> - <h3><a name="scenarionativepeer2peer">Native migration, client to and peer2peer between, two libvirtd servers</a></h3> + <h3><a id="scenarionativepeer2peer">Native migration, client to and peer2peer between, two libvirtd servers</a></h3> <p> virDomainMigrate, with the VIR_MIGRATE_PEER2PEER flag set, @@ -503,7 +503,7 @@ virsh migrate web1 xen+tcp://desthost/system xenmigr:10.0.0.1/ Supported by QEMU driver </p> - <h3><a name="scenariotunnelpeer2peer1">Tunnelled migration, client and peer2peer between two libvirtd servers</a></h3> + <h3><a id="scenariotunnelpeer2peer1">Tunnelled migration, client and peer2peer between two libvirtd servers</a></h3> <p> virDomainMigrate, with the VIR_MIGRATE_PEER2PEER & VIR_MIGRATE_TUNNELLED @@ -526,7 +526,7 @@ virsh migrate web1 xen+tcp://desthost/system xenmigr:10.0.0.1/ Supported by QEMU driver </p> - <h3><a name="nativedirectunmanaged">Native migration, client to one libvirtd server</a></h3> + <h3><a id="nativedirectunmanaged">Native migration, client to one libvirtd server</a></h3> <p> virDomainMigrateToURI, without the VIR_MIGRATE_PEER2PEER flag set, @@ -550,7 +550,7 @@ virsh migrate --direct web1 xenmigr://desthost/ Supported by Xen driver </p> - <h3><a name="nativepeer2peer">Native migration, peer2peer between two libvirtd servers</a></h3> + <h3><a id="nativepeer2peer">Native migration, peer2peer between two libvirtd servers</a></h3> <p> virDomainMigrateToURI, with the VIR_MIGRATE_PEER2PEER flag set, @@ -587,7 +587,7 @@ virsh migrate --p2p web1 qemu+ssh://desthost/system qemu+ssh://10.0.0.1/system Supported by the QEMU driver </p> - <h3><a name="scenariotunnelpeer2peer2">Tunnelled migration, peer2peer between two libvirtd servers</a></h3> + <h3><a id="scenariotunnelpeer2peer2">Tunnelled migration, peer2peer between two libvirtd servers</a></h3> <p> virDomainMigrateToURI, with the VIR_MIGRATE_PEER2PEER & VIR_MIGRATE_TUNNELLED diff --git a/docs/nss.html.in b/docs/nss.html.in index 2a5a46cd1..369c9ff61 100644 --- a/docs/nss.html.in +++ b/docs/nss.html.in @@ -25,7 +25,7 @@ users. This is where NSS module comes handy. </p> - <h2><a name="Installation">Installation</a></h2> + <h2><a id="Installation">Installation</a></h2> <p> Installing the module is really easy: @@ -35,7 +35,7 @@ # yum install libvirt-nss </pre> - <h2><a name="Configuration">Configuration</a></h2> + <h2><a id="Configuration">Configuration</a></h2> <p> Enabling the module is really easy. Just add <b>libvirt</b> into @@ -62,7 +62,7 @@ hosts: files libvirt dns lookup given host name. </p> - <h2><a name="Sources">Sources of information</a></h2> + <h2><a id="Sources">Sources of information</a></h2> <p> As of <code>v3.0.0</code> release, libvirt offers two NSS modules @@ -104,7 +104,7 @@ hosts: files libvirt libvirt_guest dns resolved). </p> - <h2><a name="Internals">How does it work?</a></h2> + <h2><a id="Internals">How does it work?</a></h2> <p> Whenever an Unix process wants to do a host name translation @@ -139,7 +139,7 @@ hosts: files libvirt libvirt_guest dns should carefully chose the lookup order. </p> - <h2><a name="Limitations">Limitations</a></h2> + <h2><a id="Limitations">Limitations</a></h2> <ol> <li>The <code>libvirt</code> NSS module matches only hostnames provided by guest. diff --git a/docs/page.xsl b/docs/page.xsl index 1d662c670..57f85e618 100644 --- a/docs/page.xsl +++ b/docs/page.xsl @@ -27,30 +27,30 @@ <xsl:for-each select="/html:html/html:body/html:h2[count(html:a) = 1]"> <xsl:variable name="thish2" select="."/> <li> - <a href="#{html:a/@name}"><xsl:value-of select="html:a/text()"/></a> + <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a> <xsl:if test="count(./following-sibling::html:h3[preceding-sibling::html:h2[1] = $thish2 and count(html:a) = 1]) > 0"> <ul> <xsl:for-each select="./following-sibling::html:h3[preceding-sibling::html:h2[1] = $thish2 and count(html:a) = 1]"> <xsl:variable name="thish3" select="."/> <li> - <a href="#{html:a/@name}"><xsl:value-of select="html:a/text()"/></a> + <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a> <xsl:if test="count(./following-sibling::html:h4[preceding-sibling::html:h3[1] = $thish3 and count(html:a) = 1]) > 0"> <ul> <xsl:for-each select="./following-sibling::html:h4[preceding-sibling::html:h3[1] = $thish3 and count(html:a) = 1]"> <xsl:variable name="thish4" select="."/> <li> - <a href="#{html:a/@name}"><xsl:value-of select="html:a/text()"/></a> + <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a> <xsl:if test="count(./following-sibling::html:h5[preceding-sibling::html:h4[1] = $thish4 and count(html:a) = 1]) > 0"> <ul> <xsl:for-each select="./following-sibling::html:h5[preceding-sibling::html:h4[1] = $thish4 and count(html:a) = 1]"> <xsl:variable name="thish5" select="."/> <li> - <a href="#{html:a/@name}"><xsl:value-of select="html:a/text()"/></a> + <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a> <xsl:if test="count(./following-sibling::html:h6[preceding-sibling::html:h5[1] = $thish5 and count(html:a) = 1]) > 0"> <ul> <xsl:for-each select="./following-sibling::html:h6[preceding-sibling::html:h5[1] = $thish5 and count(html:a) = 1]"> <li> - <a href="#{html:a/@name}"><xsl:value-of select="html:a/text()"/></a> + <a href="#{html:a/@id}"><xsl:value-of select="html:a/text()"/></a> </li> </xsl:for-each> </ul> @@ -155,8 +155,8 @@ <xsl:template match="html:h2 | html:h3 | html:h4 | html:h5 | html:h6" mode="content"> <xsl:element name="{name()}"> <xsl:apply-templates mode="copy" /> - <xsl:if test="./html:a/@name"> - <a class="headerlink" href="#{html:a/@name}" title="Permalink to this headline">¶</a> + <xsl:if test="./html:a/@id"> + <a class="headerlink" href="#{html:a/@id}" title="Permalink to this headline">¶</a> </xsl:if> </xsl:element> </xsl:template> diff --git a/docs/remote.html.in b/docs/remote.html.in index 117ee3477..47e95400b 100644 --- a/docs/remote.html.in +++ b/docs/remote.html.in @@ -10,7 +10,7 @@ machines through authenticated and encrypted connections. <ul id="toc"></ul> <h2> - <a name="Remote_basic_usage">Basic usage</a> + <a id="Remote_basic_usage">Basic usage</a> </h2> <p> On the remote machine, <code>libvirtd</code> should be running in general. @@ -50,7 +50,7 @@ relating to failures in the remote transport itself. </li> much slower than, say, direct hypervisor calls. </li> </ul> <h2> - <a name="Remote_transports">Transports</a> + <a id="Remote_transports">Transports</a> </h2> <p> Remote libvirt supports a range of transports: @@ -111,7 +111,7 @@ netcat is required on the remote side.</dd> The default transport, if no other is specified, is <code>tls</code>. </p> <h2> - <a name="Remote_URI_reference">Remote URIs</a> + <a id="Remote_URI_reference">Remote URIs</a> </h2> <p> See also: <a href="uri.html">documentation on ordinary ("local") URIs</a>. @@ -158,7 +158,7 @@ Connect to a remote host using a ssh connection with the libssh driver and use a different known_hosts file.</li> </ul> <h3> - <a name="Remote_URI_parameters">Extra parameters</a> + <a id="Remote_URI_parameters">Extra parameters</a> </h3> <p> Extra parameters can be added to remote URIs as part @@ -364,10 +364,10 @@ Note that parameter values must be </tr> </table> <h2> - <a name="Remote_certificates">Generating TLS certificates</a> + <a id="Remote_certificates">Generating TLS certificates</a> </h2> <h3> - <a name="Remote_PKI">Public Key Infrastructure set up</a> + <a id="Remote_PKI">Public Key Infrastructure set up</a> </h3> <p> If you are unsure how to create TLS certificates, skip to the @@ -472,7 +472,7 @@ next section. <li> For the root user, the global default locations will always be used.</li> </ul> <h3> - <a name="Remote_TLS_background">Background to TLS certificates</a> + <a id="Remote_TLS_background">Background to TLS certificates</a> </h3> <p> Libvirt supports TLS certificates for verifying the identity @@ -507,7 +507,7 @@ address. You may want to change this to make it less (or more) permissive, depending on your needs. </p> <h3> - <a name="Remote_TLS_CA">Setting up a Certificate Authority (CA)</a> + <a id="Remote_TLS_CA">Setting up a Certificate Authority (CA)</a> </h3> <p> You will need the <a href="http://www.gnu.org/software/gnutls/manual/html_node/Invoking-certtool.html">GnuTLS @@ -578,7 +578,7 @@ key carefully as you will need it when you come to issue certificates for your clients and servers. </p> <h3> - <a name="Remote_TLS_server_certificates">Issuing server certificates</a> + <a id="Remote_TLS_server_certificates">Issuing server certificates</a> </h3> <p> For each server (libvirtd) you need to issue a certificate @@ -661,7 +661,7 @@ which can be installed on the server as </li> </ul> <h3> - <a name="Remote_TLS_client_certificates">Issuing client certificates</a> + <a id="Remote_TLS_client_certificates">Issuing client certificates</a> </h3> <p> For each client (ie. any program linked with libvirt, such as @@ -714,7 +714,7 @@ cp clientcert.pem /etc/pki/libvirt/clientcert.pem </li> </ol> <h3> - <a name="Remote_TLS_troubleshooting">Troubleshooting TLS certificate problems</a> + <a id="Remote_TLS_troubleshooting">Troubleshooting TLS certificate problems</a> </h3> <dl> <dt> failed to verify client's certificate </dt> @@ -732,7 +732,7 @@ to analyze the setup on the client or server machines, preferably as root. It will try to point out the possible problems and provide solutions to fix the set up up to a point where you have secure remote access.</p> <h2> - <a name="Remote_libvirtd_configuration">libvirtd configuration file</a> + <a id="Remote_libvirtd_configuration">libvirtd configuration file</a> </h2> <p> Libvirtd (the remote daemon) is configured from a file called @@ -900,7 +900,7 @@ Blank lines and comments beginning with <code>#</code> are ignored. </tr> </table> <h2> - <a name="Remote_IPv6">IPv6 support</a> + <a id="Remote_IPv6">IPv6 support</a> </h2> <p> The libvirtd service and libvirt remote client driver both use the @@ -913,7 +913,7 @@ connection will be made, otherwise IPv4 will be used. In summary it should just 'do the right thing(tm)'. </p> <h2> - <a name="Remote_limitations">Limitations</a> + <a id="Remote_limitations">Limitations</a> </h2> <ul> <li> Fine-grained authentication: libvirt in general, diff --git a/docs/secureusage.html.in b/docs/secureusage.html.in index af47a0f53..6a9490bac 100644 --- a/docs/secureusage.html.in +++ b/docs/secureusage.html.in @@ -14,9 +14,9 @@ </p> - <h2><a name="diskimage">Disk image handling</a></h2> + <h2><a id="diskimage">Disk image handling</a></h2> - <h3><a name="diskimageformat">Disk image format probing</a></h3> + <h3><a id="diskimageformat">Disk image format probing</a></h3> <p> Historically there have been multiple flaws in QEMU and most @@ -40,7 +40,7 @@ are accessible to / originate from an untrusted source. </p> - <h3><a name="diskimagebacking">Disk image backing files</a></h3> + <h3><a id="diskimagebacking">Disk image backing files</a></h3> <p> If a management application allows users to upload pre-created @@ -59,7 +59,7 @@ file set. If a backing file is seen, reject the image. </p> - <h3><a name="diskimagesize">Disk image size validation</a></h3> + <h3><a id="diskimagesize">Disk image size validation</a></h3> <p> If an application allows users to upload pre-created disk @@ -78,7 +78,7 @@ limit. </p> - <h3><a name="diskimageaccess">Disk image data access</a></h3> + <h3><a id="diskimageaccess">Disk image data access</a></h3> <p> If an untrusted disk image is ever mounted on the host OS by @@ -104,7 +104,7 @@ tools and APIs for accessing disks </p> - <h2><a name="migration">Guest migration network</a></h2> + <h2><a id="migration">Guest migration network</a></h2> <p> Most hypervisors with support for guest migration between hosts @@ -145,7 +145,7 @@ RPC protocol connections.</li> </ul> - <h2><a name="storage">Storage encryption</a></h2> + <h2><a id="storage">Storage encryption</a></h2> <p> Virtual disk images will typically contain confidential data diff --git a/docs/securityprocess.html.in b/docs/securityprocess.html.in index bdef1e9d8..d37276d15 100644 --- a/docs/securityprocess.html.in +++ b/docs/securityprocess.html.in @@ -15,7 +15,7 @@ potential security issues. </p> - <h2><a name="reporting">Reporting security issues</a></h2> + <h2><a id="reporting">Reporting security issues</a></h2> <p> In the event that a bug in libvirt is found which is @@ -37,7 +37,7 @@ moderator and the reporter copied on any replies. </p> - <h2><a name="seclist">Security team</a></h2> + <h2><a id="seclist">Security team</a></h2> <p> The libvirt security team is made up of a subset of the libvirt @@ -61,7 +61,7 @@ described below. </p> - <h2><a name="embargo">Publication embargo policy</a></h2> + <h2><a id="embargo">Publication embargo policy</a></h2> <p> The libvirt security team operates a policy of @@ -84,7 +84,7 @@ </p> - <h2><a name="cve">CVE allocation</a></h2> + <h2><a id="cve">CVE allocation</a></h2> <p> The libvirt security team will associate each security issue with @@ -92,7 +92,7 @@ the vendor security engineers on the security team. </p> - <h2><a name="branches">Branch fixing policy</a></h2> + <h2><a id="branches">Branch fixing policy</a></h2> <p> The libvirt community maintains one or more stable release branches @@ -103,7 +103,7 @@ other release branches where applicable. </p> - <h2><a name="notification">Notification of issues</a></h2> + <h2><a id="notification">Notification of issues</a></h2> <p> When an embargo expires, security issues will be announced on both diff --git a/docs/storage.html.in b/docs/storage.html.in index 89ebb7097..aad5751ef 100644 --- a/docs/storage.html.in +++ b/docs/storage.html.in @@ -85,7 +85,7 @@ </p> <ul id="toc"></ul> - <h2><a name="StorageBackendDir">Directory pool</a></h2> + <h2><a id="StorageBackendDir">Directory pool</a></h2> <p> A pool with a type of <code>dir</code> provides the means to manage files within a directory. The files can be fully allocated raw files, @@ -138,7 +138,7 @@ </p> - <h2><a name="StorageBackendFS">Filesystem pool</a></h2> + <h2><a id="StorageBackendFS">Filesystem pool</a></h2> <p> This is a variant of the directory pool. Instead of creating a directory on an existing mounted filesystem though, it expects @@ -212,7 +212,7 @@ </p> - <h2><a name="StorageBackendNetFS">Network filesystem pool</a></h2> + <h2><a id="StorageBackendNetFS">Network filesystem pool</a></h2> <p> This is a variant of the filesystem pool. Instead of requiring a local block device as the source, it requires the name of a @@ -266,7 +266,7 @@ </p> - <h2><a name="StorageBackendLogical">Logical volume pool</a></h2> + <h2><a id="StorageBackendLogical">Logical volume pool</a></h2> <p> This provides a pool based on an LVM volume group. For a pre-defined LVM volume group, simply providing the group @@ -303,7 +303,7 @@ </p> - <h2><a name="StorageBackendDisk">Disk pool</a></h2> + <h2><a id="StorageBackendDisk">Disk pool</a></h2> <p> This provides a pool based on a physical disk. Volumes are created by adding partitions to the disk. Disk pools have constraints @@ -394,7 +394,7 @@ </ul> - <h2><a name="StorageBackendISCSI">iSCSI pool</a></h2> + <h2><a id="StorageBackendISCSI">iSCSI pool</a></h2> <p> This provides a pool based on an iSCSI target. Volumes must be pre-allocated on the iSCSI server, and cannot be created via @@ -433,7 +433,7 @@ The iSCSI volume pool does not use the volume format type element. </p> - <h2><a name="StorageBackendSCSI">SCSI pool</a></h2> + <h2><a id="StorageBackendSCSI">SCSI pool</a></h2> <p> This provides a pool based on a SCSI HBA. Volumes are preexisting SCSI LUNs, and cannot be created via the libvirt APIs. Since /dev/XXX names @@ -465,7 +465,7 @@ The SCSI volume pool does not use the volume format type element. </p> - <h2><a name="StorageBackendMultipath">Multipath pool</a></h2> + <h2><a id="StorageBackendMultipath">Multipath pool</a></h2> <p> This provides a pool that contains all the multipath devices on the host. Therefore, only one Multipath pool may be configured per host. @@ -498,7 +498,7 @@ The Multipath volume pool does not use the volume format type element. </p> - <h2><a name="StorageBackendRBD">RBD pool</a></h2> + <h2><a id="StorageBackendRBD">RBD pool</a></h2> <p> This storage driver provides a pool which contains all RBD images in a RADOS pool. RBD (RADOS Block Device) is part @@ -571,7 +571,7 @@ The RBD pool does not use the volume format type element. </p> - <h2><a name="StorageBackendSheepdog">Sheepdog pool</a></h2> + <h2><a id="StorageBackendSheepdog">Sheepdog pool</a></h2> <p> This provides a pool based on a Sheepdog Cluster. Sheepdog is a distributed storage system for QEMU/KVM. @@ -630,7 +630,7 @@ The Sheepdog pool does not use the volume format type element. </p> - <h2><a name="StorageBackendGluster">Gluster pool</a></h2> + <h2><a id="StorageBackendGluster">Gluster pool</a></h2> <p> This provides a pool based on native Gluster access. Gluster is a distributed file system that can be exposed to the user via @@ -716,7 +716,7 @@ pool type. </p> - <h2><a name="StorageBackendZFS">ZFS pool</a></h2> + <h2><a id="StorageBackendZFS">ZFS pool</a></h2> <p> This provides a pool based on the ZFS filesystem. Initially it was developed for FreeBSD, and <span class="since">since 1.3.2</span> experimental support @@ -754,7 +754,7 @@ <p> The ZFS volume pool does not use the volume format type element. </p> - <h2><a name="StorageBackendVstorage">Vstorage pool</a></h2> + <h2><a id="StorageBackendVstorage">Vstorage pool</a></h2> <p> This provides a pool based on Virtuozzo storage. Virtuozzo Storage is a highly available distributed software-defined storage with built-in diff --git a/docs/uri.html.in b/docs/uri.html.in index 7702ccc6e..defb9eec2 100644 --- a/docs/uri.html.in +++ b/docs/uri.html.in @@ -16,7 +16,7 @@ machine over the network. To this end, libvirt uses URIs as used on the Web and as defined in <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>. This page documents libvirt URIs. </p> - <h2><a name="URI_libvirt">Specifying URIs to libvirt</a></h2> + <h2><a id="URI_libvirt">Specifying URIs to libvirt</a></h2> <p> The URI is passed as the <code>name</code> parameter to @@ -33,7 +33,7 @@ documents libvirt URIs. virConnectPtr conn = virConnectOpenReadOnly (<b>"test:///default"</b>); </pre> <h2> - <a name="URI_config">Configuring URI aliases</a> + <a id="URI_config">Configuring URI aliases</a> </h2> <p> @@ -61,7 +61,7 @@ uri_aliases = [ set, no alias lookup will be attempted. </p> - <h2><a name="URI_default">Default URI choice</a></h2> + <h2><a id="URI_default">Default URI choice</a></h2> <p> If the URI passed to <code>virConnectOpen*</code> is NULL, then libvirt will use the following @@ -75,7 +75,7 @@ logic to determine what URI to use. </ol> <h2> - <a name="URI_virsh">Specifying URIs to virsh, virt-manager and virt-install</a> + <a id="URI_virsh">Specifying URIs to virsh, virt-manager and virt-install</a> </h2> <p> In virsh use the <code>-c</code> or <code>--connect</code> option: @@ -107,7 +107,7 @@ In virt-install use the <code>--connect=</code><i>URI</i> option: virt-install <b>--connect=test:///default</b> <i>[other options]</i> </pre> <h2> - <a name="URI_xen">xen:/// URI</a> + <a id="URI_xen">xen:/// URI</a> </h2> <p> <i>This section describes a feature which is new in libvirt > @@ -118,7 +118,7 @@ To access a Xen hypervisor running on the local machine use the URI <code>xen:///</code>. </p> <h2> - <a name="URI_qemu">qemu:///... QEMU and KVM URIs</a> + <a id="URI_qemu">qemu:///... QEMU and KVM URIs</a> </h2> <p> To use QEMU support in libvirt you must be running the @@ -150,7 +150,7 @@ KVM guests in the <a href="format.html#KVM1">guest XML as described here</a>. </p> <h2> - <a name="URI_remote">Remote URIs</a> + <a id="URI_remote">Remote URIs</a> </h2> <p> Remote URIs are formed by taking ordinary local URIs and adding a @@ -213,7 +213,7 @@ remote URI reference</a> and <a href="remote.html">full documentation for libvirt remote support</a>. </p> <h2> - <a name="URI_test">test:///... Test URIs</a> + <a id="URI_test">test:///... Test URIs</a> </h2> <p> The test driver is a dummy hypervisor for test purposes. @@ -227,10 +227,10 @@ a set of host definitions held in the named file. </li> </ul> <h2> - <a name="URI_legacy">Other & legacy URI formats</a> + <a id="URI_legacy">Other & legacy URI formats</a> </h2> <h3> - <a name="URI_NULL">NULL and empty string URIs</a> + <a id="URI_NULL">NULL and empty string URIs</a> </h3> <p> Libvirt allows you to pass a <code>NULL</code> pointer to @@ -254,7 +254,7 @@ application wishes to connect specifically to a Xen hypervisor, then for future proofing it should choose a full <a href="#URI_xen"><code>xen:///</code> URI</a>. </p> <h3> - <a name="URI_file">File paths (xend-unix-server)</a> + <a id="URI_file">File paths (xend-unix-server)</a> </h3> <p> If XenD is running and configured in <code>/etc/xen/xend-config.sxp</code>: @@ -271,7 +271,7 @@ using a file URI such as: virsh -c ///var/run/xend/xend-socket </pre> <h3> - <a name="URI_http">Legacy: <code>http://...</code> (xend-http-server)</a> + <a id="URI_http">Legacy: <code>http://...</code> (xend-http-server)</a> </h3> <p> If XenD is running and configured in <code>/etc/xen/xend-config.sxp</code>: @@ -307,7 +307,7 @@ Notes: documentation as "unix server" or "http server".</li> </ol> <h3> - <a name="URI_legacy_xen">Legacy: <code>"xen"</code></a> + <a id="URI_legacy_xen">Legacy: <code>"xen"</code></a> </h3> <p> Another legacy URI is to specify name as the string @@ -315,7 +315,7 @@ Another legacy URI is to specify name as the string hypervisor. However you should prefer a full <a href="#URI_xen"><code>xen:///</code> URI</a> in all future code. </p> <h3> - <a name="URI_legacy_proxy">Legacy: Xen proxy</a> + <a id="URI_legacy_proxy">Legacy: Xen proxy</a> </h3> <p> Libvirt continues to support connections to a separately running Xen diff --git a/docs/virshcmdref.html.in b/docs/virshcmdref.html.in index 5503ca0da..f7cc5ddae 100644 --- a/docs/virshcmdref.html.in +++ b/docs/virshcmdref.html.in @@ -6,7 +6,7 @@ <ul id="toc"></ul> - <h2><a name="description">Description</a></h2> + <h2><a id="description">Description</a></h2> <p> The new <b>Virsh Command Reference</b>, for documenting the commands @@ -24,7 +24,7 @@ <p> </p> - <h2><a name="viewing">Viewing Online</a></h2> + <h2><a id="viewing">Viewing Online</a></h2> <p> The latest version can be viewed directly online: @@ -41,7 +41,7 @@ <p> </p> - <h2><a name="downloading">Downloading</a></h2> + <h2><a id="downloading">Downloading</a></h2> <p> The latest version of the Virsh Command Reference can be downloaded: @@ -68,7 +68,7 @@ </li> </ul> - <h2><a name="git">DocBook source GIT repository</a></h2> + <h2><a id="git">DocBook source GIT repository</a></h2> <p> The DocBook source is maintained in a <a href="http://git-scm.com/">git</a> repository available on diff --git a/docs/windows.html.in b/docs/windows.html.in index a0fe533a3..708bb1b18 100644 --- a/docs/windows.html.in +++ b/docs/windows.html.in @@ -12,7 +12,7 @@ as well but we either haven't tested or received reports for them. </p> - <h2><a name="installer">Installation packages</a></h2> + <h2><a id="installer">Installation packages</a></h2> <p> Users who need pre-built Windows DLLs of libvirt are advised @@ -29,7 +29,7 @@ against libvirt. </p> - <h2><a name="conntypes">Connection types</a></h2> + <h2><a id="conntypes">Connection types</a></h2> <p> These connection types are known to work: @@ -71,7 +71,7 @@ be used in security sensitive environments.</b> </p> - <h2><a name="esx">Connecting to VMware ESX/vSphere</a></h2> + <h2><a id="esx">Connecting to VMware ESX/vSphere</a></h2> <p> Details on the capabilities, certificates, and connection string @@ -81,7 +81,7 @@ <a href="http://libvirt.org/drvesx.html">http://libvirt.org/drvesx.html</a> - <h2><a name="tlscerts">TLS Certificates</a></h2> + <h2><a id="tlscerts">TLS Certificates</a></h2> <p> TLS certificates need to have been created and placed in the correct @@ -141,21 +141,21 @@ <li>C:\Users\someuser\AppData\Roaming\libvirt\pki\libvirt\private\clientkey.pem</li> </ul> - <h2><a name="feedback">Feedback</a></h2> + <h2><a id="feedback">Feedback</a></h2> <p> Feedback and suggestions on changes to make and what else to include <a href="contact.html">are desired</a>. </p> - <h2><a name="compiling">Compiling yourself</a></h2> + <h2><a id="compiling">Compiling yourself</a></h2> <p> Libvirt can be compiled on Windows using the free <a href="http://www.mingw.org/">MinGW compiler</a>. </p> - <h3><a name="msys_setup">MSYS Build script</a></h3> + <h3><a id="msys_setup">MSYS Build script</a></h3> <p> The easiest way is to use the <b>msys_setup</b> script, developed by @@ -165,7 +165,7 @@ <a href="https://github.com/photron/msys_setup">https://github.com/photron/msys_setup</a> - <h3><a name="cross-compile">Cross compiling</a></h3> + <h3><a id="cross-compile">Cross compiling</a></h3> <p> You can also cross-compile to a Windows target from a Fedora machine @@ -174,7 +174,7 @@ (which includes a working libvirt specfile). </p> - <h3><a name="configure">By hand</a></h3> + <h3><a id="configure">By hand</a></h3> <p> Use these options when following the instructions on the -- 2.13.3

The HTML pages are currently validated against an XHTML 1.0 DTD. This makes it impossible to take advantage of features that are introduced in HTML 5, because they'll fail validation. There is intentionally no DTD defined for HTML 5, so there's no alternative to XHTML 1.0 DTD that we could switch to. The only options are to stick with XHTML 1.0 forever, or drop the DTD validation, and we pick the latter. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- .travis.yml | 1 - docs/Makefile.am | 18 +++++------------- libvirt.spec.in | 1 - m4/virt-external-programs.m4 | 1 - 4 files changed, 5 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a3e76510..f05ba8454 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,6 @@ addons: - libapparmor-dev - dnsmasq-base - librbd-dev - - w3c-dtd-xhtml notifications: irc: diff --git a/docs/Makefile.am b/docs/Makefile.am index e32758f4a..f478d9505 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -260,14 +260,10 @@ MAINTAINERCLEANFILES += \ || { rm $@ && exit 1; }; fi %.html: %.html.tmp - @if test -x $(XMLLINT) && test -x $(XMLCATALOG) ; then \ - if $(XMLCATALOG) '$(XML_CATALOG_FILE)' \ - "-//W3C//DTD XHTML 1.0 Strict//EN" > /dev/null ; then \ + @if test -x $(XMLLINT) ; then \ echo "Validating $@" ; \ - SGML_CATALOG_FILES='$(XML_CATALOG_FILE)' \ - $(XMLLINT) --catalogs --nonet --format --valid $< > $(srcdir)/$@ \ - || { rm $(srcdir)/$@ && exit 1; }; \ - else echo "missing XHTML1 DTD"; cat $< > $(srcdir)/$@ ; fi ; fi + $(XMLLINT) --nonet --format $< > $(srcdir)/$@ \ + || { rm $(srcdir)/$@ && exit 1; }; fi %.php.tmp: %.php.in site.xsl page.xsl @if [ -x $(XSLTPROC) ] ; then \ @@ -290,12 +286,8 @@ html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP) $(XSLTPROC) --nonet -o $(srcdir)/ \ --stringparam builddir '$(abs_top_builddir)' \ $(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml ; fi && \ - if test -x $(XMLLINT) && test -x $(XMLCATALOG) ; then \ - if $(XMLCATALOG) '$(XML_CATALOG_FILE)' "-//W3C//DTD XHTML 1.0 Strict//EN" \ - > /dev/null ; then \ - SGML_CATALOG_FILES='$(XML_CATALOG_FILE)' \ - $(XMLLINT) --catalogs --nonet --valid --noout $(srcdir)/html/*.html ; \ - else echo "missing XHTML1 DTD"; cat $< > $(srcdir)/$@ ; fi ; fi + if test -x $(XMLLINT) ; then \ + $(XMLLINT) --nonet --noout $(srcdir)/html/*.html ; fi $(addprefix $(srcdir)/,$(devhelphtml)): $(srcdir)/libvirt-api.xml $(devhelpxsl) $(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \ diff --git a/libvirt.spec.in b/libvirt.spec.in index b074bd171..d1cff4caf 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -301,7 +301,6 @@ BuildRequires: systemd-units BuildRequires: xen-devel %endif BuildRequires: libxml2-devel -BuildRequires: xhtml1-dtds BuildRequires: libxslt BuildRequires: readline-devel BuildRequires: ncurses-devel diff --git a/m4/virt-external-programs.m4 b/m4/virt-external-programs.m4 index f2f62f492..4a10c85ad 100644 --- a/m4/virt-external-programs.m4 +++ b/m4/virt-external-programs.m4 @@ -24,7 +24,6 @@ AC_DEFUN([LIBVIRT_CHECK_EXTERNAL_PROGRAMS], [ dnl Miscellaneous external programs. AC_PATH_PROG([XMLLINT], [xmllint], [/usr/bin/xmllint]) - AC_PATH_PROG([XMLCATALOG], [xmlcatalog], [/usr/bin/xmlcatalog]) AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc]) AC_PATH_PROG([AUGPARSE], [augparse], [/usr/bin/augparse]) AC_PROG_MKDIR_P -- 2.13.3

We already require libxml to be installed, so it is not unreasonable to require xmllint and xsltproc to be installed too - any platform with the former will have the latter too. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/Makefile.am | 44 +++++++++++++++----------------------------- m4/virt-external-programs.m4 | 12 ++++++++++-- 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/docs/Makefile.am b/docs/Makefile.am index f478d9505..d6c9d0091 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -221,17 +221,14 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \ news.html.in: \ $(srcdir)/news.xml \ $(srcdir)/news-html.xsl - $(AM_V_GEN) \ - if [ -x $(XSLTPROC) ]; then \ - $(XSLTPROC) --nonet \ + $(AM_V_GEN)$(XSLTPROC) --nonet \ $(srcdir)/news-html.xsl \ $(srcdir)/news.xml \ >$@-tmp \ || { rm -f $@-tmp; exit 1; }; \ sed 's/ xmlns=""//g' $@-tmp >$@ \ || { rm -f $@-tmp; exit 1; }; \ - rm -f $@-tmp; \ - fi + rm -f $@-tmp EXTRA_DIST += \ $(srcdir)/news.xml \ $(srcdir)/news.rng \ @@ -244,9 +241,7 @@ MAINTAINERCLEANFILES += \ %.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \ $(acl_generated) - @if [ -x $(XSLTPROC) ] ; then \ - echo "Generating $@"; \ - name=`echo $@ | sed -e 's/.tmp//'`; \ + $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \ dir=`dirname $@` ; \ if test "$$dir" = "."; \ then \ @@ -257,42 +252,33 @@ MAINTAINERCLEANFILES += \ fi; \ $(XSLTPROC) --stringparam pagename $$name --nonet \ $(top_srcdir)/docs/$$style $< > $@ \ - || { rm $@ && exit 1; }; fi + || { rm $@ && exit 1; } %.html: %.html.tmp - @if test -x $(XMLLINT) ; then \ - echo "Validating $@" ; \ - $(XMLLINT) --nonet --format $< > $(srcdir)/$@ \ - || { rm $(srcdir)/$@ && exit 1; }; fi + $(AM_V_GEN)$(XMLLINT) --nonet --format $< > $(srcdir)/$@ \ + || { rm $(srcdir)/$@ && exit 1; } %.php.tmp: %.php.in site.xsl page.xsl - @if [ -x $(XSLTPROC) ] ; then \ - echo "Generating $@"; \ - $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \ + $(AM_V_GEN)$(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \ $(top_srcdir)/docs/site.xsl $< > $@ \ - || { rm $@ && exit 1; }; fi + || { rm $@ && exit 1; } %.php: %.php.tmp %.php.code.in - @if [ -x $(XSLTPROC) ] ; then \ - echo "Scripting $@"; \ - sed -e '/<span id="php_placeholder"><\/span>/r '"$(srcdir)/$@.code.in" \ + $(AM_V_GEN)sed -e '/<span id="php_placeholder"><\/span>/r '"$(srcdir)/$@.code.in" \ -e /php_placeholder/d < $@.tmp > $(srcdir)/$@ \ - || { rm $(srcdir)/$@ && exit 1; }; fi + || { rm $(srcdir)/$@ && exit 1; } $(apihtml_generated): html/index.html html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP) - $(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet -o $(srcdir)/ \ + $(AM_V_GEN)$(XSLTPROC) --nonet -o $(srcdir)/ \ --stringparam builddir '$(abs_top_builddir)' \ - $(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml ; fi && \ - if test -x $(XMLLINT) ; then \ - $(XMLLINT) --nonet --noout $(srcdir)/html/*.html ; fi + $(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml && \ + $(XMLLINT) --nonet --noout $(srcdir)/html/*.html $(addprefix $(srcdir)/,$(devhelphtml)): $(srcdir)/libvirt-api.xml $(devhelpxsl) - $(AM_V_GEN)if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet -o $(srcdir)/devhelp/ \ - $(top_srcdir)/docs/devhelp/devhelp.xsl $(srcdir)/libvirt-api.xml ; fi + $(AM_V_GEN)$(XSLTPROC) --nonet -o $(srcdir)/devhelp/ \ + $(top_srcdir)/docs/devhelp/devhelp.xsl $(srcdir)/libvirt-api.xml python_generated_files = \ diff --git a/m4/virt-external-programs.m4 b/m4/virt-external-programs.m4 index 4a10c85ad..ab6149288 100644 --- a/m4/virt-external-programs.m4 +++ b/m4/virt-external-programs.m4 @@ -23,8 +23,16 @@ AC_DEFUN([LIBVIRT_CHECK_EXTERNAL_PROGRAMS], [ AM_CONDITIONAL([HAVE_RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"]) dnl Miscellaneous external programs. - AC_PATH_PROG([XMLLINT], [xmllint], [/usr/bin/xmllint]) - AC_PATH_PROG([XSLTPROC], [xsltproc], [/usr/bin/xsltproc]) + AC_PATH_PROG([XMLLINT], [xmllint], []) + if test -z "$XMLLINT" + then + AC_MSG_ERROR("xmllint is required to build libvirt") + fi + AC_PATH_PROG([XSLTPROC], [xsltproc], []) + if test -z "$XSLTPROC" + then + AC_MSG_ERROR("xsltproc is required to build libvirt") + fi AC_PATH_PROG([AUGPARSE], [augparse], [/usr/bin/augparse]) AC_PROG_MKDIR_P AC_PROG_LN_S -- 2.13.3

On 07/26/2017 07:51 PM, Daniel P. Berrange wrote:
We already require libxml to be installed, so it is not unreasonable to require xmllint and xsltproc to be installed too - any platform with the former will have the latter too.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/Makefile.am | 44 +++++++++++++++----------------------------- m4/virt-external-programs.m4 | 12 ++++++++++-- 2 files changed, 25 insertions(+), 31 deletions(-)
diff --git a/docs/Makefile.am b/docs/Makefile.am index f478d9505..d6c9d0091 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -221,17 +221,14 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \ news.html.in: \ $(srcdir)/news.xml \ $(srcdir)/news-html.xsl - $(AM_V_GEN) \ - if [ -x $(XSLTPROC) ]; then \ - $(XSLTPROC) --nonet \ + $(AM_V_GEN)$(XSLTPROC) --nonet \ $(srcdir)/news-html.xsl \ $(srcdir)/news.xml \ >$@-tmp \ || { rm -f $@-tmp; exit 1; }; \ sed 's/ xmlns=""//g' $@-tmp >$@ \ || { rm -f $@-tmp; exit 1; }; \ - rm -f $@-tmp; \ - fi + rm -f $@-tmp EXTRA_DIST += \ $(srcdir)/news.xml \ $(srcdir)/news.rng \ @@ -244,9 +241,7 @@ MAINTAINERCLEANFILES += \
%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \ $(acl_generated) - @if [ -x $(XSLTPROC) ] ; then \ - echo "Generating $@"; \ - name=`echo $@ | sed -e 's/.tmp//'`; \ + $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \ dir=`dirname $@` ; \ if test "$$dir" = "."; \ then \ @@ -257,42 +252,33 @@ MAINTAINERCLEANFILES += \ fi; \ $(XSLTPROC) --stringparam pagename $$name --nonet \ $(top_srcdir)/docs/$$style $< > $@ \ - || { rm $@ && exit 1; }; fi + || { rm $@ && exit 1; }
%.html: %.html.tmp - @if test -x $(XMLLINT) ; then \ - echo "Validating $@" ; \ - $(XMLLINT) --nonet --format $< > $(srcdir)/$@ \ - || { rm $(srcdir)/$@ && exit 1; }; fi + $(AM_V_GEN)$(XMLLINT) --nonet --format $< > $(srcdir)/$@ \ + || { rm $(srcdir)/$@ && exit 1; }
%.php.tmp: %.php.in site.xsl page.xsl - @if [ -x $(XSLTPROC) ] ; then \ - echo "Generating $@"; \ - $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \ + $(AM_V_GEN)$(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \ $(top_srcdir)/docs/site.xsl $< > $@ \ - || { rm $@ && exit 1; }; fi + || { rm $@ && exit 1; }
%.php: %.php.tmp %.php.code.in - @if [ -x $(XSLTPROC) ] ; then \ - echo "Scripting $@"; \ - sed -e '/<span id="php_placeholder"><\/span>/r '"$(srcdir)/$@.code.in" \ + $(AM_V_GEN)sed -e '/<span id="php_placeholder"><\/span>/r '"$(srcdir)/$@.code.in" \
Long line. syntax-check is sad :(
-e /php_placeholder/d < $@.tmp > $(srcdir)/$@ \ - || { rm $(srcdir)/$@ && exit 1; }; fi + || { rm $(srcdir)/$@ && exit 1; }
Michal

Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/hooks.html.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hooks.html.in b/docs/hooks.html.in index 7a04ac198..6cc47a6c5 100644 --- a/docs/hooks.html.in +++ b/docs/hooks.html.in @@ -289,7 +289,7 @@ <li><span class="since">Since 1.2.2</span>, before a network is started, this script is called as:<br/> <pre>/etc/libvirt/hooks/network network_name start begin -</pre></li> - <li>After the network is started, up ∧ running, the script is + <li>After the network is started, up & running, the script is called as:<br/> <pre>/etc/libvirt/hooks/network network_name started begin -</pre></li> <li>When a network is shut down, this script is called as:<br/> -- 2.13.3

Some docs pages were using <p> </p> to add arbitrary whitespace in the page. This is something that should be done by CSS if needed, but it is not needed here, so delete it. There was also use of <td> </td> which adds no value at all when we have CSS to prettify tables. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/csharp.html.in | 612 +++++++++++++++++++++++------------------------ docs/virshcmdref.html.in | 6 - 2 files changed, 300 insertions(+), 318 deletions(-) diff --git a/docs/csharp.html.in b/docs/csharp.html.in index e1c0fefba..722b02911 100644 --- a/docs/csharp.html.in +++ b/docs/csharp.html.in @@ -19,8 +19,6 @@ to libvirt. </p> - <p> </p> - <h2><a id="requirements">Requirements</a></h2> <p> @@ -31,8 +29,6 @@ compiling libvirt for windows. </p> - <p> </p> - <!-- 2010-10-19 JC: Commented out until we have C# tarballs to download <h2><a id="getting">Getting them</a></h2> @@ -65,8 +61,6 @@ git clone git://libvirt.org/libvirt-csharp.git <a href="http://libvirt.org/git/?p=libvirt-csharp.git;a=summary">http://libvirt.org/git/?p=libvirt-csharp.git;a=summary</a> </pre> - <p> </p> - <h2><a id="usage">Usage</a></h2> <p> @@ -116,8 +110,6 @@ git clone git://libvirt.org/libvirt-csharp.git </li> </ul> - <p> </p> - <h2><a id="authors">Authors</a></h2> <p> @@ -126,8 +118,6 @@ git clone git://libvirt.org/libvirt-csharp.git based upon the previous work of Jaromír Červenka. </p> - <p> </p> - <h2><a id="notes">Test Configuration</a></h2> <p> @@ -139,8 +129,6 @@ git clone git://libvirt.org/libvirt-csharp.git <li>Ubuntu 10.10 amd64 / Mono 2.6.7 (compiled in 64 bits)</li> </ul> - <p> </p> - <h2><a id="type">Type Coverage</a></h2> <p> @@ -148,76 +136,76 @@ git clone git://libvirt.org/libvirt-csharp.git </p> <table class="top_table"> <tr><th>Type</th><th>Name</th><th>Binding?</th><th>Tested?</th><th>Sample Code?</th><th>Works?</th><th>Tested .Net/Windows Works?</th><th>Tested Mono (32-bit)/Windows Works?</th><th>Tested Mono (64-bit)/Linux Works?</th></tr> - <tr><td>enum</td><td>virCPUCompareResult</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virConnect</td><td>Yes, an IntPtr as the struct is not public</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>enum</td><td>virCPUCompareResult</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virConnect</td><td>Yes, an IntPtr as the struct is not public</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>struct</td><td>virConnectAuth</td><td>Yes</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>struct</td><td>virConnectCredential</td><td>Yes</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virConnectCredentialType</td><td>Yes</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>enum</td><td>virConnectFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomain</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomainBlockInfo</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>enum</td><td>virConnectFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomain</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomainBlockInfo</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>struct</td><td>virDomainBlockStatsInfo</td><td>Yes</td><td>Yes</td><td>virDomainStats</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>enum</td><td>virDomainCoreDumpFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainCreateFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainDeviceModifyFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>enum</td><td>virDomainCoreDumpFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainCreateFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainDeviceModifyFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>enum</td><td>virDomainEventDefinedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>struct</td><td>virDomainEventGraphicsAddress</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainEventGraphicsAddressType</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainEventGraphicsPhase</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomainEventGraphicsSubject</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomainEventGraphicsSubjectIdentity</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainEventID</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainEventIOErrorAction</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>struct</td><td>virDomainEventGraphicsAddress</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainEventGraphicsAddressType</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainEventGraphicsPhase</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomainEventGraphicsSubject</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomainEventGraphicsSubjectIdentity</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainEventID</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainEventIOErrorAction</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>enum</td><td>virDomainEventResumedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virDomainEventStartedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virDomainEventStoppedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virDomainEventSuspendedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virDomainEventType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>enum</td><td>virDomainEventUndefinedDetailType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>enum</td><td>virDomainEventWatchdogAction</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>enum</td><td>virDomainEventWatchdogAction</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>struct</td><td>virDomainInfo</td><td>Yes</td><td>Yes</td><td>virConnectSetErrorFunc, virDomainStats</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>struct</td><td>virDomainInterfaceStatsStruct</td><td>Yes</td><td>Yes</td><td>virDomainStats</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>struct</td><td>virDomainJobInfo</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainJobType</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainMemoryFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomainMemoryStatStruct</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainMemoryStatTags</td><td>Yes</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainMigrateFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virDomainSnapshot</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainSnapshotDeleteFlags</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainState</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virDomainXMLFlags</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>struct</td><td>virDomainJobInfo</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainJobType</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainMemoryFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomainMemoryStatStruct</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainMemoryStatTags</td><td>Yes</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainMigrateFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virDomainSnapshot</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainSnapshotDeleteFlags</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainState</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virDomainXMLFlags</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>enum</td><td>virEventHandleType</td><td>Yes</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>struct</td><td>virInterface</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virInterfaceXMLFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virNWFilter</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virNetwork</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virNodeDevice</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virNodeInfo</td><td>Yes</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virSchedParameter</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virSchedParameterType</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virSecret</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virSecretUsageType</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virSecurityLabel</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virSecurityModel</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStoragePoolBuildFlags</td><td>Yes</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStoragePoolDeleteFlags</td><td>Yes</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virStoragePoolInfo</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virStoragePool</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStoragePoolState</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virStorageVol</td><td>Yes, an IntPtr as the struct is not public</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStorageVolDeleteFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virStorageVolInfo</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStorageVolType</td><td>Yes</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virStream</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStreamEventType</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virStreamFlags</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>struct</td><td>virVcpuInfo</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>enum</td><td>virVcpuState</td><td>No</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>struct</td><td>virInterface</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virInterfaceXMLFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virNWFilter</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virNetwork</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virNodeDevice</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virNodeInfo</td><td>Yes</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virSchedParameter</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virSchedParameterType</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virSecret</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virSecretUsageType</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virSecurityLabel</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virSecurityModel</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStoragePoolBuildFlags</td><td>Yes</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStoragePoolDeleteFlags</td><td>Yes</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virStoragePoolInfo</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virStoragePool</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStoragePoolState</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virStorageVol</td><td>Yes, an IntPtr as the struct is not public</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStorageVolDeleteFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virStorageVolInfo</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStorageVolType</td><td>Yes</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virStream</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStreamEventType</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virStreamFlags</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>struct</td><td>virVcpuInfo</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>enum</td><td>virVcpuState</td><td>No</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>struct</td><td>virError</td><td>Yes</td><td>Yes</td><td>virConnectSetErrorFunc, virDomainStats</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> </table> - <p> </p> + <p></p> <h2><a id="funccover">Function Coverage</a></h2> @@ -227,274 +215,274 @@ git clone git://libvirt.org/libvirt-csharp.git <table class="top_table"> <tr><th>Name</th><th>Binding?</th><th>Type?</th><th>Tested?</th><th>Sample Code?</th><th>Working?</th><th>Tested .Net/Windows Works?</th><th>Tested Mono (32-bit)/Windows Works?</th><th>Tested Mono (64-bit)/Linux Works?</th></tr> <tr><td>virConnectAuthCallback</td><td>Yes</td><td>delegate</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectBaselineCPU</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectBaselineCPU</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virConnectClose</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectCompareCPU</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventCallback</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventDeregister</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventDeregisterAny</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventGenericCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventGraphicsCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventIOErrorCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventIOErrorReasonCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventRTCChangeCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectCompareCPU</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventCallback</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventDeregister</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventDeregisterAny</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventGenericCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventGraphicsCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventIOErrorCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventIOErrorReasonCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventRTCChangeCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virConnectDomainEventRegister</td><td>Yes</td><td>function</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectDomainEventRegisterAny</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainEventWatchdogCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainXMLFromNative</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectDomainXMLToNative</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectFindStoragePoolSources</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetCapabilities</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetHostname</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetLibVersion</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetMaxVcpus</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetType</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetURI</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectGetVersion</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectIsEncrypted</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectIsSecure</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectDomainEventRegisterAny</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainEventWatchdogCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainXMLFromNative</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectDomainXMLToNative</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectFindStoragePoolSources</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetCapabilities</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetHostname</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetLibVersion</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetMaxVcpus</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetType</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetURI</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectGetVersion</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectIsEncrypted</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectIsSecure</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virConnectListDefinedDomains</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectListDefinedInterfaces </td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectListDefinedNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectListDefinedStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectListDefinedInterfaces </td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectListDefinedNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectListDefinedStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>virConnectListDomains</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectListInterfaces</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes, if the host handle the method</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectListNWFilters </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectListNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectListSecrets</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectListInterfaces</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes, if the host handle the method</td><td></td><td></td><td></td></tr> + <tr><td>virConnectListNWFilters </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectListNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectListSecrets</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virConnectListStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpen</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virConnectNumOfDefinedDomains</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectNumOfDefinedInterfaces</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectNumOfDefinedNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectNumOfDefinedStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectNumOfDefinedInterfaces</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectNumOfDefinedNetworks</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectNumOfDefinedStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>virConnectNumOfDomains</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectNumOfInterfaces</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectNumOfNWFilters</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectNumOfNetworks </td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectNumOfSecrets</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectNumOfInterfaces</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectNumOfNWFilters</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virConnectNumOfNetworks </td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virConnectNumOfSecrets</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virConnectNumOfStoragePools</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpen</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virConnectOpen</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpen, virEventRegisterImpl, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virConnectOpenAuth</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virConnectOpenReadOnly</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virConnectRef</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainAbortJob</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainAttachDevice</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainAttachDeviceFlags</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainBlockPeek</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virConnectOpenReadOnly</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virConnectRef</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainAbortJob</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainAttachDevice</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainAttachDeviceFlags</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainBlockPeek</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virDomainBlockStats</td><td>Yes</td><td>function</td><td>Yes</td><td>virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainCoreDump</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainCreate</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainCreateLinux</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainCreateWithFlags</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainCreateXML</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainDetachDevice</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainDetachDeviceFlags</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainFree</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetBlockInfo</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetConnect</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainCoreDump</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainCreate</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainCreateLinux</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainCreateWithFlags</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainCreateXML</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainDetachDevice</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainDetachDeviceFlags</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainFree</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetBlockInfo</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetConnect</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virDomainGetInfo</td><td>Yes</td><td>function</td><td>Yes</td><td>virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainGetJobInfo</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetMaxMemory</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetMaxVcpus</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainGetJobInfo</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetMaxMemory</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetMaxVcpus</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virDomainGetName</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainGetOSType</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetSchedulerParameters</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetSchedulerType</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetSecurityLabel</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetUUID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetUUIDString</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainGetVcpus</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainGetOSType</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetSchedulerParameters</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetSchedulerType</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetSecurityLabel</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetUUID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetUUIDString</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainGetVcpus</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virDomainGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td>virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainHasCurrentSnapshot</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainHasManagedSaveImage</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainHasCurrentSnapshot</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainHasManagedSaveImage</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virDomainInterfaceStats </td><td>No</td><td>function</td><td>Yes</td><td>virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainIsPersistent</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainIsPersistent</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> <tr><td>virDomainLookupByID</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectOpenAuth, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virDomainLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td>virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virDomainLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainManagedSave </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainManagedSaveRemove</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainMemoryPeek</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainMemoryStats</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainMigrate</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainMigrateSetMaxDowntime</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainMigrateToURI </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainPinVcpu</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainReboot</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainRef </td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainRestore</td><td>Yes </td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainResume </td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainRevertToSnapshot</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSave</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSetAutostart</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSetMaxMemory </td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSetMemory</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSetSchedulerParameters</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSetVcpus</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainShutdown</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotCreateXML</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotCurrent</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotDelete</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotFree</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotGetXMLDesc</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotListNames</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotLookupByName</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSnapshotNum</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainSuspend</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virDomainUpdateDeviceFlags</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virEventAddHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virEventAddTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>virDomainLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainManagedSave </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainManagedSaveRemove</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainMemoryPeek</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainMemoryStats</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainMigrate</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainMigrateSetMaxDowntime</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainMigrateToURI </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainPinVcpu</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainReboot</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainRef </td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainRestore</td><td>Yes </td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainResume </td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainRevertToSnapshot</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSave</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainSetAutostart</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainSetMaxMemory </td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainSetMemory</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainSetSchedulerParameters</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSetVcpus</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virDomainShutdown</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotCreateXML</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotCurrent</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotDelete</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotFree</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotGetXMLDesc</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotListNames</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotLookupByName</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSnapshotNum</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virDomainSuspend</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virDomainUpdateDeviceFlags</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virEventAddHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virEventAddTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>virEventHandleCallback</td><td>Yes</td><td>delegate</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virEventRegisterImpl</td><td>Yes</td><td>function</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virEventRemoveHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virEventRemoveTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>virEventRemoveHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virEventRemoveTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>virEventTimeoutCallback</td><td>Yes</td><td>delegate</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virEventUpdateHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virEventUpdateTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> + <tr><td>virEventUpdateHandleFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virEventUpdateTimeoutFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> <tr><td>virFreeCallback</td><td>Yes</td><td>function</td><td>Yes</td><td>virEventRegisterImpl</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> - <tr><td>virGetVersion</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virInitialize</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceCreate</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceDefineXML</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceDestroy</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceFree</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceGetConnect</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceGetMACString</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceGetName</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceGetXMLDesc</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceIsActive</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceLookupByMACString</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceLookupByName</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceRef </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virInterfaceUndefine</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterDefineXML</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterFree</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterGetName</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterGetUUID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterGetUUIDString</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterGetXMLDesc</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterLookupByName </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterLookupByUUID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterLookupByUUIDString</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterRef </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNWFilterUndefine</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkCreate</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkCreateXML</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkFree</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetBridgeName</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetConnect</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetName</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetUUID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetUUIDString </td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkIsPersistent</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkRef</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkSetAutostart</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNetworkUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceCreateXML</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceDestroy</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceDettach</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceFree</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceGetName</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceGetParent</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceListCaps</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceNumOfCaps</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceReAttach</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceRef</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeDeviceReset</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeGetCellsFreeMemory</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeGetFreeMemory</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeGetInfo</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeGetSecurityModel </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeListDevices</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virNodeNumOfDevices</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretDefineXML</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretFree </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetConnect</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetUUID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetUUIDString </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetUsageID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetUsageType</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetValue</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretGetXMLDesc</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretLookupByUUID</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretLookupByUUIDString</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretLookupByUsage</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretRef</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretSetValue</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virSecretUndefine</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolBuild</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolCreate</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolCreateXML </td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolDelete</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolFree</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetConnect</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetInfo</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetUUID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetUUIDString</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolIsPersistent</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolListVolumes</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolLookupByVolume</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolNumOfVolumes</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolRef</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolRefresh</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolSetAutostart</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStoragePoolUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolCreateXML</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolCreateXMLFrom</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolDelete</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolFree</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetConnect </td><td>Yes</td><td>function</td><td>No</td><td> </td><td>Maybe</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetInfo</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetKey</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetPath</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolGetXMLDesc </td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolLookupByKey</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolLookupByPath</td><td>Yes</td><td>function</td><td>Yes</td><td> </td><td>Yes</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolRef</td><td>Yes</td><td>function</td><td>No</td><td> </td><td>No</td><td> </td><td> </td><td> </td></tr> - <tr><td>virStorageVolWipe</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamAbort </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamEventAddCallback</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamEventCallback</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamEventRemoveCallback</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamEventUpdateCallback</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamFinish </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamFree </td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamNew</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamRecv</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamRecvAll</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamRef</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamSend</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamSendAll</td><td>No</td><td>function</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamSinkFunc</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> - <tr><td>virStreamSourceFunc</td><td>No</td><td>delegate</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> + <tr><td>virGetVersion</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virInitialize</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceCreate</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceDefineXML</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceDestroy</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceFree</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceGetConnect</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceGetMACString</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceGetName</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceGetXMLDesc</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceIsActive</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceLookupByMACString</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceLookupByName</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceRef </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virInterfaceUndefine</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterDefineXML</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterFree</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterGetName</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterGetUUID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterGetUUIDString</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterGetXMLDesc</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterLookupByName </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterLookupByUUID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterLookupByUUIDString</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterRef </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNWFilterUndefine</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNetworkCreate</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkCreateXML</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkFree</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetBridgeName</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetConnect</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetName</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetUUID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetUUIDString </td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkIsPersistent</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkRef</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkSetAutostart</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNetworkUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceCreateXML</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceDestroy</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceDettach</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceFree</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceGetName</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceGetParent</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceListCaps</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceNumOfCaps</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceReAttach</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceRef</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeDeviceReset</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeGetCellsFreeMemory</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeGetFreeMemory</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNodeGetInfo</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virNodeGetSecurityModel </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virNodeListDevices</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virNodeNumOfDevices</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virSecretDefineXML</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretFree </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetConnect</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetUUID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetUUIDString </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetUsageID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetUsageType</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetValue</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretGetXMLDesc</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretLookupByUUID</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretLookupByUUIDString</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretLookupByUsage</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretRef</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretSetValue</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virSecretUndefine</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolBuild</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolCreate</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolCreateXML </td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolDefineXML</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolDelete</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolDestroy</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolFree</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetAutostart</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetConnect</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetInfo</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetUUID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetUUIDString</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolGetXMLDesc</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolIsActive</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolIsPersistent</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolListVolumes</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolLookupByUUID</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolLookupByUUIDString</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolLookupByVolume</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolNumOfVolumes</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolRef</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolRefresh</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolSetAutostart</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStoragePoolUndefine</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolCreateXML</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolCreateXMLFrom</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolDelete</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolFree</td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetConnect </td><td>Yes</td><td>function</td><td>No</td><td></td><td>Maybe</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetInfo</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetKey</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetPath</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolGetXMLDesc </td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolLookupByKey</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolLookupByName</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolLookupByPath</td><td>Yes</td><td>function</td><td>Yes</td><td></td><td>Yes</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolRef</td><td>Yes</td><td>function</td><td>No</td><td></td><td>No</td><td></td><td></td><td></td></tr> + <tr><td>virStorageVolWipe</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamAbort </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamEventAddCallback</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamEventCallback</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamEventRemoveCallback</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamEventUpdateCallback</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamFinish </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamFree </td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamNew</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamRecv</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamRecvAll</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamRef</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamSend</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamSendAll</td><td>No</td><td>function</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamSinkFunc</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + <tr><td>virStreamSourceFunc</td><td>No</td><td>delegate</td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td>virGetLastError</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectSetErrorFunc</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virConnSetErrorFunc</td><td>Yes</td><td>function</td><td>Yes</td><td>virConnectSetErrorFunc</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> <tr><td>virErrorFunc</td><td>Yes</td><td>delegate</td><td>Yes</td><td>virConnectSetErrorFunc, virDomainInfos</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr> diff --git a/docs/virshcmdref.html.in b/docs/virshcmdref.html.in index f7cc5ddae..9cd1efecd 100644 --- a/docs/virshcmdref.html.in +++ b/docs/virshcmdref.html.in @@ -22,8 +22,6 @@ <a href="contact.html">official libvirt mailing lists</a>. </p> - <p> </p> - <h2><a id="viewing">Viewing Online</a></h2> <p> @@ -39,8 +37,6 @@ </li> </ul> - <p> </p> - <h2><a id="downloading">Downloading</a></h2> <p> @@ -87,7 +83,5 @@ git clone git://libvirt.org/libvirt-virshcmdref.git <a href="http://libvirt.org/git/?p=libvirt-virshcmdref.git">http://libvirt.org/git/?p=libvirt-virshcmdref.git</a> </pre> - <p> </p> - </body> </html> -- 2.13.3

A handful of places in the docs choose to use — instead of '-' for no clear reason. Remove this inconsistency. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/formatdomain.html.in | 34 +++++++++++++++++----------------- docs/formatnetwork.html.in | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index fb22dd1db..0ed12ecb0 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -6914,10 +6914,10 @@ qemu-kvm -net nic,model=? /dev/null QEMU and KVM support: </p> <ul> - <li> 'i6300esb' — the recommended device, + <li>'i6300esb' - the recommended device, emulating a PCI Intel 6300ESB </li> - <li> 'ib700' — emulating an ISA iBase IB700 </li> - <li> 'diag288' — emulating an S390 DIAG288 device + <li>'ib700' - emulating an ISA iBase IB700 </li> + <li>'diag288' - emulating an S390 DIAG288 device <span class="since">Since 1.2.17</span></li> </ul> </dd> @@ -6932,15 +6932,15 @@ qemu-kvm -net nic,model=? /dev/null QEMU and KVM support: </p> <ul> - <li>'reset' — default, forcefully reset the guest</li> - <li>'shutdown' — gracefully shutdown the guest + <li>'reset' - default, forcefully reset the guest</li> + <li>'shutdown' - gracefully shutdown the guest (not recommended) </li> - <li>'poweroff' — forcefully power off the guest</li> - <li>'pause' — pause the guest</li> - <li>'none' — do nothing</li> - <li>'dump' — automatically dump the guest + <li>'poweroff' - forcefully power off the guest</li> + <li>'pause' - pause the guest</li> + <li>'none' - do nothing</li> + <li>'dump' - automatically dump the guest <span class="since">Since 0.8.7</span></li> - <li>'inject-nmi' — inject a non-maskable interrupt + <li>'inject-nmi' - inject a non-maskable interrupt into the guest <span class="since">Since 1.2.17</span></li> </ul> @@ -7005,8 +7005,8 @@ qemu-kvm -net nic,model=? /dev/null the virtualization platform </p> <ul> - <li>'virtio' — default with QEMU/KVM</li> - <li>'xen' — default with Xen</li> + <li>'virtio' - default with QEMU/KVM</li> + <li>'xen' - default with Xen</li> </ul> </dd> <dt><code>autodeflate</code></dt> @@ -7078,7 +7078,7 @@ qemu-kvm -net nic,model=? /dev/null the virtualization platform: </p> <ul> - <li>'virtio' — supported by qemu and virtio-rng kernel module</li> + <li>'virtio' - supported by qemu and virtio-rng kernel module</li> </ul> </dd> <dt><code>rate</code></dt> @@ -7270,11 +7270,11 @@ qemu-kvm -net nic,model=? /dev/null is missing depends on the hypervisor and guest arch. </p> <ul> - <li>'isa' — for ISA pvpanic device</li> - <li>'pseries' — default and valid only for pSeries guests.</li> - <li>'hyperv' — for Hyper-V crash CPU feature. + <li>'isa' - for ISA pvpanic device</li> + <li>'pseries' - default and valid only for pSeries guests.</li> + <li>'hyperv' - for Hyper-V crash CPU feature. <span class="since">Since 1.3.0, QEMU and KVM only</span></li> - <li>'s390' — default for S390 guests. + <li>'s390' - default for S390 guests. <span class="since">Since 1.3.5</span></li> </ul> </dd> diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in index e8e618e42..9c07e5e24 100644 --- a/docs/formatnetwork.html.in +++ b/docs/formatnetwork.html.in @@ -997,7 +997,7 @@ <code>prefix</code> attribute, which is an integer (for example, <code>netmask='255.255.255.0'</code> could also be given as <code>prefix='24'</code>). The <code>family</code> attribute is used - to specify the type of address — <code>ipv4</code> or + to specify the type of address - <code>ipv4</code> or <code>ipv6</code>; if no <code>family</code> is given, <code>ipv4</code> is assumed. More than one address of each family can be defined for a network. The optional <code>localPtr</code> attribute -- 2.13.3

We have files which use HTML entities for decorating letters with unlauts, accents, etc. Other files just use UTF-8 characters directly for this. Remove the HTML entities since they have no benefit and use UTF-8 instead. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/apps.html.in | 2 +- docs/csharp.html.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/apps.html.in b/docs/apps.html.in index 760004715..e54ab5372 100644 --- a/docs/apps.html.in +++ b/docs/apps.html.in @@ -353,7 +353,7 @@ </dd> <dt><a href="http://honk.sigxcpu.org/projects/libvirt/#munin">Munin</a></dt> <dd> - The plugins provided by Guido Günther allow to monitor various things + The plugins provided by Guido Günther allow to monitor various things like network and block I/O with <a href="http://munin.projects.linpro.no/">Munin</a>. </dd> diff --git a/docs/csharp.html.in b/docs/csharp.html.in index 722b02911..72746762a 100644 --- a/docs/csharp.html.in +++ b/docs/csharp.html.in @@ -115,7 +115,7 @@ git clone git://libvirt.org/libvirt-csharp.git <p> The C# bindings are the work of Arnaud Champion <<a href="mailto:arnaud.champion AT devatom.fr">arnaud.champion AT devatom.fr</a>>, - based upon the previous work of Jaromír Červenka. + based upon the previous work of Jaromír Červenka. </p> <h2><a id="notes">Test Configuration</a></h2> -- 2.13.3

The HTML5 doctype is simply <!DOCTYPE html> no DTD is present because HTML5 is no longer defined as an extension of SGML. XSL has no way to natively output a doctype without a public or system identifier, so we have to use an <xsl:text> hack instead. See also https://dev.w3.org/html5/html-author/#doctype-declaration Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/404.html.in | 2 +- docs/acl.html.in | 2 +- docs/aclpolkit.html.in | 2 +- docs/api.html.in | 2 +- docs/api_extension.html.in | 2 +- docs/apps.html.in | 2 +- docs/architecture.html.in | 2 +- docs/auditlog.html.in | 2 +- docs/auth.html.in | 2 +- docs/bindings.html.in | 2 +- docs/bugs.html.in | 2 +- docs/cgroups.html.in | 2 +- docs/compiling.html.in | 2 +- docs/contact.html.in | 2 +- docs/contribute.html.in | 2 +- docs/csharp.html.in | 2 +- docs/devguide.html.in | 2 +- docs/docs.html.in | 2 +- docs/downloads.html.in | 2 +- docs/drivers.html.in | 2 +- docs/drvbhyve.html.in | 2 +- docs/drvesx.html.in | 2 +- docs/drvhyperv.html.in | 2 +- docs/drvlxc.html.in | 2 +- docs/drvnodedev.html.in | 2 +- docs/drvopenvz.html.in | 2 +- docs/drvphyp.html.in | 2 +- docs/drvqemu.html.in | 2 +- docs/drvremote.html.in | 2 +- docs/drvtest.html.in | 2 +- docs/drvuml.html.in | 2 +- docs/drvvbox.html.in | 2 +- docs/drvvirtuozzo.html.in | 2 +- docs/drvvmware.html.in | 2 +- docs/drvxen.html.in | 2 +- docs/errors.html.in | 2 +- docs/firewall.html.in | 2 +- docs/format.html.in | 2 +- docs/formatcaps.html.in | 2 +- docs/formatdomain.html.in | 2 +- docs/formatdomaincaps.html.in | 2 +- docs/formatnetwork.html.in | 2 +- docs/formatnode.html.in | 2 +- docs/formatnwfilter.html.in | 2 +- docs/formatsecret.html.in | 2 +- docs/formatsnapshot.html.in | 2 +- docs/formatstorage.html.in | 2 +- docs/formatstorageencryption.html.in | 2 +- docs/genaclperms.pl | 2 +- docs/goals.html.in | 2 +- docs/governance.html.in | 2 +- docs/hacking.html.in | 2 +- docs/hooks.html.in | 2 +- docs/hvsupport.pl | 2 +- docs/index.html.in | 2 +- docs/internals.html.in | 2 +- docs/internals/command.html.in | 2 +- docs/internals/eventloop.html.in | 2 +- docs/internals/locking.html.in | 2 +- docs/internals/oomtesting.html.in | 2 +- docs/internals/rpc.html.in | 2 +- docs/java.html.in | 2 +- docs/locking-lockd.html.in | 2 +- docs/locking-sanlock.html.in | 2 +- docs/locking.html.in | 2 +- docs/logging.html.in | 2 +- docs/migration.html.in | 2 +- docs/newapi.xsl | 17 +++++++---------- docs/news-2005.html.in | 2 +- docs/news-2006.html.in | 2 +- docs/news-2007.html.in | 2 +- docs/news-2008.html.in | 2 +- docs/news-2009.html.in | 2 +- docs/news-2010.html.in | 2 +- docs/news-2011.html.in | 2 +- docs/news-2012.html.in | 2 +- docs/news-2013.html.in | 2 +- docs/news-2014.html.in | 2 +- docs/news-2015.html.in | 2 +- docs/news-2016.html.in | 2 +- docs/news-html.xsl | 2 +- docs/nss.html.in | 2 +- docs/page.xsl | 2 ++ docs/php.html.in | 2 +- docs/python.html.in | 2 +- docs/remote.html.in | 2 +- docs/search.php.in | 2 +- docs/secureusage.html.in | 2 +- docs/securityprocess.html.in | 2 +- docs/site.xsl | 4 +--- docs/storage.html.in | 2 +- docs/subsite.xsl | 4 +--- docs/testapi.html.in | 2 +- docs/testsuites.html.in | 2 +- docs/testtck.html.in | 2 +- docs/uri.html.in | 2 +- docs/virshcmdref.html.in | 2 +- docs/windows.html.in | 2 +- 98 files changed, 105 insertions(+), 110 deletions(-) diff --git a/docs/404.html.in b/docs/404.html.in index 8942864c2..bdffff601 100644 --- a/docs/404.html.in +++ b/docs/404.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>404 page not found</h1> diff --git a/docs/acl.html.in b/docs/acl.html.in index 5936c6d20..31ca17021 100644 --- a/docs/acl.html.in +++ b/docs/acl.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Client access control</h1> diff --git a/docs/aclpolkit.html.in b/docs/aclpolkit.html.in index d1f327c70..05e3b8815 100644 --- a/docs/aclpolkit.html.in +++ b/docs/aclpolkit.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Polkit access control</h1> diff --git a/docs/api.html.in b/docs/api.html.in index 1cd166364..27abed673 100644 --- a/docs/api.html.in +++ b/docs/api.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>The libvirt API concepts</h1> diff --git a/docs/api_extension.html.in b/docs/api_extension.html.in index fdc7eb296..3b37e7bec 100644 --- a/docs/api_extension.html.in +++ b/docs/api_extension.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Implementing a new API in Libvirt</h1> diff --git a/docs/apps.html.in b/docs/apps.html.in index e54ab5372..2b91c4c03 100644 --- a/docs/apps.html.in +++ b/docs/apps.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Applications using libvirt</h1> diff --git a/docs/architecture.html.in b/docs/architecture.html.in index 33a4ccb97..f1461ba88 100644 --- a/docs/architecture.html.in +++ b/docs/architecture.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >libvirt architecture</h1> diff --git a/docs/auditlog.html.in b/docs/auditlog.html.in index 54da12b5c..9b5ef548c 100644 --- a/docs/auditlog.html.in +++ b/docs/auditlog.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Audit log</h1> diff --git a/docs/auth.html.in b/docs/auth.html.in index 9c9afe7b4..afd6cd7f9 100644 --- a/docs/auth.html.in +++ b/docs/auth.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Connection authentication</h1> diff --git a/docs/bindings.html.in b/docs/bindings.html.in index dc15576fd..203934b6a 100644 --- a/docs/bindings.html.in +++ b/docs/bindings.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Bindings for other languages</h1> diff --git a/docs/bugs.html.in b/docs/bugs.html.in index 7ba8dd6a4..12a1090c1 100644 --- a/docs/bugs.html.in +++ b/docs/bugs.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> diff --git a/docs/cgroups.html.in b/docs/cgroups.html.in index ac6390960..e33d07a82 100644 --- a/docs/cgroups.html.in +++ b/docs/cgroups.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Control Groups Resource Management</h1> diff --git a/docs/compiling.html.in b/docs/compiling.html.in index af22199ef..5bed7ae14 100644 --- a/docs/compiling.html.in +++ b/docs/compiling.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1><a id="installation">libvirt Installation</a></h1> diff --git a/docs/contact.html.in b/docs/contact.html.in index 1f84527b2..7c2b71501 100644 --- a/docs/contact.html.in +++ b/docs/contact.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Contacting the project contributors</h1> diff --git a/docs/contribute.html.in b/docs/contribute.html.in index c169b6700..158c91cb6 100644 --- a/docs/contribute.html.in +++ b/docs/contribute.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Contributing to libvirt</h1> diff --git a/docs/csharp.html.in b/docs/csharp.html.in index 72746762a..2f85fd2b7 100644 --- a/docs/csharp.html.in +++ b/docs/csharp.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>C# API bindings</h1> diff --git a/docs/devguide.html.in b/docs/devguide.html.in index 6b6cae272..b949f04a1 100644 --- a/docs/devguide.html.in +++ b/docs/devguide.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>libvirt Application Development Guides</h1> diff --git a/docs/docs.html.in b/docs/docs.html.in index 60489a0a3..f23809840 100644 --- a/docs/docs.html.in +++ b/docs/docs.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body class="docs"> <div class="panel"> diff --git a/docs/downloads.html.in b/docs/downloads.html.in index 21d79df4e..94869c35c 100644 --- a/docs/downloads.html.in +++ b/docs/downloads.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Downloads</h1> diff --git a/docs/drivers.html.in b/docs/drivers.html.in index 79b204d1a..c94144aa4 100644 --- a/docs/drivers.html.in +++ b/docs/drivers.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Internal drivers</h1> diff --git a/docs/drvbhyve.html.in b/docs/drvbhyve.html.in index 7b1829b65..1777abe2e 100644 --- a/docs/drvbhyve.html.in +++ b/docs/drvbhyve.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Bhyve driver</h1> diff --git a/docs/drvesx.html.in b/docs/drvesx.html.in index d503d65b8..417aca4d7 100644 --- a/docs/drvesx.html.in +++ b/docs/drvesx.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>VMware ESX hypervisor driver</h1> diff --git a/docs/drvhyperv.html.in b/docs/drvhyperv.html.in index ac2fa7017..78f61aaee 100644 --- a/docs/drvhyperv.html.in +++ b/docs/drvhyperv.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Microsoft Hyper-V hypervisor driver</h1> diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in index 180dc6834..58a336ed3 100644 --- a/docs/drvlxc.html.in +++ b/docs/drvlxc.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>LXC container driver</h1> diff --git a/docs/drvnodedev.html.in b/docs/drvnodedev.html.in index 439bbe7d0..885904d67 100644 --- a/docs/drvnodedev.html.in +++ b/docs/drvnodedev.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Host device management</h1> diff --git a/docs/drvopenvz.html.in b/docs/drvopenvz.html.in index 30e0c6b7e..2dc53c134 100644 --- a/docs/drvopenvz.html.in +++ b/docs/drvopenvz.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>OpenVZ container driver</h1> diff --git a/docs/drvphyp.html.in b/docs/drvphyp.html.in index c75a830c4..8e0b43c86 100644 --- a/docs/drvphyp.html.in +++ b/docs/drvphyp.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>IBM PowerVM hypervisor driver (phyp)</h1> diff --git a/docs/drvqemu.html.in b/docs/drvqemu.html.in index a2a830a23..a775f2979 100644 --- a/docs/drvqemu.html.in +++ b/docs/drvqemu.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>KVM/QEMU hypervisor driver</h1> diff --git a/docs/drvremote.html.in b/docs/drvremote.html.in index c967324a4..224f1bfb1 100644 --- a/docs/drvremote.html.in +++ b/docs/drvremote.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Remote management driver</h1> diff --git a/docs/drvtest.html.in b/docs/drvtest.html.in index ba5fc99ab..6884184e6 100644 --- a/docs/drvtest.html.in +++ b/docs/drvtest.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Test "mock" driver</h1> diff --git a/docs/drvuml.html.in b/docs/drvuml.html.in index 832592024..0860db7dc 100644 --- a/docs/drvuml.html.in +++ b/docs/drvuml.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>User Mode Linux driver</h1> diff --git a/docs/drvvbox.html.in b/docs/drvvbox.html.in index d6ed6aabf..63f166b24 100644 --- a/docs/drvvbox.html.in +++ b/docs/drvvbox.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>VirtualBox hypervisor driver</h1> diff --git a/docs/drvvirtuozzo.html.in b/docs/drvvirtuozzo.html.in index 3c4a85fe0..8813d00ad 100644 --- a/docs/drvvirtuozzo.html.in +++ b/docs/drvvirtuozzo.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Virtuozzo driver</h1> diff --git a/docs/drvvmware.html.in b/docs/drvvmware.html.in index 45f6fe261..caa99e257 100644 --- a/docs/drvvmware.html.in +++ b/docs/drvvmware.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>VMware Workstation / Player / Fusion hypervisors driver</h1> diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in index 6af15f44b..d30ed2a04 100644 --- a/docs/drvxen.html.in +++ b/docs/drvxen.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Xen hypervisor driver</h1> diff --git a/docs/errors.html.in b/docs/errors.html.in index 668d280c1..8f4f7d432 100644 --- a/docs/errors.html.in +++ b/docs/errors.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Handling of errors</h1> diff --git a/docs/firewall.html.in b/docs/firewall.html.in index b21891ac9..11c3c8148 100644 --- a/docs/firewall.html.in +++ b/docs/firewall.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Firewall and network filtering in libvirt</h1> diff --git a/docs/format.html.in b/docs/format.html.in index 41211a9c7..11e0defb5 100644 --- a/docs/format.html.in +++ b/docs/format.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>XML Format</h1> diff --git a/docs/formatcaps.html.in b/docs/formatcaps.html.in index d224523ef..41a9a3a43 100644 --- a/docs/formatcaps.html.in +++ b/docs/formatcaps.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Driver capabilities XML format</h1> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 0ed12ecb0..515dea69d 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Domain XML format</h1> diff --git a/docs/formatdomaincaps.html.in b/docs/formatdomaincaps.html.in index 5e63fb7ca..6bfcaf61c 100644 --- a/docs/formatdomaincaps.html.in +++ b/docs/formatdomaincaps.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Domain capabilities XML format</h1> diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in index 9c07e5e24..363a72bbc 100644 --- a/docs/formatnetwork.html.in +++ b/docs/formatnetwork.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Network XML format</h1> diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in index f82aecf3a..4d935b50f 100644 --- a/docs/formatnode.html.in +++ b/docs/formatnode.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Node devices XML format</h1> diff --git a/docs/formatnwfilter.html.in b/docs/formatnwfilter.html.in index 5eb60e12c..b2282b7de 100644 --- a/docs/formatnwfilter.html.in +++ b/docs/formatnwfilter.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Network Filters</h1> diff --git a/docs/formatsecret.html.in b/docs/formatsecret.html.in index 86b8de5b9..155b7c35d 100644 --- a/docs/formatsecret.html.in +++ b/docs/formatsecret.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Secret XML format</h1> diff --git a/docs/formatsnapshot.html.in b/docs/formatsnapshot.html.in index 52682646b..fbbecfd24 100644 --- a/docs/formatsnapshot.html.in +++ b/docs/formatsnapshot.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Snapshot XML format</h1> diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in index c6eab0278..ab2fa8611 100644 --- a/docs/formatstorage.html.in +++ b/docs/formatstorage.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Storage pool and volume XML format</h1> diff --git a/docs/formatstorageencryption.html.in b/docs/formatstorageencryption.html.in index ba19e268a..c4b209527 100644 --- a/docs/formatstorageencryption.html.in +++ b/docs/formatstorageencryption.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Storage volume encryption XML format</h1> diff --git a/docs/genaclperms.pl b/docs/genaclperms.pl index 244a68e60..c0514a022 100755 --- a/docs/genaclperms.pl +++ b/docs/genaclperms.pl @@ -74,7 +74,7 @@ while (<>) { print <<EOF; <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> EOF diff --git a/docs/goals.html.in b/docs/goals.html.in index 60b6c44d1..39d5e7535 100644 --- a/docs/goals.html.in +++ b/docs/goals.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Terminology and goals</h1> diff --git a/docs/governance.html.in b/docs/governance.html.in index 81c093bbd..df5999c0f 100644 --- a/docs/governance.html.in +++ b/docs/governance.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Project governance</h1> diff --git a/docs/hacking.html.in b/docs/hacking.html.in index efd053d16..c33a27c23 100644 --- a/docs/hacking.html.in +++ b/docs/hacking.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Contributor guidelines</h1> diff --git a/docs/hooks.html.in b/docs/hooks.html.in index 6cc47a6c5..05156c30c 100644 --- a/docs/hooks.html.in +++ b/docs/hooks.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Hooks for specific system management</h1> diff --git a/docs/hvsupport.pl b/docs/hvsupport.pl index 4c70efc16..edbe19faf 100755 --- a/docs/hvsupport.pl +++ b/docs/hvsupport.pl @@ -332,7 +332,7 @@ foreach my $drv (keys %{$groups{"virHypervisorDriver"}->{drivers}}) { print <<EOF; <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body class="hvsupport"> <h1>libvirt API support matrix</h1> diff --git a/docs/index.html.in b/docs/index.html.in index 31bd6e0f1..200f8eb10 100644 --- a/docs/index.html.in +++ b/docs/index.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script type="text/javascript" src="js/jquery-3.1.1.min.js"></script> diff --git a/docs/internals.html.in b/docs/internals.html.in index fcc07580d..3a96ff73b 100644 --- a/docs/internals.html.in +++ b/docs/internals.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>libvirt internals</h1> diff --git a/docs/internals/command.html.in b/docs/internals/command.html.in index e21b12e53..43f51a49b 100644 --- a/docs/internals/command.html.in +++ b/docs/internals/command.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Spawning processes / commands from libvirt drivers</h1> diff --git a/docs/internals/eventloop.html.in b/docs/internals/eventloop.html.in index fe7bf3aaf..2d99f5947 100644 --- a/docs/internals/eventloop.html.in +++ b/docs/internals/eventloop.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Libvirt's event loop</h1> diff --git a/docs/internals/locking.html.in b/docs/internals/locking.html.in index 4222c44d3..d10efdf26 100644 --- a/docs/internals/locking.html.in +++ b/docs/internals/locking.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Resource Lock Manager</h1> diff --git a/docs/internals/oomtesting.html.in b/docs/internals/oomtesting.html.in index aca8fde13..72d0f2c6f 100644 --- a/docs/internals/oomtesting.html.in +++ b/docs/internals/oomtesting.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Out of memory testing</h1> diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in index 98f8be07b..45c07cb61 100644 --- a/docs/internals/rpc.html.in +++ b/docs/internals/rpc.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>libvirt RPC infrastructure</h1> diff --git a/docs/java.html.in b/docs/java.html.in index 659c0b90f..06cf7034f 100644 --- a/docs/java.html.in +++ b/docs/java.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Java API bindings</h1> diff --git a/docs/locking-lockd.html.in b/docs/locking-lockd.html.in index 42fcf0e68..855404ac9 100644 --- a/docs/locking-lockd.html.in +++ b/docs/locking-lockd.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Virtual machine lock manager, virtlockd plugin</h1> diff --git a/docs/locking-sanlock.html.in b/docs/locking-sanlock.html.in index 08182065d..9b3656189 100644 --- a/docs/locking-sanlock.html.in +++ b/docs/locking-sanlock.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Virtual machine lock manager, sanlock plugin</h1> diff --git a/docs/locking.html.in b/docs/locking.html.in index f0e0a3868..4532dbddf 100644 --- a/docs/locking.html.in +++ b/docs/locking.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Virtual machine lock manager</h1> diff --git a/docs/logging.html.in b/docs/logging.html.in index 534afa1cd..abedc1784 100644 --- a/docs/logging.html.in +++ b/docs/logging.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Logging in the library and the daemon</h1> diff --git a/docs/migration.html.in b/docs/migration.html.in index d82fb54b4..de7d4def7 100644 --- a/docs/migration.html.in +++ b/docs/migration.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Guest migration</h1> diff --git a/docs/newapi.xsl b/docs/newapi.xsl index 9dd961507..a55736d32 100644 --- a/docs/newapi.xsl +++ b/docs/newapi.xsl @@ -17,10 +17,7 @@ <!-- Import the main part of the site stylesheets --> <xsl:import href="page.xsl"/> - <!-- Generate XHTML-1.0 transitional --> - <xsl:output method="xml" encoding="UTF-8" indent="yes" - doctype-public="-//W3C//DTD XHTML 1.0//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> + <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <!-- Build keys for all symbols --> <xsl:key name="symbols" match="/api/symbols/*" use="@name"/> @@ -737,6 +734,8 @@ <xsl:template match="file"> <xsl:variable name="name" select="@name"/> <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable> + <xsl:text disable-output-escaping="yes"><!DOCTYPE html> +</xsl:text> <html> <body> <h1><xsl:value-of select="$title"/></h1> @@ -794,6 +793,8 @@ <xsl:template name="mainpage"> <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable> + <xsl:text disable-output-escaping="yes"><!DOCTYPE html> +</xsl:text> <html> <body> <h1><xsl:value-of select="$title"/></h1> @@ -813,9 +814,7 @@ <xsl:document href="{concat($htmldir, '/index.html')}" method="xml" - encoding="UTF-8" - doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + encoding="UTF-8"> <xsl:apply-templates select="exsl:node-set($mainpage)" mode="page"> <xsl:with-param name="pagename" select="concat($htmldir, '/index.html')"/> </xsl:apply-templates> @@ -829,9 +828,7 @@ <xsl:document href="{concat($htmldir, '/libvirt-', @name, '.html')}" method="xml" - encoding="UTF-8" - doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + encoding="UTF-8"> <xsl:apply-templates select="exsl:node-set($subpage)" mode="page"> <xsl:with-param name="pagename" select="concat($htmldir, '/libvirt-', @name, '.html')"/> </xsl:apply-templates> diff --git a/docs/news-2005.html.in b/docs/news-2005.html.in index 97a43c602..6804cf2c9 100644 --- a/docs/news-2005.html.in +++ b/docs/news-2005.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2006.html.in b/docs/news-2006.html.in index df29a060f..558f55a98 100644 --- a/docs/news-2006.html.in +++ b/docs/news-2006.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2007.html.in b/docs/news-2007.html.in index 8b089634c..46d8457cb 100644 --- a/docs/news-2007.html.in +++ b/docs/news-2007.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2008.html.in b/docs/news-2008.html.in index 16ee9b13a..8081b82f1 100644 --- a/docs/news-2008.html.in +++ b/docs/news-2008.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2009.html.in b/docs/news-2009.html.in index c0b48ae33..06c279f11 100644 --- a/docs/news-2009.html.in +++ b/docs/news-2009.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2010.html.in b/docs/news-2010.html.in index 0fd8860b8..201351d4e 100644 --- a/docs/news-2010.html.in +++ b/docs/news-2010.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2011.html.in b/docs/news-2011.html.in index 5dacb5c51..0858dfff3 100644 --- a/docs/news-2011.html.in +++ b/docs/news-2011.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2012.html.in b/docs/news-2012.html.in index a198d3c80..7dab50963 100644 --- a/docs/news-2012.html.in +++ b/docs/news-2012.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2013.html.in b/docs/news-2013.html.in index 62b75a503..02b387624 100644 --- a/docs/news-2013.html.in +++ b/docs/news-2013.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2014.html.in b/docs/news-2014.html.in index 5480d5df2..8dfca9012 100644 --- a/docs/news-2014.html.in +++ b/docs/news-2014.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2015.html.in b/docs/news-2015.html.in index a0ef5ccf8..cd3b638a9 100644 --- a/docs/news-2015.html.in +++ b/docs/news-2015.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-2016.html.in b/docs/news-2016.html.in index deeee4d99..3b804fc1a 100644 --- a/docs/news-2016.html.in +++ b/docs/news-2016.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> diff --git a/docs/news-html.xsl b/docs/news-html.xsl index dd323f9b3..5baabc695 100644 --- a/docs/news-html.xsl +++ b/docs/news-html.xsl @@ -8,7 +8,7 @@ <!-- Document --> <xsl:template match="/libvirt"> - <xsl:text disable-output-escaping="yes"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + <xsl:text disable-output-escaping="yes"><!DOCTYPE html> </xsl:text> <html xmlns="http://www.w3.org/1999/xhtml"> <head> diff --git a/docs/nss.html.in b/docs/nss.html.in index 369c9ff61..4b11bf0c7 100644 --- a/docs/nss.html.in +++ b/docs/nss.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Libvirt NSS module</h1> diff --git a/docs/page.xsl b/docs/page.xsl index 57f85e618..4d49be085 100644 --- a/docs/page.xsl +++ b/docs/page.xsl @@ -75,6 +75,8 @@ <!-- This is the master page structure --> <xsl:template match="/" mode="page"> <xsl:param name="pagename"/> + <xsl:text disable-output-escaping="yes"><!DOCTYPE html> +</xsl:text> <html> <xsl:comment> This file is autogenerated from <xsl:value-of select="$pagename"/>.in diff --git a/docs/php.html.in b/docs/php.html.in index c10b0aa47..b2a372d48 100644 --- a/docs/php.html.in +++ b/docs/php.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>PHP API bindings</h1> diff --git a/docs/python.html.in b/docs/python.html.in index 36517fec7..e6e8cfade 100644 --- a/docs/python.html.in +++ b/docs/python.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Python API bindings</h1> diff --git a/docs/remote.html.in b/docs/remote.html.in index 47e95400b..9bafd9de6 100644 --- a/docs/remote.html.in +++ b/docs/remote.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Remote support</h1> diff --git a/docs/search.php.in b/docs/search.php.in index 9157223e1..5de4fcee6 100644 --- a/docs/search.php.in +++ b/docs/search.php.in @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Search the documentation on Libvirt.org</h1> diff --git a/docs/secureusage.html.in b/docs/secureusage.html.in index 6a9490bac..c60187fab 100644 --- a/docs/secureusage.html.in +++ b/docs/secureusage.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> diff --git a/docs/securityprocess.html.in b/docs/securityprocess.html.in index d37276d15..1cf51b005 100644 --- a/docs/securityprocess.html.in +++ b/docs/securityprocess.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> diff --git a/docs/site.xsl b/docs/site.xsl index ce354c32f..68841255c 100644 --- a/docs/site.xsl +++ b/docs/site.xsl @@ -11,9 +11,7 @@ <xsl:output method="xml" encoding="UTF-8" - indent="yes" - doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> + indent="yes"/> <xsl:variable name="href_base"> <xsl:choose> diff --git a/docs/storage.html.in b/docs/storage.html.in index aad5751ef..3f1aec1ea 100644 --- a/docs/storage.html.in +++ b/docs/storage.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Storage Management</h1> diff --git a/docs/subsite.xsl b/docs/subsite.xsl index 108d0d83e..b1b78beb6 100644 --- a/docs/subsite.xsl +++ b/docs/subsite.xsl @@ -10,9 +10,7 @@ <xsl:output method="xml" encoding="UTF-8" - indent="yes" - doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> + indent="yes"/> <xsl:variable name="href_base" select="'../'"/> diff --git a/docs/testapi.html.in b/docs/testapi.html.in index cf2327119..79ecd73ee 100644 --- a/docs/testapi.html.in +++ b/docs/testapi.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>libvirt-test-API: Python based test suite </h1> diff --git a/docs/testsuites.html.in b/docs/testsuites.html.in index 9a382cf62..eeb0e8e19 100644 --- a/docs/testsuites.html.in +++ b/docs/testsuites.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Test suites</h1> diff --git a/docs/testtck.html.in b/docs/testtck.html.in index dff46d0b6..458dcb3a0 100644 --- a/docs/testtck.html.in +++ b/docs/testtck.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>libvirt TCK : Technology Compatibility Kit</h1> diff --git a/docs/uri.html.in b/docs/uri.html.in index defb9eec2..ade726089 100644 --- a/docs/uri.html.in +++ b/docs/uri.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Connection URIs</h1> diff --git a/docs/virshcmdref.html.in b/docs/virshcmdref.html.in index 9cd1efecd..1ca689a3d 100644 --- a/docs/virshcmdref.html.in +++ b/docs/virshcmdref.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Virsh Command Reference</h1> diff --git a/docs/windows.html.in b/docs/windows.html.in index 708bb1b18..16c1aee61 100644 --- a/docs/windows.html.in +++ b/docs/windows.html.in @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1 >Windows support</h1> -- 2.13.3

Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/newapi.xsl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/newapi.xsl b/docs/newapi.xsl index a55736d32..a2f0e0714 100644 --- a/docs/newapi.xsl +++ b/docs/newapi.xsl @@ -814,6 +814,7 @@ <xsl:document href="{concat($htmldir, '/index.html')}" method="xml" + indent="yes" encoding="UTF-8"> <xsl:apply-templates select="exsl:node-set($mainpage)" mode="page"> <xsl:with-param name="pagename" select="concat($htmldir, '/index.html')"/> @@ -828,6 +829,7 @@ <xsl:document href="{concat($htmldir, '/libvirt-', @name, '.html')}" method="xml" + indent="yes" encoding="UTF-8"> <xsl:apply-templates select="exsl:node-set($subpage)" mode="page"> <xsl:with-param name="pagename" select="concat($htmldir, '/libvirt-', @name, '.html')"/> -- 2.13.3

The 'shape' attribute on <a> is used together with a 'coords' attribute to create hot-zones in image maps. We're not using image maps so our inclusion of a 'shape' attribute is bogus. Furthermore this is forbidden in HTML5. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/apps.html.in | 4 ++-- docs/format.html.in | 20 ++++++++++---------- docs/index.html.in | 20 ++++++++++---------- docs/news-2005.html.in | 4 ++-- docs/news-2006.html.in | 4 ++-- docs/news-2007.html.in | 4 ++-- docs/news-2008.html.in | 4 ++-- docs/news-2009.html.in | 4 ++-- docs/news-2010.html.in | 4 ++-- docs/news-2011.html.in | 4 ++-- docs/news-2012.html.in | 4 ++-- docs/news-2013.html.in | 4 ++-- 12 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/apps.html.in b/docs/apps.html.in index 2b91c4c03..1ced03c3d 100644 --- a/docs/apps.html.in +++ b/docs/apps.html.in @@ -365,10 +365,10 @@ your Xen or QEMU/KVM guests, or to integrate with your existing Nagios installation. </dd> - <dt><a href="http://www.pcp.io/man/man1/pmdalibvirt.1.html" shape="rect">PCP</a></dt> + <dt><a href="http://www.pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt> <dd> The PCP libvirt PMDA (plugin) is part of the - <a href="http://pcp.io/" shape="rect">PCP</a> toolkit and provides + <a href="http://pcp.io/">PCP</a> toolkit and provides hypervisor and guest information and complete set of guest performance metrics. It supports pCPU, vCPU, memory, block device, network interface, and performance event metrics for each virtual guest. diff --git a/docs/format.html.in b/docs/format.html.in index 11e0defb5..22b23e3fc 100644 --- a/docs/format.html.in +++ b/docs/format.html.in @@ -14,16 +14,16 @@ <ul> - <li><a href="formatdomain.html" shape="rect">Domains</a></li> - <li><a href="formatnetwork.html" shape="rect">Networks</a></li> - <li><a href="formatnwfilter.html" shape="rect">Network filtering</a></li> - <li><a href="formatstorage.html" shape="rect">Storage</a></li> - <li><a href="formatstorageencryption.html" shape="rect">Storage encryption</a></li> - <li><a href="formatcaps.html" shape="rect">Capabilities</a></li> - <li><a href="formatdomaincaps.html" shape="rect">Domain capabilities</a></li> - <li><a href="formatnode.html" shape="rect">Node devices</a></li> - <li><a href="formatsecret.html" shape="rect">Secrets</a></li> - <li><a href="formatsnapshot.html" shape="rect">Snapshots</a></li> + <li><a href="formatdomain.html">Domains</a></li> + <li><a href="formatnetwork.html">Networks</a></li> + <li><a href="formatnwfilter.html">Network filtering</a></li> + <li><a href="formatstorage.html">Storage</a></li> + <li><a href="formatstorageencryption.html">Storage encryption</a></li> + <li><a href="formatcaps.html">Capabilities</a></li> + <li><a href="formatdomaincaps.html">Domain capabilities</a></li> + <li><a href="formatnode.html">Node devices</a></li> + <li><a href="formatsecret.html">Secrets</a></li> + <li><a href="formatsnapshot.html">Snapshots</a></li> </ul> <h2>Command line validation</h2> diff --git a/docs/index.html.in b/docs/index.html.in index 200f8eb10..8333cf6bb 100644 --- a/docs/index.html.in +++ b/docs/index.html.in @@ -59,16 +59,16 @@ <dt><a href="format.html">XML configuration</a></dt> <dd>Description of the XML schemas for - <a href="formatdomain.html" shape="rect">domains</a>, - <a href="formatnetwork.html" shape="rect">networks</a>, - <a href="formatnwfilter.html" shape="rect">network filtering</a>, - <a href="formatstorage.html" shape="rect">storage</a>, - <a href="formatstorageencryption.html" shape="rect">storage encryption</a>, - <a href="formatcaps.html" shape="rect">capabilities</a>, - <a href="formatdomaincaps.html" shape="rect">domain capabilities</a>, - <a href="formatnode.html" shape="rect">node devices</a>, - <a href="formatsecret.html" shape="rect">secrets</a>, - <a href="formatsnapshot.html" shape="rect">snapshots</a></dd> + <a href="formatdomain.html">domains</a>, + <a href="formatnetwork.html">networks</a>, + <a href="formatnwfilter.html">network filtering</a>, + <a href="formatstorage.html">storage</a>, + <a href="formatstorageencryption.html">storage encryption</a>, + <a href="formatcaps.html">capabilities</a>, + <a href="formatdomaincaps.html">domain capabilities</a>, + <a href="formatnode.html">node devices</a>, + <a href="formatsecret.html">secrets</a>, + <a href="formatsnapshot.html">snapshots</a></dd> <dt><a href="http://wiki.libvirt.org">Wiki</a></dt> <dd>Read further community contributed content</dd> </dl> diff --git a/docs/news-2005.html.in b/docs/news-2005.html.in index 6804cf2c9..44d8c4cc4 100644 --- a/docs/news-2005.html.in +++ b/docs/news-2005.html.in @@ -9,9 +9,9 @@ <p>Here is the list of official releases made during the year 2005. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2006.html.in b/docs/news-2006.html.in index 558f55a98..6556d4fed 100644 --- a/docs/news-2006.html.in +++ b/docs/news-2006.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2005.html">2005</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2007.html.in b/docs/news-2007.html.in index 46d8457cb..c12449abf 100644 --- a/docs/news-2007.html.in +++ b/docs/news-2007.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2006.html">2006</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2008.html.in b/docs/news-2008.html.in index 8081b82f1..aefbf3873 100644 --- a/docs/news-2008.html.in +++ b/docs/news-2008.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2007.html">2007</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2009.html.in b/docs/news-2009.html.in index 06c279f11..0824b0bbe 100644 --- a/docs/news-2009.html.in +++ b/docs/news-2009.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2008.html">2008</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2010.html.in b/docs/news-2010.html.in index 201351d4e..013ebaf56 100644 --- a/docs/news-2010.html.in +++ b/docs/news-2010.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2009.html">2009</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2011.html.in b/docs/news-2011.html.in index 0858dfff3..cea716556 100644 --- a/docs/news-2011.html.in +++ b/docs/news-2011.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2010.html">2010</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2012.html.in b/docs/news-2012.html.in index 7dab50963..e419a2ef0 100644 --- a/docs/news-2012.html.in +++ b/docs/news-2012.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2011.html">2011</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> diff --git a/docs/news-2013.html.in b/docs/news-2013.html.in index 02b387624..50c200ebd 100644 --- a/docs/news-2013.html.in +++ b/docs/news-2013.html.in @@ -10,9 +10,9 @@ A similar list for <a href="news-2012.html">2012</a> is also available. </p> <p>It is also possible to just use - the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, + the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list and check - the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> + the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress. </p> -- 2.13.3

Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/page.xsl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/page.xsl b/docs/page.xsl index 4d49be085..d9be66b93 100644 --- a/docs/page.xsl +++ b/docs/page.xsl @@ -83,6 +83,7 @@ Do not edit this file. Changes will be lost. </xsl:comment> <head> + <meta charset="UTF-8"/> <link rel="stylesheet" type="text/css" href="{$href_base}main.css"/> <link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/> <title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title> -- 2.13.3

Use of the relation "shortcut" for a favicon was an Internet Explorer only feature. Other browsers just require "icon". The new icons & metadata are generated using https://realfavicongenerator.net/ which is user tested to work well across all modern clients Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/android-chrome-192x192.png | Bin 0 -> 13057 bytes docs/android-chrome-256x256.png | Bin 0 -> 16597 bytes docs/apple-touch-icon.png | Bin 0 -> 10489 bytes docs/browserconfig.xml | 9 +++++++++ docs/favicon-16x16.png | Bin 0 -> 872 bytes docs/favicon-32x32.png | Bin 0 -> 1793 bytes docs/favicon.ico | Bin 0 -> 15086 bytes docs/manifest.json | 18 ++++++++++++++++++ docs/mstile-150x150.png | Bin 0 -> 7579 bytes docs/page.xsl | 6 +++++- 10 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 docs/android-chrome-192x192.png create mode 100644 docs/android-chrome-256x256.png create mode 100644 docs/apple-touch-icon.png create mode 100644 docs/browserconfig.xml create mode 100644 docs/favicon-16x16.png create mode 100644 docs/favicon-32x32.png create mode 100644 docs/favicon.ico create mode 100644 docs/manifest.json create mode 100644 docs/mstile-150x150.png diff --git a/docs/android-chrome-192x192.png b/docs/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..2edadf93f1f270a9ed4d2c01e9f71847078b8409 GIT binary patch literal 13057 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 literal 0 HcmV?d00001 diff --git a/docs/android-chrome-256x256.png b/docs/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9b77e423dfe18bca3273f4924bf405f4ecbbb4 GIT binary patch literal 16597 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 literal 0 HcmV?d00001 diff --git a/docs/apple-touch-icon.png b/docs/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e062d90bb01db08913a9eb270a216401346f44c0 GIT binary patch literal 10489 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 literal 0 HcmV?d00001 diff --git a/docs/browserconfig.xml b/docs/browserconfig.xml new file mode 100644 index 000000000..e8b57e57b --- /dev/null +++ b/docs/browserconfig.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<browserconfig> + <msapplication> + <tile> + <square150x150logo src="/mstile-150x150.png"/> + <TileColor>#b91d47</TileColor> + </tile> + </msapplication> +</browserconfig> diff --git a/docs/favicon-16x16.png b/docs/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..d68f4a2aa255e1450a7009988c174ed290e6723c GIT binary patch literal 872 zcmV-u1DE`XP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px$Xi!X4MNDaN1ONdaAtOC!V?uIm78MscJwShDa109! z6%`f-2?<$wcR6loDlIT=c6?i3WQ>uPXL@&1VPs@#b6j9!USnuMK|x<&U_Vt<I6_1> zLqt7SRz^xrSZi!neR*hTX<c1iba;9^cW-`$iAs2LS6EsuF*9z0gN=@oM0<2kQdLcN zb5mAaPEuB8Yj0w4b6szAcz=aAWocSsW=&gI6klRfWn@2MW;}FHP;^r>Ut&UPW`bmC zbeEbuYHR^pUMXK<GkS4wfP`jwe1)l`h>w#wd~`N=a4~srO^JbAf`V_Cm5r{ZP>6v{ zT2)bQY)5}*q_ni4udhE&PfUGzM1*`(jfHTYn0=<9d!(K(c5HZ~oiA=@SAl#qWJ+a$ zd3c71Mp#l)iC&hSp`4?rr>(IIWMoT$RXI#ern$P8o1bNJceJ;=Ym;>>LO4fbLZYju z21Y|7a&u#Dax6+jgp!IJE+|K3VsHu&t^fc4L3C11QveY|<^C>)0t*B*p8j+F`~7G; zEzIPhyQo-kx3OvS?2!KaBH#05Q5X2C(OH|}qUnj5CDq?}W&Y-iz6$>6{jr!&P1*ne z010qNS#tmY4c7nw4c7reD4Tcy007xZL_t&-(_>)31=y7Zxn()vJPmbj6(wIeNeEZi zP+wcq-7`GGTLP$rUD(V-z$w<n#V0Z>l$n)*LD147KRYGCCEC-?(UC`rfx$Z0H!wIW znZ?n=(b3UenvucEHZaIPIL9f*5d@f-7=-LfOY+K!Q~jer0xWC{HV%b;<pmk8t~?%& zZXwPx3=HP>-a(mOiLTBpUQT?XybKJ+rbRvhNpXJsiUJ~ROdy9CrKJbNJMpW^i?ecq z9V%qt%%`WNrXa?}4skiBjxH}32LlHq!lRt*2wwvL<f$h|d+;GE00012dQ@0+Qek%> zaB^>EX>4U6ba`-PAZc)PV*mhnoa6Eg2ys>@D9TUE%t_@^00ScnE@KN5BNI!L6ay0= yM1VBIWCJ6!R3OXP)X2ol#2my2%YaCrN-hBE7ZG&wLN%2D0000<MNUMnLSTZKtyjwc literal 0 HcmV?d00001 diff --git a/docs/favicon-32x32.png b/docs/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..6d7e32ee6207fcdd94ef38eb23a22a29ce2a3fd0 GIT binary patch literal 1793 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 literal 0 HcmV?d00001 diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8ea17cbb103509b2c9ba4e76c6365f106e2fac82 GIT binary patch literal 15086 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 O)kLk=%3oAd&;1{OhyN=8 literal 0 HcmV?d00001 diff --git a/docs/manifest.json b/docs/manifest.json new file mode 100644 index 000000000..0f8fcbaf9 --- /dev/null +++ b/docs/manifest.json @@ -0,0 +1,18 @@ +{ + "name": "Libvirt", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/docs/mstile-150x150.png b/docs/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..1ccb46503c9600d8c6c9460d08e28ae5fde04842 GIT binary patch literal 7579 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 Gq5lslULcSF literal 0 HcmV?d00001 diff --git a/docs/page.xsl b/docs/page.xsl index d9be66b93..df4d513c7 100644 --- a/docs/page.xsl +++ b/docs/page.xsl @@ -85,7 +85,11 @@ <head> <meta charset="UTF-8"/> <link rel="stylesheet" type="text/css" href="{$href_base}main.css"/> - <link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/> + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/> + <link rel="manifest" href="/manifest.json"/> + <meta name="theme-color" content="#ffffff"/> <title>libvirt: <xsl:value-of select="html:html/html:body/html:h1"/></title> <meta name="description" content="libvirt, virtualization, virtualization API"/> <xsl:apply-templates select="/html:html/html:head/*" mode="content"/> -- 2.13.3

On 07/26/2017 07:51 PM, Daniel P. Berrange wrote:
This started as an attempt to add modern favicon support to the website. This requires use of HTML5 only syntax, which lead to the massive cleanup to stop using XHTML 1.0, which forms all of this series except the last patch
Daniel P. Berrange (12): docs: switch to using 'id' attribute instead of 'name' for links docs: drop XHTML 1.0 validation of website docs: make xmllint & xsltproc compulsory docs: fix typo s/∧/&/ docs: remove use of in docs docs: remove use of — entity docs: use UTF-8 instead of HTML entities for decorated letters docs: switch to using HTML5 doctype declaration docs: generate pretty indented HTML for API docs docs: remove bogus 'shape' attribute on links docs: explicitly declare pages as being UTF-8 format docs: add full set of "favicon" files to support modern clients
.travis.yml | 1 - docs/404.html.in | 2 +- docs/Makefile.am | 52 +-- docs/acl.html.in | 8 +- docs/aclpolkit.html.in | 34 +- docs/android-chrome-192x192.png | Bin 0 -> 13057 bytes docs/android-chrome-256x256.png | Bin 0 -> 16597 bytes docs/api.html.in | 10 +- docs/api_extension.html.in | 14 +- docs/apple-touch-icon.png | Bin 0 -> 10489 bytes docs/apps.html.in | 38 +-- docs/architecture.html.in | 8 +- docs/auditlog.html.in | 40 +-- docs/auth.html.in | 16 +- docs/bindings.html.in | 2 +- docs/browserconfig.xml | 9 + docs/bugs.html.in | 12 +- docs/cgroups.html.in | 26 +- docs/compiling.html.in | 8 +- docs/contact.html.in | 8 +- docs/contribute.html.in | 12 +- docs/csharp.html.in | 634 +++++++++++++++++------------------ docs/devguide.html.in | 2 +- docs/docs.html.in | 2 +- docs/downloads.html.in | 14 +- docs/drivers.html.in | 6 +- docs/drvbhyve.html.in | 22 +- docs/drvesx.html.in | 46 +-- docs/drvhyperv.html.in | 12 +- docs/drvlxc.html.in | 54 +-- docs/drvnodedev.html.in | 10 +- docs/drvopenvz.html.in | 14 +- docs/drvphyp.html.in | 8 +- docs/drvqemu.html.in | 34 +- docs/drvremote.html.in | 2 +- docs/drvtest.html.in | 2 +- docs/drvuml.html.in | 4 +- docs/drvvbox.html.in | 6 +- docs/drvvirtuozzo.html.in | 8 +- docs/drvvmware.html.in | 6 +- docs/drvxen.html.in | 16 +- docs/errors.html.in | 2 +- docs/favicon-16x16.png | Bin 0 -> 872 bytes docs/favicon-32x32.png | Bin 0 -> 1793 bytes docs/favicon.ico | Bin 0 -> 15086 bytes docs/firewall.html.in | 8 +- docs/format.html.in | 22 +- docs/formatcaps.html.in | 10 +- docs/formatdomain.html.in | 228 ++++++------- docs/formatdomaincaps.html.in | 26 +- docs/formatnetwork.html.in | 36 +- docs/formatnode.html.in | 6 +- docs/formatnwfilter.html.in | 70 ++-- docs/formatsecret.html.in | 12 +- docs/formatsnapshot.html.in | 6 +- docs/formatstorage.html.in | 30 +- docs/formatstorageencryption.html.in | 12 +- docs/genaclperms.pl | 2 +- docs/goals.html.in | 2 +- docs/governance.html.in | 14 +- docs/hacking.html.in | 42 +-- docs/hooks.html.in | 34 +- docs/hvsupport.pl | 2 +- docs/index.html.in | 22 +- docs/internals.html.in | 2 +- docs/internals/command.html.in | 34 +- docs/internals/eventloop.html.in | 8 +- docs/internals/locking.html.in | 18 +- docs/internals/oomtesting.html.in | 10 +- docs/internals/rpc.html.in | 44 +-- docs/java.html.in | 2 +- docs/locking-lockd.html.in | 10 +- docs/locking-sanlock.html.in | 12 +- docs/locking.html.in | 4 +- docs/logging.html.in | 16 +- docs/manifest.json | 18 + docs/migration.html.in | 38 +-- docs/mstile-150x150.png | Bin 0 -> 7579 bytes docs/newapi.xsl | 19 +- docs/news-2005.html.in | 6 +- docs/news-2006.html.in | 6 +- docs/news-2007.html.in | 6 +- docs/news-2008.html.in | 6 +- docs/news-2009.html.in | 6 +- docs/news-2010.html.in | 6 +- docs/news-2011.html.in | 6 +- docs/news-2012.html.in | 6 +- docs/news-2013.html.in | 6 +- docs/news-2014.html.in | 2 +- docs/news-2015.html.in | 2 +- docs/news-2016.html.in | 2 +- docs/news-html.xsl | 2 +- docs/nss.html.in | 12 +- docs/page.xsl | 23 +- docs/php.html.in | 2 +- docs/python.html.in | 2 +- docs/remote.html.in | 30 +- docs/search.php.in | 2 +- docs/secureusage.html.in | 16 +- docs/securityprocess.html.in | 14 +- docs/site.xsl | 4 +- docs/storage.html.in | 28 +- docs/subsite.xsl | 4 +- docs/testapi.html.in | 2 +- docs/testsuites.html.in | 2 +- docs/testtck.html.in | 2 +- docs/uri.html.in | 30 +- docs/virshcmdref.html.in | 16 +- docs/windows.html.in | 20 +- libvirt.spec.in | 1 - m4/virt-external-programs.m4 | 13 +- 111 files changed, 1150 insertions(+), 1158 deletions(-) create mode 100644 docs/android-chrome-192x192.png create mode 100644 docs/android-chrome-256x256.png create mode 100644 docs/apple-touch-icon.png create mode 100644 docs/browserconfig.xml create mode 100644 docs/favicon-16x16.png create mode 100644 docs/favicon-32x32.png create mode 100644 docs/favicon.ico create mode 100644 docs/manifest.json create mode 100644 docs/mstile-150x150.png
Looks okay. Although you'll need to rebase this and resolve conflicts due to Martin's recent timestamp patch. Speaking of which, the majority of the pages have the timestamp already, but for instance the following does not: http://libvirt.org/html/libvirt-libvirt-domain.html ACK to this though. Michal

On Thu, Jul 27, 2017 at 04:02:35PM +0200, Michal Privoznik wrote:
On 07/26/2017 07:51 PM, Daniel P. Berrange wrote:
This started as an attempt to add modern favicon support to the website. This requires use of HTML5 only syntax, which lead to the massive cleanup to stop using XHTML 1.0, which forms all of this series except the last patch
Daniel P. Berrange (12): docs: switch to using 'id' attribute instead of 'name' for links docs: drop XHTML 1.0 validation of website docs: make xmllint & xsltproc compulsory docs: fix typo s/∧/&/ docs: remove use of in docs docs: remove use of — entity docs: use UTF-8 instead of HTML entities for decorated letters docs: switch to using HTML5 doctype declaration docs: generate pretty indented HTML for API docs docs: remove bogus 'shape' attribute on links docs: explicitly declare pages as being UTF-8 format docs: add full set of "favicon" files to support modern clients
.travis.yml | 1 - docs/404.html.in | 2 +- docs/Makefile.am | 52 +-- docs/acl.html.in | 8 +- docs/aclpolkit.html.in | 34 +- docs/android-chrome-192x192.png | Bin 0 -> 13057 bytes docs/android-chrome-256x256.png | Bin 0 -> 16597 bytes docs/api.html.in | 10 +- docs/api_extension.html.in | 14 +- docs/apple-touch-icon.png | Bin 0 -> 10489 bytes docs/apps.html.in | 38 +-- docs/architecture.html.in | 8 +- docs/auditlog.html.in | 40 +-- docs/auth.html.in | 16 +- docs/bindings.html.in | 2 +- docs/browserconfig.xml | 9 + docs/bugs.html.in | 12 +- docs/cgroups.html.in | 26 +- docs/compiling.html.in | 8 +- docs/contact.html.in | 8 +- docs/contribute.html.in | 12 +- docs/csharp.html.in | 634 +++++++++++++++++------------------ docs/devguide.html.in | 2 +- docs/docs.html.in | 2 +- docs/downloads.html.in | 14 +- docs/drivers.html.in | 6 +- docs/drvbhyve.html.in | 22 +- docs/drvesx.html.in | 46 +-- docs/drvhyperv.html.in | 12 +- docs/drvlxc.html.in | 54 +-- docs/drvnodedev.html.in | 10 +- docs/drvopenvz.html.in | 14 +- docs/drvphyp.html.in | 8 +- docs/drvqemu.html.in | 34 +- docs/drvremote.html.in | 2 +- docs/drvtest.html.in | 2 +- docs/drvuml.html.in | 4 +- docs/drvvbox.html.in | 6 +- docs/drvvirtuozzo.html.in | 8 +- docs/drvvmware.html.in | 6 +- docs/drvxen.html.in | 16 +- docs/errors.html.in | 2 +- docs/favicon-16x16.png | Bin 0 -> 872 bytes docs/favicon-32x32.png | Bin 0 -> 1793 bytes docs/favicon.ico | Bin 0 -> 15086 bytes docs/firewall.html.in | 8 +- docs/format.html.in | 22 +- docs/formatcaps.html.in | 10 +- docs/formatdomain.html.in | 228 ++++++------- docs/formatdomaincaps.html.in | 26 +- docs/formatnetwork.html.in | 36 +- docs/formatnode.html.in | 6 +- docs/formatnwfilter.html.in | 70 ++-- docs/formatsecret.html.in | 12 +- docs/formatsnapshot.html.in | 6 +- docs/formatstorage.html.in | 30 +- docs/formatstorageencryption.html.in | 12 +- docs/genaclperms.pl | 2 +- docs/goals.html.in | 2 +- docs/governance.html.in | 14 +- docs/hacking.html.in | 42 +-- docs/hooks.html.in | 34 +- docs/hvsupport.pl | 2 +- docs/index.html.in | 22 +- docs/internals.html.in | 2 +- docs/internals/command.html.in | 34 +- docs/internals/eventloop.html.in | 8 +- docs/internals/locking.html.in | 18 +- docs/internals/oomtesting.html.in | 10 +- docs/internals/rpc.html.in | 44 +-- docs/java.html.in | 2 +- docs/locking-lockd.html.in | 10 +- docs/locking-sanlock.html.in | 12 +- docs/locking.html.in | 4 +- docs/logging.html.in | 16 +- docs/manifest.json | 18 + docs/migration.html.in | 38 +-- docs/mstile-150x150.png | Bin 0 -> 7579 bytes docs/newapi.xsl | 19 +- docs/news-2005.html.in | 6 +- docs/news-2006.html.in | 6 +- docs/news-2007.html.in | 6 +- docs/news-2008.html.in | 6 +- docs/news-2009.html.in | 6 +- docs/news-2010.html.in | 6 +- docs/news-2011.html.in | 6 +- docs/news-2012.html.in | 6 +- docs/news-2013.html.in | 6 +- docs/news-2014.html.in | 2 +- docs/news-2015.html.in | 2 +- docs/news-2016.html.in | 2 +- docs/news-html.xsl | 2 +- docs/nss.html.in | 12 +- docs/page.xsl | 23 +- docs/php.html.in | 2 +- docs/python.html.in | 2 +- docs/remote.html.in | 30 +- docs/search.php.in | 2 +- docs/secureusage.html.in | 16 +- docs/securityprocess.html.in | 14 +- docs/site.xsl | 4 +- docs/storage.html.in | 28 +- docs/subsite.xsl | 4 +- docs/testapi.html.in | 2 +- docs/testsuites.html.in | 2 +- docs/testtck.html.in | 2 +- docs/uri.html.in | 30 +- docs/virshcmdref.html.in | 16 +- docs/windows.html.in | 20 +- libvirt.spec.in | 1 - m4/virt-external-programs.m4 | 13 +- 111 files changed, 1150 insertions(+), 1158 deletions(-) create mode 100644 docs/android-chrome-192x192.png create mode 100644 docs/android-chrome-256x256.png create mode 100644 docs/apple-touch-icon.png create mode 100644 docs/browserconfig.xml create mode 100644 docs/favicon-16x16.png create mode 100644 docs/favicon-32x32.png create mode 100644 docs/favicon.ico create mode 100644 docs/manifest.json create mode 100644 docs/mstile-150x150.png
Looks okay. Although you'll need to rebase this and resolve conflicts due to Martin's recent timestamp patch. Speaking of which, the majority of the pages have the timestamp already, but for instance the following does not:
http://libvirt.org/html/libvirt-libvirt-domain.html
ACK to this though.
FYI, I'll wait until after the release before pushing this Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (2)
-
Daniel P. Berrange
-
Michal Privoznik