ddeevviiccee ddrriivveerrss -- Overview


A  _d_e_v_i_c_e _d_r_i_v_e_r  is  a program  that  controls the  action of  one of  the
physical devices attached to your computer system.

The following table lists the  device drivers included with this edition of
the  COHERENT system.   The  first field  gives the  device's major  device
number; the  second gives  its name;  and the third  describes it.   When a
major  device number  has  no driver  associated  with it,  that device  is
available for a driver yet to be written.

 0:  mmeemm       Interface to memory and null device
 1:  ttttyy       Controlling terminal device
 2:  nnkkbb/kkbb/mmmm Keyboard and video
 3:  llpp        Parallel line printer
 4:  ffll        Floppy drive
 5:  aassyy       Serial driver (COHERENT 386 only)
 5:  aall00       Serial line 0 (COM1 and COM3) (COHERENT 286 only)
 6:  aall11       Serial line 1 (COM2 and COM4) (COHERENT 286 only)
 7:  hhss        Generic polled multi-port serial card (COHERENT 286 only)
 8:  rrmm        Dual RAM disk
 9:  ppttyy       Pseudoterminals (COHERENT 386 only)
10:  mmss        Microsoft Mouse
11:  aatt        AT hard disk
12:  sstt        Archive Streaming Tape
12:
13:  ssccssii      SCSI device drivers: aahhaa115544xx, ssss
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:  sseemm       System V compatible semaphores
24:  sshhmm       System V subset shared memory
25:  mmssgg       System V compatible messaging
26:
27:
28:
29:
30:
31:

Also included are drivers for the following devices:

ccoonnssoollee   Console driver
cctt        Controlling terminal driver
nnuullll      The ``bit bucket''

These device  drivers are  distributed with  the COHERENT system  in binary
form only.  For proprietary reasons, source code for some drivers cannot be
included with the COHERENT Device Driver Kit.

The command BBuuiilldd links the drivers into a new version of the kernel.

_M_a_j_o_r _a_n_d _M_i_n_o_r _N_u_m_b_e_r_s
COHERENT uses a system of _m_a_j_o_r  and _m_i_n_o_r device numbers to manage devices
and drivers.   In theory,  COHERENT assigns a  unique major number  to each
type of  device, and a unique  minor number to each  instance of that type.
In practice, however, a major number describes a device driver (rather than
a device _p_e_r _s_e).   The  individual devices  serviced  by  that driver  are
identified by a minor number.  Sometimes, certain parts of the minor number
specify configuration.   For example, bits 0 through 6  of the minor number
for COHERENT RAM disks indicate the size of the allocated device.

In COHERENT  286, devices  using different  IRQ's may have  different major
numbers, even  if the devices are  of the same general  type.  For example,
devices ccoomm11*  and ccoomm33* have  major number 5,  while ccoomm22* and  ccoomm44* have
major number 6.

_S_e_r_i_a_l _P_o_r_t_s
The two implementations of  COHERENT come with different drivers for serial
ports.

COHERENT 286 comes with two sets  of drivers.  aall00 and aall11 support ordinary
serial lines.   aall00 supports ports CCOOMM11  and CCOOMM33, and has  major number 5.
aall11 supports ports  CCOOMM22 and CCOOMM44, and has major  number 6.  The driver hhss,
on the other hand, supports generic polled multi-port serial cards.

COHERENT  386 replaces  these drivers  with one driver,  aassyy. It  has major
number 5,  like aall00, but it  supports all four CCOOMM ports,  and a variety of
generic multi-port cards.  The  configuration of ports that aassyy supports is
set when you install COHERENT;  however, you can reconfigure aassyy should you
wish to  add more  hardware to  your system.  See  its Lexicon  article for
details.

_S_e_e _A_l_s_o
aacccceessssiibbllee kkeerrnneell rroouuttiinneess,  bblloocckk-ddeevviiccee rroouuttiinneess, ddrriivveerr-aacccceessss rroouuttiinneess,
hheeaaddeerr ffiilleess,  iinntteerrrruupptt-hhaannddlleerr rroouuttiinneess, II/OO  rroouuttiinneess, kkeerrnneell vvaarriiaabblleess,
mmeemmoorryy-mmaanniippuullaattiioonn   rroouuttiinneess,    rraaccee   ccoonnddiittiioonn,   sseeggmmeenntt-mmaanniippuullaattiioonn
rroouuttiinneess, sswwaapp, tteerrmmiinnaall-ddeevviiccee rroouuttiinneess
