937a7a3ed9
This is a completely rewritten scsipi_xfer execution engine, and the associated changes to HBA drivers. Overview of changes & features: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers). - support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command will be requeued, or a REQUEST SENSE will be sent as appropriate. Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge |
||
---|---|---|
.. | ||
amd7930intr.s | ||
asm.h | ||
autoconf.c | ||
auxiotwo.c | ||
auxiotwo.h | ||
auxreg.c | ||
auxreg.h | ||
bsd_fdintr.s | ||
cache.c | ||
cache.h | ||
clock.c | ||
compat_13_machdep.c | ||
conf.c | ||
cpu.c | ||
cpuvar.h | ||
db_disasm.c | ||
db_interface.c | ||
db_trace.c | ||
disksubr.c | ||
emul.c | ||
genassym.cf | ||
in_cksum.c | ||
intr.c | ||
intreg.h | ||
iommu.c | ||
iommureg.h | ||
iommuvar.h | ||
kgdb_machdep.c | ||
locore2.c | ||
locore.s | ||
machdep.c | ||
mem.c | ||
memecc.c | ||
memeccreg.h | ||
memreg.c | ||
memreg.h | ||
openfirm.c | ||
openprom.c | ||
pmap.c | ||
process_machdep.c | ||
procfs_machdep.c | ||
promlib.c | ||
sunos_machdep.c | ||
svr4_machdep.c | ||
sys_machdep.c | ||
timerreg.h | ||
trap.c | ||
vaddrs.h | ||
vm_machdep.c |