Subject: Re: next release
To: Mark F Willey <willey@ecn.purdue.edu>
From: Ken Hornstein <kenh@entropic.com>
List: current-users
Date: 01/05/1995 23:26:21
>> It would be really nice if there was someone else working on i386
>> device drivers.
>
>I think I talked to you about this...
>
>I would like to help, but don't know how to write driver code.  I am
>planning to take your advice and "just do it" with a scanner I have.  Is
>there some way for one to get more "in the loop" with what driver code needs
>to be looked at?  I think the major problem is that you need the hardware
>in question in order to work on the driver, correct?

"Six months ago I couldn't even spell 'device driver programmer': now I is
one!" :-)

Seriously, if you're a reasonably competent C programmer, it's not impossible
to write a device driver.  You have to be willing to do some work to understand
it all, of course.  Since you have all the source code to the other drivers,
you can look at them for examples.  The one thing that's not obvious is how
the interface between the system and the device driver works, but that's not
even that hard, once you figure out about the device switch table and about
major/minor device numbers.  And (assuming you're writing a driver for the
i386), once you figure out that the PC has separate I/O and data busses and
that you access the I/O bus with outb/outw/inb/inw, you really know it all.
If you've got programming info for your device, you can just take it from
there.

That's all I did, basically - I looked at how the other drivers worked, and
now I've got a soundcard driver (but it took me 2/3th of a year, and it doesn't
all work yet, so maybe I don't know what I'm talking about.  I do have an
excuse, though - I got married in the meantime).

I one considered writing a simple primer for writing device drivers.  Would
anyone be interested in such a thing?

--Ken