Device Drivers DMA Management

dma_buf_export — Creates a new dma_buf, and associates an anon file with this buffer, so it can be exported. Also connect the allocator specific data and ops to the buffer. Additionally, provide a name string for exporter; useful in debugging.
dma_buf_fd — returns a file descriptor for the given dma_buf
dma_buf_get — returns the dma_buf structure related to an fd
dma_buf_put — decreases refcount of the buffer
dma_buf_attach — Add the device to dma_buf's attachments list; optionally, calls attach of dma_buf_ops to allow device-specific attach functionality
dma_buf_detach — Remove the given attachment from dmabuf's attachments list; optionally calls detach of dma_buf_ops for device-specific detach
dma_buf_map_attachment — Returns the scatterlist table of the attachment; mapped into _device_ address space. Is a wrapper for map_dma_buf of the dma_buf_ops.
dma_buf_unmap_attachment — unmaps and decreases usecount of the buffer;might deallocate the scatterlist associated. Is a wrapper for unmap_dma_buf of dma_buf_ops.
dma_buf_begin_cpu_access — Must be called before accessing a dma_buf from the cpu in the kernel context. Calls begin_cpu_access to allow exporter-specific preparations. Coherency is only guaranteed in the specified range for the specified access direction.
dma_buf_end_cpu_access — Must be called after accessing a dma_buf from the cpu in the kernel context. Calls end_cpu_access to allow exporter-specific actions. Coherency is only guaranteed in the specified range for the specified access direction.
dma_buf_kmap_atomic — Map a page of the buffer object into kernel address space. The same restrictions as for kmap_atomic and friends apply.
dma_buf_kunmap_atomic — Unmap a page obtained by dma_buf_kmap_atomic.
dma_buf_kmap — Map a page of the buffer object into kernel address space. The same restrictions as for kmap and friends apply.
dma_buf_kunmap — Unmap a page obtained by dma_buf_kmap.
dma_buf_mmap — Setup up a userspace mmap with the given vma
dma_buf_vmap — Create virtual mapping for the buffer object into kernel address space. Same restrictions as for vmap and friends apply.
dma_buf_vunmap — Unmap a vmap obtained by dma_buf_vmap.
fence_context_alloc — allocate an array of fence contexts
fence_signal_locked — signal completion of a fence
fence_signal — signal completion of a fence
fence_wait_timeout — sleep until the fence gets signaled or until timeout elapses
fence_enable_sw_signaling — enable signaling on fence
fence_add_callback — add a callback to be called when the fence is signaled
fence_remove_callback — remove a callback from the signaling list
fence_default_wait — default sleep until the fence gets signaled or until timeout elapses
fence_init — Initialize a custom fence.
.//drivers/dma-buf/seqno-fence.c — Document generation inconsistency
struct fence — software synchronization primitive
struct fence_cb — callback for fence_add_callback
struct fence_ops — operations implemented for fence
fence_get — increases refcount of the fence
fence_get_rcu — get a fence from a reservation_object_list with rcu read lock
fence_put — decreases refcount of the fence
fence_is_signaled_locked — Return an indication if the fence is signaled yet.
fence_is_signaled — Return an indication if the fence is signaled yet.
fence_later — return the chronologically later fence
fence_wait — sleep until the fence gets signaled
to_seqno_fence — cast a fence to a seqno_fence
seqno_fence_init — initialize a seqno fence
.//drivers/dma-buf/reservation.c — Document generation inconsistency
.//include/linux/reservation.h — Document generation inconsistency
dma_alloc_from_coherent — try to allocate memory from the per-device coherent area
dma_release_from_coherent — try to free the memory allocated from per-device coherent memory pool
dma_mmap_from_coherent — try to mmap the memory allocated from per-device coherent memory pool to userspace
dmam_alloc_coherent — Managed dma_alloc_coherent
dmam_free_coherent — Managed dma_free_coherent
dmam_alloc_noncoherent — Managed dma_alloc_non_coherent
dmam_free_noncoherent — Managed dma_free_noncoherent
dmam_declare_coherent_memory — Managed dma_declare_coherent_memory
dmam_release_declared_memory — Managed dma_release_declared_memory.