Lines Matching +full:cpu +full:- +full:map
119 .Fn bus_dmamap_destroy "bus_dma_tag_t dmat" "bus_dmamap_t map"
121 .Fn bus_dmamap_load "bus_dma_tag_t dmat" "bus_dmamap_t map" "void *buf" \
125 .Fn bus_dmamap_load_bio "bus_dma_tag_t dmat" "bus_dmamap_t map" \
129 .Fn bus_dmamap_load_ccb "bus_dma_tag_t dmat" "bus_dmamap_t map" \
133 .Fn bus_dmamap_load_crp "bus_dma_tag_t dmat" "bus_dmamap_t map" \
137 .Fn bus_dmamap_load_crp_buffer "bus_dma_tag_t dmat" "bus_dmamap_t map" \
141 .Fn bus_dmamap_load_mbuf "bus_dma_tag_t dmat" "bus_dmamap_t map" \
145 .Fn bus_dmamap_load_mbuf_sg "bus_dma_tag_t dmat" "bus_dmamap_t map" \
148 .Fn bus_dmamap_load_uio "bus_dma_tag_t dmat" "bus_dmamap_t map" \
152 .Fn bus_dmamap_unload "bus_dma_tag_t dmat" "bus_dmamap_t map"
154 .Fn bus_dmamap_sync "bus_dma_tag_t dmat" "bus_dmamap_t map" \
161 "bus_dmamap_t map"
164 without involving the CPU, thus providing higher performance.
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.
230 the CPU.
234 Sync operations also handle architecture-specific details such as CPU cache
235 flushing and CPU memory operation ordering.
239 Static transactions are used with a long-lived memory region that is reused
279 Dynamic transactions map memory regions provided by other parts of the system.
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.
397 One map is used for each memory allocation that will be loaded.
400 While the value of the map may evaluate to
418 .Bl -tag -width indent
450 .Bl -tag -width indent
482 .Bl -tag -width ".Dv BUS_DMASYNC_POSTWRITE"
487 Perform any synchronization required after an update of host memory by the CPU
491 device and prior to CPU access to host memory.
505 will not be called since the function loading the map should
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"
561 to honor restrictions between the parent bridge, CPU memory, and the
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
751 Allocates and initializes a DMA map.
753 .Bl -tag -width ".Fa nsegments"
758 .Bl -tag -width ".Dv BUS_DMA_COHERENT"
760 Attempt to map the memory loaded with this map such that cache sync
763 be accessed by both a CPU and a DMA engine, frequently such as control data
772 where the resulting DMA map will be stored.
779 .It Fn bus_dmamap_destroy "dmat" "map"
780 Frees all resources associated with a given DMA map.
782 .Bl -tag -width ".Fa dmat"
785 .Fa map .
786 .It Fa map
787 The DMA map to destroy.
793 .Fa map .
794 .It Fn bus_dmamap_load "dmat" "map" "buf" "buflen" "*callback" \
800 associated with the DMA map
801 .Fa map .
804 .Bl -tag -width ".Fa buflen"
807 .Fa map .
808 .It Fa map
809 A DMA map without a currently active mapping.
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.
861 .Fa map ,
876 .Bl -tag -width ".Er EINPROGRESS"
888 .It Fn bus_dmamap_load_bio "dmat" "map" "bio" "callback" "callback_arg" "flags"
896 .It Fn bus_dmamap_load_ccb "dmat" "map" "ccb" "callback" "callback_arg" "flags"
905 .Bl -tag -width ".Er CAM_DATA_SG_PADDR"
923 .Bl -item -offset indent -compact
931 .It Fn bus_dmamap_load_crp "dmat" "map" "crp" "callback" "callback_arg" "flags"
940 .It Fn bus_dmamap_load_crp_buffer "dmat" "map" "cb" "callback" "callback_arg" \
950 .It Fn bus_dmamap_load_mbuf "dmat" "map" "mbuf" "callback2" "callback_arg" \
971 .It Fn bus_dmamap_load_mbuf_sg "dmat" "map" "mbuf" "segs" "nsegs" "flags"
984 .It Fn bus_dmamap_load_uio "dmat" "map" "uio" "callback2" "callback_arg" "flags"
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
1015 .It Fn bus_dmamap_unload "dmat" "map"
1016 Unloads a DMA map.
1018 .Bl -tag -width ".Fa dmam"
1021 .Fa map .
1022 .It Fa map
1023 The DMA map that is to be unloaded.
1030 prior to unloading the map.
1031 .It Fn bus_dmamap_sync "dmat" "map" "op"
1032 Performs synchronization of a device visible mapping with the CPU visible
1035 .Bl -tag -width ".Fa dmat"
1038 .Fa map .
1039 .It Fa map
1052 is the method used to ensure that CPU's and device's direct
1055 For example, the CPU might be used to set up the contents of a buffer
1060 must be performed after the CPU has updated the buffer and before the device
1062 If the CPU modifies this buffer again later, another
1066 Conversely, suppose a device updates memory that is to be read by a CPU.
1070 The CPU will only be able to see the results of this memory update
1086 .Bl -tag -width ".Fa alignment"
1094 .Bl -tag -width ".Dv BUS_DMA_NOWAIT"
1103 Attempt to map this memory in a coherent fashion.
1128 where the resulting DMA map will be stored.
1150 referenced by the returned map, the synchronization requirements
1160 .It Fn bus_dmamem_free "dmat" "*vaddr" "map"
1166 .Bl -tag -width ".Fa vaddr"
1171 .It Fa map
1172 DMA map to be invalidated.
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
1274 .%T "A Machine-Independent DMA Framework for NetBSD"
1305 .An -nosplit