diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index e0836ec0c46ffd6df54f3f2caed612b48558daa2..bc8033824aa2f6992aea7ffa278c5655e3e0ec56 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -5115,10 +5115,10 @@ vboxSnapshotRedefine(virDomainPtr dom, if (virAsprintf(&newLocationUtf8, "%sfakedisk-%d.vdi", machineLocationPath, it) < 0) goto cleanup; VBOX_UTF8_TO_UTF16(newLocationUtf8, &newLocation); - rc = gVBoxAPI.UIVirtualBox.CreateHardDiskMedium(data->vboxObj, - formatUtf16, - newLocation, - &newMedium); + rc = gVBoxAPI.UIVirtualBox.CreateHardDisk(data->vboxObj, + formatUtf16, + newLocation, + &newMedium); VBOX_UTF16_FREE(newLocation); VBOX_UTF16_FREE(formatUtf16); if (NS_FAILED(rc)) { @@ -6877,10 +6877,10 @@ vboxDomainSnapshotDeleteMetadataOnly(virDomainSnapshotPtr snapshot) machineLocationPath, def->parent, it) < 0) goto cleanup; VBOX_UTF8_TO_UTF16(newLocationUtf8, &newLocation); - rc = gVBoxAPI.UIVirtualBox.CreateHardDiskMedium(data->vboxObj, - formatUtf16, - newLocation, - &newMedium); + rc = gVBoxAPI.UIVirtualBox.CreateHardDisk(data->vboxObj, + formatUtf16, + newLocation, + &newMedium); if (NS_FAILED(rc)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unable to create HardDisk, rc=%08x"), diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 224c8965d6996a4cf19187bf1a288c9c7b6137dd..c6f027ef3754e5b5e75720c1203a846a41c5f513 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -3456,17 +3456,13 @@ _virtualboxCreateMachine(vboxGlobalData *data, virDomainDefPtr def, IMachine **m } static nsresult -_virtualboxCreateHardDiskMedium(IVirtualBox *vboxObj ATTRIBUTE_UNUSED, - PRUnichar *format ATTRIBUTE_UNUSED, - PRUnichar *location ATTRIBUTE_UNUSED, - IMedium **medium ATTRIBUTE_UNUSED) +_virtualboxCreateHardDisk(IVirtualBox *vboxObj, PRUnichar *format, + PRUnichar *location, IHardDisk **hardDisk) { -#if VBOX_API_VERSION < 3001000 - vboxUnsupported(); - return 0; -#else /* VBOX_API_VERSION >= 3001000 */ - return vboxObj->vtbl->CreateHardDisk(vboxObj, format, location, medium); -#endif /* VBOX_API_VERSION >= 3001000 */ + /* 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. + */ + return vboxObj->vtbl->CreateHardDisk(vboxObj, format, location, hardDisk); } static nsresult @@ -5209,7 +5205,7 @@ static vboxUniformedIVirtualBox _UIVirtualBox = { .GetSystemProperties = _virtualboxGetSystemProperties, .GetHost = _virtualboxGetHost, .CreateMachine = _virtualboxCreateMachine, - .CreateHardDiskMedium = _virtualboxCreateHardDiskMedium, + .CreateHardDisk = _virtualboxCreateHardDisk, .RegisterMachine = _virtualboxRegisterMachine, .FindHardDisk = _virtualboxFindHardDisk, .OpenMedium = _virtualboxOpenMedium, diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h index f3650e59ea3d3f75dfe778832e177db6e7169d89..39d5d98ead0e165e6e620d7e9ceabd8a925ca7ca 100644 --- a/src/vbox/vbox_uniformed_api.h +++ b/src/vbox/vbox_uniformed_api.h @@ -194,7 +194,7 @@ typedef struct { nsresult (*GetSystemProperties)(IVirtualBox *vboxObj, ISystemProperties **systemProperties); nsresult (*GetHost)(IVirtualBox *vboxObj, IHost **host); nsresult (*CreateMachine)(vboxGlobalData *data, virDomainDefPtr def, IMachine **machine, char *uuidstr); - nsresult (*CreateHardDiskMedium)(IVirtualBox *vboxObj, PRUnichar *format, PRUnichar *location, IMedium **medium); + nsresult (*CreateHardDisk)(IVirtualBox *vboxObj, PRUnichar *format, PRUnichar *location, IHardDisk **hardDisk); nsresult (*RegisterMachine)(IVirtualBox *vboxObj, IMachine *machine); nsresult (*FindHardDisk)(IVirtualBox *vboxObj, PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, IHardDisk **hardDisk);