FIXME: なにをするもの?
mmap() - dma_buf_mmap_internal() - dmabuf->ops->mmap() ION の場合 mmap = ion_mmap, なので、 - ion_mmap() - buffer->heap->ops->map_user() Carveout Heap の場合 map_user = ion_heap_map_user, なので、 - ion_heap_map_user() - remap_pfn_range() もう一例。 mmap() - dma_buf_mmap_internal() - dmabuf->ops->mmap() V4L2, 物理連続メモリを要求するデバイスの場合 mmap = vb2_dc_mmap, なので、 - vb2_dc_mmap() - dma_mmap_coherent() - dma_mmap_attrs() - ops->mmap() ARM の場合、通常は mmap = arm_dma_mmap, なので、 - arm_dma_mmap() - __arm_dma_mmap() - remap_pfn_range()
(調査中)
$ egrep -r '^EXPORT_SYMBOL' drivers/dma-buf/ drivers/dma-buf/seqno-fence.c:EXPORT_SYMBOL(seqno_fence_ops); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_context_alloc); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_signal_locked); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_signal); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_wait_timeout); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_release); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_free); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_enable_sw_signaling); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_add_callback); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_remove_callback); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_default_wait); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_wait_any_timeout); drivers/dma-buf/fence.c:EXPORT_SYMBOL(fence_init); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_ww_class); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_seqcount_class); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_seqcount_string); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_object_reserve_shared); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_object_add_shared_fence); drivers/dma-buf/reservation.c:EXPORT_SYMBOL(reservation_object_add_excl_fence); drivers/dma-buf/reservation.c:EXPORT_SYMBOL_GPL(reservation_object_get_fences_rcu); drivers/dma-buf/reservation.c:EXPORT_SYMBOL_GPL(reservation_object_wait_timeout_rcu); drivers/dma-buf/reservation.c:EXPORT_SYMBOL_GPL(reservation_object_test_signaled_rcu); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_export); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_fd); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_get); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_put); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_attach); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_detach); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_map_attachment); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_kmap_atomic); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_kunmap_atomic); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_kmap); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_kunmap); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_mmap); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_vmap); drivers/dma-buf/dma-buf.c:EXPORT_SYMBOL_GPL(dma_buf_vunmap);