デバイスおよびデバイス特殊ファイルの命名および構成方法は,Tru64 UNIX オペレーティング・システムのバージョン 5.0 で変更されています。
変更点についての詳細は,
dsfmgr
(8)
デバイス処理に影響を与える変更点をサポートするために,オペレーティング・システムは新しいスタイルの名前と古いスタイルの名前の変換を容易にするための変換ルーチンを提供します。 ここでは,その変換ルーチンについて説明します。 これらのルーチンは,システムが古いスタイルの名前をサポートしなくなるまで,継続して提供されます。
デバイス特殊ファイルの名前を参照するシステム・コンポーネントまたはアプリケーションは,そのソース・コードを変更する必要があります。 変更は,必要に応じて,すべてのデバイス特殊ファイル名を新しいスタイルの名前に置き換えるか,新しいスタイルの名前を導き出す変換ルーチンを使用して行います。
次の規則は,すべての変換ルーチンに適用されます。
関数呼び出しのポインタがヌルでない場合,引数が返されます。
必須なのは最初の引数だけです。 ただし,他の引数が指定されない場合,関数は,状態情報を除き,有用な情報を返しません。
各ルーチン (dsfcvt_btoc()
,
dsfcvt_ctob()
,
dsfcvt_ntoo()
,
dsfcvt_oton()
,
dsfcvt_noro()
, および
dsfcvt_cdevtoname()
) については,以下で説明します。
ルーチンの説明に続いて,パラメータについて説明します。
ブロック名をキャラクタ名に変換します。ブロック・デバイス名が,デバイス状態データベース内で検索され,見つかると,対応するキャラクタ・デバイス名が検索されます。 キャラクタ・デバイス名が見つかると,その名前がハードウェア ID とともに返されます。
構文:
int dsfcvt_btoc(
const char *blk_name,
char *chr_name,
char *blk_path,
char *chr_path,
long *hardware_id
);
リターン値: ESUCCESS (両方のデバイス名が検出された),ENOENT (ブロック・デバイス名が検出されなかった),ENODEV (キャラクタ・デバイス名が検出されなかった)。
キャラクタ名をブロック名に変換します。キャラクタ名をデバイス状態データベース内で検索し,見つかると,対応するブロック・デバイスを検索します。 ブロック・デバイス名が見つかると,その名前をハードウェア ID とともに返します。
構文:
int dsfcvt_ctob(
const char *chr_name,
char *blk_name,
char *chr_path,
char *blk_path,
long *hardware_id
);
リターン値: ESUCCESS (両方のデバイス名が検出された),ENOENT (キャラクタ・デバイス名が検出されなかった),ENODEV (ブロック・デバイス名が検出されなかった)。
新しいスタイルの名前を古いスタイルの名前に変換します。新しいスタイルの名前をデバイス状態データベース内で検索し,見つかると,古いスタイルの名前 (存在する場合) をハードウェア ID とともに返します。
構文:
int dsfcvt_ntoo(
const char *new_name,
char *old_name,
char *new_path,
char *old_path,
long *hardware_id
);
リターン値: ESUCCESS (両方のデバイス名が検出された),ENOENT (新しいデバイス名が検出されなかった),ENODEV (古いスタイルのデバイス名は検出されなかった)。
古いスタイルの名前を新しいスタイルの名前に変換します。古いスタイルの名前をデバイス状態データベース内で検索し,見つかると,新しいスタイルの名前をハードウェア ID とともに返します。
構文:
int dsfcvt_oton(
const char *old_name,
char *new_name,
char *old_path,
char *new_path,
long *hardware_id
);
リターン値: ESUCCESS (両方のデバイス名が検出された),ENOENT (古いスタイルのデバイス名は検出されなかった),ENODEV (新しいデバイス名が検出されなかった)。
名前を古いスタイルの名前または新しいスタイルの名前に変換します。入力名 (新しいスタイルまたは古いスタイル) をデバイス状態データベース内で検索します。 一致した最初の古いスタイルの名前または新しいスタイルの名前が適切なフィールド内に返され,入力名が適切なフィールド内に返されます。 ハードウェア ID も返されます。
検索名は,一方または両方の名前引数に指定できます。 両方の場合,どちらも同じ名前でなければならず,同一の文字列値をポイントしてはなりません。
構文:
int dsfcvt_noro(
char *new_name,
char *old_name,
char *new_path,
char *old_path,
long *hardware_id
);
リターン値: ESUCCESS (両方のデバイス名が検出された),ENOENT (入力デバイス名は,新しいスタイルまたは古いスタイルのいずれの場合にも検出されなかった),ENODEV (他のデバイス名は,新しいスタイルまたは古いスタイルのいずれの場合にも検出されなかった)。
デバイスに固有の数値識別子 (cdev) を新しいスタイルの名前およびパスに変換します。cdev をデバイス状態データベース内で検索し,見つかると,新しい名前とパスを返します。
構文:
int dsfcvt_cdevtoname(
dev_t cdev,
char *new_name,
char *new_path
);
リターン値: ESUCCESS (デバイスが検出された),ENOENT (デバイスは検出されなかった)。
次のリストに,関数の引数についての情報を示します。
ブロックまたはキャラクタ・デバイスの名前へのポインタ。
たとえば,それぞれ
dsk1a
,rz4a
,または
rrz4a
。
blk_name
(例,/dev/disk/dsk1a
) または
chr_name
(例,/dev/rdisk/dsk1a
) により識別されるデバイス・パスへのポインタ。
デバイス名へのポインタ。 引数 new_name は新しいスタイルの命名規則に従い,引数 old_name は古いスタイルの命名規則に従います。
デバイス名のパスへのポインタ。
引数
new_path
は新しいスタイルの命名規則に従い,引数
old_path
は,古いスタイルの命名規則に従います。
たとえば,/dev/disk/dsk1a
および
/dev/rdisk/dsk1a
となり,古いスタイルの規則では,それぞれ
/dev/rz4a
および
/dev/rrz4a
となります。
デバイスに固有の数値識別子へのポインタ (この識別子は,カーネルによる割り当ておよび保守が行われます)。
カーネルによりデバイスに割り当てられる固有の主デバイス番号および副デバイス番号。