参照元

説明

引数

返り値

参考

実装

/*
 * Allocate a DMA buffer for 'dev' of size 'size' using the
 * specified gfp mask.  Note that 'size' must be page aligned.
 */
static struct page *__dma_alloc_buffer(struct device *dev, size_t size, gfp_t gfp)
{
        unsigned long order = get_order(size);
        struct page *page, *p, *e;
        page = alloc_pages(gfp, order);
        if (!page)
                return NULL;
        /*
         * Now split the huge page and free the excess pages
         */
        split_page(page, order);
        for (p = page + (size >> PAGE_SHIFT), e = page + (1 << order); p < e; p++)
                __free_page(p);
        __dma_clear_buffer(page, size);
        return page;
}

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-22 (月) 16:12:42