Lines Matching +full:lock +full:- +full:less

170 API is a bus, device, and machine-independent (MI) interface to
182 For example, if a DMA engine in a device is limited to 32-bit addresses,
190 For example, a device might require 16-byte alignment of its descriptor ring
201 The per-group tags can then inherit these restrictions from this
203 tag rather than having to list them explicitly when creating the per-group tags.
234 Sync operations also handle architecture-specific details such as CPU cache
239 Static transactions are used with a long-lived memory region that is reused
264 will attempt to allocate memory requiring less expensive sync operations
285 to track the mappings of any in-flight transactions.
315 .Bl -tag -width indent
317 A machine-dependent (MD) opaque type that describes the
329 a driver can over-ride individual fields to suit its needs.
331 .Bd -literal
353 .Bl -tag -width indent
371 .Ql trunc_page(testaddr) + PAGE_SIZE - 1 ,
374 can be accommodated by the device and non-zero otherwise.
378 A machine-dependent type that describes individual
381 .Bd -literal
396 A machine-dependent opaque type describing an individual mapping.
418 .Bl -tag -width indent
450 .Bl -tag -width indent
482 .Bl -tag -width ".Dv BUS_DMASYNC_POSTWRITE"
496 Client specified lock/mutex manipulation method.
498 within busdma whenever a client lock needs to be manipulated.
508 .Bl -tag -width indent
519 argument specifies the lock operation to perform.
537 Operations to be performed by the client-specified
539 .Bl -tag -width ".Dv BUS_DMA_UNLOCK"
547 .Bl -tag -width indent
553 .Bl -tag -width ".Fa filtfuncarg"
587 and less than or equal to
631 .Bl -tag -width ".Dv BUS_DMA_ALLOCNOW"
633 Pre-allocate enough resources to handle at least one map load operation on
645 Indicate that the DMA engine and CPU are cache-coherent.
655 Optional lock manipulation function (may be
658 needs to manipulate a lock on behalf of the client.
703 argument is non-NULL, this parent tag is associated with the template and
733 key-value parameters.
735 it into a key-value structure that is directly usable as a parameter argument.
737 .Bd -literal
753 .Bl -tag -width ".Fa nsegments"
758 .Bl -tag -width ".Dv BUS_DMA_COHERENT"
782 .Bl -tag -width ".Fa dmat"
804 .Bl -tag -width ".Fa buflen"
826 .Bl -tag -width ".Dv BUS_DMA_NOWAIT"
831 The generated transactions to and from the virtual page are non-cacheable.
836 .Bl -tag -width ".Er EINPROGRESS"
847 This may result in out-of-order processing of requests.
876 .Bl -tag -width ".Er EINPROGRESS"
886 in the tag even though the requested allocation size was less than maxsize.
905 .Bl -tag -width ".Er CAM_DATA_SG_PADDR"
923 .Bl -item -offset indent -compact
995 .Fa uio->uio_resid .
1003 .Fa uio->uio_segflg
1009 .Fa "uio->uio_td->td_proc" Ns 's
1011 User space memory must be in-core and wired prior to attempting a map
1018 .Bl -tag -width ".Fa dmam"
1035 .Bl -tag -width ".Fa dmat"
1086 .Bl -tag -width ".Fa alignment"
1094 .Bl -tag -width ".Dv BUS_DMA_NOWAIT"
1166 .Bl -tag -width ".Fa vaddr"
1194 The first is a private global lock that is used to synchronize access to the
1196 This lock is strictly a leaf lock that is only used internally to
1204 the most efficient way to protect the tag resources is through the lock that
1208 acts on its own without being called by the driver, the lock primitive
1216 functions must always be called with the same lock held that is specified in the
1220 .Bl -item -offset indent -compact
1240 It is common practice to call some of these functions during driver start-up
1243 different threads during this operation, it is safe to not hold a lock for
1248 operations should not be called with the driver lock held, either because
1249 they are already protected by an internal lock, or because they might sleep
1252 called with any non-sleepable locks held:
1254 .Bl -item -offset indent -compact
1274 .%T "A Machine-Independent DMA Framework for NetBSD"
1305 .An -nosplit