*参照元 [#gb74720f]
#backlinks

*説明 [#a184dc05]
-パス: [[linux-4.4.1/drivers/staging/android/ion/ion.c]]

-FIXME: これは何?
--説明


**引数 [#d6450449]
-struct ion_buffer *buffer
--
--[[linux-4.4.1/ion_buffer]]
-struct device *dev
--
--[[linux-4.4.1/device]]
-enum dma_data_direction dir
--
--[[linux-4.4.1/dma_data_direction]]


**返り値 [#r3f61b50]
-なし


**参考 [#r58d859d]


*実装 [#r35a223a]
 static void ion_buffer_sync_for_device(struct ion_buffer *buffer,
                                        struct device *dev,
                                        enum dma_data_direction dir)
 {
         struct ion_vma_list *vma_list;
         int pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE;
         int i;
 
-
--[[linux-4.4.1/ion_vma_list]]
--[[linux-4.4.1/PAGE_ALIGN()]]
--[[linux-4.4.1/PAGE_SIZE]]

         pr_debug("%s: syncing for device %s\n", __func__,
                  dev ? dev_name(dev) : "null");
 
-
--[[linux-4.4.1/pr_debug()]]
--[[linux-4.4.1/dev_name()]]

         if (!ion_buffer_fault_user_mappings(buffer))
                 return;
 
-
--[[linux-4.4.1/ion_buffer_fault_user_mappings()]]

         mutex_lock(&buffer->lock);
         for (i = 0; i < pages; i++) {
-
--[[linux-4.4.1/mutex_lock()]]

                 struct page *page = buffer->pages[i];
 
                 if (ion_buffer_page_is_dirty(page))
                         ion_pages_sync_for_device(dev, ion_buffer_page(page),
                                                         PAGE_SIZE, dir);
 
-
--[[linux-4.4.1/page]]
--[[linux-4.4.1/ion_buffer_page_is_dirty()]]
--[[linux-4.4.1/ion_pages_sync_for_device()]]
--[[linux-4.4.1/ion_buffer_page()]]

                 ion_buffer_page_clean(buffer->pages + i);
         }
-
--[[linux-4.4.1/ion_buffer_page_clean()]]

         list_for_each_entry(vma_list, &buffer->vmas, list) {
                 struct vm_area_struct *vma = vma_list->vma;
 
                 zap_page_range(vma, vma->vm_start, vma->vm_end - vma->vm_start,
                                NULL);
         }
         mutex_unlock(&buffer->lock);
-
--[[linux-4.4.1/list_for_each_entry()]]
--[[linux-4.4.1/vm_area_struct]]
--[[linux-4.4.1/zap_page_range()]]
--[[linux-4.4.1/mutex_unlock()]]

 }


*コメント [#w2165950]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS