- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#s17d99fa]
*参照元 [#gbe690a9]
#backlinks
*説明 [#ve989e87]
*説明 [#wcd2201a]
-パス:
--CONFIG_BOUNCE による分岐点: [[linux-2.6.25/include/linux/blkdev.h]]
--関数の定義位置: [[linux-2.6.25/mm/bounce.c]]
--プロトタイプ宣言: [[linux-2.6.25/include/linux/blkdev.h]]
---CONFIG_BOUNCE 有効時: [[linux-2.6.25/mm/bounce.c]]
---CONFIG_BOUNCE 無効時: [[linux-2.6.25/include/linux/blkdev.h]]
-これは何?
-FIXME: これは何?
--説明
**引数 [#h9d75e73]
**引数 [#xa7efef2]
-struct request_queue *q
--
--[[linux-2.6.25/request_queue]]
-struct bio **bio_orig
--
--[[linux-2.6.25/bio]]
**返り値 [#e6ef81dd]
**返り値 [#i6486688]
-なし
**参考 [#l860da97]
**参考 [#g45786ca]
*実装 [#l3c93bfc]
*** [#ke591fd7]
*実装 [#j659b4a3]
***プロトタイプ宣言 [#cedadef4]
#ifdef CONFIG_BOUNCE
(...略...)
extern void blk_queue_bounce(struct request_queue *q, struct bio **bio);
-CONFIG_BOUNCE が定義されている場合は、
別の場所で関数が実装される。
--[[linux-2.6.25/mm/bounce.c]]
別の場所で関数が実装される。下記参照。
#else
(...略...)
static inline void blk_queue_bounce(struct request_queue *q, struct bio **bio)
{
}
-CONFIG_BOUNCE が定義されていない場合は何もしない。
#endif /* CONFIG_MMU */
***CONFIG_BOUNCE が定義されている場合 [#a0cba6f2]
***CONFIG_BOUNCE が定義されている場合 [#u173669d]
void blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
{
mempool_t *pool;
-
--[[linux-2.6.25/mempool_t]]
/*
* Data-less bio, nothing to bounce
*/
if (bio_empty_barrier(*bio_orig))
return;
-サイズが 0 なら何もする必要はない。
-FIXME: なぜバリアフラグを見る必要がある?わからん。
--[[linux-2.6.25/bio_empty_barrier()]]
/*
* 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;
-
--[[linux-2.6.25/]]
} else {
BUG_ON(!isa_page_pool);
pool = isa_page_pool;
}
-
--isa_page_pool は init_emergency_isa_pool() で初期化される。
--[[linux-2.6.25/init_emergency_isa_pool()]]
--[[linux-2.6.25/BUG_ON()]]
/*
* slow path
*/
__blk_queue_bounce(q, bio_orig, pool);
-
--[[linux-2.6.25/__blk_queue_bounce()]]
}
EXPORT_SYMBOL(blk_queue_bounce);
-シンボルテーブルに関数をエクスポートする。
--[[linux-2.6.25/EXPORT_SYMBOL()]]
***CONFIG_BOUNCE が定義されていない場合 [#c0262f33]
-[[linux-2.6.25/mm/bounce.c]]には定義なし
--[[linux-2.6.25/include/linux/blkdev.h]]を参照のこと。
***CONFIG_BOUNCE が定義されていない場合 [#b14df869]
-定義なし
-プロトタイプ宣言の項を参照のこと。
*コメント [#f10b04a6]
*コメント [#f9ee8581]
#comment