[comp.lang.c] Device drivers

jwr@moscom.UUCP (02/12/87)

References:




Hi.
I would like to learn how to write device drivers (in C under Unix).
I presently know very little of this subject.
Can anyone offer advice, references, or sample programs ?
Any kind of information would be very appreciated.
Please reply by mail.
Thanks much in advance.


Jim Reid

dhb@rayssd.UUCP (02/16/87)

In article <907@moscom.UUCP> jwr@moscom.UUCP (Jim Reid) writes:
>I would like to learn how to write device drivers (in C under Unix).
>I presently know very little of this subject.
>Can anyone offer advice, references, or sample programs ?

I am posting this as a followup instead of using mail because I have
seen several messages like this lately and most of the replies that
I sent out were bounced back.

If you (or your company) have access to a Sun workstation, get a copy
of the manual "Writing Device Drivers for the Sun Workstation".  The
"part number" from Sun is 800-1304-xx (the last two digits are the rev).
Some of the stuff in the manual is specific to the Sun but as a general
rule it applies to any Berkeley based UNIX system.  You should also read
"The UNIX I/O System" by Dennis Ritchie.  To quote the table of contents
from the 4.3 manuals: "still helpful for those writing device drivers".
After having read all of this you should follow the advice listed in
one of the documents that comes with 4.xBSD, find a driver for a similar
device and make minor modifications.  If you have ever been confused by
attempting to read a device driver you will be amazed at how much more
understandable they are after reading these two manuals.  Not completely
understandable mind you, just more so than before.  Complete understanding
requires either years of experience or mind-altering drugs.

If you are trying to write a driver for a non-Berkeley system, skip the
first part and begin by reading the Ritchie paper.
-- 
David H. Brierley
Raytheon Submarine Signal Division; Portsmouth RI; (401)-847-8000 x4073
smart mailer or arpanet: dhb@rayssd.ray.com
old dumb mailer or uucp: {cbosgd,gatech,ihnp4,linus!raybed2} !rayssd!dhb

pilgrimk@lafcol.UUCP ([5m[7m[1mchaudhas[0m) (02/08/89)

Has anyone out there come across a program which removes or 
installs device drivers? 

i.e. If ANSI.SYS is already loaded and I want to replace this with
a driver of my own, the program do this for me. Or if I haven't loaded
VDISK.SYS, the program will also take care of that problem ... etc.

*Note: the program can be run at anytime, not only at boot-up time!

Something along those lines will do fine.

please use e-mail

Thanks
 -Kenwyn

network@hgcvax (craig chaiken) (02/17/89)

In article <381@lafcol.UUCP>, pilgrimk@lafcol.UUCP ([5m[7m[1mchaudhas[0m) writes:
> Has anyone out there come across a program which removes or 
> installs device drivers? 
> 
> i.e. If ANSI.SYS is already loaded and I want to replace this with
> a driver of my own, the program do this for me. Or if I haven't loaded
> VDISK.SYS, the program will also take care of that problem ... etc.
> 
> *Note: the program can be run at anytime, not only at boot-up time!
>  -Kenwyn

I wrote such a program.  It works for character devices only, though.
I haven't figured out why block devices don't work.  Anyway, I 
submitted this program in article form to PC Magazine.  If they don't
accept it, expect to see it in comp.sys.ibm.pc in the near future.

Craig Chaiken
Hartford Graduate Center
Computing Services

ojpotter@fred.cs.washington.edu (07/10/90)

I am writing a program and would like to support multiple IEEE devices.
I want to make drivers for each device and then somehow load/access them
at runtime.  Does anyone have a good format for generic device drivers?
Please email me your suggestions.  Thanks in advance.

Jay Potter
ojpotter@fred.cs.washington.edu