.TH sdevice "" "" "System Administration"
.PC "Configure drivers included within kernel"
.B "/etc/conf/sdevice"
.PP
File
.B sdevice
configures the drivers that can be included within the \*(CO kernel.
Command
.B idmkcoh
reads this file when it builds a new \*(CO kernel, and uses the information
within it to configure the suite of drivers it links into the kernel.
.PP
There is one line within the file for each type of hardware device;
if a driver manipulates more than one type of device, then it has one
entry for each type of device it manipulates.
A driver's entry within file
.B /etc/conf/mdevice
indicates how many entries a driver can have with
.BR sdevice :
if field 3 contains flag `o', the device can have only one entry; whereas if
field 3 does not contain this flag, it can have more than one entry (although
it is not required to do so).
An entry that begins with a pound sign `#' is a comment, and is ignored by
.BR idmkcoh .
.PP
Each entry within
.B sdevice
consists of ten fields, as follows:
.IP "\fB1. \fIName\fR"
This gives the name of driver, and must match the name given in
.BR mdevice .
It cannot exceed eight characters.
.IP "\fB2. \fIIncluded in Kernel?\fR"
This field indicates whether the driver is to be linked into the kernel:
`Y' indicates that it is, `N' that it is not.
.IP "\fB3. \fINumber of Units\fR"
The number of the hardware units that this driver can manipulate.
Under \*(CO, this is always set to zero.
.IP "\fB4. \fIInterrupt Priority\fR"
The device's interrupt priority.
This must be a value between 0 and 8:
zero indicates that this device is not interrupt driven, whereas a value from
1 to 8 gives the interrupt priority.
.IP "\fB5. \fIInterrupt Type\fR"
The type of interrupt for this device.
The legal values are as follows:
.RS
.IP \fB0\fR 0.3i
This device is not interrupt driven.
.IP \fB1\fR
The device is interrupt driven.
If the driver controls more than one device,
each requires a separate interrupt.
.IP \fB2\fR
The device is interrupt driven.
If the driver supports more than one device,
all share the same interrupt.
.IP \fB3\fR
The device requires an interrupt line.
If the driver supports more than one device,
all share the same interrupt.
Multiple device drivers that the same interrupt priority
can share this interrupt; however, this requires special hardware support.
.RE
.IP "\fB6. \fIInterrupt Vector\fR"
The interrupt vector used by the device.
If field 5 is set to zero, this must be also.
.IP "\fB7. \fILow I/O Address\fR"
The low I/O address through which the driver communicates with the device.
Set this field to zero if it is not used.
.IP "\fB8. \fIHigh I/O Address\fR"
The high I/O address through which the driver communicates with the device.
Set this field to zero if it is not used.
.IP "\fB9. \fILow Memory Address\fR"
The low address of memory within the controller of the device being
manipulated.
Set this field to zero if it is not used.
.IP "\fB10. \fIHigh Memory Address\fR"
The high address of memory within the controller of the device being
manipulated.
Set this field to zero if it is not used.
.PP
Note that all \*(CO drivers current set fields 7 through 10 to zero.
.PP
For examples of settings for this, read the file itself.
For an example of modifying this file to add a new driver, see the Lexicon
entry for
.BR "device drivers" .
.SH "See Also"
.Xr "Administering COHERENT," administe
.Xr "device drivers," device_dr
.Xr "mdevice," mdevice
.Xr "mtune," mtune
.Xr "stune" stune
