参照元

説明

引数

返り値

参考

実装

プロトタイプ宣言

#ifdef CONFIG_BOUNCE

(...略...)

extern void blk_queue_bounce(struct request_queue *q, struct bio **bio);
#else

(...略...)

static inline void blk_queue_bounce(struct request_queue *q, struct bio **bio)
{
}
#endif /* CONFIG_MMU */

CONFIG_BOUNCE が定義されている場合

void blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
{
        mempool_t *pool;
        /*
         * Data-less bio, nothing to bounce
         */
        if (bio_empty_barrier(*bio_orig))
                return;
        /*
         * for non-isa bounce case, just check if the bounce pfn is equal
         * to or bigger than the highest pfn in the system -- in that case,
         * don't waste time iterating over bio segments
         */
        if (!(q->bounce_gfp & GFP_DMA)) {
                if (q->bounce_pfn >= blk_max_pfn)
                        return;
                pool = page_pool;
        } else {
                BUG_ON(!isa_page_pool);
                pool = isa_page_pool;
        }
        /*
         * slow path
         */
        __blk_queue_bounce(q, bio_orig, pool);
}

EXPORT_SYMBOL(blk_queue_bounce);

CONFIG_BOUNCE が定義されていない場合

コメント



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS