- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#ecdd9c5c]
#backlinks
*説明 [#s3cf2076]
-パス: [[linux-4.4.1/include/linux/scatterlist.h]]
-FIXME: これは何?
--説明
--いくつかの連続したページのかたまりを表す。
--通常は struct sg_table 内に struct scatterlist * の配列として置かれているが、page_link を使って別の配列と接続することもできる。
---[[linux-4.4.1/sg_table]]
-scatterlist の詳細な辿り方は sg_next() を参照のこと。
--[[linux-4.4.1/sg_next()]]
**参考 [#fd5b66f3]
*実装 [#f346d13d]
struct scatterlist {
#ifdef CONFIG_DEBUG_SG
-
-デバッグが有効
--[[linux-4.4.1/CONFIG_DEBUG_SG]]
unsigned long sg_magic;
-scatterlist ではないデータが入っている領域を間違って scatterlist として処理したときに検知するためのマジックナンバー。
#endif
unsigned long page_link;
-先頭のページへのポインタ(struct page *)、もしくは次の scatterlist の配列の先頭へのポインタ(struct scatterlist *)。
--単純なポインタではなく、下位 2ビットはフラグとして用いている。
unsigned int offset;
unsigned int length;
-オフセット、領域の大きさ
dma_addr_t dma_address;
-
--[[linux-4.4.1/dma_addr_t]]
#ifdef CONFIG_NEED_SG_DMA_LENGTH
-
--[[linux-4.4.1/CONFIG_NEED_SG_DMA_LENGTH]]
unsigned int dma_length;
#endif
};
*コメント [#g7a0f35c]