The high-level SCSI interface in the <#1249#><#1249#> kernel manages all of the
interaction between the kernel and the low-level SCSI device driver.
Because of this layered design, a low-level SCSI driver need only provide a
few basic services to the high-level code. The author of a low-level
driver does not need to understand the intricacies of the kernel I/O system
and, hence, can write a low-level driver in a relatively short amount of
time.
Two main structures (14 and 15) are used to
communicate between the high-level code and the low-level code. The next
two sections provide detailed information about these structures and the
requirements of the low-level driver.