Subject: Re: Documentation
To: Charles M. Hannum <mycroft@gnu.ai.mit.edu>
From: Ken Hornstein <kenh@entropic.com>
List: current-users
Date: 01/06/1995 23:44:31
>       D. Device interface
>   III. Device driver functions
>
>These should be combined.

Good idea.

>   IV. Device driver theory (maybe this should be up higher)
>       A. User context routines
>       B. Interrupt context routines
>
>C. Locking
>D. Error recovery
>
>These are definitely worth expounding upon a great deal.  Most of the
>386BSD code didn't do either worth sh*t.

Good idea - locking was supposed to be covered in the part about the spl*
routines, but it belongs here better.

>       C. printf/kprintf
>
>And tprintf(), which isn't used widely enough.

Well, hell ... I didn't _know_ about tprintf()!  You weren't kidding about it
not being used enough ... the only place I see it is in nfs/nfs_socket.c!  I
think we need a document like this more than people realize! :-)

>       D. DDB
>
>I'm not sure I'd call that a `kernel utility'.  It's more of a
>`debugging aid'.

Agreed, but I think it fits here better than anyplace else.

>I don't want to discourage anyone who's psyched to do this, but I
>think a lot of this will be covered in the 4.4BSD book, if and when it
>ever gets published.

Well, there seems to be no idea _when_ such a book will be published.  Judging
from the number of responses I got, we'd have _lots_ of people writing device
drivers, if they only knew how.  So we should tell them!

Please, if you know this stuff already, consider helping out.  Some things in
particular that I know little about:

- Syntax for config(8) and config.new(8).  Especially a description of all
  valid places where wildcards can be used, and how matching works.  Also
  relationship between master/slave devices.
- Description of the configuration structures and how it applies to above.
- port-specific oddities for non i386 machines.
- xx_mmap()
- LKM's

--Ken