devswdel カーネル・サービス

目的

装置スイッチ・テーブルから装置ドライバー項目を削除します。

構文

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/device.h>
int devswdel
(
devno)
dev_t devno;

パラメーター

項目 説明
devno 削除するデバイスの メジャーおよびマイナー・デバイス番号 を指定します。

説明

devswdel カーネル・サービスは、通常、終了時にデバイス・ドライバーの ddconfig ルーチンによって呼び出され、デバイス・ドライバーのエントリー・ポイントをデバイス・スイッチ table.The デバイス・スイッチ・テーブルは、デバイス・ドライバーのメジャー・デバイス番号によって索引付けされたデバイス・スイッチ (devsw) 構造のテーブルです。 デバイス・ドライバー・インターフェース・サービスは、デバイス・ドライバー・ルーチンの呼び出しを容易にするために、カーネル内のこの構造のテーブルを使用します。

デヴノ パラメーターのメジャー装置番号部分は、除去する項目の装置スイッチ・テーブルへの索引を指定するために使用されます。 装置スイッチ構造が除去される前に、既存の項目が検査され、オープンされた装置がそれを使用しているかどうかが判別されます。

オープンされた装置が現在、除去される項目を占有している場合、 デヴスデル サービスは更新を実行しません。 代わりに、 EEXIST (拡張) 戻りコードを返します。 除去が成功すると、戻りコード 0 が設定されます。

デヴスデル サービスは、エントリーに未定義のマークを付け、構造内のすべてのエントリー・ポイント・フィールドを ノデフ 値に設定することによって、テーブルから装置スイッチ構造エントリーを除去します。 その結果、除去されたデバイス・ドライバーの呼び出し元は、 ENODEV (E) エラー・コードを戻します。 指定されたエントリーが既に未定義とマークされている場合、 デヴスデル サービスは ENODEV (E) エラー・コードを返します。

実行環境

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

戻り値

項目 説明
0 操作が成功したことを示します。
EEXIST 指定された装置スイッチ項目が使用中であり、除去できないことを示します。
ENODEV 指定された装置スイッチ項目が定義されていないことを示します。
EINVAL デヴノ パラメーターのメジャー装置番号部分が、装置スイッチ項目の最大許容数を超えていることを示します。