Date: Tue, 11 Dec 2001 19:44:13 +0100 From: Poul-Henning Kamp <phk@critter.freebsd.dk> To: "Andrew R. Reiter" <arr@FreeBSD.org> Cc: hackers@FreeBSD.org Subject: Re: Junior Kernel hacker task: Floppy driver mode handling. Message-ID: <34174.1008096253@critter.freebsd.dk> In-Reply-To: Your message of "Tue, 11 Dec 2001 12:40:53 EST." <Pine.NEB.3.96L.1011211124044.27768B-100000@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <Pine.NEB.3.96L.1011211124044.27768B-100000@fledge.watson.org>, "And rew R. Reiter" writes: > >Someone already doing this? If not, I'm down. You won, you're the first one in my inbox :-) Ready ? Steady ? Start! :-) > >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 > > -- 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?34174.1008096253>