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);