mirror of https://gitee.com/openkylin/libvirt.git
* include/libvirt/libvirt.h[.in] src/driver.h src/openvz_driver.c
src/qemu_driver.c src/remote_internal.c src/test.c src/xen_internal.[ch] src/xen_unified.c src/xend_internal.[ch] src/libvirt.c src/libvirt_sym.version: adding NUMA support patches from Beth Kon adding new virNodeGetCellsFreeMemory entry point and extending the virConnectGetCapabilities one. Fix a couple of issues in the patch and add to exported symbols from shared lib. * docs/virsh.pod docs/virsh.1 src/virsh.c: added new command freecell to get the available memory on the node or in a NUMA cell. * docs/*: updated and regenerated the documentation Daniel
This commit is contained in:
parent
dbd8f037e7
commit
4bf3bc9eda
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
Fri Sep 28 16:17:41 CEST 2007 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* include/libvirt/libvirt.h[.in] src/driver.h src/openvz_driver.c
|
||||
src/qemu_driver.c src/remote_internal.c src/test.c
|
||||
src/xen_internal.[ch] src/xen_unified.c src/xend_internal.[ch]
|
||||
src/libvirt.c src/libvirt_sym.version: adding NUMA support patches
|
||||
from Beth Kon adding new virNodeGetCellsFreeMemory entry point
|
||||
and extending the virConnectGetCapabilities one. Fix a couple of
|
||||
issues in the patch and add to exported symbols from shared lib.
|
||||
* docs/virsh.pod docs/virsh.1 src/virsh.c: added new command
|
||||
freecell to get the available memory on the node or in a NUMA cell.
|
||||
* docs/*: updated and regenerated the documentation
|
||||
|
||||
Fri Sep 28 11:20:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
|
||||
|
||||
* docs/libvir.html: Clarified configuration required for
|
||||
|
|
|
@ -111,9 +111,11 @@
|
|||
</dd><dt>Linux</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
</dd></dl><h2>Letter M:</h2><dl><dt>Macro</dt><dd><a href="html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER">LIBVIR_VERSION_NUMBER</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_DOMAIN_SCHED_FIELD_LENGTH">VIR_DOMAIN_SCHED_FIELD_LENGTH</a><br />
|
||||
</dd><dt>Maximum</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>Mbps</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>Migrate</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd></dl><h2>Letter N:</h2><dl><dt>NUMA</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>Normally</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetURI">virConnectGetURI</a><br />
|
||||
</dd><dt>Note</dt><dd><a href="html/libvirt-libvirt.html#virDomainCoreDump">virDomainCoreDump</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virConnectNumOfNetworks">virConnectNumOfNetworks</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
</dd><dt>add</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>additional</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>address</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>after</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetCapabilities">virConnectGetCapabilities</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
|
@ -74,6 +75,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>allowed</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
</dd><dt>already</dt><dd><a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
|
@ -83,6 +85,7 @@
|
|||
</dd><dt>amount</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>analysis</dt><dd><a href="html/libvirt-libvirt.html#virDomainCoreDump">virDomainCoreDump</a><br />
|
||||
</dd><dt>anymore</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>application</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
|
@ -115,6 +118,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetUUID">virNetworkGetUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetUUIDString">virNetworkGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>associated</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetConnect">virDomainGetConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetConnect">virNetworkGetConnect</a><br />
|
||||
</dd><dt>assumed</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
|
@ -211,6 +215,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkCreate">virNetworkCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkDestroy">virNetworkDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetConnect">virNetworkGetConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>callback</dt><dd><a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virErrorFunc">virErrorFunc</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
|
@ -227,6 +232,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetBridgeName">virNetworkGetBridgeName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>calling</dt><dd><a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
</dd><dt>calloc</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
|
@ -237,6 +243,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>cannot</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
|
@ -256,6 +263,8 @@
|
|||
<a href="html/libvirt-virterror.html#virResetLastError">virResetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>cell</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>cells</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>change</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
|
|
|
@ -82,10 +82,13 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainInterfaceStats">virDomainInterfaceStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>either</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>element</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetMaxVcpus">virConnectGetMaxVcpus</a><br />
|
||||
</dd><dt>else</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>encoded</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
</dd><dt>entries</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>especially</dt><dd><a href="html/libvirt-libvirt.html#virConnectClose">virConnectClose</a><br />
|
||||
</dd><dt>etc</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>even</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
|
@ -111,11 +114,13 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>filled</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetSchedulerParameters">virDomainGetSchedulerParameters</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>find</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByID">virDomainLookupByID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>finding</dt><dd><a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
</dd><dt>first</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>flags</dt><dd><a href="html/libvirt-libvirt.html#virDomainCoreDump">virDomainCoreDump</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
|
@ -147,6 +152,8 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetBridgeName">virNetworkGetBridgeName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>freeMems</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>freed</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetHostname">virConnectGetHostname</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetURI">virConnectGetURI</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainDestroy">virDomainDestroy</a><br />
|
||||
|
|
|
@ -47,18 +47,21 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetMaxVcpus">virDomainGetMaxVcpus</a><br />
|
||||
</dd><dt>increased</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetConnect">virDomainGetConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetConnect">virNetworkGetConnect</a><br />
|
||||
</dd><dt>index</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>indicates</dt><dd><a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInterfaceStats">virDomainInterfaceStats</a><br />
|
||||
</dd><dt>indicating</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetAutostart">virDomainGetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetAutostart">virNetworkGetAutostart</a><br />
|
||||
</dd><dt>info</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>information</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetUUIDString">virDomainGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetUUIDString">virNetworkGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>informative</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>initializing</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
|
@ -95,6 +98,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>knowing</dt><dd><a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd></dl><h2>Letter l:</h2><dl><dt>lack</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
</dd><dt>languages</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetConnect">virDomainGetConnect</a><br />
|
||||
|
@ -153,6 +157,7 @@
|
|||
</dd><dt>listed</dt><dd><a href="html/libvirt-libvirt.html#virDomainSave">virDomainSave</a><br />
|
||||
</dd><dt>little-endian</dt><dd><a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>live</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
</dd><dt>long</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>looked</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>lookup</dt><dd><a href="html/libvirt-libvirt.html#virDomainLookupByName">virDomainLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainLookupByUUID">virDomainLookupByUUID</a><br />
|
||||
|
@ -188,6 +193,7 @@
|
|||
</dd><dt>maplen</dt><dd><a href="">cpumap</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
</dd><dt>maxCells</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>maximum</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectGetMaxVcpus">virConnectGetMaxVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetMaxMemory">virDomainGetMaxMemory</a><br />
|
||||
|
@ -225,6 +231,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>message</dt><dd><a href="html/libvirt-virterror.html#_virError">_virError</a><br />
|
||||
</dd><dt>method</dt><dd><a href="html/libvirt-libvirt.html#virDomainCoreDump">virDomainCoreDump</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
|
@ -246,6 +253,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainInterfaceStats">virDomainInterfaceStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetUUIDString">virNetworkGetUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>moves</dt><dd><a href="html/libvirt-libvirt.html#virDomainCreate">virDomainCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkCreate">virNetworkCreate</a><br />
|
||||
</dd><dt>msg00096</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
|
@ -265,6 +273,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetBridgeName">virNetworkGetBridgeName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>mysterious</dt><dd><a href="html/libvirt-libvirt.html#_virDomainBlockStats">_virDomainBlockStats</a><br />
|
||||
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-V</a>
|
||||
<a href="APIchunk1.html">W-c</a>
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkLookupByUUID">virNetworkLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkLookupByUUIDString">virNetworkLookupByUUIDString</a><br />
|
||||
</dd><dt>node</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</dd><dt>non</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
|
||||
</dd><dt>non-NULL</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetURI">virConnectGetURI</a><br />
|
||||
|
@ -70,6 +71,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainGetVcpus">virDomainGetVcpus</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkCreateXML">virNetworkCreateXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>only</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
</dd><dt>oo_req</dt><dd><a href="html/libvirt-libvirt.html#_virDomainBlockStats">_virDomainBlockStats</a><br />
|
||||
|
@ -205,6 +207,7 @@
|
|||
</dd><dt>reporting</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
</dd><dt>request</dt><dd><a href="html/libvirt-libvirt.html#virDomainReboot">virDomainReboot</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainShutdown">virDomainShutdown</a><br />
|
||||
</dd><dt>requested</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>required</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_UUID_BUFLEN">VIR_UUID_BUFLEN</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_UUID_STRING_BUFLEN">VIR_UUID_STRING_BUFLEN</a><br />
|
||||
|
@ -242,6 +245,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkDestroy">virNetworkDestroy</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>returned</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetCapabilities">virConnectGetCapabilities</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux</a><br />
|
||||
|
@ -258,6 +262,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkGetAutostart">virNetworkGetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetBridgeName">virNetworkGetBridgeName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>returns</dt><dd><a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_CPU_USABLE">VIR_CPU_USABLE</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_GET_CPUMAP">VIR_GET_CPUMAP</a><br />
|
||||
|
@ -267,6 +272,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInterfaceStats">virDomainInterfaceStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>reused</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
</dd><dt>routine</dt><dd><a href="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a><br />
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainPinVcpu">virDomainPinVcpu</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</dd><dt>smaller</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>socket</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>software</dt><dd><a href="html/libvirt-libvirt.html#virConnectGetType">virConnectGetType</a><br />
|
||||
</dd><dt>source</dt><dd><a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
|
@ -78,10 +79,12 @@
|
|||
</dd><dt>start</dt><dd><a href="html/libvirt-libvirt.html#virDomainDefineXML">virDomainDefineXML</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkCreate">virNetworkCreate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkCreateXML">virNetworkCreateXML</a><br />
|
||||
</dd><dt>startCell</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>started</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetAutostart">virDomainGetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainSetAutostart">virDomainSetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetAutostart">virNetworkGetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkSetAutostart">virNetworkSetAutostart</a><br />
|
||||
</dd><dt>starting</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>startup</dt><dd><a href="html/libvirt-libvirt.html#virInitialize">virInitialize</a><br />
|
||||
</dd><dt>state</dt><dd><a href="html/libvirt-libvirt.html#_virDomainInfo">_virDomainInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainResume">virDomainResume</a><br />
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
</dd><dt>uniform</dt><dd><a href="html/libvirt-libvirt.html#_virNodeInfo">_virNodeInfo</a><br />
|
||||
</dd><dt>unknown</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>unsigned</dt><dd><a href="html/libvirt-libvirt.html#virDomainGetID">virDomainGetID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>unused</dt><dd><a href="html/libvirt-libvirt.html#virDomainCoreDump">virDomainCoreDump</a><br />
|
||||
</dd><dt>uri</dt><dd><a href="html/libvirt-libvirt.html#virConnectOpen">virConnectOpen</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virConnectOpenReadOnly">virConnectOpenReadOnly</a><br />
|
||||
|
@ -174,7 +175,9 @@
|
|||
<a href="html/libvirt-virterror.html#virGetLastError">virGetLastError</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetBridgeName">virNetworkGetBridgeName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>whichever</dt><dd><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>while</dt><dd><a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</dd><dt>will</dt><dd><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a><br />
|
||||
|
@ -190,6 +193,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetName">virNetworkGetName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a><br />
|
||||
</dd><dt>with</dt><dd><a href="html/libvirt-libvirt.html#VIR_COPY_CPUMAP">VIR_COPY_CPUMAP</a><br />
|
||||
<a href="html/libvirt-libvirt.html#VIR_CPU_MAPLEN">VIR_CPU_MAPLEN</a><br />
|
||||
|
@ -208,6 +212,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainMigrate">virDomainMigrate</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetConnect">virNetworkGetConnect</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</dd><dt>within</dt><dd><a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virDomainInterfaceStats">virDomainInterfaceStats</a><br />
|
||||
</dd><dt>without</dt><dd><a href="html/libvirt-libvirt.html#virDomainSuspend">virDomainSuspend</a><br />
|
||||
|
|
|
@ -133,6 +133,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkSetAutostart">virNetworkSetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkUndefine">virNetworkUndefine</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfo">virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a><br />
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virDomainSetMemory">virDomainSetMemory</a><br />
|
||||
</p><h2>Type unsigned long *:</h2><p><a href="html/libvirt-libvirt.html#virConnectGetVersion">virConnectGetVersion</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virGetVersion">virGetVersion</a><br />
|
||||
</p><h2>Type unsigned long long *:</h2><p><a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
</p><h2>Type virConnectPtr:</h2><p><a href="html/libvirt-virterror.html#virConnCopyLastError">virConnCopyLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnGetLastError">virConnGetLastError</a><br />
|
||||
<a href="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a><br />
|
||||
|
@ -57,6 +58,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkLookupByName">virNetworkLookupByName</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkLookupByUUID">virNetworkLookupByUUID</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkLookupByUUIDString">virNetworkLookupByUUIDString</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
</p><h2>Type virDomainBlockStatsPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainBlockStats">virDomainBlockStats</a><br />
|
||||
</p><h2>Type virDomainInfoPtr:</h2><p><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a><br />
|
||||
|
|
|
@ -210,6 +210,7 @@
|
|||
<a href="html/libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkSetAutostart">virNetworkSetAutostart</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNetworkUndefine">virNetworkUndefine</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeGetInfo">virNodeGetInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfo">virNodeInfo</a><br />
|
||||
<a href="html/libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a><br />
|
||||
|
|
|
@ -124,6 +124,7 @@ int <a href="#virConnectNumOfDefinedDomains">virConnectNumOfDefinedDomains</a> (
|
|||
<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkDefineXML">virNetworkDefineXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xml);
|
||||
int <a href="#virNetworkCreate">virNetworkCreate</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
|
||||
int <a href="#virDomainSetSchedulerParameters">virDomainSetSchedulerParameters</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virSchedParameterPtr">virSchedParameterPtr</a> params, <br/> int nparams);
|
||||
int <a href="#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long long * freeMems, <br/> int startCell, <br/> int maxCells);
|
||||
int <a href="#virConnectClose">virConnectClose</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
|
||||
int <a href="#virDomainReboot">virDomainReboot</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int flags);
|
||||
int <a href="#virDomainBlockStats">virDomainBlockStats</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/> const char * path, <br/> <a href="libvirt-libvirt.html#virDomainBlockStatsPtr">virDomainBlockStatsPtr</a> stats, <br/> size_t size);
|
||||
|
@ -683,6 +684,10 @@ The content of this structure is not made public by the API.
|
|||
<div class="refsect2" lang="en"><h3><a name="virNetworkUndefine"/>virNetworkUndefine ()</h3><pre class="programlisting">int virNetworkUndefine (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br/>
|
||||
</pre><p>Undefine a network but does not stop it if it is running</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>network</tt></i>:</span></td><td>pointer to a defined network</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeGetCellsFreeMemory"/>virNodeGetCellsFreeMemory ()</h3><pre class="programlisting">int virNodeGetCellsFreeMemory (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long long * freeMems, <br/> int startCell, <br/> int maxCells)<br/>
|
||||
</pre><p>This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>freeMems</tt></i>:</span></td><td>pointer to the array of unsigned long long</td></tr><tr><td><span class="term"><i><tt>startCell</tt></i>:</span></td><td>index of first cell to return freeMems info on.</td></tr><tr><td><span class="term"><i><tt>maxCells</tt></i>:</span></td><td>Maximum number of cells for which freeMems information can be returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries filled in freeMems, or -1 in case of error.</td></tr></tbody></table></div></div>
|
||||
<hr/>
|
||||
<div class="refsect2" lang="en"><h3><a name="virNodeGetInfo"/>virNodeGetInfo ()</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br/>
|
||||
</pre><p>Extract hardware information about the node.</p>
|
||||
|
|
|
@ -105,6 +105,7 @@ The content of this structure is not made public by the API.
|
|||
<pre class="programlisting"><a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkLookupByUUIDString">virNetworkLookupByUUIDString</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> const char * uuidstr)</pre>
|
||||
<pre class="programlisting">int <a href="#virNetworkSetAutostart">virNetworkSetAutostart</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br /> int autostart)</pre>
|
||||
<pre class="programlisting">int <a href="#virNetworkUndefine">virNetworkUndefine</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)</pre>
|
||||
<pre class="programlisting">int <a href="#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long long * freeMems, <br /> int startCell, <br /> int maxCells)</pre>
|
||||
<pre class="programlisting">int <a href="#virNodeGetInfo">virNodeGetInfo</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)</pre>
|
||||
<h2>Description</h2>
|
||||
<h3><a name="LIBVIR_VERSION_NUMBER" id="LIBVIR_VERSION_NUMBER"></a>Macro: LIBVIR_VERSION_NUMBER</h3><pre>#define LIBVIR_VERSION_NUMBER</pre><p>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</p>
|
||||
|
@ -368,6 +369,8 @@ The content of this structure is not made public by the API.
|
|||
</pre><p>Configure the network to be automatically started when the host machine boots.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>network</tt></i>:</span></td><td>a network object</td></tr><tr><td><span class="term"><i><tt>autostart</tt></i>:</span></td><td>whether the network should be automatically started 0 or 1</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 in case of success</td></tr></tbody></table></div><h3><a name="virNetworkUndefine" id="virNetworkUndefine"></a>Function: virNetworkUndefine</h3><pre class="programlisting">int virNetworkUndefine (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network)<br />
|
||||
</pre><p>Undefine a network but does not stop it if it is running</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>network</tt></i>:</span></td><td>pointer to a defined network</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNodeGetInfo" id="virNodeGetInfo"></a>Function: virNodeGetInfo</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br />
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>network</tt></i>:</span></td><td>pointer to a defined network</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="virNodeGetCellsFreeMemory" id="virNodeGetCellsFreeMemory"></a>Function: virNodeGetCellsFreeMemory</h3><pre class="programlisting">int virNodeGetCellsFreeMemory (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> unsigned long long * freeMems, <br /> int startCell, <br /> int maxCells)<br />
|
||||
</pre><p>This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>freeMems</tt></i>:</span></td><td>pointer to the array of unsigned long long</td></tr><tr><td><span class="term"><i><tt>startCell</tt></i>:</span></td><td>index of first cell to return freeMems info on.</td></tr><tr><td><span class="term"><i><tt>maxCells</tt></i>:</span></td><td>Maximum number of cells for which freeMems information can be returned.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of entries filled in freeMems, or -1 in case of error.</td></tr></tbody></table></div><h3><a name="virNodeGetInfo" id="virNodeGetInfo"></a>Function: virNodeGetInfo</h3><pre class="programlisting">int virNodeGetInfo (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br /> <a href="libvirt-libvirt.html#virNodeInfoPtr">virNodeInfoPtr</a> info)<br />
|
||||
</pre><p>Extract hardware information about the node.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>conn</tt></i>:</span></td><td>pointer to the hypervisor connection</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td>pointer to a <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> structure allocated by the user</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of failure.</td></tr></tbody></table></div></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="../index.html">Home</a></li><li><a href="../html/index.html">API Menu</a></li><li><a href="../examples/index.html">C code examples</a></li><li><a href="../ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><a href="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><a href="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><a href="http://et.redhat.com/~rjones/ocaml-libvirt/">OCaml bindings</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -352,6 +352,12 @@ updated on <i>2007-08-20</i>.
|
|||
<td> ≥ 0.2.0 </td>
|
||||
<td> ≥ 0.2.0 </td>
|
||||
<td> ≥ 0.3.0 </td>
|
||||
</tr><tr><td> virNodeGetCellsFreeMemory </td>
|
||||
<td> 0.3.3 </td>
|
||||
<td> ≥ 0.3.3 </td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr></table><h3>Network functions</h3><p>
|
||||
Network functions are not hypervisor-specific. For historical
|
||||
reasons they require the QEMU daemon to be running (this
|
||||
|
|
|
@ -3235,6 +3235,14 @@ updated on <i>2007-08-20</i>.
|
|||
<td> ≥ 0.2.0 </td>
|
||||
<td> ≥ 0.3.0 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> virNodeGetCellsFreeMemory </td>
|
||||
<td> 0.3.3 </td>
|
||||
<td> ≥ 0.3.3 </td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Network functions</h3>
|
||||
|
|
|
@ -119,6 +119,7 @@
|
|||
<exports symbol='virNetworkDefineXML' type='function'/>
|
||||
<exports symbol='virNetworkCreate' type='function'/>
|
||||
<exports symbol='virDomainSetSchedulerParameters' type='function'/>
|
||||
<exports symbol='virNodeGetCellsFreeMemory' type='function'/>
|
||||
<exports symbol='virConnectClose' type='function'/>
|
||||
<exports symbol='virDomainReboot' type='function'/>
|
||||
<exports symbol='virDomainBlockStats' type='function'/>
|
||||
|
@ -966,6 +967,14 @@
|
|||
<return type='int' info='0 in case of success, -1 in case of error'/>
|
||||
<arg name='network' type='virNetworkPtr' info='pointer to a defined network'/>
|
||||
</function>
|
||||
<function name='virNodeGetCellsFreeMemory' file='libvirt' module='libvirt'>
|
||||
<info>This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.</info>
|
||||
<return type='int' info='the number of entries filled in freeMems, or -1 in case of error.'/>
|
||||
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||
<arg name='freeMems' type='unsigned long long *' info='pointer to the array of unsigned long long'/>
|
||||
<arg name='startCell' type='int' info='index of first cell to return freeMems info on.'/>
|
||||
<arg name='maxCells' type='int' info='Maximum number of cells for which freeMems information can be returned.'/>
|
||||
</function>
|
||||
<function name='virNodeGetInfo' file='libvirt' module='libvirt'>
|
||||
<info>Extract hardware information about the node.</info>
|
||||
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
||||
|
|
|
@ -211,6 +211,7 @@
|
|||
<reference name='virNetworkPtr' href='html/libvirt-libvirt.html#virNetworkPtr'/>
|
||||
<reference name='virNetworkSetAutostart' href='html/libvirt-libvirt.html#virNetworkSetAutostart'/>
|
||||
<reference name='virNetworkUndefine' href='html/libvirt-libvirt.html#virNetworkUndefine'/>
|
||||
<reference name='virNodeGetCellsFreeMemory' href='html/libvirt-libvirt.html#virNodeGetCellsFreeMemory'/>
|
||||
<reference name='virNodeGetInfo' href='html/libvirt-libvirt.html#virNodeGetInfo'/>
|
||||
<reference name='virNodeInfo' href='html/libvirt-libvirt.html#virNodeInfo'/>
|
||||
<reference name='virNodeInfoPtr' href='html/libvirt-libvirt.html#virNodeInfoPtr'/>
|
||||
|
@ -442,6 +443,7 @@
|
|||
<ref name='virNetworkPtr'/>
|
||||
<ref name='virNetworkSetAutostart'/>
|
||||
<ref name='virNetworkUndefine'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
<ref name='virNodeInfo'/>
|
||||
<ref name='virNodeInfoPtr'/>
|
||||
|
@ -532,6 +534,9 @@
|
|||
<ref name='virConnectGetVersion'/>
|
||||
<ref name='virGetVersion'/>
|
||||
</type>
|
||||
<type name='unsigned long long *'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</type>
|
||||
<type name='virConnectPtr'>
|
||||
<ref name='virConnCopyLastError'/>
|
||||
<ref name='virConnGetLastError'/>
|
||||
|
@ -565,6 +570,7 @@
|
|||
<ref name='virNetworkLookupByName'/>
|
||||
<ref name='virNetworkLookupByUUID'/>
|
||||
<ref name='virNetworkLookupByUUIDString'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
</type>
|
||||
<type name='virDomainBlockStatsPtr'>
|
||||
|
@ -789,6 +795,7 @@
|
|||
<ref name='virNetworkPtr'/>
|
||||
<ref name='virNetworkSetAutostart'/>
|
||||
<ref name='virNetworkUndefine'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
<ref name='virNodeInfo'/>
|
||||
<ref name='virNodeInfoPtr'/>
|
||||
|
@ -1080,6 +1087,9 @@
|
|||
<ref name='LIBVIR_VERSION_NUMBER'/>
|
||||
<ref name='VIR_DOMAIN_SCHED_FIELD_LENGTH'/>
|
||||
</word>
|
||||
<word name='Maximum'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='Mbps'>
|
||||
<ref name='virDomainMigrate'/>
|
||||
</word>
|
||||
|
@ -1090,6 +1100,7 @@
|
|||
<letter name='N'>
|
||||
<word name='NUMA'>
|
||||
<ref name='_virNodeInfo'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='Normally'>
|
||||
<ref name='virConnectGetURI'/>
|
||||
|
@ -1359,6 +1370,9 @@
|
|||
<word name='add'>
|
||||
<ref name='virDomainShutdown'/>
|
||||
</word>
|
||||
<word name='additional'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='address'>
|
||||
<ref name='virDomainMigrate'/>
|
||||
</word>
|
||||
|
@ -1390,6 +1404,7 @@
|
|||
<ref name='virDomainSetMaxMemory'/>
|
||||
<ref name='virDomainSetMemory'/>
|
||||
<ref name='virDomainSuspend'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
</word>
|
||||
<word name='allowed'>
|
||||
|
@ -1409,6 +1424,7 @@
|
|||
<ref name='virDomainGetMaxMemory'/>
|
||||
<ref name='virDomainSetMaxMemory'/>
|
||||
<ref name='virDomainSetMemory'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='analysis'>
|
||||
<ref name='virDomainCoreDump'/>
|
||||
|
@ -1459,6 +1475,7 @@
|
|||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virNetworkGetUUID'/>
|
||||
<ref name='virNetworkGetUUIDString'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='associated'>
|
||||
<ref name='virDomainGetConnect'/>
|
||||
|
@ -1621,6 +1638,7 @@
|
|||
<ref name='virNetworkCreate'/>
|
||||
<ref name='virNetworkDestroy'/>
|
||||
<ref name='virNetworkGetConnect'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='callback'>
|
||||
<ref name='virConnSetErrorFunc'/>
|
||||
|
@ -1643,6 +1661,7 @@
|
|||
<ref name='virDomainGetXMLDesc'/>
|
||||
<ref name='virNetworkGetBridgeName'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='calling'>
|
||||
<ref name='virDomainBlockStats'/>
|
||||
|
@ -1661,6 +1680,7 @@
|
|||
<ref name='virDomainGetInfo'/>
|
||||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virDomainPinVcpu'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='cannot'>
|
||||
<ref name='virDomainLookupByID'/>
|
||||
|
@ -1692,6 +1712,10 @@
|
|||
</word>
|
||||
<word name='cell'>
|
||||
<ref name='_virNodeInfo'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='cells'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='change'>
|
||||
<ref name='virDomainPinVcpu'/>
|
||||
|
@ -1954,6 +1978,10 @@
|
|||
<ref name='virDomainInterfaceStats'/>
|
||||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virDomainPinVcpu'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='either'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='element'>
|
||||
<ref name='virConnectGetMaxVcpus'/>
|
||||
|
@ -1965,6 +1993,9 @@
|
|||
<ref name='virDomainGetXMLDesc'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
</word>
|
||||
<word name='entries'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='especially'>
|
||||
<ref name='virConnectClose'/>
|
||||
</word>
|
||||
|
@ -2025,6 +2056,7 @@
|
|||
<word name='filled'>
|
||||
<ref name='virDomainGetSchedulerParameters'/>
|
||||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='find'>
|
||||
<ref name='virDomainLookupByID'/>
|
||||
|
@ -2036,6 +2068,7 @@
|
|||
<word name='first'>
|
||||
<ref name='virConnectOpen'/>
|
||||
<ref name='virConnectOpenReadOnly'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='flags'>
|
||||
<ref name='virDomainCoreDump'/>
|
||||
|
@ -2079,6 +2112,10 @@
|
|||
<ref name='virDomainGetXMLDesc'/>
|
||||
<ref name='virNetworkGetBridgeName'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='freeMems'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='freed'>
|
||||
<ref name='virConnectGetHostname'/>
|
||||
|
@ -2264,6 +2301,9 @@
|
|||
<ref name='virDomainGetConnect'/>
|
||||
<ref name='virNetworkGetConnect'/>
|
||||
</word>
|
||||
<word name='index'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='indicates'>
|
||||
<ref name='virDomainBlockStats'/>
|
||||
<ref name='virDomainInterfaceStats'/>
|
||||
|
@ -2275,6 +2315,7 @@
|
|||
</word>
|
||||
<word name='info'>
|
||||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='information'>
|
||||
<ref name='_virError'/>
|
||||
|
@ -2283,6 +2324,7 @@
|
|||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virGetVersion'/>
|
||||
<ref name='virNetworkGetUUIDString'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
</word>
|
||||
<word name='informative'>
|
||||
|
@ -2353,6 +2395,7 @@
|
|||
<ref name='virDomainGetMaxMemory'/>
|
||||
<ref name='virDomainSetMaxMemory'/>
|
||||
<ref name='virDomainSetMemory'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='knowing'>
|
||||
<ref name='virDomainShutdown'/>
|
||||
|
@ -2458,6 +2501,9 @@
|
|||
<word name='live'>
|
||||
<ref name='virDomainMigrate'/>
|
||||
</word>
|
||||
<word name='long'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='looked'>
|
||||
<ref name='virGetVersion'/>
|
||||
</word>
|
||||
|
@ -2517,6 +2563,9 @@
|
|||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virDomainPinVcpu'/>
|
||||
</word>
|
||||
<word name='maxCells'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='maximum'>
|
||||
<ref name='_virDomainInfo'/>
|
||||
<ref name='virConnectGetMaxVcpus'/>
|
||||
|
@ -2565,6 +2614,7 @@
|
|||
<ref name='virDomainSetMaxMemory'/>
|
||||
<ref name='virDomainSetMemory'/>
|
||||
<ref name='virDomainSuspend'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='message'>
|
||||
<ref name='_virError'/>
|
||||
|
@ -2610,6 +2660,7 @@
|
|||
<ref name='virDomainInterfaceStats'/>
|
||||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virNetworkGetUUIDString'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='moves'>
|
||||
<ref name='virDomainCreate'/>
|
||||
|
@ -2639,6 +2690,7 @@
|
|||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virNetworkGetBridgeName'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='mysterious'>
|
||||
<ref name='_virDomainBlockStats'/>
|
||||
|
@ -2706,6 +2758,7 @@
|
|||
</word>
|
||||
<word name='node'>
|
||||
<ref name='_virNodeInfo'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virNodeGetInfo'/>
|
||||
</word>
|
||||
<word name='non'>
|
||||
|
@ -2744,6 +2797,7 @@
|
|||
<ref name='virDomainGetVcpus'/>
|
||||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virNetworkCreateXML'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='only'>
|
||||
<ref name='virConnectGetVersion'/>
|
||||
|
@ -3000,6 +3054,9 @@
|
|||
<ref name='virDomainReboot'/>
|
||||
<ref name='virDomainShutdown'/>
|
||||
</word>
|
||||
<word name='requested'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='required'>
|
||||
<ref name='VIR_CPU_MAPLEN'/>
|
||||
<ref name='VIR_UUID_BUFLEN'/>
|
||||
|
@ -3058,6 +3115,7 @@
|
|||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virGetVersion'/>
|
||||
<ref name='virNetworkDestroy'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='returned'>
|
||||
<ref name='virConnectGetCapabilities'/>
|
||||
|
@ -3076,6 +3134,7 @@
|
|||
<ref name='virNetworkGetAutostart'/>
|
||||
<ref name='virNetworkGetBridgeName'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='returns'>
|
||||
<ref name='VIR_CPU_MAPLEN'/>
|
||||
|
@ -3087,6 +3146,7 @@
|
|||
<ref name='virConnectGetVersion'/>
|
||||
<ref name='virDomainBlockStats'/>
|
||||
<ref name='virDomainInterfaceStats'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='reused'>
|
||||
<ref name='virDomainGetXMLDesc'/>
|
||||
|
@ -3210,6 +3270,9 @@
|
|||
<ref name='virDomainSetMaxMemory'/>
|
||||
<ref name='virDomainSetMemory'/>
|
||||
</word>
|
||||
<word name='smaller'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='socket'>
|
||||
<ref name='_virNodeInfo'/>
|
||||
</word>
|
||||
|
@ -3235,12 +3298,18 @@
|
|||
<ref name='virNetworkCreate'/>
|
||||
<ref name='virNetworkCreateXML'/>
|
||||
</word>
|
||||
<word name='startCell'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='started'>
|
||||
<ref name='virDomainGetAutostart'/>
|
||||
<ref name='virDomainSetAutostart'/>
|
||||
<ref name='virNetworkGetAutostart'/>
|
||||
<ref name='virNetworkSetAutostart'/>
|
||||
</word>
|
||||
<word name='starting'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='startup'>
|
||||
<ref name='virInitialize'/>
|
||||
</word>
|
||||
|
@ -3525,6 +3594,7 @@
|
|||
</word>
|
||||
<word name='unsigned'>
|
||||
<ref name='virDomainGetID'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='unused'>
|
||||
<ref name='virDomainCoreDump'/>
|
||||
|
@ -3783,8 +3853,12 @@
|
|||
<ref name='virGetLastError'/>
|
||||
<ref name='virGetVersion'/>
|
||||
<ref name='virNetworkGetBridgeName'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virSetErrorFunc'/>
|
||||
</word>
|
||||
<word name='whichever'>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='while'>
|
||||
<ref name='virGetVersion'/>
|
||||
</word>
|
||||
|
@ -3803,6 +3877,7 @@
|
|||
<ref name='virDomainSuspend'/>
|
||||
<ref name='virGetVersion'/>
|
||||
<ref name='virNetworkGetName'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
<ref name='virSetErrorFunc'/>
|
||||
</word>
|
||||
<word name='with'>
|
||||
|
@ -3823,6 +3898,7 @@
|
|||
<ref name='virDomainMigrate'/>
|
||||
<ref name='virNetworkGetConnect'/>
|
||||
<ref name='virNetworkGetXMLDesc'/>
|
||||
<ref name='virNodeGetCellsFreeMemory'/>
|
||||
</word>
|
||||
<word name='within'>
|
||||
<ref name='virDomainBlockStats'/>
|
||||
|
|
|
@ -71,8 +71,8 @@ Remote libvirt supports a range of transports:
|
|||
<a href="http://www.openssh.com/" title="OpenSSH homepage">ssh
|
||||
(secure shell)</a> connection.
|
||||
Requires <a href="http://netcat.sourceforge.net/">Netcat (nc)</a>
|
||||
installed on the remote machine, and the remote libvirtd should
|
||||
be listening on the unix transport. You should use some sort of
|
||||
installed and libvirtd should be running
|
||||
on the remote machine. You should use some sort of
|
||||
ssh key management (eg.
|
||||
<a href="http://mah.everybody.org/docs/ssh" title="Using ssh-agent with ssh">ssh-agent</a>)
|
||||
otherwise programs which use
|
||||
|
|
|
@ -121,6 +121,7 @@ capabilities in terms of CPU and features, and a set of description
|
|||
for each kind of guest which can be virtualized. For a more complete
|
||||
description see:
|
||||
L<http://libvirt.org/format.html#Capa1>
|
||||
The XML also show the NUMA topology informations if available.
|
||||
|
||||
=item B<list>
|
||||
|
||||
|
@ -141,6 +142,11 @@ B<virsh> list
|
|||
Name is the name of the domain. ID the domain numeric id.
|
||||
State is the run state (see below).
|
||||
|
||||
=item B<freecell> optional I<cellno>
|
||||
|
||||
Prints the available amount of memory on the machine or within a
|
||||
NUMA cell if I<cellno> is provided.
|
||||
|
||||
=over 4
|
||||
|
||||
B<STATES>
|
||||
|
|
|
@ -581,6 +581,15 @@ int virDomainGetVcpus (virDomainPtr domain,
|
|||
int virDomainAttachDevice(virDomainPtr domain, char *xml);
|
||||
int virDomainDetachDevice(virDomainPtr domain, char *xml);
|
||||
|
||||
/*
|
||||
* NUMA support
|
||||
*/
|
||||
|
||||
int virNodeGetCellsFreeMemory(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
|
||||
/*
|
||||
* Virtual Networks API
|
||||
*/
|
||||
|
|
|
@ -581,6 +581,15 @@ int virDomainGetVcpus (virDomainPtr domain,
|
|||
int virDomainAttachDevice(virDomainPtr domain, char *xml);
|
||||
int virDomainDetachDevice(virDomainPtr domain, char *xml);
|
||||
|
||||
/*
|
||||
* NUMA support
|
||||
*/
|
||||
|
||||
int virNodeGetCellsFreeMemory(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
|
||||
/*
|
||||
* Virtual Networks API
|
||||
*/
|
||||
|
|
|
@ -255,6 +255,13 @@ typedef virDomainPtr
|
|||
typedef struct _virDriver virDriver;
|
||||
typedef virDriver *virDriverPtr;
|
||||
|
||||
typedef int
|
||||
(*virDrvNodeGetCellsFreeMemory)
|
||||
(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
|
||||
/**
|
||||
* _virDriver:
|
||||
*
|
||||
|
@ -322,6 +329,7 @@ struct _virDriver {
|
|||
virDrvDomainMigrateFinish domainMigrateFinish;
|
||||
virDrvDomainBlockStats domainBlockStats;
|
||||
virDrvDomainInterfaceStats domainInterfaceStats;
|
||||
virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
|
||||
};
|
||||
|
||||
typedef int
|
||||
|
|
|
@ -2633,6 +2633,45 @@ virDomainDetachDevice(virDomainPtr domain, char *xml)
|
|||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* virNodeGetCellsFreeMemory:
|
||||
* @conn: pointer to the hypervisor connection
|
||||
* @freeMems: pointer to the array of unsigned long long
|
||||
* @startCell: index of first cell to return freeMems info on.
|
||||
* @maxCells: Maximum number of cells for which freeMems information can
|
||||
* be returned.
|
||||
*
|
||||
* This call returns the amount of free memory in one or more NUMA cells.
|
||||
* The @freeMems array must be allocated by the caller and will be filled
|
||||
* with the amount of free memory in kilobytes for each cell requested,
|
||||
* starting with startCell (in freeMems[0]), up to either
|
||||
* (startCell + maxCells), or the number of additional cells in the node,
|
||||
* whichever is smaller.
|
||||
*
|
||||
* Returns the number of entries filled in freeMems, or -1 in case of error.
|
||||
*/
|
||||
|
||||
int
|
||||
virNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems,
|
||||
int startCell, int maxCells)
|
||||
{
|
||||
if (!VIR_IS_CONNECT(conn)) {
|
||||
virLibConnError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if ((freeMems == NULL) || (maxCells <= 0)) {
|
||||
virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (conn->driver->nodeGetCellsFreeMemory)
|
||||
return conn->driver->nodeGetCellsFreeMemory (conn, freeMems, startCell, maxCells);
|
||||
|
||||
virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* virNetworkGetConnect:
|
||||
* @net: pointer to a network
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
virDomainGetUUID;
|
||||
virDomainGetUUIDString;
|
||||
virDomainGetInfo;
|
||||
virNodeGetCellsFreeMemory;
|
||||
virDomainGetMaxMemory;
|
||||
virDomainGetName;
|
||||
virDomainGetOSType;
|
||||
|
@ -57,6 +58,7 @@
|
|||
virDefaultErrorFunc;
|
||||
virNodeGetInfo;
|
||||
virConnectGetCapabilities;
|
||||
virNodeGetCellsFreeMemory;
|
||||
|
||||
virDomainSetVcpus;
|
||||
virDomainPinVcpu;
|
||||
|
|
|
@ -753,6 +753,7 @@ static virDriver openvzDriver = {
|
|||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
};
|
||||
|
||||
static virNetworkDriver openvzNetworkDriver = {
|
||||
|
|
|
@ -2704,6 +2704,7 @@ static virDriver qemuDriver = {
|
|||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
};
|
||||
|
||||
static virNetworkDriver qemuNetworkDriver = {
|
||||
|
|
|
@ -3150,6 +3150,7 @@ static virDriver driver = {
|
|||
.domainMigrateFinish = remoteDomainMigrateFinish,
|
||||
.domainBlockStats = remoteDomainBlockStats,
|
||||
.domainInterfaceStats = remoteDomainInterfaceStats,
|
||||
.nodeGetCellsFreeMemory = NULL,
|
||||
};
|
||||
|
||||
static virNetworkDriver network_driver = {
|
||||
|
|
|
@ -1969,6 +1969,7 @@ static virDriver testDriver = {
|
|||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
};
|
||||
|
||||
static virNetworkDriver testNetworkDriver = {
|
||||
|
|
43
src/virsh.c
43
src/virsh.c
|
@ -1561,6 +1561,48 @@ cmdDominfo(vshControl * ctl, vshCmd * cmd)
|
|||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* "freecell" command
|
||||
*/
|
||||
static vshCmdInfo info_freecell[] = {
|
||||
{"syntax", "freecell [<cellno>]"},
|
||||
{"help", gettext_noop("NUMA free memory")},
|
||||
{"desc", gettext_noop("display available free memory for the NUMA cell.")},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static vshCmdOptDef opts_freecell[] = {
|
||||
{"cellno", VSH_OT_DATA, 0, gettext_noop("NUMA cell number")},
|
||||
{NULL, 0, 0, NULL}
|
||||
};
|
||||
|
||||
static int
|
||||
cmdFreecell(vshControl * ctl, vshCmd * cmd)
|
||||
{
|
||||
int ret;
|
||||
int cell, cell_given;
|
||||
unsigned long long memory;
|
||||
|
||||
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
|
||||
return FALSE;
|
||||
|
||||
cell = vshCommandOptInt(cmd, "cellno", &cell_given);
|
||||
if (!cell_given) {
|
||||
cell = -1;
|
||||
}
|
||||
|
||||
ret = virNodeGetCellsFreeMemory(ctl->conn, &memory, cell, 1);
|
||||
if (ret != 1)
|
||||
return FALSE;
|
||||
|
||||
if (cell == -1)
|
||||
vshPrint(ctl, "%s: %llu kB\n", _("Total"), memory);
|
||||
else
|
||||
vshPrint(ctl, "%d: %llu kB\n", cell, memory);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* "vcpuinfo" command
|
||||
*/
|
||||
|
@ -3661,6 +3703,7 @@ static vshCmdDef commands[] = {
|
|||
{"domblkstat", cmdDomblkstat, opts_domblkstat, info_domblkstat},
|
||||
{"domifstat", cmdDomIfstat, opts_domifstat, info_domifstat},
|
||||
{"dumpxml", cmdDumpXML, opts_dumpxml, info_dumpxml},
|
||||
{"freecell", cmdFreecell, opts_freecell, info_freecell},
|
||||
{"hostname", cmdHostname, NULL, info_hostname},
|
||||
{"list", cmdList, opts_list, info_list},
|
||||
{"migrate", cmdMigrate, opts_migrate, info_migrate},
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <errno.h>
|
||||
#include <sys/utsname.h>
|
||||
#include "xs_internal.h"
|
||||
#include "xend_internal.h"
|
||||
|
||||
/* required for dom0_getdomaininfo_t */
|
||||
#include <xen/dom0_ops.h>
|
||||
|
@ -201,6 +202,15 @@ union xen_getschedulerid {
|
|||
};
|
||||
typedef union xen_getschedulerid xen_getschedulerid;
|
||||
|
||||
struct xen_v2s4_availheap {
|
||||
uint32_t min_bitwidth; /* Smallest address width (zero if don't care). */
|
||||
uint32_t max_bitwidth; /* Largest address width (zero if don't care). */
|
||||
int32_t node; /* NUMA node (-1 for sum across all nodes). */
|
||||
uint64_t avail_bytes; /* Bytes available in the specified region. */
|
||||
};
|
||||
|
||||
typedef struct xen_v2s4_availheap xen_v2s4_availheap;
|
||||
|
||||
|
||||
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
|
||||
(hypervisor_version < 2 ? \
|
||||
|
@ -523,6 +533,11 @@ typedef struct xen_v2d5_setvcpumap xen_v2d5_getvcpumap;
|
|||
*/
|
||||
#define XEN_V2_OP_GETSCHEDULERID 4
|
||||
|
||||
/*
|
||||
* from V2 we get the available heap information
|
||||
*/
|
||||
#define XEN_V2_OP_GETAVAILHEAP 9
|
||||
|
||||
/*
|
||||
* from V2 we get the scheduler parameter
|
||||
*/
|
||||
|
@ -584,6 +599,7 @@ struct xen_op_v2_sys {
|
|||
xen_v2_getdomaininfolistop getdomaininfolist;
|
||||
xen_v2s3_getdomaininfolistop getdomaininfolists3;
|
||||
xen_v2_getschedulerid getschedulerid;
|
||||
xen_v2s4_availheap availheap;
|
||||
uint8_t padding[128];
|
||||
} u;
|
||||
};
|
||||
|
@ -2012,7 +2028,7 @@ xenHypervisorInit(void)
|
|||
#endif
|
||||
return(-1);
|
||||
}
|
||||
/* Currently consider RHEL5.0 Fedora7 and xen-unstable */
|
||||
/* Currently consider RHEL5.0 Fedora7, xen-3.1, and xen-unstable */
|
||||
sys_interface_version = 2; /* XEN_SYSCTL_INTERFACE_VERSION */
|
||||
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
||||
/* RHEL 5.0 */
|
||||
|
@ -2035,7 +2051,7 @@ xenHypervisorInit(void)
|
|||
|
||||
sys_interface_version = 3; /* XEN_SYSCTL_INTERFACE_VERSION */
|
||||
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
||||
/* xen-unstable */
|
||||
/* xen-3.1 */
|
||||
dom_interface_version = 5; /* XEN_DOMCTL_INTERFACE_VERSION */
|
||||
if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
|
||||
#ifdef DEBUG
|
||||
|
@ -2045,6 +2061,18 @@ xenHypervisorInit(void)
|
|||
}
|
||||
}
|
||||
|
||||
sys_interface_version = 4; /* XEN_SYSCTL_INTERFACE_VERSION */
|
||||
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
||||
/* xen-unstable */
|
||||
dom_interface_version = 5; /* XEN_DOMCTL_INTERFACE_VERSION */
|
||||
if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "Using hypervisor call v2, sys ver4 dom ver5\n");
|
||||
#endif
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
hypervisor_version = 1;
|
||||
sys_interface_version = -1;
|
||||
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
||||
|
@ -2200,7 +2228,7 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
char line[1024], *str, *token;
|
||||
regmatch_t subs[4];
|
||||
char *saveptr = NULL;
|
||||
int i, r;
|
||||
int i, r, topology;
|
||||
|
||||
char hvm_type[4] = ""; /* "vmx" or "svm" (or "" if not in CPU). */
|
||||
int host_pae = 0;
|
||||
|
@ -2377,6 +2405,12 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
</host>\n", -1);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
if (sys_interface_version >= 4) {
|
||||
topology = xenDaemonNodeGetTopology(conn, xml);
|
||||
if (topology != 0)
|
||||
goto topology_failed;
|
||||
}
|
||||
|
||||
for (i = 0; i < nr_guest_archs; ++i) {
|
||||
r = virBufferVSprintf (xml,
|
||||
"\
|
||||
|
@ -2438,6 +2472,7 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
</guest>\n", -1);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
|
||||
r = virBufferAdd (xml,
|
||||
"\
|
||||
</capabilities>\n", -1);
|
||||
|
@ -2450,6 +2485,7 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
|
||||
vir_buffer_failed:
|
||||
virXenError(VIR_ERR_NO_MEMORY, __FUNCTION__, 0);
|
||||
topology_failed:
|
||||
virBufferFree (xml);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -2938,6 +2974,79 @@ xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||
}
|
||||
|
||||
#ifndef PROXY
|
||||
/**
|
||||
* xenHypervisorNodeGetCellsFreeMemory:
|
||||
* @conn: pointer to the hypervisor connection
|
||||
* @freeMems: pointer to the array of unsigned long long
|
||||
* @startCell: index of first cell to return freeMems info on.
|
||||
* @maxCells: Maximum number of cells for which freeMems information can
|
||||
* be returned.
|
||||
*
|
||||
* This call returns the amount of free memory in one or more NUMA cells.
|
||||
* The @freeMems array must be allocated by the caller and will be filled
|
||||
* with the amount of free memory in kilobytes for each cell requested,
|
||||
* starting with startCell (in freeMems[0]), up to either
|
||||
* (startCell + maxCells), or the number of additional cells in the node,
|
||||
* whichever is smaller.
|
||||
*
|
||||
* Returns the number of entries filled in freeMems, or -1 in case of error.
|
||||
*/
|
||||
int
|
||||
xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems,
|
||||
int startCell, int maxCells)
|
||||
{
|
||||
xen_op_v2_sys op_sys;
|
||||
int i, j, ret;
|
||||
xenUnifiedPrivatePtr priv;
|
||||
static int nbNodeCells = -1;
|
||||
virNodeInfo nodeInfo;
|
||||
|
||||
|
||||
if (nbNodeCells == -1) {
|
||||
if (xenDaemonNodeGetInfo(conn, &nodeInfo)) {
|
||||
virXenErrorFunc (VIR_ERR_XEN_CALL, __FUNCTION__,
|
||||
"cannot determine actual number of cells",0);
|
||||
return -1;
|
||||
}
|
||||
nbNodeCells = nodeInfo.nodes;
|
||||
}
|
||||
|
||||
if ((conn == NULL) || (maxCells < 1) || (startCell >= nbNodeCells)) {
|
||||
virXenErrorFunc (VIR_ERR_INVALID_ARG, __FUNCTION__,
|
||||
"invalid argument", 0);
|
||||
return -1;
|
||||
}
|
||||
/*
|
||||
* Support only sys_interface_version >=4
|
||||
*/
|
||||
if (sys_interface_version < 4) {
|
||||
virXenErrorFunc (VIR_ERR_XEN_CALL, __FUNCTION__,
|
||||
"unsupported in sys interface < 4", 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
priv = (xenUnifiedPrivatePtr) conn->privateData;
|
||||
if (priv->handle < 0) {
|
||||
virXenErrorFunc (VIR_ERR_INTERNAL_ERROR, __FUNCTION__,
|
||||
"priv->handle invalid", 0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
memset(&op_sys, 0, sizeof(op_sys));
|
||||
op_sys.cmd = XEN_V2_OP_GETAVAILHEAP;
|
||||
|
||||
for (i = startCell, j = 0;(i < nbNodeCells) && (j < maxCells);i++,j++) {
|
||||
op_sys.u.availheap.node = i;
|
||||
ret = xenHypervisorDoV2Sys(priv->handle, &op_sys);
|
||||
if (ret < 0) {
|
||||
return(-1);
|
||||
}
|
||||
freeMems[j] = op_sys.u.availheap.avail_bytes;
|
||||
}
|
||||
return (j);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* xenHypervisorPauseDomain:
|
||||
* @domain: pointer to the domain block
|
||||
|
|
|
@ -93,6 +93,10 @@ int xenHypervisorDomainInterfaceStats (virDomainPtr domain,
|
|||
const char *path,
|
||||
struct _virDomainInterfaceStats *stats);
|
||||
|
||||
int xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1053,6 +1053,20 @@ xenUnifiedDomainInterfaceStats (virDomainPtr dom, const char *path,
|
|||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
xenUnifiedNodeGetCellsFreeMemory (virConnectPtr conn, unsigned long long *freeMems,
|
||||
int startCell, int maxCells)
|
||||
{
|
||||
GET_PRIVATE (conn);
|
||||
|
||||
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
|
||||
return xenHypervisorNodeGetCellsFreeMemory (conn, freeMems,
|
||||
startCell, maxCells);
|
||||
|
||||
xenUnifiedError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*----- Register with libvirt.c, and initialise Xen drivers. -----*/
|
||||
|
||||
#define VERSION ((DOM0_INTERFACE_VERSION >> 24) * 1000000 + \
|
||||
|
@ -1113,6 +1127,7 @@ static virDriver xenUnifiedDriver = {
|
|||
.domainMigrateFinish = xenUnifiedDomainMigrateFinish,
|
||||
.domainBlockStats = xenUnifiedDomainBlockStats,
|
||||
.domainInterfaceStats = xenUnifiedDomainInterfaceStats,
|
||||
.nodeGetCellsFreeMemory = xenUnifiedNodeGetCellsFreeMemory,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
#include <libxml/uri.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "libvirt/libvirt.h"
|
||||
|
@ -1871,6 +1872,198 @@ sexpr_to_xend_node_info(struct sexpr *root, virNodeInfoPtr info)
|
|||
return (0);
|
||||
}
|
||||
|
||||
/**
|
||||
* getNumber:
|
||||
* @pointer: pointer to string beginning with numerical characters
|
||||
* @result: pointer to integer for storing the numerical result
|
||||
*
|
||||
* Internal routine extracting a number from the beginning of a string
|
||||
*
|
||||
* Returns the number of characters that were extracted as digits
|
||||
* or -1 if no digits were found.
|
||||
*/
|
||||
static int
|
||||
getNumber (const char * pointer, int * result) {
|
||||
int len = 0;
|
||||
while (isdigit(*(pointer + len)))
|
||||
len++;
|
||||
if (len == 0)
|
||||
return -1;
|
||||
*(result) = atoi(pointer);
|
||||
return (len);
|
||||
}
|
||||
|
||||
/**
|
||||
* sexpr_to_xend_topology_xml:
|
||||
* @root: an S-Expression describing a node
|
||||
*
|
||||
* Internal routine creating an XML string with the values from
|
||||
* the node root provided.
|
||||
*
|
||||
* Returns 0 in case of success, -1 in case of error
|
||||
*/
|
||||
static int
|
||||
sexpr_to_xend_topology_xml(virConnectPtr conn, struct sexpr *root, virBufferPtr xml)
|
||||
{
|
||||
const char *nodeToCpu;
|
||||
const char *offset;
|
||||
int cellNum;
|
||||
int numCells = 0;
|
||||
int numCpus;
|
||||
int cellCpuCount = 0;
|
||||
int nodeCpuCount = 0;
|
||||
int start;
|
||||
int finish;
|
||||
int r;
|
||||
int i;
|
||||
int len;
|
||||
int cpuNum;
|
||||
int *cpuIdsPtr = NULL;
|
||||
int *iCpuIdsPtr = NULL;
|
||||
char next;
|
||||
|
||||
nodeToCpu = sexpr_node(root, "node/node_to_cpu");
|
||||
if (nodeToCpu == NULL) {
|
||||
virXendError(conn, VIR_ERR_INTERNAL_ERROR,
|
||||
_("failed to parse topology information"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
numCells = sexpr_int(root, "node/nr_nodes");
|
||||
numCpus = sexpr_int(root, "node/nr_cpus");
|
||||
|
||||
/* array for holding all cpu numbers associated with a single cell.
|
||||
* Should never need more than numCpus (which is total number of
|
||||
* cpus for the node)
|
||||
*/
|
||||
cpuIdsPtr = iCpuIdsPtr = malloc(numCpus * sizeof(int));
|
||||
if (cpuIdsPtr == NULL) {
|
||||
goto vir_buffer_failed;
|
||||
}
|
||||
|
||||
/* start filling in xml */
|
||||
r = virBufferVSprintf (xml,
|
||||
"\
|
||||
<topology>\n\
|
||||
<cells num='%d'>\n",
|
||||
numCells);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
offset = nodeToCpu;
|
||||
/* now iterate through all cells and find associated cpu ids */
|
||||
/* example of string being parsed: "node0:0-3,7,9-10\n node1:11-14\n" */
|
||||
while ((offset = strstr(offset, "node")) != NULL) {
|
||||
cpuIdsPtr = iCpuIdsPtr;
|
||||
cellCpuCount = 0;
|
||||
offset +=4;
|
||||
if ((len = getNumber(offset, &cellNum)) < 0) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
offset += len;
|
||||
if (*(offset) != ':') {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
offset++;
|
||||
/* get list of cpus associated w/ single cell */
|
||||
while (1) {
|
||||
if ((len = getNumber(offset, &cpuNum)) < 0) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
offset += len;
|
||||
next = *(offset);
|
||||
if (next == '-') {
|
||||
offset++;
|
||||
start = cpuNum;
|
||||
if ((len = getNumber(offset, &finish)) < 0) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
if (start > finish) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL, " topology string syntax error");
|
||||
goto error;
|
||||
|
||||
}
|
||||
for (i=start; i<=finish && nodeCpuCount<numCpus; i++) {
|
||||
*(cpuIdsPtr++) = i;
|
||||
cellCpuCount++;
|
||||
nodeCpuCount++;
|
||||
}
|
||||
if (nodeCpuCount > numCpus) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL,
|
||||
"conflicting cpu counts");
|
||||
goto error;
|
||||
}
|
||||
offset += len;
|
||||
next = *(offset);
|
||||
offset++;
|
||||
if (next == ',') {
|
||||
continue;
|
||||
} else if ((next == '\\') || (next =='\0')) {
|
||||
break;
|
||||
} else {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL,
|
||||
" topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
/* add the single number */
|
||||
if (nodeCpuCount >= numCpus) {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL,
|
||||
"conflicting cpu counts");
|
||||
goto error;
|
||||
}
|
||||
*(cpuIdsPtr++) = cpuNum;
|
||||
cellCpuCount++;
|
||||
nodeCpuCount++;
|
||||
if (next == ',') {
|
||||
offset++;
|
||||
continue;
|
||||
} else if ((next == '\\') || (next =='\0')) {
|
||||
break;
|
||||
} else {
|
||||
virXendError(conn, VIR_ERR_XEN_CALL,
|
||||
" topology string syntax error");
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* add xml for all cpus associated with one cell */
|
||||
r = virBufferVSprintf (xml, "\
|
||||
<cell id='%d'>\n\
|
||||
<cpus num='%d'>\n", cellNum, cellCpuCount);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
for (i = 0; i < cellCpuCount; i++) {
|
||||
r = virBufferVSprintf (xml, "\
|
||||
<cpu id='%d'/>\n", *(iCpuIdsPtr + i));
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, "\
|
||||
</cpus>\n\
|
||||
</cell>\n", -1);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, "\
|
||||
</cells>\n\
|
||||
</topology>\n", -1);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
free(iCpuIdsPtr);
|
||||
return (0);
|
||||
|
||||
|
||||
vir_buffer_failed:
|
||||
virXendError(conn, VIR_ERR_NO_MEMORY, _("allocate new buffer"));
|
||||
|
||||
error:
|
||||
if (iCpuIdsPtr)
|
||||
free(iCpuIdsPtr);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
#ifndef PROXY
|
||||
/**
|
||||
* sexpr_to_domain:
|
||||
|
@ -1956,7 +2149,7 @@ xenDaemonOpen(virConnectPtr conn, const char *name,
|
|||
{
|
||||
xmlURIPtr uri = NULL;
|
||||
int ret;
|
||||
|
||||
|
||||
/* If the name is just "xen" (it might originally have been NULL,
|
||||
* see xenUnifiedOpen) or any URI beginning with "xen:///" then
|
||||
* try default paths and methods to get to the xend socket.
|
||||
|
@ -2588,6 +2781,39 @@ xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) {
|
|||
return (ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* xenDaemonNodeGetTopology:
|
||||
* @conn: pointer to the Xen Daemon block
|
||||
*
|
||||
* This method retrieves a node's topology information.
|
||||
*
|
||||
* Returns -1 in case of error, 0 otherwise.
|
||||
*/
|
||||
int
|
||||
xenDaemonNodeGetTopology(virConnectPtr conn, virBufferPtr xml) {
|
||||
int ret = -1;
|
||||
struct sexpr *root;
|
||||
|
||||
if (!VIR_IS_CONNECT(conn)) {
|
||||
virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (xml == NULL) {
|
||||
virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
root = sexpr_get(conn, "/xend/node/");
|
||||
if (root == NULL) {
|
||||
return (-1);
|
||||
}
|
||||
|
||||
ret = sexpr_to_xend_topology_xml(conn, root, xml);
|
||||
sexpr_free(root);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
#ifndef PROXY
|
||||
/**
|
||||
* xenDaemonGetType:
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
#include "libvirt/libvirt.h"
|
||||
#include "buf.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -182,6 +183,7 @@ int xenDaemonOpen(virConnectPtr conn, const char *name, int flags);
|
|||
int xenDaemonClose(virConnectPtr conn);
|
||||
int xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer);
|
||||
int xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
|
||||
int xenDaemonNodeGetTopology(virConnectPtr conn, virBufferPtr xml);
|
||||
int xenDaemonDomainSuspend(virDomainPtr domain);
|
||||
int xenDaemonDomainResume(virDomainPtr domain);
|
||||
int xenDaemonDomainShutdown(virDomainPtr domain);
|
||||
|
|
7
virsh.1
7
virsh.1
|
@ -129,7 +129,7 @@
|
|||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "VIRSH 1"
|
||||
.TH VIRSH 1 "2007-08-14" "perl v5.8.8" "Virtualization Support"
|
||||
.TH VIRSH 1 "2007-09-28" "perl v5.8.8" "Virtualization Support"
|
||||
.SH "NAME"
|
||||
virsh \- management user interface
|
||||
.SH "SYNOPSIS"
|
||||
|
@ -241,6 +241,7 @@ capabilities in terms of \s-1CPU\s0 and features, and a set of description
|
|||
for each kind of guest which can be virtualized. For a more complete
|
||||
description see:
|
||||
<http://libvirt.org/format.html#Capa1>
|
||||
The \s-1XML\s0 also show the \s-1NUMA\s0 topology informations if available.
|
||||
.IP "\fBlist\fR" 4
|
||||
.IX Item "list"
|
||||
Prints information about one or more domains. If no domains are
|
||||
|
@ -260,6 +261,10 @@ An example format for the list is as follows:
|
|||
.Sp
|
||||
Name is the name of the domain. \s-1ID\s0 the domain numeric id.
|
||||
State is the run state (see below).
|
||||
.IP "\fBfreecell\fR optional \fIcellno\fR" 4
|
||||
.IX Item "freecell optional cellno"
|
||||
Prints the available amount of memory on the machine or within a
|
||||
\&\s-1NUMA\s0 cell if \fIcellno\fR is provided.
|
||||
.RS 4
|
||||
.Sp
|
||||
.RS 4
|
||||
|
|
Loading…
Reference in New Issue