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
..
2003-07-01 15:52:06 +00:00
2003-07-01 14:08:33 +00:00
2003-04-08 19:12:48 +00:00
2003-07-01 15:52:06 +00:00
2003-06-27 18:17:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-06-14 22:17:41 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-04-23 15:40:11 +00:00
2003-04-16 20:46:30 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 14:41:16 +00:00
2003-06-28 06:17:26 +00:00
2003-05-31 20:42:24 +00:00
2003-06-09 19:13:38 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 14:08:33 +00:00
2003-07-01 15:52:06 +00:00
2003-04-15 06:37:30 +00:00
2003-04-15 06:37:30 +00:00
2003-04-15 06:37:30 +00:00
2003-07-01 15:52:06 +00:00
2003-06-11 06:34:30 +00:00
2003-06-08 10:11:55 +00:00
2003-06-13 22:34:03 +00:00
2003-03-05 08:16:29 +00:00
2003-03-03 16:24:47 +00:00
2003-07-01 15:52:06 +00:00
2003-05-31 19:31:46 +00:00
2003-04-15 06:37:30 +00:00
2003-04-29 13:36:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-06-26 17:02:52 +00:00
2003-03-29 15:38:53 +00:00
2003-06-07 20:46:39 +00:00
2003-07-01 15:52:06 +00:00
2003-05-23 05:10:49 +00:00
2003-06-16 08:42:20 +00:00
2003-04-10 04:36:02 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-03-25 00:07:06 +00:00
2003-04-15 06:37:30 +00:00
2003-07-01 15:52:06 +00:00
2003-04-21 16:27:46 +00:00
2003-04-16 03:16:57 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-03-28 06:27:08 +00:00
2002-10-18 12:06:01 +00:00
2003-07-01 15:52:06 +00:00
2003-03-29 15:55:04 +00:00
2003-03-29 13:36:41 +00:00
2003-06-19 02:50:08 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-02-16 01:30:31 +00:00
2003-03-03 12:15:54 +00:00
2003-05-12 02:44:37 +00:00
2003-04-16 03:16:57 +00:00
2003-02-19 05:47:46 +00:00
2003-07-01 15:52:06 +00:00
2003-06-17 01:20:03 +00:00
2003-04-29 13:36:06 +00:00
2003-05-31 18:21:40 +00:00
2003-06-22 11:31:38 +00:00
2003-06-17 15:02:28 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-06-02 16:32:55 +00:00
2003-05-31 20:39:28 +00:00
2003-04-15 06:37:30 +00:00
2003-04-10 04:36:02 +00:00
2003-04-16 03:16:57 +00:00
2003-03-05 08:16:29 +00:00
2002-11-28 01:09:29 +00:00
2003-06-24 19:50:48 +00:00
2003-06-19 01:40:11 +00:00
2003-06-17 12:29:49 +00:00
2003-06-12 06:06:14 +00:00
2003-06-20 07:22:54 +00:00
2003-07-01 14:08:33 +00:00
2003-03-02 16:54:40 +00:00
2003-04-16 03:16:57 +00:00
2003-05-01 19:46:21 +00:00
2003-06-11 00:34:37 +00:00
2003-04-28 08:10:27 +00:00
2003-05-14 09:37:46 +00:00
2003-04-29 13:36:06 +00:00
2003-03-03 12:15:54 +00:00
2003-06-28 17:57:30 +00:00
2003-03-05 08:16:29 +00:00
2003-06-25 14:46:01 +00:00
2003-03-03 12:15:54 +00:00
2003-03-31 18:21:52 +00:00
2003-04-15 06:37:30 +00:00
2003-04-15 17:26:28 +00:00
2003-04-16 20:57:35 +00:00
2003-05-31 19:59:29 +00:00
2003-03-05 08:16:29 +00:00
2003-06-09 21:25:14 +00:00
2003-05-31 19:58:45 +00:00
2003-03-03 12:15:54 +00:00
2003-04-15 06:37:30 +00:00
2003-06-02 08:36:18 +00:00
2003-03-03 12:15:54 +00:00
2003-07-01 15:52:06 +00:00
2003-06-02 16:32:55 +00:00
2003-04-23 20:22:32 +00:00
2003-04-10 04:36:02 +00:00
2003-06-18 18:16:40 +00:00
2003-07-01 15:52:06 +00:00
2003-06-01 04:42:14 +00:00
2003-05-31 18:57:41 +00:00
2003-03-03 12:15:54 +00:00
2003-06-13 20:46:34 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-04-16 03:16:57 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 12:17:18 +00:00
2003-06-12 14:28:32 +00:00
2003-07-01 07:53:54 +00:00
2003-04-21 18:34:04 +00:00
2003-06-08 18:35:25 +00:00
2003-07-01 15:52:06 +00:00
2003-07-01 15:52:06 +00:00
2003-04-17 17:51:24 +00:00
2003-05-31 20:27:42 +00:00
2003-03-09 11:03:45 +00:00