From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "Hervé Poussineau" <hpoussin@reactos.org>,
"Juan Quintela" <quintela@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"John Snow" <jsnow@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"QEMU Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] How to correctly use more than 2 floppy drives?
Date: Fri, 5 Apr 2019 11:53:27 +0100 [thread overview]
Message-ID: <20190405105326.GD2819@work-vm> (raw)
In-Reply-To: <e5fb5172-983a-c8a0-1d86-8406fe8ff99c@redhat.com>
* Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> Hi,
>
> I am trying to understand the possible values for the MAX_FD variable
> used by the floppy controller model (hw/block/fdc.c).
>
> Looking at git history:
>
> - 2004-01-05 7138fcfbf7dd + 8977f3c107ef (Jocelyn Mayer):
> FDC introduced with "#define MAX_FD 2"
>
> - 2008-04-29 78ae820cfeb0 (Hervé Poussineau):
> Supports up to 4 floppy drives if MAX_FD is set to 4
> Migration stream knows about runtime value of MAX_FD
>
> - 2009-09-10 d7a6c2703577 (Juan Quintela):
> FDC vmstate-ified
> Migration stream use compile time value of MAX_FD
>
> Since 7138fcfbf7dd MAX_FD has always been defined as 2.
>
> Since d7a6c2703577 MAX_FD can not be different than 2 without breaking
> migration.
>
> If I understand correctly migration, first we should change in
> vmstate_fdc the user-definable MAX_FD by a constant 2 value.
Right.
> Then to be able to use >2 floppy disks I have to modify the the
> vmstate.version_id, and
>
> 1/ add a new field in the vmstate_fdc containing the number of drives
> and add code to check >2 and adapt
>
> or
>
> 2/ change MAX_FD to 4 for all the codebase, adding some code to migrate
> to older FDC with only 2 disks...
Or, you add a subsection which is conditional on MAX_FD > 2 and which
only stores the state of the extra FDs.
> Another option I don't like is:
>
> 3/ get ride of MAX_FD != 2 and clean the codebase...
Seems sane to me.
> $ git grep '#if MAX_FD'
> hw/block/fdc.c:744:#if MAX_FD == 4
> hw/block/fdc.c:758:#if MAX_FD == 4
> hw/block/fdc.c:1317:#if MAX_FD == 4
> hw/block/fdc.c:1340:#if MAX_FD == 4
> hw/block/fdc.c:2041:#if MAX_FD == 4
> hw/block/fdc.c:2079:#if MAX_FD == 4
> hw/block/fdc.c:2104:#if MAX_FD == 4
>
> Hervé, what board are/were you using with 4 floppy drives?
>
> BTW this link is somehow interesting :)
> https://www.seasip.info/VintagePC/floppies.html
Ah interesting; I did wonder because I've never seen machines
with more than 2 (double sided) drives.
Dave
> Thanks,
>
> Phil.
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
WARNING: multiple messages have this Message-ID (diff)
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>, "Thomas Huth" <thuth@redhat.com>,
"Juan Quintela" <quintela@redhat.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Markus Armbruster" <armbru@redhat.com>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"John Snow" <jsnow@redhat.com>
Subject: Re: [Qemu-devel] How to correctly use more than 2 floppy drives?
Date: Fri, 5 Apr 2019 11:53:27 +0100 [thread overview]
Message-ID: <20190405105326.GD2819@work-vm> (raw)
Message-ID: <20190405105327.qBiLP_8WU0zpxPCmQKNIRW7VX51iE08jP1yPBMoEgCk@z> (raw)
In-Reply-To: <e5fb5172-983a-c8a0-1d86-8406fe8ff99c@redhat.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 2172 bytes --]
* Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> Hi,
>
> I am trying to understand the possible values for the MAX_FD variable
> used by the floppy controller model (hw/block/fdc.c).
>
> Looking at git history:
>
> - 2004-01-05 7138fcfbf7dd + 8977f3c107ef (Jocelyn Mayer):
> FDC introduced with "#define MAX_FD 2"
>
> - 2008-04-29 78ae820cfeb0 (Hervé Poussineau):
> Supports up to 4 floppy drives if MAX_FD is set to 4
> Migration stream knows about runtime value of MAX_FD
>
> - 2009-09-10 d7a6c2703577 (Juan Quintela):
> FDC vmstate-ified
> Migration stream use compile time value of MAX_FD
>
> Since 7138fcfbf7dd MAX_FD has always been defined as 2.
>
> Since d7a6c2703577 MAX_FD can not be different than 2 without breaking
> migration.
>
> If I understand correctly migration, first we should change in
> vmstate_fdc the user-definable MAX_FD by a constant 2 value.
Right.
> Then to be able to use >2 floppy disks I have to modify the the
> vmstate.version_id, and
>
> 1/ add a new field in the vmstate_fdc containing the number of drives
> and add code to check >2 and adapt
>
> or
>
> 2/ change MAX_FD to 4 for all the codebase, adding some code to migrate
> to older FDC with only 2 disks...
Or, you add a subsection which is conditional on MAX_FD > 2 and which
only stores the state of the extra FDs.
> Another option I don't like is:
>
> 3/ get ride of MAX_FD != 2 and clean the codebase...
Seems sane to me.
> $ git grep '#if MAX_FD'
> hw/block/fdc.c:744:#if MAX_FD == 4
> hw/block/fdc.c:758:#if MAX_FD == 4
> hw/block/fdc.c:1317:#if MAX_FD == 4
> hw/block/fdc.c:1340:#if MAX_FD == 4
> hw/block/fdc.c:2041:#if MAX_FD == 4
> hw/block/fdc.c:2079:#if MAX_FD == 4
> hw/block/fdc.c:2104:#if MAX_FD == 4
>
> Hervé, what board are/were you using with 4 floppy drives?
>
> BTW this link is somehow interesting :)
> https://www.seasip.info/VintagePC/floppies.html
Ah interesting; I did wonder because I've never seen machines
with more than 2 (double sided) drives.
Dave
> Thanks,
>
> Phil.
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-04-05 10:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-05 10:29 [Qemu-devel] How to correctly use more than 2 floppy drives? Philippe Mathieu-Daudé
2019-04-05 10:29 ` Philippe Mathieu-Daudé
2019-04-05 10:53 ` Dr. David Alan Gilbert [this message]
2019-04-05 10:53 ` Dr. David Alan Gilbert
2019-04-05 16:35 ` Hervé Poussineau
2019-04-05 16:35 ` Hervé Poussineau
2019-04-08 5:38 ` Markus Armbruster
2019-04-08 5:38 ` Markus Armbruster
2019-04-08 19:30 ` John Snow
2019-04-08 19:30 ` John Snow
2019-04-09 11:38 ` Philippe Mathieu-Daudé
2019-04-09 11:38 ` Philippe Mathieu-Daudé
2019-04-09 17:38 ` John Snow
2019-04-09 17:38 ` John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190405105326.GD2819@work-vm \
--to=dgilbert@redhat.com \
--cc=armbru@redhat.com \
--cc=hpoussin@reactos.org \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.