From owner-freebsd-doc Thu Aug 3 08:25:48 1995 Return-Path: doc-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.11/8.6.6) id IAA02660 for doc-outgoing; Thu, 3 Aug 1995 08:25:48 -0700 Received: from tserv.lodgenet.com (dial4.iw.net [204.157.148.53]) by freefall.cdrom.com (8.6.11/8.6.6) with ESMTP id IAA02610 for ; Thu, 3 Aug 1995 08:24:20 -0700 Received: from jake.lodgenet.com (jake.lodgenet.com [204.124.120.30]) by tserv.lodgenet.com (8.6.12/8.6.12) with ESMTP id KAA20760; Thu, 3 Aug 1995 10:24:52 -0500 Received: from localhost (localhost [127.0.0.1]) by jake.lodgenet.com (8.6.11/8.6.9) with SMTP id KAA10229; Thu, 3 Aug 1995 10:23:39 -0500 Message-Id: <199508031523.KAA10229@jake.lodgenet.com> X-Authentication-Warning: jake.lodgenet.com: Host localhost didn't use HELO protocol X-Mailer: exmh version 1.6 4/21/95 To: terry@cs.weber.edu (Terry Lambert) cc: doc@freebsd.org Subject: Re: device driver writers guide In-reply-to: Your message of "Wed, 02 Aug 1995 18:44:53 MDT." <9508030044.AA24117@cs.weber.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 03 Aug 1995 10:23:38 -0500 From: "Eric L. Hernes" Sender: doc-owner@freebsd.org Precedence: bulk > > I would be *very* interested in one of these existing. > > One of the issues in BSD is lack of documentation for internal > system interfaces. VM would be a good place to start, as would > vn_ for kernel level file I/O and bXXX, the block I/O interface. > Yea, but lack of documentation is a problem for all unixes. Sco, even though you can pay for a device driver class, and they have man pages for kernel support routines, still is about 80% of what I would have liked. (that is still much better than FreeBSD, though) I'm much more familiar with the drivers and entry points, and that type of stuff. The details VM has always been a big mystery for me. My outline is as follows: I. Linking a driver into the kernel A. Standard Device Driver B. Loadable Kernel Modules (LKM's) II. FreeBSD Entry Points A. Required Data Structures 1. isa_device 2. isa_driver 3. ... B. Required Entry Points 1. XXprobe() 2. XXattach() 3. XXopen() 4. XXclose() C. Optional Entry Points 1. Device Switch Entry Points a. XXread() b. XXwrite() c. XXioctl() d. XXdevtotty() e. XXstart() f. XXstop() g. XXreset() h. XXstrategy() D. Interrupt type Entry Points a. XXintr() b. XXpoll() III. Kernel Support Routines > > Terry Lambert > terry@cs.weber.edu > --- > Any opinions in this posting are my own and not those of my present > or previous employers. > eric. -- erich@lodgenet.com erich@rrnet.com