Add new API virDomainBlockPull* to headers

Set up the types for the block pull functions and insert them into the
virDriver structure definition.  Symbols are exported in this patch to prevent
documentation compile failures.

* include/libvirt/libvirt.h.in: new API
* src/driver.h: add the new entry to the driver structure
* python/generator.py: fix compiler errors, the actual python bindings are
  implemented later
* src/libvirt_public.syms: export symbols

Signed-off-by: Adam Litke <agl@us.ibm.com>
This commit is contained in:
Adam Litke 2011-06-09 12:10:07 -05:00 committed by Eric Blake
parent 98bfdff12c
commit 7d56a16d03
4 changed files with 68 additions and 0 deletions

View File

@ -1324,6 +1324,45 @@ int virDomainDetachDeviceFlags(virDomainPtr domain,
int virDomainUpdateDeviceFlags(virDomainPtr domain,
const char *xml, unsigned int flags);
/*
* BlockPull API
*/
/* An iterator for initiating and monitoring block pull operations */
typedef unsigned long long virDomainBlockPullCursor;
typedef struct _virDomainBlockPullInfo virDomainBlockPullInfo;
struct _virDomainBlockPullInfo {
/*
* The following fields provide an indication of block pull progress. @cur
* indicates the current position and will be between 0 and @end. @end is
* the final cursor position for this operation and represents completion.
* To approximate progress, divide @cur by @end.
*/
virDomainBlockPullCursor cur;
virDomainBlockPullCursor end;
};
typedef virDomainBlockPullInfo *virDomainBlockPullInfoPtr;
int virDomainBlockPull(virDomainPtr dom,
const char *path,
virDomainBlockPullInfoPtr info,
unsigned int flags);
int virDomainBlockPullAll(virDomainPtr dom,
const char *path,
unsigned int flags);
int virDomainBlockPullAbort(virDomainPtr dom,
const char *path,
unsigned int flags);
int virDomainGetBlockPullInfo(virDomainPtr dom,
const char *path,
virDomainBlockPullInfoPtr info,
unsigned int flags);
/*
* NUMA support
*/

View File

@ -184,6 +184,8 @@ def enum(type, name, value):
functions_failed = []
functions_skipped = [
"virConnectListDomains",
'virDomainBlockPull',
'virDomainGetBlockPullInfo',
]
skipped_modules = {
@ -198,6 +200,7 @@ skipped_types = {
'virConnectDomainEventIOErrorCallback': "No function types in python",
'virConnectDomainEventGraphicsCallback': "No function types in python",
'virEventAddHandleFunc': "No function types in python",
'virDomainBlockPullInfoPtr': "Not implemented yet",
}
#######################################################################

View File

@ -644,6 +644,24 @@ typedef int
unsigned long flags,
int cancelled);
typedef int
(*virDrvDomainBlockPull)(virDomainPtr dom, const char *path,
virDomainBlockPullInfoPtr info,
unsigned int flags);
typedef int
(*virDrvDomainBlockPullAll)(virDomainPtr dom, const char *path,
unsigned int flags);
typedef int
(*virDrvDomainBlockPullAbort)(virDomainPtr dom, const char *path,
unsigned int flags);
typedef int
(*virDrvDomainGetBlockPullInfo)(virDomainPtr dom, const char *path,
virDomainBlockPullInfoPtr info,
unsigned int flags);
/**
* _virDriver:
*
@ -782,6 +800,10 @@ struct _virDriver {
virDrvDomainMigrateFinish3 domainMigrateFinish3;
virDrvDomainMigrateConfirm3 domainMigrateConfirm3;
virDrvDomainSendKey domainSendKey;
virDrvDomainBlockPull domainBlockPull;
virDrvDomainBlockPullAll domainBlockPullAll;
virDrvDomainBlockPullAbort domainBlockPullAbort;
virDrvDomainGetBlockPullInfo domainGetBlockPullInfo;
};
typedef int

View File

@ -452,6 +452,10 @@ LIBVIRT_0.9.2 {
LIBVIRT_0.9.3 {
global:
virDomainBlockPull;
virDomainBlockPullAbort;
virDomainBlockPullAll;
virDomainGetBlockPullInfo;
virDomainPinVcpuFlags;
virDomainSendKey;
virNodeGetCPUStats;