User space ------------------------------------------------------------------------- Kernel space |------------| |------------| |------------| upper | SD | | SR | | ST | |------------| level | disks | |cdroms/dvds | | tapes | | SG | |block device| |block device| |char device | |pass-through| | {sd_mod.o} | | {sr_mod.o} | | {st.o} | |char device | |------------| |------------| |------------| | {sg.o} | |------------| |--------------------------------------------| | SCSI | mid | unifying layer | level | {scsi_mod.o} | | scsi*.[hc], hosts.[hc], constants.c | |--------------------------------------------| |---------------| |---------------| |Host (e.g. UW) |-| |Pseudo drivers |-| lower | Bus Adapter | |-| |for non SCSI | |-| level | Drivers | | | |buses | | | |(e.g. aic7xxx) | | | |(e.g. ide-scsi)| | | |---------------| | | |---------------| | | |---------------| | |---------------| | |---------------| |---------------| |-------------------------------------------------| upper | Uniform CD-ROM layer | level | __________________________ | | | DVD, audio, etc | | |-------------------------------------------------| |------------| |------------| |------------| mid | ide-cd | | sr | | Older | level |ATAPI CD-ROM| |cdroms/dvds | |generic CD | |driver | |block device| |drivers (sb,| | {ide-cd.o} | | {sr_mod.o} | |mitsumi,etc)| |------------| |------------| |------------| |------------| |------------| low | IDE | | SCSI mid | level | sub system | | level | |driver | | | | {ide-cd.o} | |+ SCSI lower| |------------| |------------| +---------------+ | scsi midlevel | +---------------+ | | ... +--------+ | ppscsi | +--------+ / | \... +------+ +------+ | bpck | | vpi0 | +------+ +------+