[openbeos] parallel driver

Since I got a printer, I noticed some cracks in audio streams while printing...
So I said to myself "just rewrite the parallel driver !"


Looking to the /dev/parallel/* interface in  it doesn't seem so complicated...
The thing is this is only a parallel driver for use by printers (and dongles 
also, see DGL_*). Since I would like to have a full featured driver, I looked 
around a bit, and in fact it's not so easy at all... with all those different 
standards (SPP, EPP, ECP...). A look at the FreeBSD driver makes me think the 
// port has become an overdevelopped thingy :)))

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/isa/ppc.c?rev=1.37&content-type=text/x-cvsweb-markup

The EPP compliant devices can be daisy chained on the // port, making it look 
like a "bus", with the printer eventually being the last item on the bus.

The right(tm) design would be IMHO to have a parport module, that both the 
parallel (/dev/parallel/*) driver and the SCSI transport modules could use :

parport bus manager module xxx
 +-> parallel driver       xxx
 +-> parscsi bus module    xxx
       +->  scsi bus manager
              +-> hdd scsi driver (zip...)
              +-> scanner driver...

where xxx are the parts do do.

I still didn't check how BeOS handles DMA exactly... seems there is something 
called CAM (like in FreeBSD) that deals with it...

So for now what I wonder is :
- should I code directly all this for NewOS, or first on BeOS since we want to 
have quite the same interface ?
- should I implement the full thing or just a parallel driver like the BeOS 
one ? (which means things would need to be reworked later...)

François.

Other related posts: