devswdel カーネル・サービス
目的
装置スイッチ・テーブルから装置ドライバー項目を削除します。
構文
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/device.h>
パラメーター
| 項目 | 説明 |
|---|---|
| devno | 削除するデバイスの メジャーおよびマイナー・デバイス番号 を指定します。 |
説明
devswdel カーネル・サービスは、通常、終了時にデバイス・ドライバーの ddconfig ルーチンによって呼び出され、デバイス・ドライバーのエントリー・ポイントをデバイス・スイッチ table.The デバイス・スイッチ・テーブルは、デバイス・ドライバーのメジャー・デバイス番号によって索引付けされたデバイス・スイッチ (devsw) 構造のテーブルです。 デバイス・ドライバー・インターフェース・サービスは、デバイス・ドライバー・ルーチンの呼び出しを容易にするために、カーネル内のこの構造のテーブルを使用します。
デヴノ パラメーターのメジャー装置番号部分は、除去する項目の装置スイッチ・テーブルへの索引を指定するために使用されます。 装置スイッチ構造が除去される前に、既存の項目が検査され、オープンされた装置がそれを使用しているかどうかが判別されます。
オープンされた装置が現在、除去される項目を占有している場合、 デヴスデル サービスは更新を実行しません。 代わりに、 EEXIST (拡張) 戻りコードを返します。 除去が成功すると、戻りコード 0 が設定されます。
デヴスデル サービスは、エントリーに未定義のマークを付け、構造内のすべてのエントリー・ポイント・フィールドを ノデフ 値に設定することによって、テーブルから装置スイッチ構造エントリーを除去します。 その結果、除去されたデバイス・ドライバーの呼び出し元は、 ENODEV (E) エラー・コードを戻します。 指定されたエントリーが既に未定義とマークされている場合、 デヴスデル サービスは ENODEV (E) エラー・コードを返します。
実行環境
デヴスデル カーネル・サービスは、 プロセス環境 からのみ呼び出すことができます。
戻り値
| 項目 | 説明 |
|---|---|
| 0 | 操作が成功したことを示します。 |
| EEXIST | 指定された装置スイッチ項目が使用中であり、除去できないことを示します。 |
| ENODEV | 指定された装置スイッチ項目が定義されていないことを示します。 |
| EINVAL | デヴノ パラメーターのメジャー装置番号部分が、装置スイッチ項目の最大許容数を超えていることを示します。 |