The arrangement of disk hardware usually has a number of physical
disks connected to a common controller. For example, each IDE
interface connects to just two disk devices, a SCSI controller may be
connected to several disks. The important feature to consider here is
that any current data transfer for any one disk on a controller
prevents transfers being started on any other disks on that controller
until it is finished. Disk controllers are therefore the level at
which concurrency and interrupt controls must be implemented.
Each disk controller is created by the macro:
DISK_CONTROLLER(l, dev_priv)
Arguments
l
The "C" label for this structure.
dev_priv
A placeholder for any device specific data for
this controller.