mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-14 03:35:05 +00:00
4445723811
The current API for domain events has a number of problems - Only allows for domain lifecycle change events - Does not allow the same callback to be registered multiple times - Does not allow filtering of events to a specific domain This introduces a new more general purpose domain events API typedef enum { VIR_DOMAIN_EVENT_ID_LIFECYCLE = 0, /* virConnectDomainEventCallback */ ...more events later.. } int virConnectDomainEventRegisterAny(virConnectPtr conn, virDomainPtr dom, /* Optional, to filter */ int eventID, virConnectDomainEventGenericCallback cb, void *opaque, virFreeCallback freecb); int virConnectDomainEventDeregisterAny(virConnectPtr conn, int callbackID); Since different event types can received different data in the callback, the API is defined with a generic callback. Specific events will each have a custom signature for their callback. Thus when registering an event it is neccessary to cast the callback to the generic signature eg int myDomainEventCallback(virConnectPtr conn, virDomainPtr dom, int event, int detail, void *opaque) { ... } virConnectDomainEventRegisterAny(conn, NULL, VIR_DOMAIN_EVENT_ID_LIFECYCLE, VIR_DOMAIN_EVENT_CALLBACK(myDomainEventCallback) NULL, NULL); The VIR_DOMAIN_EVENT_CALLBACK() macro simply does a "bad" cast to the generic signature * include/libvirt/libvirt.h.in: Define new APIs for registering domain events * src/driver.h: Internal driver entry points for new events APIs * src/libvirt.c: Wire up public API to driver API for events APIs * src/libvirt_public.syms: Export new APIs * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c, src/openvz/openvz_driver.c, src/phyp/phyp_driver.c, src/qemu/qemu_driver.c, src/remote/remote_driver.c, src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c, src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub out new API entries
370 lines
7.4 KiB
Plaintext
370 lines
7.4 KiB
Plaintext
#
|
|
# Officially exported symbols, for which header
|
|
# file definitions are installed in /usr/include/libvirt
|
|
# either from libvirt.h and virterror.h
|
|
#
|
|
# Versions here are *fixed* to match the libvirt version
|
|
# at which the symbol was introduced. This ensures that
|
|
# a new client app requiring symbol foo() can't accidentally
|
|
# run with old libvirt.so not providing foo() - the global
|
|
# soname version info can't enforce this since we never
|
|
# change the soname
|
|
#
|
|
LIBVIRT_0.0.3 {
|
|
global:
|
|
virConnectClose;
|
|
virConnectGetType;
|
|
virConnectGetVersion;
|
|
virConnectListDomains;
|
|
virConnectNumOfDomains;
|
|
virConnectOpen;
|
|
virConnectOpenReadOnly;
|
|
|
|
virDomainCreateLinux;
|
|
virDomainDestroy;
|
|
virDomainFree;
|
|
virDomainGetID;
|
|
virDomainGetInfo;
|
|
virDomainGetMaxMemory;
|
|
virDomainGetName;
|
|
virDomainGetOSType;
|
|
virDomainGetXMLDesc;
|
|
virDomainLookupByID;
|
|
virDomainLookupByName;
|
|
virDomainRestore;
|
|
virDomainResume;
|
|
virDomainSave;
|
|
virDomainSetMaxMemory;
|
|
virDomainShutdown;
|
|
virDomainSuspend;
|
|
|
|
virGetVersion;
|
|
};
|
|
|
|
LIBVIRT_0.0.5 {
|
|
global:
|
|
virDomainLookupByUUID;
|
|
virDomainGetUUID;
|
|
} LIBVIRT_0.0.3;
|
|
|
|
LIBVIRT_0.1.0 {
|
|
global:
|
|
virInitialize;
|
|
virNodeGetInfo;
|
|
virDomainReboot;
|
|
|
|
virCopyLastError;
|
|
virConnSetErrorFunc;
|
|
virResetLastError;
|
|
virResetError;
|
|
virConnGetLastError;
|
|
virGetLastError;
|
|
virSetErrorFunc;
|
|
virConnCopyLastError;
|
|
virConnResetLastError;
|
|
virDefaultErrorFunc;
|
|
} LIBVIRT_0.0.5;
|
|
|
|
LIBVIRT_0.1.1 {
|
|
global:
|
|
virDomainLookupByUUIDString;
|
|
virDomainGetUUIDString;
|
|
virDomainSetMemory;
|
|
virDomainDefineXML;
|
|
virDomainCreate;
|
|
virDomainUndefine;
|
|
virConnectListDefinedDomains;
|
|
} LIBVIRT_0.1.0;
|
|
|
|
LIBVIRT_0.1.4 {
|
|
global:
|
|
virDomainSetVcpus;
|
|
virDomainPinVcpu;
|
|
virDomainGetVcpus;
|
|
} LIBVIRT_0.1.1;
|
|
|
|
LIBVIRT_0.1.5 {
|
|
global:
|
|
virConnectNumOfDefinedDomains;
|
|
} LIBVIRT_0.1.4;
|
|
|
|
LIBVIRT_0.1.9 {
|
|
global:
|
|
virDomainCoreDump;
|
|
virDomainAttachDevice;
|
|
virDomainDetachDevice;
|
|
} LIBVIRT_0.1.5;
|
|
|
|
LIBVIRT_0.2.0 {
|
|
global:
|
|
virConnectNumOfNetworks;
|
|
virConnectListNetworks;
|
|
virConnectNumOfDefinedNetworks;
|
|
virConnectListDefinedNetworks;
|
|
virNetworkLookupByName;
|
|
virNetworkLookupByUUID;
|
|
virNetworkLookupByUUIDString;
|
|
virNetworkCreateXML;
|
|
virNetworkDefineXML;
|
|
virNetworkUndefine;
|
|
virNetworkCreate;
|
|
virNetworkDestroy;
|
|
virNetworkFree;
|
|
virNetworkGetName;
|
|
virNetworkGetUUID;
|
|
virNetworkGetUUIDString;
|
|
virNetworkGetXMLDesc;
|
|
virNetworkGetBridgeName;
|
|
} LIBVIRT_0.1.9;
|
|
|
|
LIBVIRT_0.2.1 {
|
|
global:
|
|
virConnectGetCapabilities;
|
|
virConnectGetMaxVcpus;
|
|
virDomainGetMaxVcpus;
|
|
virDomainGetAutostart;
|
|
virDomainSetAutostart;
|
|
virNetworkGetAutostart;
|
|
virNetworkSetAutostart;
|
|
} LIBVIRT_0.2.0;
|
|
|
|
LIBVIRT_0.2.3 {
|
|
global:
|
|
virDomainGetSchedulerType;
|
|
virDomainGetSchedulerParameters;
|
|
virDomainSetSchedulerParameters;
|
|
} LIBVIRT_0.2.1;
|
|
|
|
LIBVIRT_0.3.0 {
|
|
global:
|
|
virConnectGetHostname;
|
|
virConnectGetURI;
|
|
virDomainGetConnect;
|
|
virNetworkGetConnect;
|
|
} LIBVIRT_0.2.3;
|
|
|
|
LIBVIRT_0.3.2 {
|
|
global:
|
|
virDomainMigrate;
|
|
virDomainBlockStats;
|
|
virDomainInterfaceStats;
|
|
} LIBVIRT_0.3.0;
|
|
|
|
LIBVIRT_0.3.3 {
|
|
global:
|
|
virNodeGetCellsFreeMemory;
|
|
virNodeGetFreeMemory;
|
|
} LIBVIRT_0.3.2;
|
|
|
|
LIBVIRT_0.4.0 {
|
|
global:
|
|
virConnectOpenAuth;
|
|
virConnectAuthPtrDefault;
|
|
} LIBVIRT_0.3.3;
|
|
|
|
LIBVIRT_0.4.1 {
|
|
global:
|
|
virStoragePoolGetConnect;
|
|
virConnectNumOfStoragePools;
|
|
virConnectNumOfDefinedStoragePools;
|
|
virConnectListStoragePools;
|
|
virConnectListDefinedStoragePools;
|
|
virStoragePoolLookupByName;
|
|
virStoragePoolLookupByUUID;
|
|
virStoragePoolLookupByUUIDString;
|
|
virStoragePoolLookupByVolume;
|
|
virStoragePoolCreateXML;
|
|
virStoragePoolDefineXML;
|
|
virStoragePoolUndefine;
|
|
virStoragePoolCreate;
|
|
virStoragePoolBuild;
|
|
virStoragePoolDestroy;
|
|
virStoragePoolDelete;
|
|
virStoragePoolRefresh;
|
|
virStoragePoolFree;
|
|
virStoragePoolGetName;
|
|
virStoragePoolGetUUID;
|
|
virStoragePoolGetUUIDString;
|
|
virStoragePoolGetInfo;
|
|
virStoragePoolGetXMLDesc;
|
|
virStoragePoolSetAutostart;
|
|
virStoragePoolGetAutostart;
|
|
virStoragePoolNumOfVolumes;
|
|
virStoragePoolListVolumes;
|
|
|
|
virStorageVolGetConnect;
|
|
virStorageVolLookupByName;
|
|
virStorageVolLookupByKey;
|
|
virStorageVolLookupByPath;
|
|
virStorageVolCreateXML;
|
|
virStorageVolDelete;
|
|
virStorageVolFree;
|
|
virStorageVolGetName;
|
|
virStorageVolGetKey;
|
|
virStorageVolGetInfo;
|
|
virStorageVolGetXMLDesc;
|
|
virStorageVolGetPath;
|
|
} LIBVIRT_0.4.0;
|
|
|
|
LIBVIRT_0.4.2 {
|
|
global:
|
|
virDomainBlockPeek;
|
|
virDomainMemoryPeek;
|
|
} LIBVIRT_0.4.1;
|
|
|
|
LIBVIRT_0.4.5 {
|
|
global:
|
|
virConnectFindStoragePoolSources;
|
|
} LIBVIRT_0.4.2;
|
|
|
|
LIBVIRT_0.5.0 {
|
|
global:
|
|
virDomainCreateXML;
|
|
virEventRegisterImpl;
|
|
virConnectDomainEventRegister;
|
|
virConnectDomainEventDeregister;
|
|
|
|
virNodeNumOfDevices;
|
|
virNodeListDevices;
|
|
virNodeDeviceLookupByName;
|
|
virNodeDeviceFree;
|
|
virNodeDeviceGetXMLDesc;
|
|
virNodeDeviceGetName;
|
|
virNodeDeviceGetParent;
|
|
virNodeDeviceNumOfCaps;
|
|
virNodeDeviceListCaps;
|
|
|
|
} LIBVIRT_0.4.5;
|
|
|
|
LIBVIRT_0.6.0 {
|
|
global:
|
|
virConnectRef;
|
|
virDomainRef;
|
|
virNetworkRef;
|
|
virStoragePoolRef;
|
|
virStorageVolRef;
|
|
virNodeDeviceRef;
|
|
|
|
} LIBVIRT_0.5.0;
|
|
|
|
LIBVIRT_0.6.1 {
|
|
global:
|
|
virFreeError;
|
|
virSaveLastError;
|
|
virNodeDeviceDettach;
|
|
virNodeDeviceReAttach;
|
|
virNodeDeviceReset;
|
|
virDomainGetSecurityLabel;
|
|
virNodeGetSecurityModel;
|
|
} LIBVIRT_0.6.0;
|
|
|
|
LIBVIRT_0.6.3 {
|
|
global:
|
|
virNodeDeviceCreateXML;
|
|
virNodeDeviceDestroy;
|
|
} LIBVIRT_0.6.1;
|
|
|
|
LIBVIRT_0.6.4 {
|
|
global:
|
|
virInterfaceGetConnect;
|
|
virConnectNumOfInterfaces;
|
|
virConnectListInterfaces;
|
|
virInterfaceLookupByName;
|
|
virInterfaceLookupByMACString;
|
|
virInterfaceGetName;
|
|
virInterfaceGetMACString;
|
|
virInterfaceGetXMLDesc;
|
|
virInterfaceRef;
|
|
virInterfaceFree;
|
|
virInterfaceDefineXML;
|
|
virInterfaceUndefine;
|
|
virInterfaceCreate;
|
|
virInterfaceDestroy;
|
|
virStorageVolCreateXMLFrom;
|
|
virConnectDomainXMLFromNative;
|
|
virConnectDomainXMLToNative;
|
|
} LIBVIRT_0.6.3;
|
|
|
|
LIBVIRT_0.7.0 {
|
|
global:
|
|
virConnectNumOfDefinedInterfaces;
|
|
virConnectListDefinedInterfaces;
|
|
} LIBVIRT_0.6.4;
|
|
|
|
LIBVIRT_0.7.1 {
|
|
global:
|
|
virSecretGetConnect;
|
|
virConnectNumOfSecrets;
|
|
virConnectListSecrets;
|
|
virSecretLookupByUUID;
|
|
virSecretLookupByUUIDString;
|
|
virSecretLookupByUsage;
|
|
virSecretDefineXML;
|
|
virSecretGetUUID;
|
|
virSecretGetUUIDString;
|
|
virSecretGetUsageType;
|
|
virSecretGetUsageID;
|
|
virSecretGetXMLDesc;
|
|
virSecretSetValue;
|
|
virSecretGetValue;
|
|
virSecretUndefine;
|
|
virSecretRef;
|
|
virSecretFree;
|
|
} LIBVIRT_0.7.0;
|
|
|
|
LIBVIRT_0.7.2 {
|
|
global:
|
|
virStreamNew;
|
|
virStreamRef;
|
|
virStreamSend;
|
|
virStreamRecv;
|
|
virStreamSendAll;
|
|
virStreamRecvAll;
|
|
virStreamEventAddCallback;
|
|
virStreamEventUpdateCallback;
|
|
virStreamEventRemoveCallback;
|
|
virStreamFinish;
|
|
virStreamAbort;
|
|
virStreamFree;
|
|
virDomainMigrateToURI;
|
|
} LIBVIRT_0.7.1;
|
|
|
|
LIBVIRT_0.7.3 {
|
|
global:
|
|
virConnectGetLibVersion;
|
|
virConnectIsEncrypted;
|
|
virConnectIsSecure;
|
|
virDomainIsActive;
|
|
virDomainIsPersistent;
|
|
virNetworkIsActive;
|
|
virNetworkIsPersistent;
|
|
virStoragePoolIsActive;
|
|
virStoragePoolIsPersistent;
|
|
virInterfaceIsActive;
|
|
} LIBVIRT_0.7.2;
|
|
|
|
LIBVIRT_0.7.5 {
|
|
global:
|
|
virConnectCompareCPU;
|
|
virDomainMemoryStats;
|
|
} LIBVIRT_0.7.3;
|
|
|
|
LIBVIRT_0.7.7 {
|
|
global:
|
|
virDomainAttachDeviceFlags;
|
|
virDomainDetachDeviceFlags;
|
|
virConnectBaselineCPU;
|
|
virDomainGetJobInfo;
|
|
virDomainAbortJob;
|
|
} LIBVIRT_0.7.5;
|
|
|
|
LIBVIRT_0.7.8 {
|
|
global:
|
|
virStorageVolWipe;
|
|
virDomainMigrateSetMaxDowntime;
|
|
virConnectDomainEventRegisterAny;
|
|
virConnectDomainEventDeregisterAny;
|
|
} LIBVIRT_0.7.7;
|
|
|
|
# .... define new API here using predicted next version number ....
|