iowait カーネル・サービス
目的
ブロック入出力の完了を待ちます。
構文
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/buf.h> int iowait ( bp)
struct buf *bp;
struct buf *bp;
パラメーター
| 項目 | 説明 |
|---|---|
| ブ | 処理中の入出力を持つバッファーの ブフ 構造体のアドレスを指定します。 ストレージ・キーをサポートするプラットフォームでは、渡される BP パラメーターは キー・パブリック または キー・ブロック・デバイス 保護ドメイン内になければなりません。 |
説明
イオウェト カーネル・サービスは、 BP パラメーターで指定されたバッファーの入出力が完了するまでプロセスを待機させます。 イオウェト サービスを呼び出すことができるのは、戦略ルーチンの呼び出し側だけです。 バッファー内の 非同期 (_ASYNC) ビット。 b_flags フィールドを設定してはなりません。
ブロック入出力転送が完了したら、 Iodone カーネル・サービスを呼び出す必要があります。 BP パラメーターによって指し示される ブフ 構造は、iodone ルーチンを指定する必要があります。 このルーチンは、 Iodone カーネル・サービスへの呼び出しに応答して、iodone 割り込みハンドラーによって呼び出されます。 この iodone ルーチンは、以下を使用して ウェイクアップ サービスを呼び出す必要があります。bp->b_eventsフィールドをイベントとして使用します。 このアクションは、 イオウェト サービスを使用する ブフ 構造体の入出力完了を待機しているすべてのプロセスを起動します。
実行環境
イオウェト カーネル・サービスは、 プロセス環境 からのみ呼び出すことができます。
戻り値
イオウェト サービスは、 ゲテロ サービスを使用して、以下のどの値を返すかを決定します。
| 項目 | 説明 |
|---|---|
| 0 | このバッファーで入出力が成功したことを示します。 |
| EIO | 入出力エラーが発生したことを示します。 |
| b_error 値 | バッファーで入出力エラーが発生したことを示します。 |