.th RP0x VI 4/21/86
.sh NAME
RP0x - kernel interface to RP04/RP05/RP06 disk drives
.sh DESCRIPTION
The RP0x disk drive is the largest disk storage unit supported by KSOS.
The RP0x driver software supports up to eight RP04, RP05 or RP06
drives intermixed on a single controller.
.s3
The drives are identified to the kernel by their SEIDs.  The first
component of a disk drive SEID is the name space field and its value is 'device_nsp'.
The second field (unique id 0) indicates the drive type.
The third field (unique id 1) corresponds to the unit number of the
drive. The possible values of unique id 0 for RP drives are:
RWP04baseSeid (2), RWP05baseSeid (3), and RWP06baseSeid (4).
.s3
There are seven basic functions of the RP0x driver.
They are implemented with the following system calls:
K_open, K_read_block, K_write_block, K_device_function and K_close.
.s3
.lp 23 18
K_open	Before any data may be passed between the device and a process,
that process must open the device.
The K_open system call is used to perform this function.
Note that opening the device is a higher level function of the
kernel I/O system and has no effect on the device itself or the
device driver.
.s3
.lp 23 18
K_read_block	The K_read_block kernel call causes a
transfer of data from the device to the
process. Asynchronous I/O is supported. The contents of RP Error Register
1 are returned in the device dependent field of the status.
.s3
.lp 23 18
K_write_block	The K_write_block kernel call causes a
transfer of data from the process to the device.
Asynchronous I/O is supported. 
The contents of RP Error Register
1 are returned in the device dependent field of the status.
.s3
.lp 23 18
K_device_function	The RP0x device driver supports the following
functions: READ, WRITE, VOLUMEVALID, VOLUMEINVALID and UNLOAD.
.s3
.lp 23 18
K_close	The K_close kernel call has
no effect on the device driver, but prevents further access
by the process to the device.
.i0
.sh "SEE ALSO"
K_close(II),
K_device_function(II),
K_open(II),
K_read_block(II),
K_write_block(II),
ioFunction(IIa),
ioStatus(IIa),
seid(IIa)
