freebsd-dev/sys/dev/isp
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
..
DriverManual.txt
Hardware.txt Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
isp_freebsd.c Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 2003-06-14 22:17:41 +00:00
isp_freebsd.h
isp_inline.h
isp_ioctl.h
isp_pci.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
isp_sbus.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
isp_target.c Remove unused variables 2003-05-31 19:49:49 +00:00
isp_target.h
isp_tpublic.h Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/ 2002-12-30 21:18:15 +00:00
isp.c Restore parentheses removed inappropriately in last commit. 2003-06-01 19:01:01 +00:00
ispmbox.h Add an explanatory comment about what operational modes in xfwopt are. 2003-03-25 07:02:45 +00:00
ispreg.h
ispvar.h This should enable 10160 support. As best as I can tell, the same 2002-10-11 17:28:01 +00:00