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
The "C" label for this structure.
dev_privA placeholder for any device specific data for this controller.