Date: Tue, 11 Dec 2001 12:40:53 -0500 (EST) From: "Andrew R. Reiter" <arr@FreeBSD.org> To: Poul-Henning Kamp <phk@FreeBSD.org> Cc: hackers@FreeBSD.org Subject: Re: Junior Kernel hacker task: Floppy driver mode handling. Message-ID: <Pine.NEB.3.96L.1011211124044.27768B-100000@fledge.watson.org> In-Reply-To: <31764.1008089464@critter.freebsd.dk>
index | next in thread | previous in thread | raw e-mail
Someone already doing this? If not, I'm down.
On Tue, 11 Dec 2001, Poul-Henning Kamp wrote:
:
:There exists a patch for adding a mode to our floppy driver to
:add DEC RX50 media handling.
:
:The crucial part of this is the addition of this line:
: { 10,2,0xFF,0x10,80, 800,1,FDC_300KBPS,1,0x2E,1 }, /* 400K DEC RX50 */
:
:But if one examines the fd.c driver, one cannot help but notice that the
:handling of densities is a bit convoluted, to put it mildly.
:
:I'm looking for a volounteer to do this, it is a quite simple job and
:I am quite sure that practically everybody has the hardware they need to
:do this :-)
:
:Cleaning it up consists of the following steps:
:
:1. Define a new set of (bitmap) macros to distinguish the drive type:
: #define FD_3S 0x0001 /* 3.5" single density */
: #define FD_5S 0x0002 /* 5.25" single density */
: ...
: And use these instead of the FD_1200 and similar in
: struct fd_data->type.
:
:2. Augment the struct fd_type with two new fields:
: int minor; /* minor device encoding */
: int drives; /* bitmap of compatible drives (FD_[35][SD]) */
: And fill these fields out in the fd_types[NUMTYPES] array.
: Add a termination entry at the end of the table so the
: NUMTYPES, NUMDENS, and FD_%d[5_25] #defines can be eliminated.
:
:3. Change the _clone code to use the new "minor" field instead of
: the private table it uses now. (Eliminate and avoid any
: use of NUMTYPES, NUMDENS and FD_%d[5_25]).
:
:4. Change the code in Fdopen to examine the "drives" field in the
: fd_types[] array instead of the hardcoded switch. (Eliminate
: and avoid any use of NUMTYPES, NUMDENS and and FD_%d[5_25]);
:
:5. Remove any other use of NUMTYPES, NUMDENS and FD_%d[5_25]
:
:6. Add the "rx50" entry from above to the table to show how simple
: that is now.
:
:7. Make it possible to define a new mode from userland with an ioctl.
: (hint: instead of the index, put a pointer to the struct fd_type into
: the fd_data structure.)
:
:Preferably, send one patch per step rather than one huge patch since that
:will make reviewing easier.
:
:First volounteer to send me email gets the assignment.
:
:--
:Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
:phk@FreeBSD.ORG | TCP/IP since RFC 956
:FreeBSD committer | BSD since 4.3-tahoe
:Never attribute to malice what can adequately be explained by incompetence.
:
:To Unsubscribe: send mail to majordomo@FreeBSD.org
:with "unsubscribe freebsd-hackers" in the body of the message
:
--
Andrew R. Reiter
arr@watson.org
arr@FreeBSD.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1011211124044.27768B-100000>
