diff --git a/src/vbox/vbox_common.h b/src/vbox/vbox_common.h index d88c637ac1..f28f2e03f3 100644 --- a/src/vbox/vbox_common.h +++ b/src/vbox/vbox_common.h @@ -235,6 +235,19 @@ enum StorageBus StorageBus_SAS = 5 }; +enum StorageControllerType +{ + StorageControllerType_Null = 0, + StorageControllerType_LsiLogic = 1, + StorageControllerType_BusLogic = 2, + StorageControllerType_IntelAhci = 3, + StorageControllerType_PIIX3 = 4, + StorageControllerType_PIIX4 = 5, + StorageControllerType_ICH6 = 6, + StorageControllerType_I82078 = 7, + StorageControllerType_LsiLogicSas = 8 +}; + enum AccessMode { AccessMode_ReadOnly = 1, diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 4f1662bc1a..98d4bbf0d8 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -572,6 +572,11 @@ static void* _handleUSBGetDeviceFilters(IUSBCommon *USBCommon) return USBCommon->vtbl->GetDeviceFilters; } +static void* _handleMachineGetStorageControllers(IMachine *machine) +{ + return machine->vtbl->GetStorageControllers; +} + static void* _handleMachineGetMediumAttachments(IMachine *machine) { return machine->vtbl->GetMediumAttachments; @@ -1987,6 +1992,18 @@ _storageControllerGetBus(IStorageController *storageController, PRUint32 *bus) return storageController->vtbl->GetBus(storageController, bus); } +static nsresult +_storageControllerGetControllerType(IStorageController *storageController, PRUint32 *controllerType) +{ + return storageController->vtbl->GetControllerType(storageController, controllerType); +} + +static nsresult +_storageControllerSetControllerType(IStorageController *storageController, PRUint32 controllerType) +{ + return storageController->vtbl->SetControllerType(storageController, controllerType); +} + static nsresult _sharedFolderGetHostPath(ISharedFolder *sharedFolder, PRUnichar **hostPath) { @@ -2336,6 +2353,7 @@ static vboxUniformedArray _UArray = { .handleGetMachines = _handleGetMachines, .handleGetHardDisks = _handleGetHardDisks, .handleUSBGetDeviceFilters = _handleUSBGetDeviceFilters, + .handleMachineGetStorageControllers = _handleMachineGetStorageControllers, .handleMachineGetMediumAttachments = _handleMachineGetMediumAttachments, .handleMachineGetSharedFolders = _handleMachineGetSharedFolders, .handleSnapshotGetChildren = _handleSnapshotGetChildren, @@ -2567,6 +2585,8 @@ static vboxUniformedIMediumAttachment _UIMediumAttachment = { static vboxUniformedIStorageController _UIStorageController = { .GetBus = _storageControllerGetBus, + .GetControllerType = _storageControllerGetControllerType, + .SetControllerType = _storageControllerSetControllerType, }; static vboxUniformedISharedFolder _UISharedFolder = { diff --git a/src/vbox/vbox_uniformed_api.h b/src/vbox/vbox_uniformed_api.h index 8cf27789bc..c51191e7db 100644 --- a/src/vbox/vbox_uniformed_api.h +++ b/src/vbox/vbox_uniformed_api.h @@ -135,6 +135,7 @@ typedef struct { void* (*handleGetMachines)(IVirtualBox *vboxObj); void* (*handleGetHardDisks)(IVirtualBox *vboxObj); void* (*handleUSBGetDeviceFilters)(IUSBCommon *USBCommon); + void* (*handleMachineGetStorageControllers)(IMachine *machine); void* (*handleMachineGetMediumAttachments)(IMachine *machine); void* (*handleMachineGetSharedFolders)(IMachine *machine); void* (*handleSnapshotGetChildren)(ISnapshot *snapshot); @@ -410,6 +411,8 @@ typedef struct { /* Functions for IStorageController */ typedef struct { nsresult (*GetBus)(IStorageController *storageController, PRUint32 *bus); + nsresult (*SetControllerType)(IStorageController *storageController, PRUint32 controllerType); + nsresult (*GetControllerType)(IStorageController *storageController, PRUint32 *controllerType); } vboxUniformedIStorageController; /* Functions for ISharedFolder */