this was implemented only for vbox 3 series and was mostly stubs
anyway.
---
src/vbox/vbox_common.c | 20 --
src/vbox/vbox_tmpl.c | 648 ------------------------------------------
src/vbox/vbox_uniformed_api.h | 22 +-
3 files changed, 2 insertions(+), 688 deletions(-)
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index f2ac7f9..c1c7997 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -111,8 +111,6 @@ vboxDriverDispose(void *obj)
virObjectUnref(driver->caps);
virObjectUnref(driver->xmlopt);
- if (gVBoxAPI.domainEventCallbacks)
- virObjectUnref(driver->domainEventState);
}
static int
@@ -145,10 +143,6 @@ vboxDriverObjNew(void)
NULL, NULL)))
goto cleanup;
- if (gVBoxAPI.domainEventCallbacks &&
- !(driver->domainEventState = virObjectEventStateNew()))
- goto cleanup;
-
return driver;
cleanup:
@@ -199,10 +193,6 @@ vboxSdkInitialize(void)
if (gVBoxAPI.UPFN.Initialize(vbox_driver) != 0)
return -1;
- if (gVBoxAPI.domainEventCallbacks &&
- gVBoxAPI.initializeDomainEvent(vbox_driver) != 0)
- return -1;
-
if (vbox_driver->vboxObj == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("IVirtualBox object is null"));
@@ -7816,14 +7806,6 @@ virHypervisorDriver vboxCommonDriver = {
.domainScreenshot = vboxDomainScreenshot, /* 0.9.2 */
};
-static void updateDriver(void)
-{
- /* Update the vboxDriver according to the vboxUniformedAPI.
- * We need to make sure the vboxUniformedAPI is initialized
- * before calling this function. */
- gVBoxAPI.registerDomainEvent(&vboxCommonDriver);
-}
-
virHypervisorDriverPtr vboxGetHypervisorDriver(uint32_t uVersion)
{
/* Install gVBoxAPI according to the vbox API version. */
@@ -7835,7 +7817,5 @@ virHypervisorDriverPtr vboxGetHypervisorDriver(uint32_t uVersion)
return NULL;
}
- updateDriver();
-
return &vboxCommonDriver;
}
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 0eacfe3..fecd54f 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -413,646 +413,6 @@ _vboxDomainSnapshotRestore(virDomainPtr dom,
return ret;
}
-#if VBOX_API_VERSION <= 2002000 || VBOX_API_VERSION >= 4000000
- /* No Callback support for VirtualBox 2.2.* series */
- /* No Callback support for VirtualBox 4.* series */
-
-static void
-_registerDomainEvent(virHypervisorDriverPtr driver)
-{
- driver->connectDomainEventRegister = NULL;
- driver->connectDomainEventDeregister = NULL;
- driver->connectDomainEventRegisterAny = NULL;
- driver->connectDomainEventDeregisterAny = NULL;
-}
-
-#else /* !(VBOX_API_VERSION == 2002000 || VBOX_API_VERSION >= 4000000) */
-
-/* Functions needed for Callbacks */
-static nsresult PR_COM_METHOD
-vboxCallbackOnMachineStateChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId, PRUint32 state)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
- virDomainPtr dom = NULL;
-
- int event = 0;
- int detail = 0;
-
- virObjectLock(data);
-
- VIR_DEBUG("IVirtualBoxCallback: %p, State: %d", callback, state);
- DEBUGPRUnichar("machineId", machineId);
-
- if (machineId) {
- char *machineIdUtf8 = NULL;
- unsigned char uuid[VIR_UUID_BUFLEN];
-
- data->pFuncs->pfnUtf16ToUtf8(machineId, &machineIdUtf8);
- ignore_value(virUUIDParse(machineIdUtf8, uuid));
-
- dom = vboxDomainLookupByUUID(callback->conn, uuid);
- if (dom) {
- virObjectEventPtr ev;
-
- if (state == MachineState_Starting) {
- event = VIR_DOMAIN_EVENT_STARTED;
- detail = VIR_DOMAIN_EVENT_STARTED_BOOTED;
- } else if (state == MachineState_Restoring) {
- event = VIR_DOMAIN_EVENT_STARTED;
- detail = VIR_DOMAIN_EVENT_STARTED_RESTORED;
- } else if (state == MachineState_Paused) {
- event = VIR_DOMAIN_EVENT_SUSPENDED;
- detail = VIR_DOMAIN_EVENT_SUSPENDED_PAUSED;
- } else if (state == MachineState_Running) {
- event = VIR_DOMAIN_EVENT_RESUMED;
- detail = VIR_DOMAIN_EVENT_RESUMED_UNPAUSED;
- } else if (state == MachineState_PoweredOff) {
- event = VIR_DOMAIN_EVENT_STOPPED;
- detail = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
- } else if (state == MachineState_Stopping) {
- event = VIR_DOMAIN_EVENT_STOPPED;
- detail = VIR_DOMAIN_EVENT_STOPPED_DESTROYED;
- } else if (state == MachineState_Aborted) {
- event = VIR_DOMAIN_EVENT_STOPPED;
- detail = VIR_DOMAIN_EVENT_STOPPED_CRASHED;
- } else if (state == MachineState_Saving) {
- event = VIR_DOMAIN_EVENT_STOPPED;
- detail = VIR_DOMAIN_EVENT_STOPPED_SAVED;
- } else {
- event = VIR_DOMAIN_EVENT_STOPPED;
- detail = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
- }
-
- ev = virDomainEventLifecycleNewFromDom(dom, event, detail);
-
- if (ev)
- virObjectEventStateQueue(data->domainEventState, ev);
- }
- }
-
- virObjectUnlock(data);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnMachineDataChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnExtraDataCanChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId, PRUnichar *key,
- PRUnichar *value,
- PRUnichar **error ATTRIBUTE_UNUSED,
- PRBool *allowChange ATTRIBUTE_UNUSED)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p, allowChange: %s", pThis, *allowChange ?
"true" : "false");
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("key", key);
- DEBUGPRUnichar("value", value);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnExtraDataChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId,
- PRUnichar *key, PRUnichar *value)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("key", key);
- DEBUGPRUnichar("value", value);
-
- return NS_OK;
-}
-
-# if VBOX_API_VERSION < 3001000
-static nsresult PR_COM_METHOD
-vboxCallbackOnMediaRegistered(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *mediaId,
- PRUint32 mediaType ATTRIBUTE_UNUSED,
- PRBool registered ATTRIBUTE_UNUSED)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p, registered: %s", pThis, registered ?
"true" : "false");
- VIR_DEBUG("mediaType: %d", mediaType);
- DEBUGPRUnichar("mediaId", mediaId);
-
- return NS_OK;
-}
-# endif /* VBOX_API_VERSION >= 3001000 */
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnMachineRegistered(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId, PRBool registered)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
- virDomainPtr dom = NULL;
- int event = 0;
- int detail = 0;
-
- virObjectLock(data);
-
- VIR_DEBUG("IVirtualBoxCallback: %p, registered: %s", pThis, registered ?
"true" : "false");
- DEBUGPRUnichar("machineId", machineId);
-
- if (machineId) {
- char *machineIdUtf8 = NULL;
- unsigned char uuid[VIR_UUID_BUFLEN];
-
- data->pFuncs->pfnUtf16ToUtf8(machineId, &machineIdUtf8);
- ignore_value(virUUIDParse(machineIdUtf8, uuid));
-
- dom = vboxDomainLookupByUUID(callback->conn, uuid);
- if (dom) {
- virObjectEventPtr ev;
-
- /* CURRENT LIMITATION: we never get the VIR_DOMAIN_EVENT_UNDEFINED
- * event because the when the machine is de-registered the call
- * to vboxDomainLookupByUUID fails and thus we don't get any
- * dom pointer which is necessary (null dom pointer doesn't work)
- * to show the VIR_DOMAIN_EVENT_UNDEFINED event
- */
- if (registered) {
- event = VIR_DOMAIN_EVENT_DEFINED;
- detail = VIR_DOMAIN_EVENT_DEFINED_ADDED;
- } else {
- event = VIR_DOMAIN_EVENT_UNDEFINED;
- detail = VIR_DOMAIN_EVENT_UNDEFINED_REMOVED;
- }
-
- ev = virDomainEventLifecycleNewFromDom(dom, event, detail);
-
- if (ev)
- virObjectEventStateQueue(data->domainEventState, ev);
- }
- }
-
- virObjectUnlock(data);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnSessionStateChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId,
- PRUint32 state ATTRIBUTE_UNUSED)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p, state: %d", pThis, state);
- DEBUGPRUnichar("machineId", machineId);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnSnapshotTaken(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId,
- PRUnichar *snapshotId)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("snapshotId", snapshotId);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnSnapshotDiscarded(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId,
- PRUnichar *snapshotId)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("snapshotId", snapshotId);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnSnapshotChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId,
- PRUnichar *snapshotId)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("snapshotId", snapshotId);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackOnGuestPropertyChange(IVirtualBoxCallback *pThis ATTRIBUTE_UNUSED,
- PRUnichar *machineId, PRUnichar *name,
- PRUnichar *value, PRUnichar *flags)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- vboxDriverPtr data = callback->conn->privateData;
-
- VIR_DEBUG("IVirtualBoxCallback: %p", pThis);
- DEBUGPRUnichar("machineId", machineId);
- DEBUGPRUnichar("name", name);
- DEBUGPRUnichar("value", value);
- DEBUGPRUnichar("flags", flags);
-
- return NS_OK;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackAddRef(nsISupports *pThis ATTRIBUTE_UNUSED)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- nsresult c;
-
- c = ++callback->vboxCallBackRefCount;
-
- VIR_DEBUG("pThis: %p, vboxCallback AddRef: %d", pThis, c);
-
- return c;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackRelease(nsISupports *pThis)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- nsresult c;
-
- c = --callback->vboxCallBackRefCount;
- if (c == 0) {
- /* delete object */
- VIR_FREE(pThis->vtbl);
- VIR_FREE(pThis);
- }
-
- VIR_DEBUG("pThis: %p, vboxCallback Release: %d", pThis, c);
-
- return c;
-}
-
-static nsresult PR_COM_METHOD
-vboxCallbackQueryInterface(nsISupports *pThis, const nsID *iid, void **resultp)
-{
- vboxCallbackPtr callback = (vboxCallbackPtr) pThis;
- static const nsID ivirtualboxCallbackUUID = IVIRTUALBOXCALLBACK_IID;
- static const nsID isupportIID = NS_ISUPPORTS_IID;
-
- /* Match UUID for IVirtualBoxCallback class */
- if (memcmp(iid, &ivirtualboxCallbackUUID, sizeof(nsID)) == 0 ||
- memcmp(iid, &isupportIID, sizeof(nsID)) == 0) {
- callback->vboxCallBackRefCount++;
- *resultp = callback;
-
- VIR_DEBUG("pThis: %p, vboxCallback QueryInterface: %d", pThis,
callback->vboxCallBackRefCount);
-
- return NS_OK;
- }
-
-
- VIR_DEBUG("pThis: %p, vboxCallback QueryInterface didn't find a matching
interface", pThis);
- DEBUGUUID("The UUID Callback Interface expects", iid);
- DEBUGUUID("The UUID Callback Interface got",
&ivirtualboxCallbackUUID);
- return NS_NOINTERFACE;
-}
-
-
-static vboxCallbackPtr
-vboxAllocCallbackObj(virConnectPtr conn)
-{
- vboxCallbackPtr callback = NULL;
-
- /* Allocate, Initialize and return a valid
- * IVirtualBoxCallback object here
- */
- if ((VIR_ALLOC(callback) < 0) || (VIR_ALLOC(callback->vtbl) < 0)) {
- VIR_FREE(callback);
- return NULL;
- }
-
- {
- callback->vtbl->nsisupports.AddRef = &vboxCallbackAddRef;
- callback->vtbl->nsisupports.Release = &vboxCallbackRelease;
- callback->vtbl->nsisupports.QueryInterface =
&vboxCallbackQueryInterface;
- callback->vtbl->OnMachineStateChange =
&vboxCallbackOnMachineStateChange;
- callback->vtbl->OnMachineDataChange =
&vboxCallbackOnMachineDataChange;
- callback->vtbl->OnExtraDataCanChange =
&vboxCallbackOnExtraDataCanChange;
- callback->vtbl->OnExtraDataChange =
&vboxCallbackOnExtraDataChange;
-# if VBOX_API_VERSION < 3001000
- callback->vtbl->OnMediaRegistered =
&vboxCallbackOnMediaRegistered;
-# else /* VBOX_API_VERSION >= 3001000 */
-# endif /* VBOX_API_VERSION >= 3001000 */
- callback->vtbl->OnMachineRegistered =
&vboxCallbackOnMachineRegistered;
- callback->vtbl->OnSessionStateChange =
&vboxCallbackOnSessionStateChange;
- callback->vtbl->OnSnapshotTaken =
&vboxCallbackOnSnapshotTaken;
-# if VBOX_API_VERSION < 3002000
- callback->vtbl->OnSnapshotDiscarded =
&vboxCallbackOnSnapshotDiscarded;
-# else /* VBOX_API_VERSION >= 3002000 */
- callback->vtbl->OnSnapshotDeleted =
&vboxCallbackOnSnapshotDiscarded;
-# endif /* VBOX_API_VERSION >= 3002000 */
- callback->vtbl->OnSnapshotChange =
&vboxCallbackOnSnapshotChange;
- callback->vtbl->OnGuestPropertyChange =
&vboxCallbackOnGuestPropertyChange;
- callback->vboxCallBackRefCount = 1;
- }
-
- callback->conn = conn;
-
- return callback;
-}
-
-static void vboxReadCallback(int watch ATTRIBUTE_UNUSED,
- int fd,
- int events ATTRIBUTE_UNUSED,
- void *opaque)
-{
- vboxDriverPtr data = (vboxDriverPtr) opaque;
- if (fd >= 0) {
- data->vboxQueue->vtbl->ProcessPendingEvents(data->vboxQueue);
- } else {
- nsresult rc;
- PLEvent *pEvent = NULL;
-
- rc = data->vboxQueue->vtbl->WaitForEvent(data->vboxQueue,
&pEvent);
- if (NS_SUCCEEDED(rc))
- data->vboxQueue->vtbl->HandleEvent(data->vboxQueue, pEvent);
- }
-}
-
-static int
-vboxConnectDomainEventRegister(virConnectPtr conn,
- virConnectDomainEventCallback callback,
- void *opaque,
- virFreeCallback freecb)
-{
- vboxDriverPtr data = conn->privateData;
- int vboxRet = -1;
- nsresult rc;
- int ret = -1;
-
- if (!data->vboxObj)
- return ret;
-
- /* Locking has to be there as callbacks are not
- * really fully thread safe
- */
- virObjectLock(data);
-
- if (data->vboxCallback == NULL) {
- data->vboxCallback = vboxAllocCallbackObj(conn);
- if (data->vboxCallback != NULL) {
- rc = data->vboxObj->vtbl->RegisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- if (NS_SUCCEEDED(rc))
- vboxRet = 0;
- }
- } else {
- vboxRet = 0;
- }
-
- /* Get the vbox file handle and add an event handle to it
- * so that the events can be passed down to the user
- */
- if (vboxRet == 0) {
- if (data->fdWatch < 0) {
- PRInt32 vboxFileHandle;
- vboxFileHandle =
data->vboxQueue->vtbl->GetEventQueueSelectFD(data->vboxQueue);
-
- data->fdWatch = virEventAddHandle(vboxFileHandle,
VIR_EVENT_HANDLE_READABLE, vboxReadCallback, data, NULL);
- }
-
- if (data->fdWatch >= 0) {
- /* Once a callback is registered with virtualbox, use a list
- * to store the callbacks registered with libvirt so that
- * later you can iterate over them
- */
-
- ret = virDomainEventStateRegister(conn, data->domainEventState,
- callback, opaque, freecb);
- VIR_DEBUG("virObjectEventStateRegister (ret = %d) (conn: %p, "
- "callback: %p, opaque: %p, "
- "freecb: %p)", ret, conn, callback,
- opaque, freecb);
- }
- }
-
- virObjectUnlock(data);
-
- if (ret >= 0) {
- return 0;
- } else {
- if (data->vboxObj && data->vboxCallback)
- data->vboxObj->vtbl->UnregisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- return -1;
- }
-}
-
-static int
-vboxConnectDomainEventDeregister(virConnectPtr conn,
- virConnectDomainEventCallback callback)
-{
- vboxDriverPtr data = conn->privateData;
- int cnt;
- int ret = -1;
-
- if (!data->vboxObj)
- return ret;
-
- /* Locking has to be there as callbacks are not
- * really fully thread safe
- */
- virObjectLock(data);
-
- cnt = virDomainEventStateDeregister(conn, data->domainEventState,
- callback);
-
- if (data->vboxCallback && cnt == 0) {
- data->vboxObj->vtbl->UnregisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- VBOX_RELEASE(data->vboxCallback);
-
- /* Remove the Event file handle on which we are listening as well */
- virEventRemoveHandle(data->fdWatch);
- data->fdWatch = -1;
- }
-
- virObjectUnlock(data);
-
- if (cnt >= 0)
- ret = 0;
-
- return ret;
-}
-
-static int vboxConnectDomainEventRegisterAny(virConnectPtr conn,
- virDomainPtr dom,
- int eventID,
- virConnectDomainEventGenericCallback
callback,
- void *opaque,
- virFreeCallback freecb)
-{
- vboxDriverPtr data = conn->privateData;
- int vboxRet = -1;
- nsresult rc;
- int ret = -1;
-
- if (!data->vboxObj)
- return ret;
-
- /* Locking has to be there as callbacks are not
- * really fully thread safe
- */
- virObjectLock(data);
-
- if (data->vboxCallback == NULL) {
- data->vboxCallback = vboxAllocCallbackObj(conn);
- if (data->vboxCallback != NULL) {
- rc = data->vboxObj->vtbl->RegisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- if (NS_SUCCEEDED(rc))
- vboxRet = 0;
- }
- } else {
- vboxRet = 0;
- }
-
- /* Get the vbox file handle and add an event handle to it
- * so that the events can be passed down to the user
- */
- if (vboxRet == 0) {
- if (data->fdWatch < 0) {
- PRInt32 vboxFileHandle;
- vboxFileHandle =
data->vboxQueue->vtbl->GetEventQueueSelectFD(data->vboxQueue);
-
- data->fdWatch = virEventAddHandle(vboxFileHandle,
VIR_EVENT_HANDLE_READABLE, vboxReadCallback, data, NULL);
- }
-
- if (data->fdWatch >= 0) {
- /* Once a callback is registered with virtualbox, use a list
- * to store the callbacks registered with libvirt so that
- * later you can iterate over them
- */
-
- if (virDomainEventStateRegisterID(conn, data->domainEventState,
- dom, eventID,
- callback, opaque, freecb, &ret) <
0)
- ret = -1;
- VIR_DEBUG("virDomainEventStateRegisterID (ret = %d) (conn: %p, "
- "callback: %p, opaque: %p, "
- "freecb: %p)", ret, conn, callback,
- opaque, freecb);
- }
- }
-
- virObjectUnlock(data);
-
- if (ret >= 0) {
- return ret;
- } else {
- if (data->vboxObj && data->vboxCallback)
- data->vboxObj->vtbl->UnregisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- return -1;
- }
-}
-
-static int
-vboxConnectDomainEventDeregisterAny(virConnectPtr conn,
- int callbackID)
-{
- vboxDriverPtr data = conn->privateData;
- int cnt;
- int ret = -1;
-
- if (!data->vboxObj)
- return ret;
-
- /* Locking has to be there as callbacks are not
- * really fully thread safe
- */
- virObjectLock(data);
-
- cnt = virObjectEventStateDeregisterID(conn, data->domainEventState,
- callbackID);
-
- if (data->vboxCallback && cnt == 0) {
- data->vboxObj->vtbl->UnregisterCallback(data->vboxObj,
- (IVirtualBoxCallback *)
data->vboxCallback);
- VBOX_RELEASE(data->vboxCallback);
-
- /* Remove the Event file handle on which we are listening as well */
- virEventRemoveHandle(data->fdWatch);
- data->fdWatch = -1;
- }
-
- virObjectUnlock(data);
-
- if (cnt >= 0)
- ret = 0;
-
- return ret;
-}
-
-static void
-_registerDomainEvent(virHypervisorDriverPtr driver)
-{
- driver->connectDomainEventRegister = vboxConnectDomainEventRegister; /* 0.7.0 */
- driver->connectDomainEventDeregister = vboxConnectDomainEventDeregister; /* 0.7.0
*/
- driver->connectDomainEventRegisterAny = vboxConnectDomainEventRegisterAny; /*
0.8.0 */
- driver->connectDomainEventDeregisterAny = vboxConnectDomainEventDeregisterAny; /*
0.8.0 */
-}
-
-#endif /* !(VBOX_API_VERSION == 2002000 || VBOX_API_VERSION >= 4000000) */
-
-static int
-_initializeDomainEvent(vboxDriverPtr data ATTRIBUTE_UNUSED)
-{
-#if VBOX_API_VERSION <= 2002000 || VBOX_API_VERSION >= 4000000
- /* No event queue functionality in 2.2.* and 4.* as of now */
- vboxUnsupported();
-#else /* VBOX_API_VERSION > 2002000 || VBOX_API_VERSION < 4000000 */
- /* Initialize the fWatch needed for Event Callbacks */
- data->fdWatch = -1;
- data->pFuncs->pfnGetEventQueue(&data->vboxQueue);
- if (data->vboxQueue == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("nsIEventQueue object is null"));
- return -1;
- }
-#endif /* VBOX_API_VERSION > 2002000 || VBOX_API_VERSION < 4000000 */
- return 0;
-}
-
static void
_detachDevices(vboxDriverPtr data ATTRIBUTE_UNUSED,
IMachine *machine ATTRIBUTE_UNUSED,
@@ -3302,7 +2662,6 @@ void NAME(InstallUniformedAPI)(vboxUniformedAPI *pVBoxAPI)
{
pVBoxAPI->APIVersion = VBOX_API_VERSION;
pVBoxAPI->XPCOMCVersion = VBOX_XPCOMC_VERSION;
- pVBoxAPI->initializeDomainEvent = _initializeDomainEvent;
pVBoxAPI->detachDevices = _detachDevices;
pVBoxAPI->unregisterMachine = _unregisterMachine;
pVBoxAPI->deleteConfig = _deleteConfig;
@@ -3315,7 +2674,6 @@ void NAME(InstallUniformedAPI)(vboxUniformedAPI *pVBoxAPI)
pVBoxAPI->attachFloppy = _attachFloppy;
pVBoxAPI->detachFloppy = _detachFloppy;
pVBoxAPI->snapshotRestore = _vboxDomainSnapshotRestore;
- pVBoxAPI->registerDomainEvent = _registerDomainEvent;
pVBoxAPI->UPFN = _UPFN;
pVBoxAPI->UIID = _UIID;
pVBoxAPI->UArray = _UArray;
@@ -3346,12 +2704,6 @@ void NAME(InstallUniformedAPI)(vboxUniformedAPI *pVBoxAPI)
pVBoxAPI->UIKeyboard = _UIKeyboard;
pVBoxAPI->machineStateChecker = _machineStateChecker;
-#if VBOX_API_VERSION <= 2002000 || VBOX_API_VERSION >= 4000000
- pVBoxAPI->domainEventCallbacks = 0;
-#else /* VBOX_API_VERSION > 2002000 || VBOX_API_VERSION < 4000000 */
- pVBoxAPI->domainEventCallbacks = 1;
-#endif /* VBOX_API_VERSION > 2002000 || VBOX_API_VERSION < 4000000 */
-
#if VBOX_API_VERSION >= 4001000
pVBoxAPI->chipsetType = 1;
#else /* VBOX_API_VERSION < 4001000 */
diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h
index abb8486..9c9aff9 100644
--- a/src/vbox/vbox_uniformed_api.h
+++ b/src/vbox/vbox_uniformed_api.h
@@ -27,7 +27,7 @@
*
* The vbox_tmpl.c is the only place where the driver knows the inside
* architecture of those vbox structs(vboxObj, vboxSession,
- * pFuncs, vboxCallback and vboxQueue). The file should be included
+ * pFuncs, and vboxCallback). The file should be included
* after the currect vbox_CAPI_v*.h, then we can use the vbox structs
* in vboxGlobalData. The vbox_tmpl.c should implement functions
* defined in vboxUniformedAPI.
@@ -36,7 +36,7 @@
* The vbox_driver.c collects vboxUniformedAPI for all versions.
* Then vboxRegister calls the vboxRegisterUniformedAPI to register.
* Note: In vbox_driver.c, the vbox structs in vboxGlobalData is
- * defined by vbox_CAPI_v2.2.h.
+ * defined by vbox_CAPI_v4_0.h.
*
* The vbox_common.c, it is used to generate common codes for all vbox
* versions. Bacause the same member varible's offset in a vbox struct
@@ -96,14 +96,6 @@ typedef union {
PRInt32 resultCode;
} resultCodeUnion;
-struct _vboxCallback {
- struct IVirtualBoxCallback_vtbl *vtbl;
- virConnectPtr conn;
- int vboxCallBackRefCount;
-};
-
-typedef struct _vboxCallback vboxCallback;
-typedef struct _vboxCallback *vboxCallbackPtr;
struct _vboxDriver {
virObjectLockable parent;
@@ -120,13 +112,6 @@ struct _vboxDriver {
IVirtualBoxClient *vboxClient;
# endif
- int fdWatch;
- vboxCallbackPtr vboxCallback;
-# if VBOX_API_VERSION > 2002000 && VBOX_API_VERSION < 4000000
- nsIEventQueue *vboxQueue;
-# else
- void *vboxQueue;
-# endif
unsigned long version;
/* reference counting of vbox connections */
@@ -548,7 +533,6 @@ typedef struct {
uint32_t APIVersion;
uint32_t XPCOMCVersion;
/* vbox APIs */
- int (*initializeDomainEvent)(vboxDriverPtr driver);
void (*detachDevices)(vboxDriverPtr driver, IMachine *machine, PRUnichar
*hddcnameUtf16);
nsresult (*unregisterMachine)(vboxDriverPtr driver, vboxIIDUnion *iidu, IMachine
**machine);
void (*deleteConfig)(IMachine *machine);
@@ -562,7 +546,6 @@ typedef struct {
int (*attachFloppy)(vboxDriverPtr driver, IMachine *machine, const char *src);
int (*detachFloppy)(IMachine *machine);
int (*snapshotRestore)(virDomainPtr dom, IMachine *machine, ISnapshot *snapshot);
- void (*registerDomainEvent)(virHypervisorDriverPtr driver);
vboxUniformedPFN UPFN;
vboxUniformedIID UIID;
vboxUniformedArray UArray;
@@ -593,7 +576,6 @@ typedef struct {
vboxUniformedIKeyboard UIKeyboard;
uniformedMachineStateChecker machineStateChecker;
/* vbox API features */
- bool domainEventCallbacks;
bool chipsetType;
bool accelerate2DVideo;
bool oldMediumInterface;
--
2.9.3