On 01/19/2016 11:51 PM, John Snow wrote:
> This patch adds a new explicit Floppy Drive Type option. The existing
> behavior in QEMU is to automatically guess a drive type based on the
> media inserted, or if a diskette is not present, arbitrarily assign one.
> 
> This behavior can be described as "auto." This patch adds the option

I might have written '"auto".' (the '.' is not part of the behavior
name).  But while grammar guides are starting to concede this style,
they still admit that for a long time English used to always put the
trailing '.' of a sentence inside the "", regardless of whether the
quoted material originally included a period at that point or whether it
was just the speaker ending their sentence on quoted material.

> to pick an explicit behavior: 120, 144, 288 or none. The new "auto"
> option is intended to mimic current behavior, while the other types
> pick one explicitly.
> 
> Set the type given by the CLI during fd_init. If the type remains the
> default (auto), we'll attempt to scan an inserted diskette if present
> to determine a type. If auto is selected but no diskette is present,
> we fall back to a predetermined default (currently 1.44MB to match
> legacy QEMU behavior.)
> 
> Signed-off-by: John Snow <js...@redhat.com>
> ---
>  hw/block/fdc.c | 26 +++++++++++++++++++++++---
>  1 file changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/block/fdc.c b/hw/block/fdc.c
> index e9551e5..f475add 100644
> --- a/hw/block/fdc.c
> +++ b/hw/block/fdc.c
> @@ -159,7 +159,6 @@ static FloppyDriveType get_fallback_drive_type(FDrive 
> *drv);
>  static void fd_init(FDrive *drv)
>  {
>      /* Drive */
> -    drv->drive = FLOPPY_DRIVE_TYPE_NONE;
>      drv->perpendicular = 0;
>      /* Disk */
>      drv->disk = FLOPPY_DRIVE_TYPE_NONE;
> @@ -263,7 +262,7 @@ static int pick_geometry(FDrive *drv)
>      int i, first_match, match;
>  
>      /* We can only pick a geometry if we have a diskette. */
> -    if (!drv->media_inserted) {
> +    if ((!drv->media_inserted) || (drv->drive == FLOPPY_DRIVE_TYPE_NONE)) {

I might have dropped the two inner () pairs.  But that's cosmetic.

Reviewed-by: Eric Blake <ebl...@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to