rw_iswriter

指定した読取り/書込みロックを書込み側が保持中または待機中かどうかを確認します。

int rw_iswriter(vmlinux`rwlock_t *rwlock)

rw_iswriter関数は、書込み側が指定された読取り/書込みロック(rwlock)を保持または待機している場合に、ゼロ以外の値を返します。ロックが読取り側のみで保持されていて、ブロックされている書込み側がない場合、またはロックがまったく保持されていない場合に、rw_iswriterはゼロを返します。

例7-40 指定した読取り/書込みロックを書込み側が保持または待機しているかどうかを確認するためにrw_iswriterを使用する方法

この例には、2つの節が含まれています。最初の節は、_raw_write_lockが入力されたときにトリガーされ、rw_iswriter関数を使用してロックが保持されているかどうかを表示します。この段階ではロックが保持されないため、出力は0を返します。_raw_write_lockが復帰したときにロックが保持され、rw_iswriter関数は1を返して終了します。

fbt:vmlinux:_raw_write_lock:entry
{
         self->wlock = (rwlock_t *)arg0;
         printf("write entry  %x\n", 0 != rw_iswriter(self->wlock));
}
 
fbt:vmlinux:_raw_write_lock:return
/self->wlock/
{
         printf("write return %x\n", 0 != rw_iswriter(self->wlock));
         exit(0)
}