Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

mutex_owned() を使用してロック要件の検証とドキュメント化を行う

mutex_owned(9F) の構文は次のとおりです。

int mutex_owned(kmutex_t *mp);

ドライバ開発のかなりの部分で、複数のスレッドを正しく処理する必要があります。mutex が取得されるときには常にコメントを使用する必要があります。明らかに必要な mutex が取得されていない場合は、コメントがさらに役立つことがあります。mutex がスレッドによって保持されているかどうかを判定するには、ASSERT(9F) 内で mutex_owned() を使用します。

void helper(void)
{
    /* this routine should always be called with xsp's mutex held */
    ASSERT(mutex_owned(&xsp->mu));
    /* ... */
}

注 - mutex_owned()ASSERT () マクロ内でのみ有効です。ドライバの動作を制御するためには mutex_owned() を使用してください。