Lines Matching +full:device +full:- +full:width

165 A DMA transaction can be achieved between device to memory,
166 device to device, or memory to memory.
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,
184 for that device.
190 For example, a device might require 16-byte alignment of its descriptor ring
195 If a device has restrictions that are common to all DMA transactions
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
271 device prior to the interrupt.
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
388 field contains the device visible address of the DMA segment, and
393 (e.g.\& a conversion from host byte order to the device's byte order) is
394 almost always required when presenting segment information to the device.
396 A machine-dependent opaque type describing an individual mapping.
418 .Bl -tag -width indent
450 .Bl -tag -width indent
462 Bus DMA requires explicit synchronization of memory with its device
476 where a read implies data coming from the device to the host memory, and a write
477 implies data going from the host memory to the device.
482 .Bl -tag -width ".Dv BUS_DMASYNC_POSTWRITE"
485 device.
488 and prior to device access to host memory.
491 device and prior to CPU access to host memory.
493 Perform any synchronization required after device access to host memory.
508 .Bl -tag -width indent
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"
559 All tags created by a device driver must inherit from the tag returned by
562 device.
584 be directly accessed by the device.
589 For example, a device incapable of DMA above 4GB, would specify a
597 Similarly a device that can only perform DMA to addresses below
606 Some implementations require that some region of device visible
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.
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"
796 Creates a mapping in device visible address space of
804 .Bl -tag -width ".Fa buflen"
812 mapped into device visible address space.
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"
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"
1032 Performs synchronization of a device visible mapping with the CPU visible
1035 .Bl -tag -width ".Fa dmat"
1052 is the method used to ensure that CPU's and device's direct
1056 that is to be made available to a device.
1057 To ensure that the data are visible via the device's mapping of that
1060 must be performed after the CPU has updated the buffer and before the device
1064 sync operation must be performed before an additional device
1066 Conversely, suppose a device updates memory that is to be read by a CPU.
1069 must be performed before the device access is initiated.
1086 .Bl -tag -width ".Fa alignment"
1094 .Bl -tag -width ".Dv BUS_DMA_NOWAIT"
1166 .Bl -tag -width ".Fa vaddr"
1220 .Bl -item -offset indent -compact
1240 It is common practice to call some of these functions during driver start-up
1252 called with any non-sleepable locks held:
1254 .Bl -item -offset indent -compact
1267 .Xr device 9 ,
1274 .%T "A Machine-Independent DMA Framework for NetBSD"
1305 .An -nosplit