eeh_clear カーネル・サービス
目的
このサービスは、EEH 関数のスロットを登録抹消し、 eeh_init または eeh_init_multifunc カーネル・サービスによって割り振られたリソースを削除します。
構文
#include <sys/eeh.h>
void eeh_clear(handle)
eeh_handle_t handle;
パラメーター
| 項目 | 説明 |
|---|---|
| 処理 | eeh_init または eeh_init_multifunc カーネル・サービスから取得される EEH ハンドル |
説明
シングル・ファンクション・ドライバー: このサービスは、スロットの EEH 機能を使用不可にし、その EH ハンドルを解放します。
多機能ドライバー: 多機能アダプター・ドライバーの場合、このサービスは、同じ親バスの下にある登録済みドライバーのリストからドライバーを削除します。 このサービスは、これが登録抹消する最後のドライバーであり、スロットの状態が NORMAL である場合にも、スロットの EEH 機能を使用不可にします。
すべてのデバイス・ドライバーは、ホット・プラグの競合が発生しないように、システムから除去する前に eeh_clear を呼び出す必要があります。 eeh_clear カーネル・サービスがスロット上の前のデバイス・ドライバーをクリアしていない場合、そのスロット上の eeh_init_multifunc () で後続のアダプターが失敗する可能性があります。 ドライバーは、構成解除/アンロード時に登録抹消できます。 カーネルは、このサービスの呼び出し時にスロットの状態を検査します。 スロットの状態が NORMAL でも DEAD でもない場合、 eeh_clear は、いずれかの状態に戻るまでスリープします。
マクロ EEH_ 消去(ハンドル) は、デバイス・ドライバーがこのサービスを呼び出すために提供されています。 このサービスは、EEH ハンドル内の関数ポインターによって呼び出されます。
実行環境
このカーネル・サービスは、プロセス環境からのみ呼び出すことができます。
戻り値
このサービスには戻り値がありません。