freebsd-src/sys/dev/aac
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
..
aac.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
aac_cam.c Begin support for 64-bit address support and workarounds for newer cards: 2003-03-26 17:50:11 +00:00
aac_compat.h Bring the aac driver *much* closer to style(9). 2001-09-05 20:43:02 +00:00
aac_debug.c Use bioq_flush() to drain a bio queue with a specific error code. 2003-04-01 15:06:26 +00:00
aac_disk.c Fixing some glaring problems with aac_disk_dump(). 2003-06-19 01:49:04 +00:00
aac_ioctl.h Bring the aac driver *much* closer to style(9). 2001-09-05 20:43:02 +00:00
aac_linux.c The AAC_COMPAT_LINUX option was really annoying, since it made the 2002-09-25 05:00:25 +00:00
aac_pci.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
aac_tables.h MFS: Use correct terminology for RAID 0/1 and 0/5. 2001-12-04 02:39:06 +00:00
aacreg.h Begin support for 64-bit address support and workarounds for newer cards: 2003-03-26 17:50:11 +00:00
aacvar.h Use bioq_flush() to drain a bio queue with a specific error code. 2003-04-01 15:06:26 +00:00