freebsd-src/sys/dev/ata
Scott Long f6b1c44d1f Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg.
Lockfunc allows a driver to provide a function for managing its locking
semantics while using busdma.  At the moment, this is used for the
asynchronous busdma_swi and callback mechanism.  Two lockfunc implementations
are provided: busdma_lock_mutex() performs standard mutex operations on the
mutex that is specified from lockfuncarg.  dftl_lock() is a panic
implementation and is defaulted to when NULL, NULL are passed to
bus_dma_tag_create().  The only time that NULL, NULL should ever be used is
when the driver ensures that bus_dmamap_load() will not be deferred.
Drivers that do not provide their own locking can pass
busdma_lock_mutex,&Giant args in order to preserve the former behaviour.

sparc64 and powerpc do not provide real busdma_swi functions, so this is
largely a noop on those platforms.  The busdma_swi on is64 is not properly
locked yet, so warnings will be emitted on this platform when busdma
callback deferrals happen.

If anyone gets panics or warnings from dflt_lock() being called, please
let me know right away.

Reviewed by:	tmm, gibbs
2003-07-01 15:52:06 +00:00
..
ata-all.c Add string for SATA150 2003-05-18 16:43:08 +00:00
ata-all.h Grap the ATA lock on all channels before suspend, this makes certain 2003-05-04 09:34:14 +00:00
ata-card.c Remove check to see if the get resource for the second resource 2003-06-27 03:25:43 +00:00
ata-cbus.c Second round of updates to the ATA driver. 2003-03-29 13:37:09 +00:00
ata-chipset.c Prevent probing the secondary channel on CMD646 controllers if the 2003-06-27 10:11:54 +00:00
ata-disk.c Print the right position on disk errors 2003-05-19 13:43:12 +00:00
ata-disk.h Add flushing of devices on shutdown. 2003-05-02 13:47:44 +00:00
ata-dma.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
ata-isa.c Second round of updates to the ATA driver. 2003-03-29 13:37:09 +00:00
ata-pci.c Fix the setup of old Promise controllers, clocks was not setup right 2003-06-07 15:19:16 +00:00
ata-pci.h Support the ICH5 SATA part. 2003-05-18 16:45:48 +00:00
ata-raid.c Acquire Giant at the start of the raid rebuild kthreads. 2003-05-08 16:38:14 +00:00
ata-raid.h Change the way loadbalancing works on RAID1's. 2003-05-04 16:17:54 +00:00
atapi-all.c Second round of updates to the ATA driver. 2003-03-29 13:37:09 +00:00
atapi-all.h First round off updates/fixes to the ATA driver. 2003-02-20 20:02:32 +00:00
atapi-cam.c Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 2003-06-14 22:17:41 +00:00
atapi-cd.c Use bioq_flush() to drain a bio queue with a specific error code. 2003-04-01 15:06:26 +00:00
atapi-cd.h First round off updates/fixes to the ATA driver. 2003-02-20 20:02:32 +00:00
atapi-fd.c Use bioq_flush() to drain a bio queue with a specific error code. 2003-04-01 15:06:26 +00:00
atapi-fd.h Centralize the devstat handling for all GEOM disk device drivers 2003-03-08 08:01:31 +00:00
atapi-tape.c Add a missing ~ when clearing flags in close. 2003-05-05 10:11:17 +00:00
atapi-tape.h Allocate the devstat structure with devstat_new_entry(). 2003-03-08 21:32:59 +00:00