waitq カーネル・サービス

目的

キュー・エレメントが装置キューに入れられるのを待機します。

構文

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/deviceq.h>
struct req_qe *waitq ( queue_id)
cba_id queue_id;

パラメーター

項目 説明
キュー ID 装置キュー ID を指定します。

説明

待機 カーネル・サービスは基本カーネルの一部ではありませんが、デバイス・キュー管理カーネル・エクステンションによって提供されます。 これらのサービスを参照するカーネル・エクステンションをロードする前に、このキュー管理カーネル・エクステンションをカーネルにロードする必要があります。

待機 カーネル・サービスは、 キュー ID パラメーターで指定されたデバイス・キューにキュー・エレメントが入れられるのを待機します。 このサービスは、以下の 2 つのアクションを実行します。

  • デバイス・キューに関連したイベント・マスクで待機します。
  • Readq カーネル・サービスを呼び出して、最も優先順位の高いキュー・エレメントをアクティブにします。

プロセスは、単一のデバイス・キューを待機するためにのみ 待機 カーネル・サービスを使用できます。 複数のイベント (複数のデバイス・キューなど) の発生を待機するには、 待機の設定 サービスを使用します。

待機 カーネル・サービスは、 イベント (短) 形式の ET待機 (_T) カーネル・サービスを使用します。 したがって、シグナルは待機を終了しません。 待機を終了するシグナルが必要な場合は、 ET 待機 (_T) カーネル・サービスを使用します。

Readq カーネル・サービスを使用して、キューからアクティブなキュー・エレメントを読み取ることができます。 キューに何もない場合は、キュー・エレメントを待機しません。

注意: サーバーは、キュー・エレメント内のフィールドを変更してはなりません。変更すると、システムが停止する可能性があります。

実行環境

待機 カーネル・サービスは、 プロセス環境 からのみ呼び出すことができます。

戻り値

待機 サービスは、デバイス・キュー内のアクティブなキュー・エレメントのアドレスを返します。