waitq カーネル・サービス
目的
キュー・エレメントが装置キューに入れられるのを待機します。
構文
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/deviceq.h> struct req_qe *waitq ( queue_id)
cba_id queue_id;
cba_id queue_id;
パラメーター
| 項目 | 説明 |
|---|---|
| キュー ID | 装置キュー ID を指定します。 |
説明
待機 カーネル・サービスは基本カーネルの一部ではありませんが、デバイス・キュー管理カーネル・エクステンションによって提供されます。 これらのサービスを参照するカーネル・エクステンションをロードする前に、このキュー管理カーネル・エクステンションをカーネルにロードする必要があります。
待機 カーネル・サービスは、 キュー ID パラメーターで指定されたデバイス・キューにキュー・エレメントが入れられるのを待機します。 このサービスは、以下の 2 つのアクションを実行します。
- デバイス・キューに関連したイベント・マスクで待機します。
- Readq カーネル・サービスを呼び出して、最も優先順位の高いキュー・エレメントをアクティブにします。
プロセスは、単一のデバイス・キューを待機するためにのみ 待機 カーネル・サービスを使用できます。 複数のイベント (複数のデバイス・キューなど) の発生を待機するには、 待機の設定 サービスを使用します。
待機 カーネル・サービスは、 イベント (短) 形式の ET待機 (_T) カーネル・サービスを使用します。 したがって、シグナルは待機を終了しません。 待機を終了するシグナルが必要な場合は、 ET 待機 (_T) カーネル・サービスを使用します。
Readq カーネル・サービスを使用して、キューからアクティブなキュー・エレメントを読み取ることができます。 キューに何もない場合は、キュー・エレメントを待機しません。
注意: サーバーは、キュー・エレメント内のフィールドを変更してはなりません。変更すると、システムが停止する可能性があります。
実行環境
待機 カーネル・サービスは、 プロセス環境 からのみ呼び出すことができます。
戻り値
待機 サービスは、デバイス・キュー内のアクティブなキュー・エレメントのアドレスを返します。