参照元†
- PG_uptodate ビットのテスト
- 指定されたページのフラグ(flags メンバ)に
PG_uptodate ビットが立っているかテストする。
- このフラグは他の CPU から更新されている場合があるため、
読み込みメモリバリアが必要。
返り値†
- int(おそらく)
- 型、意味は test_bit() に準じる。
- 型はおそらく int。意味はビットがセットされていれば 0 以外、ビットがセットされていなければ 0 が返る、ことが多い。
- ページの属性フラグ(PG_xxxx)
- この関数の片割れ(セット関数)
static inline int PageUptodate(struct page *page)
{
int ret = test_bit(PG_uptodate, &(page)->flags);
/*
* Must ensure that the data we read out of the page is loaded
* _after_ we've loaded page->flags to check for PageUptodate.
* We can skip the barrier if the page is not uptodate, because
* we wouldn't be reading anything from it.
*
* See SetPageUptodate() for the other side of the story.
*/
if (ret)
smp_rmb();
return ret;
}
コメント†