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 — 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.
reservation_object_reserve_shared — Reserve space to add shared fences to a reservation_object.
reservation_object_add_shared_fence — Add a fence to a shared slot
reservation_object_add_excl_fence — Add an exclusive fence.
reservation_object_copy_fences — Copy all fences from src to dst.
reservation_object_get_fences_rcu — Get an object's shared and exclusive fences without update side lock held
reservation_object_wait_timeout_rcu — Wait on reservation's objects shared and/or exclusive fences.
reservation_object_test_signaled_rcu — Test if a reservation object's fences have been signaled.
struct reservation_object_list — a list of shared fences
struct reservation_object — a reservation object manages fences for a buffer
reservation_object_init — initialize a reservation object
reservation_object_fini — destroys a reservation object
reservation_object_get_list — get the reservation object's shared fence list, with update-side lock held
reservation_object_lock — lock the reservation object
reservation_object_lock_interruptible — lock the reservation object
reservation_object_trylock — trylock the reservation object
reservation_object_unlock — unlock the reservation object
reservation_object_get_excl — get the reservation object's exclusive fence, with update-side lock held
reservation_object_get_excl_rcu — get the reservation object's exclusive fence, without lock held.
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.