*参照元 [#ba7757ed] #backlinks *説明 [#i7be32dc] -パス: [[linux-4.4.1/drivers/staging/android/ion/ion_carveout_heap.c]] -FIXME: これは何? --説明 **引数 [#e7f5e665] -struct ion_buffer *buffer -- --[[linux-4.4.1/ion_buffer]] **返り値 [#jcf38159] -なし **参考 [#v95a6d2c] *実装 [#b8f0968e] static void ion_carveout_heap_free(struct ion_buffer *buffer) { struct ion_heap *heap = buffer->heap; struct sg_table *table = buffer->priv_virt; struct page *page = sg_page(table->sgl); ion_phys_addr_t paddr = PFN_PHYS(page_to_pfn(page)); - --[[linux-4.4.1/ion_heap]] --[[linux-4.4.1/sg_table]] --[[linux-4.4.1/page]] --[[linux-4.4.1/sg_page()]] --[[linux-4.4.1/ion_phys_addr_t]] --[[linux-4.4.1/PFN_PHYS()]] --[[linux-4.4.1/page_to_pfn()]] ion_heap_buffer_zero(buffer); - --[[linux-4.4.1/ion_heap_buffer_zero()]] if (ion_buffer_cached(buffer)) dma_sync_sg_for_device(NULL, table->sgl, table->nents, DMA_BIDIRECTIONAL); - --[[linux-4.4.1/ion_buffer_cached()]] --[[linux-4.4.1/dma_sync_sg_for_device()]] ion_carveout_free(heap, paddr, buffer->size); sg_free_table(table); kfree(table); - --[[linux-4.4.1/ion_carveout_free()]] --[[linux-4.4.1/sg_free_table()]] --[[linux-4.4.1/kfree()]] } *コメント [#g6ee6969]