参照元

説明

FIXME: なにをするもの?

  • とぴっく
    • 解説

主要 API

  • Using small DMA-coherent buffers
    • linux-4.4.1/dma_pool_create()?
    • linux-4.4.1/dma_pool_zalloc()?
    • linux-4.4.1/dma_pool_alloc()?
    • linux-4.4.1/dma_pool_free()?
    • linux-4.4.1/dma_pool_destroy()?
  • Streaming DMA mappings
    • linux-4.4.1/dma_map_single()
    • linux-4.4.1/dma_unmap_single()?
    • linux-4.4.1/dma_map_page()?
    • linux-4.4.1/dma_unmap_page()?
    • linux-4.4.1/dma_mapping_error()?
    • linux-4.4.1/dma_map_sg()?
int i, count = dma_map_sg(dev, sglist, nents, direction);
struct scatterlist *sg;

for_each_sg(sglist, sg, count, i) {
	hw_address[i] = sg_dma_address(sg);
	hw_len[i] = sg_dma_len(sg);
}
  • linux-4.4.1/dma_unmap_sg()?
#include <linux/dma-attrs.h>
/* DMA_ATTR_FOO should be defined in linux/dma-attrs.h and
 * documented in Documentation/DMA-attributes.txt */
...

        DEFINE_DMA_ATTRS(attrs);
        dma_set_attr(DMA_ATTR_FOO, &attrs);
        ....
        n = dma_map_sg_attrs(dev, sg, nents, DMA_TO_DEVICE, &attr);
        ....
void whizco_dma_map_sg_attrs(struct device *dev, dma_addr_t dma_addr,
        size_t size, enum dma_data_direction dir,
        struct dma_attrs *attrs)
{
        ....
        int foo =  dma_get_attr(DMA_ATTR_FOO, attrs);
        ....
        if (foo)
                /* twizzle the frobnozzle */
        ....

参考

https://www.kernel.org/doc/Documentation/DMA-API.txt

linux/Documentation/DocBook/device-drivers/

関連モジュール

コメント


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-15 (火) 10:23:53 (918d)