This removes most of the code wrapped in VBOX_API_VERSION < 4000000
preprocessor checks. Those are the ones that can be safely removed
without needing to update driver code to accomodate it.
---
src/vbox/vbox_tmpl.c | 1390 +++-----------------------------------------------
1 file changed, 57 insertions(+), 1333 deletions(-)
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 0e22e1c..7fcf213 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -72,11 +72,8 @@
/* Include this *last* or we'll get the wrong vbox_CAPI_*.h. */
#include "vbox_glue.h"
-#if VBOX_API_VERSION < 4000000
-typedef IVRDPServer IVRDxServer;
-#else /* VBOX_API_VERSION >= 4000000 */
typedef IVRDEServer IVRDxServer;
-#endif /* VBOX_API_VERSION >= 4000000 */
+typedef IMedium IHardDisk;
#if VBOX_API_VERSION < 4003000
typedef IUSBController IUSBCommon;
@@ -84,11 +81,6 @@ typedef IUSBController IUSBCommon;
typedef IUSBDeviceFilters IUSBCommon;
#endif /* VBOX_API_VERSION >= 4003000 */
-#if VBOX_API_VERSION < 3001000
-typedef IHardDiskAttachment IMediumAttachment;
-#else /* VBOX_API_VERSION >= 3001000 */
-typedef IMedium IHardDisk;
-#endif /* VBOX_API_VERSION >= 3001000 */
#include "vbox_uniformed_api.h"
@@ -126,13 +118,7 @@ VIR_LOG_INIT("vbox.vbox_tmpl");
} \
} while (0)
-#if VBOX_API_VERSION < 3001000
-# define VBOX_MEDIUM_RELEASE(arg) \
-if (arg)\
- (arg)->vtbl->imedium.nsisupports.Release((nsISupports *)(arg))
-#else /* VBOX_API_VERSION >= 3001000 */
-# define VBOX_MEDIUM_RELEASE(arg) VBOX_RELEASE(arg)
-#endif /* VBOX_API_VERSION >= 3001000 */
+#define VBOX_MEDIUM_RELEASE(arg) VBOX_RELEASE(arg)
#define DEBUGPRUnichar(msg, strUtf16) \
if (strUtf16) {\
@@ -161,295 +147,12 @@ if (strUtf16) {\
(unsigned)(iid)->m3[7]);\
}\
-#if VBOX_API_VERSION < 4000000
-
-# define VBOX_SESSION_OPEN(/* in */ iid_value, /* unused */ machine) \
- data->vboxObj->vtbl->OpenSession(data->vboxObj, data->vboxSession,
iid_value)
-
-# define VBOX_SESSION_CLOSE() \
- data->vboxSession->vtbl->Close(data->vboxSession)
-
-#else /* VBOX_API_VERSION >= 4000000 */
-
-# define VBOX_SESSION_OPEN(/* unused */ iid_value, /* in */ machine) \
+#define VBOX_SESSION_OPEN(/* unused */ iid_value, /* in */ machine) \
machine->vtbl->LockMachine(machine, data->vboxSession, LockType_Write)
-# define VBOX_SESSION_CLOSE() \
+#define VBOX_SESSION_CLOSE() \
data->vboxSession->vtbl->UnlockMachine(data->vboxSession)
-#endif /* VBOX_API_VERSION >= 4000000 */
-
-#if VBOX_API_VERSION == 2002000
-
-static void nsIDtoChar(unsigned char *uuid, const nsID *iid)
-{
- char uuidstrsrc[VIR_UUID_STRING_BUFLEN];
- char uuidstrdst[VIR_UUID_STRING_BUFLEN];
- unsigned char uuidinterim[VIR_UUID_BUFLEN];
- size_t i;
-
- memcpy(uuidinterim, iid, VIR_UUID_BUFLEN);
- virUUIDFormat(uuidinterim, uuidstrsrc);
-
- uuidstrdst[0] = uuidstrsrc[6];
- uuidstrdst[1] = uuidstrsrc[7];
- uuidstrdst[2] = uuidstrsrc[4];
- uuidstrdst[3] = uuidstrsrc[5];
- uuidstrdst[4] = uuidstrsrc[2];
- uuidstrdst[5] = uuidstrsrc[3];
- uuidstrdst[6] = uuidstrsrc[0];
- uuidstrdst[7] = uuidstrsrc[1];
-
- uuidstrdst[8] = uuidstrsrc[8];
-
- uuidstrdst[9] = uuidstrsrc[11];
- uuidstrdst[10] = uuidstrsrc[12];
- uuidstrdst[11] = uuidstrsrc[9];
- uuidstrdst[12] = uuidstrsrc[10];
-
- uuidstrdst[13] = uuidstrsrc[13];
-
- uuidstrdst[14] = uuidstrsrc[16];
- uuidstrdst[15] = uuidstrsrc[17];
- uuidstrdst[16] = uuidstrsrc[14];
- uuidstrdst[17] = uuidstrsrc[15];
-
- for (i = 18; i < VIR_UUID_STRING_BUFLEN; i++)
- uuidstrdst[i] = uuidstrsrc[i];
-
- uuidstrdst[VIR_UUID_STRING_BUFLEN-1] = '\0';
- ignore_value(virUUIDParse(uuidstrdst, uuid));
-}
-
-static void nsIDFromChar(nsID *iid, const unsigned char *uuid)
-{
- char uuidstrsrc[VIR_UUID_STRING_BUFLEN];
- char uuidstrdst[VIR_UUID_STRING_BUFLEN];
- unsigned char uuidinterim[VIR_UUID_BUFLEN];
- size_t i;
-
- virUUIDFormat(uuid, uuidstrsrc);
-
- uuidstrdst[0] = uuidstrsrc[6];
- uuidstrdst[1] = uuidstrsrc[7];
- uuidstrdst[2] = uuidstrsrc[4];
- uuidstrdst[3] = uuidstrsrc[5];
- uuidstrdst[4] = uuidstrsrc[2];
- uuidstrdst[5] = uuidstrsrc[3];
- uuidstrdst[6] = uuidstrsrc[0];
- uuidstrdst[7] = uuidstrsrc[1];
-
- uuidstrdst[8] = uuidstrsrc[8];
-
- uuidstrdst[9] = uuidstrsrc[11];
- uuidstrdst[10] = uuidstrsrc[12];
- uuidstrdst[11] = uuidstrsrc[9];
- uuidstrdst[12] = uuidstrsrc[10];
-
- uuidstrdst[13] = uuidstrsrc[13];
-
- uuidstrdst[14] = uuidstrsrc[16];
- uuidstrdst[15] = uuidstrsrc[17];
- uuidstrdst[16] = uuidstrsrc[14];
- uuidstrdst[17] = uuidstrsrc[15];
-
- for (i = 18; i < VIR_UUID_STRING_BUFLEN; i++)
- uuidstrdst[i] = uuidstrsrc[i];
-
- uuidstrdst[VIR_UUID_STRING_BUFLEN-1] = '\0';
- ignore_value(virUUIDParse(uuidstrdst, uuidinterim));
- memcpy(iid, uuidinterim, VIR_UUID_BUFLEN);
-}
-
-# ifdef WIN32
-
-typedef struct _vboxIID_v2_x_WIN32 vboxIID;
-typedef struct _vboxIID_v2_x_WIN32 vboxIID_v2_x_WIN32;
-
-# define VBOX_IID_INITIALIZER { { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } } }
-# define IID_MEMBER(name) (iidu->vboxIID_v2_x_WIN32.name)
-
-static void
-vboxIIDUnalloc_v2_x_WIN32(vboxDriverPtr data ATTRIBUTE_UNUSED,
- vboxIID_v2_x_WIN32 *iid ATTRIBUTE_UNUSED)
-{
- /* Nothing to free */
-}
-
-static void
-_vboxIIDUnalloc(vboxDriverPtr data ATTRIBUTE_UNUSED,
- vboxIIDUnion *iid ATTRIBUTE_UNUSED)
-{
- /* Nothing to free */
-}
-
-static void
-vboxIIDToUUID_v2_x_WIN32(vboxIID_v2_x_WIN32 *iid, unsigned char *uuid)
-{
- nsIDtoChar(uuid, (nsID *)&iid->value);
-}
-
-static void
-_vboxIIDToUUID(vboxDriverPtr data ATTRIBUTE_UNUSED, vboxIIDUnion *iidu, unsigned char
*uuid)
-{
- vboxIIDToUUID_v2_x_WIN32(&iidu->vboxIID_v2_x_WIN32, uuid);
-}
-
-static void
-vboxIIDFromUUID_v2_x_WIN32(vboxDriverPtr data, vboxIID_v2_x_WIN32 *iid,
- const unsigned char *uuid)
-{
- vboxIIDUnalloc_v2_x_WIN32(data, iid);
-
- nsIDFromChar((nsID *)&iid->value, uuid);
-}
-
-static void
-_vboxIIDFromUUID(vboxDriverPtr data, vboxIIDUnion *iidu,
- const unsigned char *uuid)
-{
- vboxIIDFromUUID_v2_x_WIN32(data, &iidu->vboxIID_v2_x_WIN32, uuid);
-}
-
-static bool
-vboxIIDIsEqual_v2_x_WIN32(vboxIID_v2_x_WIN32 *iid1, vboxIID_v2_x_WIN32 *iid2)
-{
- return memcmp(&iid1->value, &iid2->value, sizeof(GUID)) == 0;
-}
-
-static bool
-_vboxIIDIsEqual(vboxDriverPtr data ATTRIBUTE_UNUSED, vboxIIDUnion *iidu1, vboxIIDUnion
*iidu2)
-{
- return vboxIIDIsEqual_v2_x_WIN32(&iidu1->vboxIID_v2_x_WIN32,
&iidu2->vboxIID_v2_x_WIN32);
-}
-
-static void
-vboxIIDFromArrayItem_v2_x_WIN32(vboxDriverPtr data, vboxIID_v2_x_WIN32 *iid,
- vboxArray *array, int idx)
-{
- GUID *items = (GUID *)array->items;
-
- vboxIIDUnalloc_v2_x_WIN32(data, iid);
-
- memcpy(&iid->value, &items[idx], sizeof(GUID));
-}
-
-static void
-_vboxIIDFromArrayItem(vboxDriverPtr data, vboxIIDUnion *iidu,
- vboxArray *array, int idx)
-{
- vboxIIDFromArrayItem_v2_x_WIN32(data, &iidu->vboxIID_v2_x_WIN32, array, idx);
-}
-
-# define vboxIIDUnalloc(iid) vboxIIDUnalloc_v2_x_WIN32(data, iid)
-# define vboxIIDToUUID(iid, uuid) vboxIIDToUUID_v2_x_WIN32(iid, uuid)
-# define vboxIIDFromUUID(iid, uuid) vboxIIDFromUUID_v2_x_WIN32(data, iid, uuid)
-# define vboxIIDIsEqual(iid1, iid2) vboxIIDIsEqual_v2_x_WIN32(iid1, iid2)
-# define vboxIIDFromArrayItem(iid, array, idx) \
- vboxIIDFromArrayItem_v2_x_WIN32(data, iid, array, idx)
-# define DEBUGIID(msg, iid) DEBUGUUID(msg, (nsID *)&(iid))
-
-# else /* !WIN32 */
-
-typedef struct _vboxIID_v2_x vboxIID;
-typedef struct _vboxIID_v2_x vboxIID_v2_x;
-
-# define VBOX_IID_INITIALIZER { NULL, { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } } }
-# define IID_MEMBER(name) (iidu->vboxIID_v2_x.name)
-
-static void
-vboxIIDUnalloc_v2_x(vboxDriverPtr data, vboxIID_v2_x *iid)
-{
- if (iid->value == NULL)
- return;
-
- if (iid->value != &iid->backing)
- data->pFuncs->pfnComUnallocMem(iid->value);
-
- iid->value = NULL;
-}
-
-static void
-_vboxIIDUnalloc(vboxDriverPtr data, vboxIIDUnion *iidu)
-{
- vboxIIDUnalloc_v2_x(data, &iidu->vboxIID_v2_x);
-}
-
-static void
-vboxIIDToUUID_v2_x(vboxIID_v2_x *iid, unsigned char *uuid)
-{
- nsIDtoChar(uuid, iid->value);
-}
-
-static void
-_vboxIIDToUUID(vboxDriverPtr data ATTRIBUTE_UNUSED,
- vboxIIDUnion *iidu, unsigned char *uuid)
-{
- vboxIIDToUUID_v2_x(&iidu->vboxIID_v2_x, uuid);
-}
-
-static void
-vboxIIDFromUUID_v2_x(vboxDriverPtr data, vboxIID_v2_x *iid,
- const unsigned char *uuid)
-{
- vboxIIDUnalloc_v2_x(data, iid);
-
- iid->value = &iid->backing;
-
- sa_assert(iid->value);
- nsIDFromChar(iid->value, uuid);
-}
-
-static void
-_vboxIIDFromUUID(vboxDriverPtr data, vboxIIDUnion *iidu,
- const unsigned char *uuid)
-{
- vboxIIDFromUUID_v2_x(data, &iidu->vboxIID_v2_x, uuid);
-}
-
-static bool
-vboxIIDIsEqual_v2_x(vboxIID_v2_x *iid1, vboxIID_v2_x *iid2)
-{
- return memcmp(iid1->value, iid2->value, sizeof(nsID)) == 0;
-}
-
-static bool
-_vboxIIDIsEqual(vboxDriverPtr data ATTRIBUTE_UNUSED,
- vboxIIDUnion *iidu1, vboxIIDUnion *iidu2)
-{
- return vboxIIDIsEqual_v2_x(&iidu1->vboxIID_v2_x,
&iidu2->vboxIID_v2_x);
-}
-
-static void
-vboxIIDFromArrayItem_v2_x(vboxDriverPtr data, vboxIID_v2_x *iid,
- vboxArray *array, int idx)
-{
- vboxIIDUnalloc_v2_x(data, iid);
-
- iid->value = &iid->backing;
-
- memcpy(iid->value, array->items[idx], sizeof(nsID));
-}
-
-static void
-_vboxIIDFromArrayItem(vboxDriverPtr data, vboxIIDUnion *iidu,
- vboxArray *array, int idx)
-{
- vboxIIDFromArrayItem_v2_x(data, &iidu->vboxIID_v2_x, array, idx);
-}
-
-# define vboxIIDUnalloc(iid) vboxIIDUnalloc_v2_x(data, iid)
-# define vboxIIDToUUID(iid, uuid) vboxIIDToUUID_v2_x(iid, uuid)
-# define vboxIIDFromUUID(iid, uuid) vboxIIDFromUUID_v2_x(data, iid, uuid)
-# define vboxIIDIsEqual(iid1, iid2) vboxIIDIsEqual_v2_x(iid1, iid2)
-# define vboxIIDFromArrayItem(iid, array, idx) \
- vboxIIDFromArrayItem_v2_x(data, iid, array, idx)
-# define DEBUGIID(msg, iid) DEBUGUUID(msg, iid)
-
-# endif /* !WIN32 */
-
-#else /* VBOX_API_VERSION != 2002000 */
-
typedef struct _vboxIID_v3_x vboxIID;
typedef struct _vboxIID_v3_x vboxIID_v3_x;
@@ -562,132 +265,6 @@ _vboxIIDFromArrayItem(vboxDriverPtr data, vboxIIDUnion *iidu,
vboxIIDFromArrayItem_v3_x(data, iid, array, idx)
# define DEBUGIID(msg, strUtf16) DEBUGPRUnichar(msg, strUtf16)
-#endif /* !(VBOX_API_VERSION == 2002000) */
-
-/**
- * function to get the StorageBus, Port number
- * and Device number for the given devicename
- * e.g: hda has StorageBus = IDE, port = 0,
- * device = 0
- *
- * @returns true on Success, false on failure.
- * @param deviceName Input device name
- * @param aMaxPortPerInst Input array of max port per device instance
- * @param aMaxSlotPerPort Input array of max slot per device port
- * @param storageBus Input storage bus type
- * @param deviceInst Output device instance number
- * @param devicePort Output port number
- * @param deviceSlot Output slot number
- *
- */
-#if VBOX_API_VERSION >= 3001000
-# if VBOX_API_VERSION < 4000000
-/* Only 3.x will use this function. */
-static bool vboxGetDeviceDetails(const char *deviceName,
- PRUint32 *aMaxPortPerInst,
- PRUint32 *aMaxSlotPerPort,
- PRUint32 storageBus,
- PRInt32 *deviceInst,
- PRInt32 *devicePort,
- PRInt32 *deviceSlot)
-{
- int total = 0;
- PRUint32 maxPortPerInst = 0;
- PRUint32 maxSlotPerPort = 0;
-
- if (!deviceName ||
- !deviceInst ||
- !devicePort ||
- !deviceSlot ||
- !aMaxPortPerInst ||
- !aMaxSlotPerPort)
- return false;
-
- if ((storageBus < StorageBus_IDE) ||
- (storageBus > StorageBus_Floppy))
- return false;
-
- total = virDiskNameToIndex(deviceName);
-
- maxPortPerInst = aMaxPortPerInst[storageBus];
- maxSlotPerPort = aMaxSlotPerPort[storageBus];
-
- if (!maxPortPerInst ||
- !maxSlotPerPort ||
- (total < 0))
- return false;
-
- *deviceInst = total / (maxPortPerInst * maxSlotPerPort);
- *devicePort = (total % (maxPortPerInst * maxSlotPerPort)) / maxSlotPerPort;
- *deviceSlot = (total % (maxPortPerInst * maxSlotPerPort)) % maxSlotPerPort;
-
- VIR_DEBUG("name=%s, total=%d, storageBus=%u, deviceInst=%d, "
- "devicePort=%d deviceSlot=%d, maxPortPerInst=%u maxSlotPerPort=%u",
- deviceName, total, storageBus, *deviceInst, *devicePort,
- *deviceSlot, maxPortPerInst, maxSlotPerPort);
-
- return true;
-}
-
-/**
- * function to get the values for max port per
- * instance and max slots per port for the devices
- *
- * @returns true on Success, false on failure.
- * @param vbox Input IVirtualBox pointer
- * @param maxPortPerInst Output array of max port per instance
- * @param maxSlotPerPort Output array of max slot per port
- *
- */
-
-/* This function would not be used in 4.1 and later since
- * vboxDomainSnapshotGetXMLDesc is written*/
-static bool vboxGetMaxPortSlotValues(IVirtualBox *vbox,
- PRUint32 *maxPortPerInst,
- PRUint32 *maxSlotPerPort)
-{
- ISystemProperties *sysProps = NULL;
-
- if (!vbox)
- return false;
-
- vbox->vtbl->GetSystemProperties(vbox, &sysProps);
-
- if (!sysProps)
- return false;
-
- sysProps->vtbl->GetMaxPortCountForStorageBus(sysProps,
- StorageBus_IDE,
- &maxPortPerInst[StorageBus_IDE]);
- sysProps->vtbl->GetMaxPortCountForStorageBus(sysProps,
- StorageBus_SATA,
- &maxPortPerInst[StorageBus_SATA]);
- sysProps->vtbl->GetMaxPortCountForStorageBus(sysProps,
- StorageBus_SCSI,
- &maxPortPerInst[StorageBus_SCSI]);
- sysProps->vtbl->GetMaxPortCountForStorageBus(sysProps,
- StorageBus_Floppy,
-
&maxPortPerInst[StorageBus_Floppy]);
-
- sysProps->vtbl->GetMaxDevicesPerPortForStorageBus(sysProps,
- StorageBus_IDE,
-
&maxSlotPerPort[StorageBus_IDE]);
- sysProps->vtbl->GetMaxDevicesPerPortForStorageBus(sysProps,
- StorageBus_SATA,
-
&maxSlotPerPort[StorageBus_SATA]);
- sysProps->vtbl->GetMaxDevicesPerPortForStorageBus(sysProps,
- StorageBus_SCSI,
-
&maxSlotPerPort[StorageBus_SCSI]);
- sysProps->vtbl->GetMaxDevicesPerPortForStorageBus(sysProps,
- StorageBus_Floppy,
-
&maxSlotPerPort[StorageBus_Floppy]);
-
- VBOX_RELEASE(sysProps);
-
- return true;
-}
-# endif /* VBOX_API_VERSION < 4000000 */
-
/**
* Converts Utf-16 string to int
*/
@@ -725,8 +302,6 @@ static PRUnichar *PRUnicharFromInt(PCVBOXXPCOM pFuncs, int n) {
return strUtf16;
}
-#endif /* VBOX_API_VERSION >= 3001000 */
-
static virDomainState _vboxConvertState(PRUint32 state)
{
switch (state) {
@@ -1233,41 +808,6 @@ _vboxAttachDrivesOld(virDomainDefPtr def ATTRIBUTE_UNUSED,
#endif /* VBOX_API_VERSION >= 4000000 */
-#if VBOX_API_VERSION < 3001000
-static int
-_vboxDomainSnapshotRestore(virDomainPtr dom,
- IMachine *machine,
- ISnapshot *snapshot)
-{
- vboxDriverPtr data = dom->conn->privateData;
- vboxIID iid = VBOX_IID_INITIALIZER;
- nsresult rc;
- int ret = -1;
-
- if (!data->vboxObj)
- return ret;
-
- rc = snapshot->vtbl->GetId(snapshot, &iid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("could not get snapshot UUID"));
- goto cleanup;
- }
-
- rc = machine->vtbl->SetCurrentSnapshot(machine, iid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not restore snapshot for domain %s"),
dom->name);
- goto cleanup;
- }
-
- ret = 0;
-
- cleanup:
- vboxIIDUnalloc(&iid);
- return ret;
-}
-#else
static int
_vboxDomainSnapshotRestore(virDomainPtr dom,
IMachine *machine,
@@ -1357,7 +897,6 @@ _vboxDomainSnapshotRestore(virDomainPtr dom,
vboxIIDUnalloc(&domiid);
return ret;
}
-#endif
#if VBOX_API_VERSION <= 2002000 || VBOX_API_VERSION >= 4000000
/* No Callback support for VirtualBox 2.2.* series */
@@ -1999,85 +1538,6 @@ _initializeDomainEvent(vboxDriverPtr data ATTRIBUTE_UNUSED)
return 0;
}
-#if VBOX_API_VERSION < 4000000
-
-# if VBOX_API_VERSION < 3001000
-static void
-_detachDevices(vboxDriverPtr data ATTRIBUTE_UNUSED,
- IMachine *machine, PRUnichar *hddcnameUtf16)
-{
- /* Disconnect all the drives if present */
- machine->vtbl->DetachHardDisk(machine, hddcnameUtf16, 0, 0);
- machine->vtbl->DetachHardDisk(machine, hddcnameUtf16, 0, 1);
- machine->vtbl->DetachHardDisk(machine, hddcnameUtf16, 1, 1);
-}
-# else /* VBOX_API_VERSION >= 3001000 */
-static void
-_detachDevices(vboxDriverPtr data, IMachine *machine,
- PRUnichar *hddcnameUtf16 ATTRIBUTE_UNUSED)
-{
- /* get all the controller first, then the attachments and
- * remove them all so that the machine can be undefined
- */
- vboxArray storageControllers = VBOX_ARRAY_INITIALIZER;
- size_t i = 0, j = 0;
-
- vboxArrayGet(&storageControllers, machine,
- machine->vtbl->GetStorageControllers);
-
- for (i = 0; i < storageControllers.count; i++) {
- IStorageController *strCtl = storageControllers.items[i];
- PRUnichar *strCtlName = NULL;
- vboxArray mediumAttachments = VBOX_ARRAY_INITIALIZER;
-
- if (!strCtl)
- continue;
-
- strCtl->vtbl->GetName(strCtl, &strCtlName);
- vboxArrayGetWithPtrArg(&mediumAttachments, machine,
- machine->vtbl->GetMediumAttachmentsOfController,
- strCtlName);
-
- for (j = 0; j < mediumAttachments.count; j++) {
- IMediumAttachment *medAtt = mediumAttachments.items[j];
- PRInt32 port = ~0U;
- PRInt32 device = ~0U;
-
- if (!medAtt)
- continue;
-
- medAtt->vtbl->GetPort(medAtt, &port);
- medAtt->vtbl->GetDevice(medAtt, &device);
-
- if ((port != ~0U) && (device != ~0U)) {
- machine->vtbl->DetachDevice(machine,
- strCtlName,
- port,
- device);
- }
- }
- vboxArrayRelease(&storageControllers);
- machine->vtbl->RemoveStorageController(machine, strCtlName);
- VBOX_UTF16_FREE(strCtlName);
- }
- vboxArrayRelease(&storageControllers);
-}
-# endif /* VBOX_API_VERSION >= 3001000 */
-
-static nsresult
-_unregisterMachine(vboxDriverPtr data, vboxIIDUnion *iidu, IMachine **machine)
-{
- return data->vboxObj->vtbl->UnregisterMachine(data->vboxObj,
IID_MEMBER(value), machine);
-}
-
-static void
-_deleteConfig(IMachine *machine)
-{
- machine->vtbl->DeleteSettings(machine);
-}
-
-#else /* VBOX_API_VERSION >= 4000000 */
-
static void
_detachDevices(vboxDriverPtr data ATTRIBUTE_UNUSED,
IMachine *machine ATTRIBUTE_UNUSED,
@@ -2108,450 +1568,43 @@ _unregisterMachine(vboxDriverPtr data, vboxIIDUnion *iidu,
IMachine **machine)
return rc;
}
-static void
-_deleteConfig(IMachine *machine)
-{
- IProgress *progress = NULL;
-
- /* The IMachine Delete method takes an array of IMedium items to be
- * deleted along with the virtual machine. We just want to pass an
- * empty array. But instead of adding a full vboxArraySetWithReturn to
- * the glue layer (in order to handle the required signature of the
- * Delete method) we use a local solution here. */
-# ifdef WIN32
- SAFEARRAY *safeArray = NULL;
- typedef HRESULT __stdcall (*IMachine_Delete)(IMachine *self,
- SAFEARRAY **media,
- IProgress **progress);
-
-# if VBOX_API_VERSION < 4003000
- ((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray,
&progress);
-# else
- ((IMachine_Delete)machine->vtbl->DeleteConfig)(machine, &safeArray,
&progress);
-# endif
-# else
- /* XPCOM doesn't like NULL as an array, even when the array size is 0.
- * Instead pass it a dummy array to avoid passing NULL. */
- IMedium *array[] = { NULL };
-# if VBOX_API_VERSION < 4003000
- machine->vtbl->Delete(machine, 0, array, &progress);
-# else
- machine->vtbl->DeleteConfig(machine, 0, array, &progress);
-# endif
-# endif
- if (progress != NULL) {
- progress->vtbl->WaitForCompletion(progress, -1);
- VBOX_RELEASE(progress);
- }
-}
-
-#endif /* VBOX_API_VERSION >= 4000000 */
-
-#if VBOX_API_VERSION < 3001000
-
-static void
-_dumpIDEHDDsOld(virDomainDefPtr def,
- vboxDriverPtr data,
- IMachine *machine)
-{
- PRInt32 hddNum = 0;
- IHardDisk *hardDiskPM = NULL;
- IHardDisk *hardDiskPS = NULL;
- IHardDisk *hardDiskSS = NULL;
- const char *hddBus = "IDE";
- PRUnichar *hddBusUtf16 = NULL;
-
- /* dump IDE hdds if present */
- VBOX_UTF8_TO_UTF16(hddBus, &hddBusUtf16);
-
- def->ndisks = 0;
- machine->vtbl->GetHardDisk(machine, hddBusUtf16, 0, 0, &hardDiskPM);
- if (hardDiskPM)
- def->ndisks++;
-
- machine->vtbl->GetHardDisk(machine, hddBusUtf16, 0, 1, &hardDiskPS);
- if (hardDiskPS)
- def->ndisks++;
-
- machine->vtbl->GetHardDisk(machine, hddBusUtf16, 1, 1, &hardDiskSS);
- if (hardDiskSS)
- def->ndisks++;
-
- VBOX_UTF16_FREE(hddBusUtf16);
-
- if ((def->ndisks > 0) && (VIR_ALLOC_N(def->disks, def->ndisks)
>= 0)) {
- size_t i;
- for (i = 0; i < def->ndisks; i++) {
- if ((def->disks[i] = virDomainDiskDefNew(NULL))) {
- def->disks[i]->device = VIR_DOMAIN_DISK_DEVICE_DISK;
- def->disks[i]->bus = VIR_DOMAIN_DISK_BUS_IDE;
- virDomainDiskSetType(def->disks[i],
- VIR_STORAGE_TYPE_FILE);
- }
- }
- }
-
- if (hardDiskPM) {
- PRUnichar *hddlocationUtf16 = NULL;
- char *hddlocation = NULL;
- PRUint32 hddType = HardDiskType_Normal;
-
- hardDiskPM->vtbl->imedium.GetLocation((IMedium *)hardDiskPM,
&hddlocationUtf16);
- VBOX_UTF16_TO_UTF8(hddlocationUtf16, &hddlocation);
-
- hardDiskPM->vtbl->GetType(hardDiskPM, &hddType);
-
- if (hddType == HardDiskType_Immutable)
- def->disks[hddNum]->src->readonly = true;
- ignore_value(virDomainDiskSetSource(def->disks[hddNum],
- hddlocation));
- ignore_value(VIR_STRDUP(def->disks[hddNum]->dst, "hda"));
- hddNum++;
-
- VBOX_UTF8_FREE(hddlocation);
- VBOX_UTF16_FREE(hddlocationUtf16);
- VBOX_MEDIUM_RELEASE(hardDiskPM);
- }
-
- if (hardDiskPS) {
- PRUnichar *hddlocationUtf16 = NULL;
- char *hddlocation = NULL;
- PRUint32 hddType = HardDiskType_Normal;
-
- hardDiskPS->vtbl->imedium.GetLocation((IMedium *)hardDiskPS,
&hddlocationUtf16);
- VBOX_UTF16_TO_UTF8(hddlocationUtf16, &hddlocation);
-
- hardDiskPS->vtbl->GetType(hardDiskPS, &hddType);
-
- if (hddType == HardDiskType_Immutable)
- def->disks[hddNum]->src->readonly = true;
- ignore_value(virDomainDiskSetSource(def->disks[hddNum],
- hddlocation));
- ignore_value(VIR_STRDUP(def->disks[hddNum]->dst, "hdb"));
- hddNum++;
-
- VBOX_UTF8_FREE(hddlocation);
- VBOX_UTF16_FREE(hddlocationUtf16);
- VBOX_MEDIUM_RELEASE(hardDiskPS);
- }
-
- if (hardDiskSS) {
- PRUnichar *hddlocationUtf16 = NULL;
- char *hddlocation = NULL;
- PRUint32 hddType = HardDiskType_Normal;
-
- hardDiskSS->vtbl->imedium.GetLocation((IMedium *)hardDiskSS,
&hddlocationUtf16);
- VBOX_UTF16_TO_UTF8(hddlocationUtf16, &hddlocation);
-
- hardDiskSS->vtbl->GetType(hardDiskSS, &hddType);
-
- if (hddType == HardDiskType_Immutable)
- def->disks[hddNum]->src->readonly = true;
- ignore_value(virDomainDiskSetSource(def->disks[hddNum],
- hddlocation));
- ignore_value(VIR_STRDUP(def->disks[hddNum]->dst, "hdd"));
- hddNum++;
-
- VBOX_UTF8_FREE(hddlocation);
- VBOX_UTF16_FREE(hddlocationUtf16);
- VBOX_MEDIUM_RELEASE(hardDiskSS);
- }
-}
-
-static void
-_dumpDVD(virDomainDefPtr def,
- vboxDriverPtr data,
- IMachine *machine)
-{
- IDVDDrive *dvdDrive = NULL;
- IDVDImage *dvdImage = NULL;
- PRUnichar *locationUtf16 = NULL;
- char *location = NULL;
-
-
- /* dump CDROM/DVD if the drive is attached and has DVD/CD in it */
- machine->vtbl->GetDVDDrive(machine, &dvdDrive);
- if (!dvdDrive)
- return;
-
- PRUint32 state = DriveState_Null;
-
- dvdDrive->vtbl->GetState(dvdDrive, &state);
- if (state != DriveState_ImageMounted)
- goto cleanupDVDDrive;
-
-
- dvdDrive->vtbl->GetImage(dvdDrive, &dvdImage);
- if (!dvdImage)
- goto cleanupDVDDrive;
-
- dvdImage->vtbl->imedium.GetLocation((IMedium *)dvdImage, &locationUtf16);
- VBOX_UTF16_TO_UTF8(locationUtf16, &location);
-
- def->ndisks++;
- if (VIR_REALLOC_N(def->disks, def->ndisks) >= 0) {
- if ((def->disks[def->ndisks - 1] = virDomainDiskDefNew(NULL))) {
- def->disks[def->ndisks - 1]->device = VIR_DOMAIN_DISK_DEVICE_CDROM;
- def->disks[def->ndisks - 1]->bus = VIR_DOMAIN_DISK_BUS_IDE;
- virDomainDiskSetType(def->disks[def->ndisks - 1],
- VIR_STORAGE_TYPE_FILE);
- def->disks[def->ndisks - 1]->src->readonly = true;
- ignore_value(virDomainDiskSetSource(def->disks[def->ndisks - 1],
location));
- ignore_value(VIR_STRDUP(def->disks[def->ndisks - 1]->dst,
"hdc"));
- def->ndisks--;
- } else {
- def->ndisks--;
- }
- } else {
- def->ndisks--;
- }
-
- VBOX_UTF8_FREE(location);
- VBOX_UTF16_FREE(locationUtf16);
- VBOX_MEDIUM_RELEASE(dvdImage);
-
- cleanupDVDDrive:
- VBOX_RELEASE(dvdDrive);
-}
-
-static int
-_attachDVD(vboxDriverPtr data, IMachine *machine, const char *src)
-{
- IDVDDrive *dvdDrive = NULL;
- IDVDImage *dvdImage = NULL;
- PRUnichar *dvdfileUtf16 = NULL;
- vboxIID dvduuid = VBOX_IID_INITIALIZER;
- vboxIID dvdemptyuuid = VBOX_IID_INITIALIZER;
- nsresult rc;
- int ret = -1;
-
- /* Currently CDROM/DVD Drive is always IDE
- * Secondary Master so neglecting the following
- * parameter dev->data.disk->bus
- */
- machine->vtbl->GetDVDDrive(machine, &dvdDrive);
- if (!dvdDrive)
- return ret;
-
- VBOX_UTF8_TO_UTF16(src, &dvdfileUtf16);
-
- data->vboxObj->vtbl->FindDVDImage(data->vboxObj, dvdfileUtf16,
&dvdImage);
- if (!dvdImage)
- data->vboxObj->vtbl->OpenDVDImage(data->vboxObj, dvdfileUtf16,
dvdemptyuuid.value, &dvdImage);
-
- if (!dvdImage)
- goto cleanup;
-
- rc = dvdImage->vtbl->imedium.GetId((IMedium *)dvdImage, &dvduuid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("can't get the uuid of the file to "
- "be attached to cdrom: %s, rc=%08x"),
- src, (unsigned)rc);
- } else {
- /* unmount the previous mounted image */
- dvdDrive->vtbl->Unmount(dvdDrive);
- rc = dvdDrive->vtbl->MountImage(dvdDrive, dvduuid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not attach the file to cdrom: %s,
rc=%08x"),
- src, (unsigned)rc);
- } else {
- ret = 0;
- DEBUGIID("CD/DVD Image UUID:", dvduuid.value);
- }
- }
-
- VBOX_MEDIUM_RELEASE(dvdImage);
- cleanup:
- vboxIIDUnalloc(&dvduuid);
- VBOX_UTF16_FREE(dvdfileUtf16);
- VBOX_RELEASE(dvdDrive);
- return ret;
-}
-
-static int
-_detachDVD(IMachine *machine)
-{
- IDVDDrive *dvdDrive = NULL;
- int ret = -1;
- nsresult rc;
- /* Currently CDROM/DVD Drive is always IDE
- * Secondary Master so neglecting the following
- * parameter dev->data.disk->bus
- */
- machine->vtbl->GetDVDDrive(machine, &dvdDrive);
- if (!dvdDrive)
- return ret;
-
- rc = dvdDrive->vtbl->Unmount(dvdDrive);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not de-attach the mounted ISO, rc=%08x"),
- (unsigned)rc);
- } else {
- ret = 0;
- }
- VBOX_RELEASE(dvdDrive);
-
- return ret;
-}
-
-static void
-_dumpFloppy(virDomainDefPtr def,
- vboxDriverPtr data,
- IMachine *machine)
-{
- IFloppyDrive *floppyDrive = NULL;
- IFloppyImage *floppyImage = NULL;
- PRUnichar *locationUtf16 = NULL;
- char *location = NULL;
- PRBool enabled = PR_FALSE;
- PRUint32 state = DriveState_Null;
-
- /* dump Floppy if the drive is attached and has floppy in it */
- machine->vtbl->GetFloppyDrive(machine, &floppyDrive);
- if (!floppyDrive)
- return;
-
- floppyDrive->vtbl->GetEnabled(floppyDrive, &enabled);
- if (!enabled)
- goto cleanupFloppyDrive;
-
-
- floppyDrive->vtbl->GetState(floppyDrive, &state);
- if (state != DriveState_ImageMounted)
- goto cleanupFloppyDrive;
-
- floppyDrive->vtbl->GetImage(floppyDrive, &floppyImage);
- if (!floppyImage)
- goto cleanupFloppyDrive;
-
- floppyImage->vtbl->imedium.GetLocation((IMedium *)floppyImage,
&locationUtf16);
- VBOX_UTF16_TO_UTF8(locationUtf16, &location);
-
- def->ndisks++;
- if (VIR_REALLOC_N(def->disks, def->ndisks) >= 0) {
- if ((def->disks[def->ndisks - 1] = virDomainDiskDefNew(NULL))) {
- def->disks[def->ndisks - 1]->device =
VIR_DOMAIN_DISK_DEVICE_FLOPPY;
- def->disks[def->ndisks - 1]->bus = VIR_DOMAIN_DISK_BUS_FDC;
- virDomainDiskSetType(def->disks[def->ndisks - 1],
- VIR_STORAGE_TYPE_FILE);
- def->disks[def->ndisks - 1]->src->readonly = false;
- ignore_value(virDomainDiskSetSource(def->disks[def->ndisks - 1],
location));
- ignore_value(VIR_STRDUP(def->disks[def->ndisks - 1]->dst,
"fda"));
- def->ndisks--;
- } else {
- def->ndisks--;
- }
- } else {
- def->ndisks--;
- }
-
- VBOX_UTF8_FREE(location);
- VBOX_UTF16_FREE(locationUtf16);
- VBOX_MEDIUM_RELEASE(floppyImage);
-
- cleanupFloppyDrive:
- VBOX_RELEASE(floppyDrive);
-}
-
-static int
-_attachFloppy(vboxDriverPtr data, IMachine *machine, const char *src)
-{
- IFloppyDrive *floppyDrive;
- IFloppyImage *floppyImage = NULL;
- PRUnichar *fdfileUtf16 = NULL;
- vboxIID fduuid = VBOX_IID_INITIALIZER;
- vboxIID fdemptyuuid = VBOX_IID_INITIALIZER;
- nsresult rc;
- int ret = -1;
-
- machine->vtbl->GetFloppyDrive(machine, &floppyDrive);
- if (!floppyDrive)
- return ret;
-
- rc = floppyDrive->vtbl->SetEnabled(floppyDrive, 1);
- if (NS_FAILED(rc))
- goto cleanup;
-
- VBOX_UTF8_TO_UTF16(src, &fdfileUtf16);
- rc = data->vboxObj->vtbl->FindFloppyImage(data->vboxObj,
- fdfileUtf16,
- &floppyImage);
-
- if (!floppyImage) {
- data->vboxObj->vtbl->OpenFloppyImage(data->vboxObj,
- fdfileUtf16,
- fdemptyuuid.value,
- &floppyImage);
- }
-
- if (floppyImage) {
- rc = floppyImage->vtbl->imedium.GetId((IMedium *)floppyImage,
&fduuid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("can't get the uuid of the file to be "
- "attached to floppy drive: %s, rc=%08x"),
- src, (unsigned)rc);
- } else {
- rc = floppyDrive->vtbl->MountImage(floppyDrive, fduuid.value);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not attach the file to floppy drive: %s,
rc=%08x"),
- src, (unsigned)rc);
- } else {
- ret = 0;
- DEBUGIID("attached floppy, UUID:", fduuid.value);
- }
- }
- VBOX_MEDIUM_RELEASE(floppyImage);
- }
- vboxIIDUnalloc(&fduuid);
- VBOX_UTF16_FREE(fdfileUtf16);
-
- cleanup:
- VBOX_RELEASE(floppyDrive);
- return ret;
-}
-
-static int
-_detachFloppy(IMachine *machine)
-{
- IFloppyDrive *floppyDrive;
- int ret = -1;
- nsresult rc;
-
- machine->vtbl->GetFloppyDrive(machine, &floppyDrive);
- if (!floppyDrive)
- return ret;
+static void
+_deleteConfig(IMachine *machine)
+{
+ IProgress *progress = NULL;
- PRBool enabled = PR_FALSE;
+ /* The IMachine Delete method takes an array of IMedium items to be
+ * deleted along with the virtual machine. We just want to pass an
+ * empty array. But instead of adding a full vboxArraySetWithReturn to
+ * the glue layer (in order to handle the required signature of the
+ * Delete method) we use a local solution here. */
+# ifdef WIN32
+ SAFEARRAY *safeArray = NULL;
+ typedef HRESULT __stdcall (*IMachine_Delete)(IMachine *self,
+ SAFEARRAY **media,
+ IProgress **progress);
- floppyDrive->vtbl->GetEnabled(floppyDrive, &enabled);
- if (enabled) {
- rc = floppyDrive->vtbl->Unmount(floppyDrive);
- if (NS_FAILED(rc)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not attach the file "
- "to floppy drive, rc=%08x"),
- (unsigned)rc);
- } else {
- ret = 0;
- }
- } else {
- /* If you are here means floppy drive is already unmounted
- * so don't flag error, just say everything is fine and quit
- */
- ret = 0;
+# if VBOX_API_VERSION < 4003000
+ ((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray,
&progress);
+# else
+ ((IMachine_Delete)machine->vtbl->DeleteConfig)(machine, &safeArray,
&progress);
+# endif
+# else
+ /* XPCOM doesn't like NULL as an array, even when the array size is 0.
+ * Instead pass it a dummy array to avoid passing NULL. */
+ IMedium *array[] = { NULL };
+# if VBOX_API_VERSION < 4003000
+ machine->vtbl->Delete(machine, 0, array, &progress);
+# else
+ machine->vtbl->DeleteConfig(machine, 0, array, &progress);
+# endif
+# endif
+ if (progress != NULL) {
+ progress->vtbl->WaitForCompletion(progress, -1);
+ VBOX_RELEASE(progress);
}
- VBOX_RELEASE(floppyDrive);
-
- return ret;
}
-#else /* VBOX_API_VERSION >= 3001000 */
-
static void
_dumpIDEHDDsOld(virDomainDefPtr def ATTRIBUTE_UNUSED,
vboxDriverPtr data ATTRIBUTE_UNUSED,
@@ -2608,8 +1661,6 @@ _detachFloppy(IMachine *machine ATTRIBUTE_UNUSED)
return 0;
}
-#endif /* VBOX_API_VERSION >= 3001000 */
-
static int _pfnInitialize(vboxDriverPtr driver)
{
if (!(driver->pFuncs = g_pfnGetFunctions(VBOX_XPCOMC_VERSION)))
@@ -2626,16 +1677,9 @@ static int _pfnInitialize(vboxDriverPtr driver)
driver->vboxClient->vtbl->GetVirtualBox(driver->vboxClient,
&driver->vboxObj);
driver->vboxClient->vtbl->GetSession(driver->vboxClient,
&driver->vboxSession);
}
-
#else
-
-# if VBOX_XPCOMC_VERSION == 0x00010000U
- driver->pFuncs->pfnComInitialize(&driver->vboxObj,
&driver->vboxSession);
-# else /* !(VBOX_XPCOMC_VERSION == 0x00010000U) */
driver->pFuncs->pfnComInitialize(IVIRTUALBOX_IID_STR, &driver->vboxObj,
ISESSION_IID_STR, &driver->vboxSession);
-# endif /* !(VBOX_XPCOMC_VERSION == 0x00010000U) */
-
#endif
return 0;
@@ -2681,24 +1725,6 @@ static int _pfnUtf8ToUtf16(PCVBOXXPCOM pFuncs, const char
*pszString, PRUnichar
return pFuncs->pfnUtf8ToUtf16(pszString, ppwszString);
}
-#if VBOX_API_VERSION == 2002000
-
-static void _vboxIIDInitialize(vboxIIDUnion *iidu)
-{
- memset(iidu, 0, sizeof(vboxIIDUnion));
-}
-
-static void _DEBUGIID(vboxDriverPtr driver ATTRIBUTE_UNUSED, const char *msg,
vboxIIDUnion *iidu)
-{
-# ifdef WIN32
- DEBUGUUID(msg, (nsID *)&IID_MEMBER(value));
-# else /* !WIN32 */
- DEBUGUUID(msg, IID_MEMBER(value));
-# endif /* !WIN32 */
-}
-
-#else /* VBOX_API_VERSION != 2002000 */
-
static void _vboxIIDInitialize(vboxIIDUnion *iidu)
{
memset(iidu, 0, sizeof(vboxIIDUnion));
@@ -2710,18 +1736,12 @@ static void _DEBUGIID(vboxDriverPtr data, const char *msg,
vboxIIDUnion *iidu)
DEBUGPRUnichar(msg, IID_MEMBER(value));
}
-#endif /* VBOX_API_VERSION != 2002000 */
-
static void
_vboxIIDToUtf8(vboxDriverPtr data ATTRIBUTE_UNUSED,
vboxIIDUnion *iidu ATTRIBUTE_UNUSED,
char **utf8 ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION == 2002000
- vboxUnsupported();
-#else /* !(VBOX_API_VERSION == 2002000) */
data->pFuncs->pfnUtf16ToUtf8(IID_MEMBER(value), utf8);
-#endif /* !(VBOX_API_VERSION == 2002000) */
}
static nsresult
@@ -2747,11 +1767,7 @@ static void* _handleUSBGetDeviceFilters(IUSBCommon *USBCommon)
static void* _handleMachineGetMediumAttachments(IMachine *machine)
{
-#if VBOX_API_VERSION < 3001000
- return machine->vtbl->GetHardDiskAttachments;
-#else /* VBOX_API_VERSION >= 3001000 */
return machine->vtbl->GetMediumAttachments;
-#endif /* VBOX_API_VERSION >= 3001000 */
}
static void* _handleMachineGetSharedFolders(IMachine *machine)
@@ -2766,12 +1782,7 @@ static void* _handleSnapshotGetChildren(ISnapshot *snapshot)
static void* _handleMediumGetChildren(IMedium *medium ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 3001000
- vboxUnsupported();
- return 0;
-#else /* VBOX_API_VERSION >= 3001000 */
return medium->vtbl->GetChildren;
-#endif /* VBOX_API_VERSION >= 3001000 */
}
static void* _handleMediumGetSnapshotIds(IMedium *medium)
@@ -2805,24 +1816,12 @@ _virtualboxGetVersion(IVirtualBox *vboxObj, PRUnichar
**versionUtf16)
return vboxObj->vtbl->GetVersion(vboxObj, versionUtf16);
}
-#if VBOX_API_VERSION < 4000000
-
-static nsresult
-_virtualboxGetMachine(IVirtualBox *vboxObj, vboxIIDUnion *iidu, IMachine **machine)
-{
- return vboxObj->vtbl->GetMachine(vboxObj, IID_MEMBER(value), machine);
-}
-
-#else /* VBOX_API_VERSION >= 4000000 */
-
static nsresult
_virtualboxGetMachine(IVirtualBox *vboxObj, vboxIIDUnion *iidu, IMachine **machine)
{
return vboxObj->vtbl->FindMachine(vboxObj, IID_MEMBER(value), machine);
}
-#endif /* VBOX_API_VERSION >= 4000000 */
-
static nsresult
_virtualboxOpenMachine(IVirtualBox *vboxObj, PRUnichar *settingsFile, IMachine
**machine)
{
@@ -2851,23 +1850,7 @@ _virtualboxCreateMachine(vboxDriverPtr data, virDomainDefPtr def,
IMachine **mac
VBOX_UTF8_TO_UTF16(def->name, &machineNameUtf16);
vboxIIDFromUUID(&iid, def->uuid);
{
-#if VBOX_API_VERSION < 3002000
- rc = data->vboxObj->vtbl->CreateMachine(data->vboxObj,
- machineNameUtf16,
- NULL,
- NULL,
- iid.value,
- machine);
-#elif VBOX_API_VERSION < 4000000 /* 3002000 <= VBOX_API_VERSION < 4000000 */
- PRBool override = PR_FALSE;
- rc = data->vboxObj->vtbl->CreateMachine(data->vboxObj,
- machineNameUtf16,
- NULL,
- NULL,
- iid.value,
- override,
- machine);
-#elif VBOX_API_VERSION >= 4000000 && VBOX_API_VERSION < 4002000
+#if VBOX_API_VERSION >= 4000000 && VBOX_API_VERSION < 4002000
PRBool override = PR_FALSE;
rc = data->vboxObj->vtbl->CreateMachine(data->vboxObj,
NULL,
@@ -2927,12 +1910,7 @@ _virtualboxFindHardDisk(IVirtualBox *vboxObj, PRUnichar *location,
PRUint32 accessMode ATTRIBUTE_UNUSED,
IHardDisk **hardDisk)
{
- /* In vbox 2.2 and 3.0, this function will create a IHardDisk object.
- * In vbox 3.1 and later, this function will create a IMedium object.
- */
-#if VBOX_API_VERSION < 4000000
- return vboxObj->vtbl->FindHardDisk(vboxObj, location, hardDisk);
-#elif VBOX_API_VERSION < 4002000
+#if VBOX_API_VERSION < 4002000
return vboxObj->vtbl->FindMedium(vboxObj, location,
deviceType, hardDisk);
#else /* VBOX_API_VERSION >= 4002000 */
@@ -2959,18 +1937,13 @@ _virtualboxOpenMedium(IVirtualBox *vboxObj ATTRIBUTE_UNUSED,
deviceType, accessMode,
false,
medium);
-#else
- vboxUnsupported();
- return 0;
#endif
}
static nsresult
_virtualboxGetHardDiskByIID(IVirtualBox *vboxObj, vboxIIDUnion *iidu, IHardDisk
**hardDisk)
{
-#if VBOX_API_VERSION < 4000000
- return vboxObj->vtbl->GetHardDisk(vboxObj, IID_MEMBER(value), hardDisk);
-#elif VBOX_API_VERSION >= 4000000 && VBOX_API_VERSION < 4002000
+#if VBOX_API_VERSION >= 4000000 && VBOX_API_VERSION < 4002000
return vboxObj->vtbl->FindMedium(vboxObj, IID_MEMBER(value),
DeviceType_HardDisk,
hardDisk);
#else /* VBOX_API_VERSION >= 4002000 */
@@ -3022,13 +1995,8 @@ _machineAttachDevice(IMachine *machine ATTRIBUTE_UNUSED,
PRUint32 type ATTRIBUTE_UNUSED,
IMedium * medium ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION >= 4000000
return machine->vtbl->AttachDevice(machine, name, controllerPort,
device, type, medium);
-#else /* VBOX_API_VERSION < 4000000 */
- vboxUnsupported();
- return 0;
-#endif /* VBOX_API_VERSION < 4000000 */
}
static nsresult
@@ -3036,13 +2004,8 @@ _machineCreateSharedFolder(IMachine *machine, PRUnichar *name,
PRUnichar *hostPath, PRBool writable,
PRBool automount ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 4000000
- return machine->vtbl->CreateSharedFolder(machine, name, hostPath,
- writable);
-#else /* VBOX_API_VERSION >= 4000000 */
return machine->vtbl->CreateSharedFolder(machine, name, hostPath,
writable, automount);
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
@@ -3058,17 +2021,8 @@ _machineLaunchVMProcess(vboxDriverPtr data,
PRUnichar *sessionType, PRUnichar *env,
IProgress **progress)
{
-#if VBOX_API_VERSION < 4000000
- return data->vboxObj->vtbl->OpenRemoteSession(data->vboxObj,
- data->vboxSession,
- IID_MEMBER(value),
- sessionType,
- env,
- progress);
-#else /* VBOX_API_VERSION >= 4000000 */
return machine->vtbl->LaunchVMProcess(machine, data->vboxSession,
sessionType, env, progress);
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
@@ -3077,33 +2031,20 @@ _machineUnregister(IMachine *machine ATTRIBUTE_UNUSED,
PRUint32 *aMediaSize ATTRIBUTE_UNUSED,
IMedium ***aMedia ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 4000000
- vboxUnsupported();
- return 0;
-#else /* VBOX_API_VERSION >= 4000000 */
return machine->vtbl->Unregister(machine, cleanupMode, aMediaSize, aMedia);
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
_machineFindSnapshot(IMachine *machine, vboxIIDUnion *iidu, ISnapshot **snapshot)
{
-#if VBOX_API_VERSION < 4000000
- return machine->vtbl->GetSnapshot(machine, IID_MEMBER(value), snapshot);
-#else /* VBOX_API_VERSION >= 4000000 */
return machine->vtbl->FindSnapshot(machine, IID_MEMBER(value), snapshot);
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
_machineDetachDevice(IMachine *machine, PRUnichar *name,
PRInt32 controllerPort, PRInt32 device)
{
-#if VBOX_API_VERSION < 3001000
- return machine->vtbl->DetachHardDisk(machine, name, controllerPort, device);
-#else /* VBOX_API_VERSION >= 3001000 */
return machine->vtbl->DetachDevice(machine, name, controllerPort, device);
-#endif /* VBOX_API_VERSION >= 3001000 */
}
static nsresult
@@ -3151,12 +2092,7 @@ _machineGetNetworkAdapter(IMachine *machine, PRUint32 slot,
INetworkAdapter **ad
static nsresult
_machineGetChipsetType(IMachine *machine ATTRIBUTE_UNUSED, PRUint32 *chipsetType
ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION >= 4001000
return machine->vtbl->GetChipsetType(machine, chipsetType);
-#else /* VBOX_API_VERSION < 4001000 */
- vboxUnsupported();
- return 0;
-#endif /* VBOX_API_VERSION < 4001000 */
}
static nsresult
@@ -3174,11 +2110,7 @@ _machineGetParallelPort(IMachine *machine, PRUint32 slot,
IParallelPort **port)
static nsresult
_machineGetVRDxServer(IMachine *machine, IVRDxServer **VRDxServer)
{
-#if VBOX_API_VERSION < 4000000
- return machine->vtbl->GetVRDPServer(machine, VRDxServer);
-#else /* VBOX_API_VERSION >= 4000000 */
return machine->vtbl->GetVRDEServer(machine, VRDxServer);
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
@@ -3230,25 +2162,13 @@ _machineSetMemorySize(IMachine *machine, PRUint32 memorySize)
static nsresult
_machineGetCPUProperty(IMachine *machine, PRUint32 property ATTRIBUTE_UNUSED, PRBool
*value)
{
-#if VBOX_API_VERSION < 3001000
- return machine->vtbl->GetPAEEnabled(machine, value);
-#elif VBOX_API_VERSION == 3001000
- return machine->vtbl->GetCpuProperty(machine, property, value);
-#elif VBOX_API_VERSION >= 3002000
return machine->vtbl->GetCPUProperty(machine, property, value);
-#endif
}
static nsresult
_machineSetCPUProperty(IMachine *machine, PRUint32 property ATTRIBUTE_UNUSED, PRBool
value)
{
-#if VBOX_API_VERSION < 3001000
- return machine->vtbl->SetPAEEnabled(machine, value);
-#elif VBOX_API_VERSION == 3001000
- return machine->vtbl->SetCpuProperty(machine, property, value);
-#elif VBOX_API_VERSION >= 3002000
return machine->vtbl->SetCPUProperty(machine, property, value);
-#endif
}
static nsresult
@@ -3303,24 +2223,14 @@ static nsresult
_machineGetAccelerate2DVideoEnabled(IMachine *machine ATTRIBUTE_UNUSED,
PRBool *accelerate2DVideoEnabled ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION >= 3001000
return machine->vtbl->GetAccelerate2DVideoEnabled(machine,
accelerate2DVideoEnabled);
-#else /* VBOX_API_VERSION < 3001000 */
- vboxUnsupported();
- return 0;
-#endif /* VBOX_API_VERSION < 3001000 */
}
static nsresult
_machineSetAccelerate2DVideoEnabled(IMachine *machine ATTRIBUTE_UNUSED,
PRBool accelerate2DVideoEnabled ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION >= 3001000
return machine->vtbl->SetAccelerate2DVideoEnabled(machine,
accelerate2DVideoEnabled);
-#else /* VBOX_API_VERSION < 3001000 */
- vboxUnsupported();
- return 0;
-#endif /* VBOX_API_VERSION < 3001000 */
}
static nsresult
@@ -3347,28 +2257,6 @@ _machineSaveSettings(IMachine *machine)
return machine->vtbl->SaveSettings(machine);
}
-#if VBOX_API_VERSION < 4000000
-
-static nsresult
-_sessionOpen(vboxDriverPtr data, vboxIIDUnion *iidu, IMachine *machine ATTRIBUTE_UNUSED)
-{
- return data->vboxObj->vtbl->OpenSession(data->vboxObj,
data->vboxSession, IID_MEMBER(value));
-}
-
-static nsresult
-_sessionOpenExisting(vboxDriverPtr data, vboxIIDUnion *iidu, IMachine *machine
ATTRIBUTE_UNUSED)
-{
- return data->vboxObj->vtbl->OpenExistingSession(data->vboxObj,
data->vboxSession, IID_MEMBER(value));
-}
-
-static nsresult
-_sessionClose(ISession *session)
-{
- return session->vtbl->Close(session);
-}
-
-#else /* VBOX_API_VERSION >= 4000000 */
-
static nsresult
_sessionOpen(vboxDriverPtr data, vboxIIDUnion *iidu ATTRIBUTE_UNUSED, IMachine *machine)
{
@@ -3387,8 +2275,6 @@ _sessionClose(ISession *session)
return session->vtbl->UnlockMachine(session);
}
-#endif /* VBOX_API_VERSION >= 4000000 */
-
static nsresult
_sessionGetConsole(ISession *session, IConsole **console)
{
@@ -3445,16 +2331,13 @@ static nsresult
_consolePowerDown(IConsole *console)
{
nsresult rc;
-#if VBOX_API_VERSION == 2002000
- rc = console->vtbl->PowerDown(console);
-#else
IProgress *progress = NULL;
rc = console->vtbl->PowerDown(console, &progress);
if (progress) {
rc = progress->vtbl->WaitForCompletion(progress, -1);
VBOX_RELEASE(progress);
}
-#endif
+
return rc;
}
@@ -3492,9 +2375,7 @@ _consoleTakeSnapshot(IConsole *console, PRUnichar *name,
static nsresult
_consoleDeleteSnapshot(IConsole *console, vboxIIDUnion *iidu, IProgress **progress)
{
-#if VBOX_API_VERSION < 3001000
- return console->vtbl->DiscardSnapshot(console, IID_MEMBER(value), progress);
-#elif VBOX_API_VERSION >= 3001000 && VBOX_API_VERSION < 5000000 /*
VBOX_API_VERSION >= 3001000 */
+#if VBOX_API_VERSION < 5000000 /* VBOX_API_VERSION < 5000000 */
return console->vtbl->DeleteSnapshot(console, IID_MEMBER(value), progress);
#else /* VBOX_API_VERSION >= 5000000 */
IMachine *machine;
@@ -3535,11 +2416,7 @@ _progressWaitForCompletion(IProgress *progress, PRInt32 timeout)
static nsresult
_progressGetResultCode(IProgress *progress, resultCodeUnion *resultCode)
{
-#if VBOX_API_VERSION == 2002000
- return progress->vtbl->GetResultCode(progress,
&resultCode->uResultCode);
-#else /* VBOX_API_VERSION != 2002000 */
return progress->vtbl->GetResultCode(progress,
&resultCode->resultCode);
-#endif /* VBOX_API_VERSION != 2002000 */
}
static nsresult
@@ -3585,7 +2462,6 @@ _systemPropertiesGetParallelPortCount(ISystemProperties
*systemProperties, PRUin
return systemProperties->vtbl->GetParallelPortCount(systemProperties,
ParallelPortCount);
}
-#if VBOX_API_VERSION >= 3001000
static nsresult
_systemPropertiesGetMaxPortCountForStorageBus(ISystemProperties *systemProperties,
PRUint32 bus,
PRUint32 *maxPortCount)
@@ -3600,25 +2476,6 @@
_systemPropertiesGetMaxDevicesPerPortForStorageBus(ISystemProperties *systemProp
return
systemProperties->vtbl->GetMaxDevicesPerPortForStorageBus(systemProperties,
bus,
maxDevicesPerPort);
}
-#else /* VBOX_API_VERSION < 3001000 */
-static nsresult
-_systemPropertiesGetMaxPortCountForStorageBus(ISystemProperties *systemProperties
ATTRIBUTE_UNUSED,
- PRUint32 bus ATTRIBUTE_UNUSED,
- PRUint32 *maxPortCount ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
-}
-
-static nsresult
-_systemPropertiesGetMaxDevicesPerPortForStorageBus(ISystemProperties *systemProperties
ATTRIBUTE_UNUSED,
- PRUint32 bus ATTRIBUTE_UNUSED,
- PRUint32 *maxDevicesPerPort
ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
-}
-#endif
static nsresult
_systemPropertiesGetMaxGuestRAM(ISystemProperties *systemProperties, PRUint32
*maxGuestRAM)
@@ -3955,27 +2812,9 @@ _vrdxServerGetPorts(vboxDriverPtr data ATTRIBUTE_UNUSED,
IVRDxServer *VRDxServer, virDomainGraphicsDefPtr graphics)
{
nsresult rc;
-#if VBOX_API_VERSION < 3001000
- PRUint32 VRDPport = 0;
- rc = VRDxServer->vtbl->GetPort(VRDxServer, &VRDPport);
- if (VRDPport) {
- graphics->data.rdp.port = VRDPport;
- } else {
- graphics->data.rdp.autoport = true;
- }
-#elif VBOX_API_VERSION < 4000000 /* 3001000 <= VBOX_API_VERSION < 4000000 */
- PRUnichar *VRDPport = NULL;
- rc = VRDxServer->vtbl->GetPorts(VRDxServer, &VRDPport);
- if (VRDPport) {
- /* even if vbox supports mutilpe ports, single port for now here */
- graphics->data.rdp.port = PRUnicharToInt(data->pFuncs, VRDPport);
- VBOX_UTF16_FREE(VRDPport);
- } else {
- graphics->data.rdp.autoport = true;
- }
-#else /* VBOX_API_VERSION >= 4000000 */
PRUnichar *VRDEPortsKey = NULL;
PRUnichar *VRDEPortsValue = NULL;
+
VBOX_UTF8_TO_UTF16("TCP/Ports", &VRDEPortsKey);
rc = VRDxServer->vtbl->GetVRDEProperty(VRDxServer, VRDEPortsKey,
&VRDEPortsValue);
VBOX_UTF16_FREE(VRDEPortsKey);
@@ -3986,7 +2825,7 @@ _vrdxServerGetPorts(vboxDriverPtr data ATTRIBUTE_UNUSED,
} else {
graphics->data.rdp.autoport = true;
}
-#endif /* VBOX_API_VERSION >= 4000000 */
+
return rc;
}
@@ -3995,34 +2834,16 @@ _vrdxServerSetPorts(vboxDriverPtr data ATTRIBUTE_UNUSED,
IVRDxServer *VRDxServer, virDomainGraphicsDefPtr graphics)
{
nsresult rc = 0;
-#if VBOX_API_VERSION < 3001000
- if (graphics->data.rdp.port) {
- rc = VRDxServer->vtbl->SetPort(VRDxServer,
- graphics->data.rdp.port);
- VIR_DEBUG("VRDP Port changed to: %d",
- graphics->data.rdp.port);
- } else if (graphics->data.rdp.autoport) {
- /* Setting the port to 0 will reset its value to
- * the default one which is 3389 currently
- */
- rc = VRDxServer->vtbl->SetPort(VRDxServer, 0);
- VIR_DEBUG("VRDP Port changed to default, which is 3389 currently");
- }
-#elif VBOX_API_VERSION < 4000000 /* 3001000 <= VBOX_API_VERSION < 4000000 */
- PRUnichar *portUtf16 = NULL;
- portUtf16 = PRUnicharFromInt(data->pFuncs, graphics->data.rdp.port);
- rc = VRDxServer->vtbl->SetPorts(VRDxServer, portUtf16);
- VBOX_UTF16_FREE(portUtf16);
-#else /* VBOX_API_VERSION >= 4000000 */
PRUnichar *VRDEPortsKey = NULL;
PRUnichar *VRDEPortsValue = NULL;
+
VBOX_UTF8_TO_UTF16("TCP/Ports", &VRDEPortsKey);
VRDEPortsValue = PRUnicharFromInt(data->pFuncs, graphics->data.rdp.port);
rc = VRDxServer->vtbl->SetVRDEProperty(VRDxServer, VRDEPortsKey,
VRDEPortsValue);
VBOX_UTF16_FREE(VRDEPortsKey);
VBOX_UTF16_FREE(VRDEPortsValue);
-#endif /* VBOX_API_VERSION >= 4000000 */
+
return rc;
}
@@ -4054,34 +2875,29 @@ static nsresult
_vrdxServerGetNetAddress(vboxDriverPtr data ATTRIBUTE_UNUSED,
IVRDxServer *VRDxServer, PRUnichar **netAddress)
{
-#if VBOX_API_VERSION >= 4000000
PRUnichar *VRDENetAddressKey = NULL;
nsresult rc;
+
VBOX_UTF8_TO_UTF16("TCP/Address", &VRDENetAddressKey);
rc = VRDxServer->vtbl->GetVRDEProperty(VRDxServer, VRDENetAddressKey,
netAddress);
VBOX_UTF16_FREE(VRDENetAddressKey);
+
return rc;
-#else /* VBOX_API_VERSION < 4000000 */
- return VRDxServer->vtbl->GetNetAddress(VRDxServer, netAddress);
-#endif /* VBOX_API_VERSION < 4000000 */
}
static nsresult
_vrdxServerSetNetAddress(vboxDriverPtr data ATTRIBUTE_UNUSED,
IVRDxServer *VRDxServer, PRUnichar *netAddress)
{
-#if VBOX_API_VERSION < 4000000
- return VRDxServer->vtbl->SetNetAddress(VRDxServer,
- netAddress);
-#else /* VBOX_API_VERSION >= 4000000 */
PRUnichar *netAddressKey = NULL;
nsresult rc;
+
VBOX_UTF8_TO_UTF16("TCP/Address", &netAddressKey);
rc = VRDxServer->vtbl->SetVRDEProperty(VRDxServer, netAddressKey,
netAddress);
VBOX_UTF16_FREE(netAddressKey);
+
return rc;
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult
@@ -4183,61 +2999,21 @@ static nsresult _mediumGetName(IMedium *medium, PRUnichar **name)
static nsresult _mediumGetSize(IMedium *medium, PRUint64 *uSize)
{
-#if VBOX_API_VERSION < 4000000
- return medium->vtbl->GetSize(medium, uSize);
-#else /* VBOX_API_VERSION >= 4000000 */
nsresult rc;
PRInt64 Size;
+
rc = medium->vtbl->GetSize(medium, &Size);
*uSize = Size;
+
return rc;
-#endif /* VBOX_API_VERSION >= 4000000 */
}
static nsresult _mediumGetReadOnly(IMedium *medium ATTRIBUTE_UNUSED,
PRBool *readOnly ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 3001000
- vboxUnsupported();
- return 0;
-#else /* VBOX_API_VERSION >= 3001000 */
return medium->vtbl->GetReadOnly(medium, readOnly);
-#endif /* VBOX_API_VERSION >= 3001000 */
-}
-
-#if VBOX_API_VERSION < 3001000
-
-static nsresult _mediumGetParent(IMedium *medium ATTRIBUTE_UNUSED,
- IMedium **parent ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
-}
-
-static nsresult _mediumGetChildren(IMedium *medium ATTRIBUTE_UNUSED,
- PRUint32 *childrenSize ATTRIBUTE_UNUSED,
- IMedium ***children ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
-}
-
-static nsresult _mediumGetFormat(IMedium *medium ATTRIBUTE_UNUSED,
- PRUnichar **format ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
-}
-
-static nsresult _mediumDeleteStorage(IMedium *medium ATTRIBUTE_UNUSED,
- IProgress **progress ATTRIBUTE_UNUSED)
-{
- vboxUnsupported();
- return 0;
}
-#else /* VBOX_API_VERSION >= 3001000 */
-
static nsresult _mediumGetParent(IMedium *medium,
IMedium **parent)
{
@@ -4263,8 +3039,6 @@ static nsresult _mediumDeleteStorage(IMedium *medium,
return medium->vtbl->DeleteStorage(medium, progress);
}
-#endif /* VBOX_API_VERSION >= 3001000 */
-
static nsresult _mediumRelease(IMedium *medium)
{
return medium->vtbl->nsisupports.Release((nsISupports *)medium);
@@ -4277,12 +3051,7 @@ static nsresult _mediumClose(IMedium *medium)
static nsresult _mediumSetType(IMedium *medium ATTRIBUTE_UNUSED,
PRUint32 type ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION > 3000000
return medium->vtbl->SetType(medium, type);
-#else
- vboxUnsupported();
- return 0;
-#endif
}
static nsresult
@@ -4292,10 +3061,7 @@ _mediumCreateDiffStorage(IMedium *medium ATTRIBUTE_UNUSED,
PRUint32 *variant ATTRIBUTE_UNUSED,
IProgress **progress ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 3001000
- vboxUnsupported();
- return 0;
-#elif VBOX_API_VERSION < 4003000
+#if VBOX_API_VERSION < 4003000
if (variantSize == 0)
return 0;
if (variantSize > 1)
@@ -4310,11 +3076,7 @@ static nsresult
_mediumAttachmentGetMedium(IMediumAttachment *mediumAttachment,
IHardDisk **hardDisk)
{
-#if VBOX_API_VERSION < 3001000
- return mediumAttachment->vtbl->GetHardDisk(mediumAttachment, hardDisk);
-#else /* VBOX_API_VERSION >= 3001000 */
return mediumAttachment->vtbl->GetMedium(mediumAttachment, hardDisk);
-#endif /* VBOX_API_VERSION >= 3001000 */
}
static nsresult
@@ -4328,12 +3090,7 @@ static nsresult
_mediumAttachmentGetType(IMediumAttachment *mediumAttachment ATTRIBUTE_UNUSED,
PRUint32 *type ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 3001000
- vboxUnsupported();
- return 0;
-#else /* VBOX_API_VERSION >= 3001000 */
return mediumAttachment->vtbl->GetType(mediumAttachment, type);
-#endif /* VBOX_API_VERSION >= 3001000 */
}
static nsresult
@@ -4423,10 +3180,7 @@ _displayGetScreenResolution(IDisplay *display ATTRIBUTE_UNUSED,
PRInt32 *xOrigin ATTRIBUTE_UNUSED,
PRInt32 *yOrigin ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION < 3002000
- vboxUnsupported();
- return 0;
-#elif VBOX_API_VERSION < 4003000
+#if VBOX_API_VERSION < 4003000
return display->vtbl->GetScreenResolution(display, screenId, width,
height, bitsPerPixel);
#elif VBOX_API_VERSION < 5000000 /* VBOX_API_VERSION >= 4003000 */
@@ -4482,24 +3236,8 @@ _hostCreateHostOnlyNetworkInterface(vboxDriverPtr data
ATTRIBUTE_UNUSED,
IHostNetworkInterface **networkInterface)
{
nsresult rc = -1;
-#if VBOX_API_VERSION == 2002000
- if (STREQ(name, "vboxnet0")) {
- PRUint32 interfaceType = 0;
- PRUnichar *networkInterfaceNameUtf16 = NULL;
-
- VBOX_UTF8_TO_UTF16(name, &networkInterfaceNameUtf16);
- host->vtbl->FindHostNetworkInterfaceByName(host, networkInterfaceNameUtf16,
networkInterface);
-
- (*networkInterface)->vtbl->GetInterfaceType(*networkInterface,
&interfaceType);
- if (interfaceType != HostNetworkInterfaceType_HostOnly) {
- VBOX_RELEASE(*networkInterface);
- *networkInterface = NULL;
- } else {
- rc = 0;
- }
- }
-#else /* VBOX_API_VERSION != 2002000 */
IProgress *progress = NULL;
+
host->vtbl->CreateHostOnlyNetworkInterface(host, networkInterface,
&progress);
@@ -4507,7 +3245,7 @@ _hostCreateHostOnlyNetworkInterface(vboxDriverPtr data
ATTRIBUTE_UNUSED,
rc = progress->vtbl->WaitForCompletion(progress, -1);
VBOX_RELEASE(progress);
}
-#endif /* VBOX_API_VERSION != 2002000 */
+
return rc;
}
@@ -4516,18 +3254,7 @@ _hostRemoveHostOnlyNetworkInterface(IHost *host ATTRIBUTE_UNUSED,
vboxIIDUnion *iidu ATTRIBUTE_UNUSED,
IProgress **progress ATTRIBUTE_UNUSED)
{
-#if VBOX_API_VERSION == 2002000
- vboxUnsupported();
- return 0;
-#elif VBOX_API_VERSION == 3000000
- nsresult rc;
- IHostNetworkInterface *netInt = NULL;
- rc = host->vtbl->RemoveHostOnlyNetworkInterface(host, IID_MEMBER(value),
&netInt, progress);
- VBOX_RELEASE(netInt);
- return rc;
-#else /* VBOX_API_VERSION > 3000000 */
return host->vtbl->RemoveHostOnlyNetworkInterface(host, IID_MEMBER(value),
progress);
-#endif /* VBOX_API_VERSION > 3000000 */
}
static nsresult
@@ -4678,14 +3405,11 @@ static nsresult
_hardDiskGetLogicalSizeInByte(IHardDisk *hardDisk, PRUint64 *uLogicalSize)
{
nsresult rc;
-#if VBOX_API_VERSION < 4000000
- rc = hardDisk->vtbl->GetLogicalSize(hardDisk, uLogicalSize);
- *uLogicalSize *= 1024 * 1024; /* MB => Bytes */
-#else /* VBOX_API_VERSION >= 4000000 */
PRInt64 logicalSize;
+
rc = hardDisk->vtbl->GetLogicalSize(hardDisk, &logicalSize);
*uLogicalSize = logicalSize;
-#endif /* VBOX_API_VERSION >= 4000000 */
+
return rc;
}
--
2.9.3