[libvirt] [PATCH 4/6] vbox: Add more IStorageController API mappings.
John Ferlan
jferlan at redhat.com
Tue Oct 17 19:46:48 UTC 2017
On 10/09/2017 04:49 PM, Dawid Zamirski wrote:
> From: Dawid Zamirski <dzamirski at datto.com>
>
> This patch 'maps' additonal methods for VBOX API to the libvirt unified
"for the VBOX API"
additional
> vbox API to deal with IStorageController. The 'mapped' methods are:
>
> * IStorageController->GetStorageControllerType()
> * IStorageController->SetStorageControllerType()
> * IMachine->GetStorageControllers()
> ---
> src/vbox/vbox_common.h | 13 +++++++++++++
> src/vbox/vbox_tmpl.c | 20 ++++++++++++++++++++
> src/vbox/vbox_uniformed_api.h | 3 +++
> 3 files changed, 36 insertions(+)
>
This seems reasonable.... Even though there's some style differences
with how we generally like to see libvirt code - it follows the style of
other vbox code and to me that perhaps more important.
Reviewed-by: John Ferlan <jferlan at redhat.com>
John
> diff --git a/src/vbox/vbox_common.h b/src/vbox/vbox_common.h
> index c6da8929d..b08ad1e3e 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 ac3b8fa00..6592cbd63 100644
> --- a/src/vbox/vbox_tmpl.c
> +++ b/src/vbox/vbox_tmpl.c
> @@ -550,6 +550,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;
> @@ -1919,6 +1924,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)
> {
> @@ -2268,6 +2285,7 @@ static vboxUniformedArray _UArray = {
> .handleGetMachines = _handleGetMachines,
> .handleGetHardDisks = _handleGetHardDisks,
> .handleUSBGetDeviceFilters = _handleUSBGetDeviceFilters,
> + .handleMachineGetStorageControllers = _handleMachineGetStorageControllers,
> .handleMachineGetMediumAttachments = _handleMachineGetMediumAttachments,
> .handleMachineGetSharedFolders = _handleMachineGetSharedFolders,
> .handleSnapshotGetChildren = _handleSnapshotGetChildren,
> @@ -2499,6 +2517,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 2ccaf43e8..dc0b391b2 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 */
>
More information about the libvir-list
mailing list