On 06/19/2015 10:57 AM, Denis V. Lunev wrote: > From: Olga Krishtal <okrish...@virtuozzo.com> > > According to Microsoft disk location path can be obtained via > IOCTL_SCSI_GET_ADDRESS. Unfortunately this ioctl can not be used for all > devices. There are certain bus types which could be obtained with this > API. Please refer to the following link for more details > https://technet.microsoft.com/en-us/library/ee851589(v=ws.10).aspx > > Bus type could be obtained using IOCTL_STORAGE_QUERY_PROPERTY. Enum > STORAGE_BUS_TYPE describes all buses supported by OS. > > Windows defines more bus types that Linux. Thus some values have been added
s/that/than/ > to GuestDiskBusType. > > Signed-off-by: Olga Krishtal <okrish...@virtuozzo.com> > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Eric Blake <ebl...@redhat.com> > CC: Michael Roth <mdr...@linux.vnet.ibm.com> > --- > qga/commands-win32.c | 127 > ++++++++++++++++++++++++++++++++++++++++++++++++++- > qga/qapi-schema.json | 15 +++++- > 2 files changed, 139 insertions(+), 3 deletions(-) > > +static WinToLin buses[] = { > + {BusTypeUnknown, GUEST_DISK_BUS_TYPE_UNKNOWN}, > + {BusTypeScsi, GUEST_DISK_BUS_TYPE_SCSI}, > + {BusTypeAtapi, GUEST_DISK_BUS_TYPE_IDE}, > + {BusTypeAta, GUEST_DISK_BUS_TYPE_IDE}, > + {BusType1394, GUEST_DISK_BUS_TYPE_1394}, > + {BusTypeSsa, GUEST_DISK_BUS_TYPE_SSA}, > + {BusTypeFibre, GUEST_DISK_BUS_TYPE_SSA}, > + {BusTypeUsb, GUEST_DISK_BUS_TYPE_USB}, > + {BusTypeRAID, GUEST_DISK_BUS_TYPE_RAID}, > +#if (_WIN32_WINNT >= 0x0600) > + {BusTypeiScsi, GUEST_DISK_BUS_TYPE_I_SCSI}, > + {BusTypeSas, GUEST_DISK_BUS_TYPE_SAS}, > + {BusTypeSata, GUEST_DISK_BUS_TYPE_SATA}, > + {BusTypeSd, GUEST_DISK_BUS_TYPE_SD}, > + {BusTypeMmc, GUEST_DISK_BUS_TYPE_MMC}, > + {BusTypeVirtual, GUEST_DISK_BUS_TYPE_VIRTUAL }, > + {BusTypeFileBackedVirtuaul, GUEST_DISK_BUS_TYPE_FBIRTUAL}, > + {BusTypeSpaces, GUEST_DISK_BUS_TYPE_SPACES} > +#endif I'd use a trailing comma, so that future additions can be pure additions rather than amending existing lines. > +++ b/qga/qapi-schema.json > @@ -711,6 +711,7 @@ > # @GuestDiskBusType > # > # An enumeration of bus type of disks > +# is devided a bit on Linux and Windows guest > # s/devided/divided/ > # @ide: IDE disks > # @fdc: floppy disks > @@ -721,12 +722,22 @@ > # @uml: UML disks > # @sata: SATA disks > # @sd: SD cards > -# > +# @Unknown: Unknown bus type > +# @1394: Win IEEE 1394 bus type > +# @Ssa: Win SSA bus type > +# @Fibre: Win fiber channel bus type > +# @Raid: Win RAID bus type > +# @iScsi: Win iScsi bus type > +# @Sas: Win serial-attaches SCSI bus type > +# @Mmc: Win multimedia card (MMC) bus type > +# @Virtual: Win virtual bus type > +# @FB: Win file-backed bus type > # Since: 2.2 Missing information about when elements were added: simplest (but redundant) by adding '(since 2.4)' everywhere, or shorter (but might cause grief down the road if we try to automate doc generation) by doing something like: # Since: 2.2; 'Unknown' and all later entries since 2.4 > ## > { 'enum': 'GuestDiskBusType', > 'data': [ 'ide', 'fdc', 'scsi', 'virtio', 'xen', 'usb', 'uml', 'sata', > - 'sd' ] } > + 'sd', 'unknown', '1394','Ssa', 'fibre', 'RAID', 'iScsi', 'sas', Uggh - '1394' is a purely numeric enum name. Not the first time (so the qapi generator allows it), but we considered blacklisting future additions of it: https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg00229.html -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature