参照元†
- PG_uptodate ビットのテスト
- 指定されたページのフラグ(flags メンバ)に
PG_uptodate ビットが立っているかテストする。
- このフラグは他の CPU から更新されている場合があるため、
読み込みメモリバリアが必要。
返り値†
- int(おそらく)
- 型、意味は test_bit() に準じる。
- 型はおそらく int。意味はビットがセットされていれば 0 以外、ビットがセットされていなければ 0 が返る、ことが多い。
- ページの属性フラグ(PG_xxxx)
- この関数の片割れ(セット関数)
static inline void SetPageUptodate(struct page *page)
{
#ifdef CONFIG_S390
if (!test_and_set_bit(PG_uptodate, &page->flags))
page_clear_dirty(page);
#else
/*
* Memory barrier must be issued before setting the PG_uptodate bit,
* so that all previous stores issued in order to bring the page
* uptodate are actually visible before PageUptodate becomes true.
*
* s390 doesn't need an explicit smp_wmb here because the test and
* set bit already provides full barriers.
*/
smp_wmb();
set_bit(PG_uptodate, &(page)->flags);
#endif
}
コメント†