mutex_owned
指定したカーネル相互排他ロックをスレッドが保持しているかどうかを確認します。
int mutex_owned(vmlinux`struct mutex *)
mutex_owned
関数は、コール元のスレッドが指定されたカーネル相互排他ロックを所有している場合はゼロ以外の値を返し、そうでない場合はゼロを返します。
例7-28 mutex_ownedを使用してコール側スレッドがmutexを保持しているかどうかを確認する方法
fbt::mutex_lock:entry
{
this->mutex = arg0;
}
fbt::mutex_lock:return
{
this->owned = mutex_owned((struct mutex *)this->mutex);
}
fbt::mutex_lock:return
/!this->owned/
{
printf("mutex_owned() returned 0, expected non-zero\n");
exit(1);
}