mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-09 09:14:57 +00:00
XML dump function around to make sure all entry points are centralized in libvirt.c and also avoid doc generation troubles. * docs/examples/Makefile.am docs/examples/index.py: fix the makefile a bit. * TODO: updated * docs/format.html: added a description of the XML used for the domains. * docs//*: rebuilt Daniel
264 lines
20 KiB
XML
264 lines
20 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<api name='libvirt'>
|
|
<files>
|
|
<file name='libvirt'>
|
|
<summary>core interfaces for the libvirt library</summary>
|
|
<description>Provides the interfaces of the libvirt library to handle Xen domains from a process running in domain 0 </description>
|
|
<author>Daniel Veillard <veillard@redhat.com> </author>
|
|
<exports symbol='LIBVIR_VERSION_NUMBER' type='macro'/>
|
|
<exports symbol='VIR_DOMAIN_SHUTOFF' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_DESTROY' type='enum'/>
|
|
<exports symbol='VIR_DEVICE_DEFAULT' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_RENAME_RESTART' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_PRESERVE' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_SHUTDOWN' type='enum'/>
|
|
<exports symbol='VIR_DEVICE_RO' type='enum'/>
|
|
<exports symbol='VIR_DEVICE_RW_FORCE' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_CRASHED' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_NONE' type='enum'/>
|
|
<exports symbol='VIR_DEVICE_RW' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_BLOCKED' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_PAUSED' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_RESTART' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_RUNNING' type='enum'/>
|
|
<exports symbol='VIR_DOMAIN_NOSTATE' type='enum'/>
|
|
<exports symbol='virDomainInfoPtr' type='typedef'/>
|
|
<exports symbol='virDomainKernelPtr' type='typedef'/>
|
|
<exports symbol='virConnectPtr' type='typedef'/>
|
|
<exports symbol='virDomainKernel' type='typedef'/>
|
|
<exports symbol='virDomainState' type='typedef'/>
|
|
<exports symbol='virDeviceMode' type='typedef'/>
|
|
<exports symbol='virDomain' type='typedef'/>
|
|
<exports symbol='virDomainPtr' type='typedef'/>
|
|
<exports symbol='virDomainRestart' type='typedef'/>
|
|
<exports symbol='virConnect' type='typedef'/>
|
|
<exports symbol='virDomainCreateFlags' type='typedef'/>
|
|
<exports symbol='virDomainInfo' type='typedef'/>
|
|
<exports symbol='_virDomainInfo' type='struct'/>
|
|
<exports symbol='_virDomainKernel' type='struct'/>
|
|
<exports symbol='virDomainGetInfo' type='function'/>
|
|
<exports symbol='virDomainShutdown' type='function'/>
|
|
<exports symbol='virGetVersion' type='function'/>
|
|
<exports symbol='virDomainLookupByName' type='function'/>
|
|
<exports symbol='virDomainRestore' type='function'/>
|
|
<exports symbol='virConnectGetType' type='function'/>
|
|
<exports symbol='virDomainSave' type='function'/>
|
|
<exports symbol='virConnectListDomains' type='function'/>
|
|
<exports symbol='virDomainLookupByID' type='function'/>
|
|
<exports symbol='virDomainGetOSType' type='function'/>
|
|
<exports symbol='virConnectNumOfDomains' type='function'/>
|
|
<exports symbol='virDomainSetMaxMemory' type='function'/>
|
|
<exports symbol='virDomainGetMaxMemory' type='function'/>
|
|
<exports symbol='virConnectGetVersion' type='function'/>
|
|
<exports symbol='virDomainFree' type='function'/>
|
|
<exports symbol='virConnectOpen' type='function'/>
|
|
<exports symbol='virDomainSuspend' type='function'/>
|
|
<exports symbol='virConnectClose' type='function'/>
|
|
<exports symbol='virDomainGetID' type='function'/>
|
|
<exports symbol='virDomainResume' type='function'/>
|
|
<exports symbol='virDomainCreateLinux' type='function'/>
|
|
<exports symbol='virDomainDestroy' type='function'/>
|
|
<exports symbol='virDomainGetXMLDesc' type='function'/>
|
|
<exports symbol='virDomainGetName' type='function'/>
|
|
<exports symbol='virConnectOpenReadOnly' type='function'/>
|
|
</file>
|
|
</files>
|
|
<symbols>
|
|
<macro name='LIBVIR_VERSION_NUMBER' file='libvirt'>
|
|
<info>Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro</info>
|
|
</macro>
|
|
<enum name='VIR_DEVICE_DEFAULT' file='libvirt' value='0' type='virDeviceMode' info='Default mode'/>
|
|
<enum name='VIR_DEVICE_RO' file='libvirt' value='1' type='virDeviceMode' info='Access read-only'/>
|
|
<enum name='VIR_DEVICE_RW' file='libvirt' value='2' type='virDeviceMode' info='Access read-write'/>
|
|
<enum name='VIR_DEVICE_RW_FORCE' file='libvirt' value='3' type='virDeviceMode' info=' Forced read-write even if already used'/>
|
|
<enum name='VIR_DOMAIN_BLOCKED' file='libvirt' value='2' type='virDomainState' info='the domain is blocked on resource'/>
|
|
<enum name='VIR_DOMAIN_CRASHED' file='libvirt' value='6' type='virDomainState' info=' the domain is crashed'/>
|
|
<enum name='VIR_DOMAIN_DESTROY' file='libvirt' value='1' type='virDomainRestart' info='destroy the domain'/>
|
|
<enum name='VIR_DOMAIN_NONE' file='libvirt' value='0' type='virDomainCreateFlags'/>
|
|
<enum name='VIR_DOMAIN_NOSTATE' file='libvirt' value='0' type='virDomainState' info='no state'/>
|
|
<enum name='VIR_DOMAIN_PAUSED' file='libvirt' value='3' type='virDomainState' info='the domain is paused by user'/>
|
|
<enum name='VIR_DOMAIN_PRESERVE' file='libvirt' value='3' type='virDomainRestart' info='keep as is, need manual destroy, for debug'/>
|
|
<enum name='VIR_DOMAIN_RENAME_RESTART' file='libvirt' value='4' type='virDomainRestart' info=' restart under an new unique name'/>
|
|
<enum name='VIR_DOMAIN_RESTART' file='libvirt' value='2' type='virDomainRestart' info='restart the domain'/>
|
|
<enum name='VIR_DOMAIN_RUNNING' file='libvirt' value='1' type='virDomainState' info='the domain is running'/>
|
|
<enum name='VIR_DOMAIN_SHUTDOWN' file='libvirt' value='4' type='virDomainState' info='the domain is being shut down'/>
|
|
<enum name='VIR_DOMAIN_SHUTOFF' file='libvirt' value='5' type='virDomainState' info='the domain is shut off'/>
|
|
<struct name='virConnect' file='libvirt' type='struct _virConnect'/>
|
|
<typedef name='virConnectPtr' file='libvirt' type='virConnect *'>
|
|
<info>a virConnectPtr is pointer to a virConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.</info>
|
|
</typedef>
|
|
<typedef name='virDeviceMode' file='libvirt' type='enum'/>
|
|
<struct name='virDomain' file='libvirt' type='struct _virDomain'/>
|
|
<typedef name='virDomainCreateFlags' file='libvirt' type='enum'/>
|
|
<struct name='virDomainInfo' file='libvirt' type='struct _virDomainInfo'>
|
|
<field name='state' type='unsigned char' info=' the running state, one of virDomainFlags'/>
|
|
<field name='maxMem' type='unsigned long' info=' the maximum memory in KBytes allowed'/>
|
|
<field name='memory' type='unsigned long' info=' the memory in KBytes used by the domain'/>
|
|
<field name='nrVirtCpu' type='unsigned short' info='* Informations below are only available to clients with a connection
|
|
* with full access to the hypervisor
|
|
*'/>
|
|
<field name='cpuTime' type='unsigned long long' info='* TODO:
|
|
* - check what can be extracted publicly from xenstore
|
|
* and what's private limited to the hypervisor call.
|
|
* - add padding to this structure for ABI long term protection
|
|
*'/>
|
|
</struct>
|
|
<typedef name='virDomainInfoPtr' file='libvirt' type='virDomainInfo *'>
|
|
<info>a virDomainInfoPtr is a pointer to a virDomainInfo structure.</info>
|
|
</typedef>
|
|
<struct name='virDomainKernel' file='libvirt' type='struct _virDomainKernel'>
|
|
<field name='kernel' type='const char *' info=' filename pointing to the kernel image'/>
|
|
<field name='ramdisk' type='const char *' info=' an optional init ramdisk'/>
|
|
<field name='root' type='const char *' info=' an optional root block device'/>
|
|
<field name='extra' type='const char *' info=' optional kernel command line parameters'/>
|
|
</struct>
|
|
<typedef name='virDomainKernelPtr' file='libvirt' type='virDomainKernel *'>
|
|
<info>a virDomainKernelPtr is a pointer to a virDomainKernel structure.</info>
|
|
</typedef>
|
|
<typedef name='virDomainPtr' file='libvirt' type='virDomain *'>
|
|
<info>a virDomainPtr is pointer to a virDomain private structure, this is the type used to reference a Xen domain in the API.</info>
|
|
</typedef>
|
|
<typedef name='virDomainRestart' file='libvirt' type='enum'/>
|
|
<typedef name='virDomainState' file='libvirt' type='enum'/>
|
|
<function name='virConnectClose' file='libvirt' module='libvirt'>
|
|
<info>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</info>
|
|
<return type='int' info='0 in case of success or -1 in case of error.'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
</function>
|
|
<function name='virConnectGetType' file='libvirt' module='libvirt'>
|
|
<info>Get the name of the Hypervisor software used.</info>
|
|
<return type='const char *' info='NULL in case of error, a static zero terminated string otherwise.'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
</function>
|
|
<function name='virConnectGetVersion' file='libvirt' module='libvirt'>
|
|
<info>Get the version level of the Hypervisor running. This may work only with hypervisor call, i.e. with priviledged access to the hypervisor, not with a Read-Only connection.</info>
|
|
<return type='int' info='-1 in case of error, 0 otherwise. if the version can't be extracted by lack of capacities returns 0 and @hvVer is 0, otherwise @hvVer value is major * 1,000,000 + minor * 1,000 + release'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='hvVer' type='unsigned long *' info='return value for the version of the running hypervisor (OUT)'/>
|
|
</function>
|
|
<function name='virConnectListDomains' file='libvirt' module='libvirt'>
|
|
<info>Collect the list of active domains, and store their ID in @maxids</info>
|
|
<return type='int' info='the number of domain found or -1 in case of error'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='ids' type='int *' info='array to collect the list of IDs of active domains'/>
|
|
<arg name='maxids' type='int' info='size of @ids'/>
|
|
</function>
|
|
<function name='virConnectNumOfDomains' file='libvirt' module='libvirt'>
|
|
<info>Provides the number of active domains.</info>
|
|
<return type='int' info='the number of domain found or -1 in case of error'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
</function>
|
|
<function name='virConnectOpen' file='libvirt' module='libvirt'>
|
|
<info>This function should be called first to get a connection to the Hypervisor and xen store</info>
|
|
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error'/>
|
|
<arg name='name' type='const char *' info='optional argument currently unused, pass NULL'/>
|
|
</function>
|
|
<function name='virConnectOpenReadOnly' file='libvirt' module='libvirt'>
|
|
<info>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</info>
|
|
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error'/>
|
|
<arg name='name' type='const char *' info='optional argument currently unused, pass NULL'/>
|
|
</function>
|
|
<function name='virDomainCreateLinux' file='libvirt' module='libvirt'>
|
|
<info>Launch a new Linux guest domain, based on an XML description similar to the one returned by virDomainGetXMLDesc() This function may requires priviledged access to the hypervisor.</info>
|
|
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='xmlDesc' type='const char *' info='an XML description of the domain'/>
|
|
<arg name='flags' type='unsigned int' info='an optional set of virDomainFlags'/>
|
|
</function>
|
|
<function name='virDomainDestroy' file='libvirt' module='libvirt'>
|
|
<info>Destroy the domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainFree' file='libvirt' module='libvirt'>
|
|
<info>Free the domain object. The running instance is kept alive. The data structure is freed and should not be used thereafter.</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainGetID' file='libvirt' module='libvirt'>
|
|
<info>Get the hypervisor ID number for the domain</info>
|
|
<return type='unsigned int' info='the domain ID number or (unsigned int) -1 in case of error'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainGetInfo' file='libvirt' module='libvirt'>
|
|
<info>Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the informations can be extracted.</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
<arg name='info' type='virDomainInfoPtr' info='pointer to a virDomainInfo structure allocated by the user'/>
|
|
</function>
|
|
<function name='virDomainGetMaxMemory' file='libvirt' module='libvirt'>
|
|
<info>Retrieve the maximum amount of physical memory allocated to a domain. If domain is NULL, then this get the amount of memory reserved to Domain0 i.e. the domain where the application runs.</info>
|
|
<return type='unsigned long' info='the memory size in kilobytes or 0 in case of error.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object or NULL'/>
|
|
</function>
|
|
<function name='virDomainGetName' file='libvirt' module='libvirt'>
|
|
<info>Get the public name for that domain</info>
|
|
<return type='const char *' info='a pointer to the name or NULL, the string need not be deallocated its lifetime will be the same as the domain object.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainGetOSType' file='libvirt' module='libvirt'>
|
|
<info>Get the type of domain operation system.</info>
|
|
<return type='char *' info='the new string or NULL in case of error'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainGetXMLDesc' file='libvirt' module='libvirt'>
|
|
<info>Provide an XML description of the domain. The description may be reused later to relaunch the domain with virDomainCreateLinux().</info>
|
|
<return type='char *' info='a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
<arg name='flags' type='int' info='and OR'ed set of extraction flags, not used yet'/>
|
|
</function>
|
|
<function name='virDomainLookupByID' file='libvirt' module='libvirt'>
|
|
<info>Try to find a domain based on the hypervisor ID number</info>
|
|
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='id' type='int' info='the domain ID number'/>
|
|
</function>
|
|
<function name='virDomainLookupByName' file='libvirt' module='libvirt'>
|
|
<info>Try to lookup a domain on the given hypervisor based on its name.</info>
|
|
<return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='name' type='const char *' info='name for the domain'/>
|
|
</function>
|
|
<function name='virDomainRestore' file='libvirt' module='libvirt'>
|
|
<info>This method will restore a domain saved to disk by virDomainSave().</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
|
<arg name='from' type='const char *' info='path to the'/>
|
|
</function>
|
|
<function name='virDomainResume' file='libvirt' module='libvirt'>
|
|
<info>Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires priviledged access</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainSave' file='libvirt' module='libvirt'>
|
|
<info>This method will suspend a domain and save its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use virDomainRestore() to restore a domain after saving.</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
<arg name='to' type='const char *' info='path for the output file'/>
|
|
</function>
|
|
<function name='virDomainSetMaxMemory' file='libvirt' module='libvirt'>
|
|
<info>Dynamically change the maximum amount of physical memory allocated to a domain. If domain is NULL, then this change the amount of memory reserved to Domain0 i.e. the domain where the application runs. This function requires priviledged access to the hypervisor.</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object or NULL'/>
|
|
<arg name='memory' type='unsigned long' info='the memory size in kilobytes'/>
|
|
</function>
|
|
<function name='virDomainShutdown' file='libvirt' module='libvirt'>
|
|
<info>Shutdown a domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virDomainSuspend' file='libvirt' module='libvirt'>
|
|
<info>Suspends an active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use virDomainResume() to reactivate the domain. This function may requires priviledged access.</info>
|
|
<return type='int' info='0 in case of success and -1 in case of failure.'/>
|
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
|
</function>
|
|
<function name='virGetVersion' file='libvirt' module='libvirt'>
|
|
<info>Provides two information back, @libVer is the version of the library while @typeVer will be the version of the hypervisor type @type against which the library was compiled. If @type is NULL, "Xen" is assumed, if @type is unknown or not availble, an error code will be returned and @typeVer will be 0.</info>
|
|
<return type='int' info='-1 in case of failure, 0 otherwise, and values for @libVer and @typeVer have the format major * 1,000,000 + minor * 1,000 + release.'/>
|
|
<arg name='libVer' type='unsigned long *' info='return value for the library version (OUT)'/>
|
|
<arg name='type' type='const char *' info='hypervisor type'/>
|
|
<arg name='typeVer' type='unsigned long *' info='return value for the version of the hypervisor (OUT)'/>
|
|
</function>
|
|
</symbols>
|
|
</api>
|