; $Id: TODO,v 1.3 1994/08/21 17:53:06 jkh Exp $ ** To skip this preamble, search forward for the pattern `**'. This file contains a list of ideas that people have come up for "good things to do" in FreeBSD 2.0. These aren't necessarily things on the fast-track, and in fact consist mostly of things that the core team is never going to find the time to do so, if most things here are going to happen at all, they'll happen when someone reading this list steps forward and volunteers! That said, a lot of these ideas would be very nice to have and would add substantially to the perceived value of FreeBSD. Some items on this list would add a LOT of value, for that matter, and are by no means trivial. Take and fix an item with a (*) next to it and WC will even send you a free 2.0 CD for your troubles! It's the least they can do for all notable contributors. This is a also good place to look if you're keen for a little assignment, whole project or just something random to do. Many folks often feel intimidated by the sheer size of FreeBSD and think "I'd like to pitch in somehow, but god, what can _I_ do? I can't possibly do any of the things the core team are doing - aiiggh! They'll laugh at my code, I know it! I can't do it!" Trust us, don't worry! Take a dedicated stab at something on this list and most of us will applaud - even if you don't finish, you may stir someone else into picking it up where you left off. Above all, pick something you'll have fun doing! There are small things and large things in this list, and we may periodically reshuffle it to mark things done, outdated or more important. Tasks are tagged with a unique ID number (YYMMDDNNN) for later tracking and are also easily machine-parsable by those seeking to browse them with some home-rolled search program. Some indication of relative difficulty level is also given for each task, though it should be kept in mind that one persons "easy" is anothers "impossible", so take the ratings with a grain of salt! :) If you start working on something from this list, we also suggest that you contact the email-address listed for more information and to provide some central coordination for your effort. If the email address given is simply then the email address can be presumed to be . If no email address is listed, then simply send to . Thanks! The FreeBSD core team. ** --- cut here --- TASKID: 940820001 TASK: Add interupts to pas.c DETAIL: { You'll need a manual for the ncr-5380 chip and possibly some doc on the PAS16. Linux/NetBSD also have existing drivers to study. } EMAIL: CATS: kernel scsi GRADE: ADVANCED STATUS: OPEN TASKID: 940820002 TASK: Add Linux/Crynwr compatible plip mode to lpt.c DETAIL: { Use IF_LLC0 as mode-flag. Look at the crynwr packet-driver plip.asm (ftp::ftp.ftp.com) and the linux driver for reference. } EMAIL: CATS: kernel networking GRADE: ADVANCED STATUS: OPEN (*) TASKID: 940820003 TASK: Add laptop-feature to wd.c DETAIL: { If disk just spun up, do sync when we have it running. Need to detect that disk was turned off, e.g. had a long delay in becomming ready again. } EMAIL: CATS: kernel laptop GRADE: INTERMEDIATE STATUS: OPEN TASKID: 940820004 TASK: Add hot-swap PCMICIA bus and driver support. DETAIL: { Several teams in Linux and one in NetBSD are working on providing hot insertion/removal and autoconfiguration of PCMCIA cards. This task also requires some modification of existing drivers to support being used by PCMCIA cards. This task is both really hard and comparatively easy; hard because it's a big job, easy because others have already gone much of the way and you have their work for reference. } EMAIL: CATS: kernel laptop GRADE: ADVANCED STATUS: OPEN (*) TASKID: 940820005 TASK: Salvage seagate.c driver from 1.1.5.1 DETAIL: { We've got a seagate driver that could use a little cleanup and migration effort } EMAIL: CATS: kernel scsi GRADE: BEGINNER STATUS: OPEN TASKID: 940820006 TASK: Add bootp/DHCP to the generic ethernet code. DETAIL: { Implement an ioctl(), which will send a bootp on a particular interface and return the data in a usable format. OR make a program which uses existing ioctls to do it. See RFC153[34] for information on DHCP. } EMAIL: CATS: kernel networking GRADE: ADVANCED STATUS: OPEN (*) TASKID: 940820007 TASK: Add bootp/DHCP capability to slip driver. DETAIL: { Cisco's products implement this. Both master and slave side would be desirable. } EMAIL: CATS: kernel networking GRADE: ADVANCED STATUS: OPEN (*) TASKID: 940820008 TASK: Make the netboot.com program use all of the bootp-reply. DETAIL: { Make the netboot.com program use all of the bootp-reply. Presently it ignores the "gateway" field entirely. } EMAIL: CATS: kernel networking GRADE: ADVANCED STATUS: OPEN TASKID: 940820009 TASK: Make a freebsd.com MS-DOS boot program DETAIL: { This program should be able to boot like the boot-blocks, that is find a FreeBSD-partition and load the kernel from there, but it should also be able to load the kernel from an optional MS-DOS file. } EMAIL: CATS: kernel DOS GRADE: ADVANCED STATUS: OPEN (*) TASKID: 940820010 TASK: Make iostat find the disks DETAIL: { This is actually mostly a change to the device-drivers to collect the information in the first place. } EMAIL: CATS: kernel GRADE: INTERMEDIATE STATUS: OPEN TASKID: 940820011 TASK: Silence "cc -Wall" DETAIL: { Lots of warnings if you try this. You will find this a challenge actually, and it is good training in the C language.} EMAIL: CATS: kernel user GRADE: INTERMEDIATE STATUS: OPEN (*) TASKID: 940821001 TASK: Add XPG-style message catalogs. DETAIL: { NetBSD has apparently already done the necessary work, so this pretty much comes down to either evaluating their stuff and making any changes necessary, or simply starting from scratch. Not having seen the code in question, I leave it up to the best judgement of the implementor as to how to best accomplish the task. } EMAIL: CATS: user GRADE: INTERMEDIATE STATUS: OPEN TASKID: 940911001 TASK: Make PAS16 a controller. DETAIL: { Make the ProAudioSpectrum a controller like wdc1 and attach sound and cdrom drivers to it. } EMAIL: CATS: kernel GRADE: INTERMEDIATE STATUS: OPEN