Solaris モジューラデバッガ

デバイスドライバと DDI フレームワーク

この節では、カーネル開発者やサードパーティーのデバイスドライバ開発者にとって有用な dcmd と walker について説明します。

dcmds

address ::binding_hash_entry

指定されたカーネル名とメジャー番号のバインディングハッシュテーブルエントリ (構造体 bind) のアドレスを使用して、ノードバインディング名、メジャー番号、および次の要素へのポインタを表示します。

::devbindings device-name

名前を指定されたドライバについてすべてのインスタンスのリストを表示します。インスタンスごとに 1 つのエントリの出力、つまり、先頭から、構造体 dev_info へのポインタ ($<devinfo または ::devinfo で表示可能)、ドライバ名、インスタンス番号、そのインスタンスに関連するドライバとシステムのプロパティーが表示されます。

address ::devinfo [ -q ]

devinfo ノードに関連するシステムプロパティーおよびドライバプロパティーを出力します。-q オプションを指定すると、そのデバイスノードのクイックサマリだけが表示されます。

address ::devinfo2driver

devinfo ノードに関連するドライバ (もしあれば) の名前を出力します。

[ address ] ::devnames [ -v ]

カーネルの devnames テーブルと dn_head ポインタを表示します。このポインタは、ドライバインスタンスリストを指しています。-v フラグを指定すると、devnames テーブルの各エントリに格納されている追加情報が表示されます。

[ devinfo ] ::prtconf [ -cpv ]

devinfo で指定されたデバイスノードからカーネルデバイスツリーを表示します。devinfo を指定しないと、デフォルトでルートからデバイスツリーが表示されます。-c オプションを指定すると、指定されたデバイスノードの子だけが表示されます。-p オプションを指定すると、指定されたデバイスノードの祖先だけが表示されます。-v オプションを指定すると、各ノードに関連するプロパティーが表示されます。

[ major-num ] ::major2name [ major-num ]

指定されたメジャー番号に該当するドライバ名を表示します。メジャー番号は、dcmd の前に式の形で、またはコマンド行引数として指定できます。

[ address ] ::modctl2devinfo

指定された modctl アドレスに対応するすべてのデバイスノードを出力します。

::name2major driver-name

指定されたデバイスドライバ名を使用して、そのメジャー番号を表示します。

[ address ] ::softstate [ instance-number ]

指定された softstate 状態ポインタ (ddi_soft_state_init(9F) のマニュアルページを参照) とデバイスインスタンス番号を使用して、そのインスタンスのソフトの状態を表示します。

walker

binding_hash

指定されたカーネルバインディングハッシュテーブルエントリの配列 (構造体 bind **) のアドレスを使用して、ハッシュテーブル内のすべてのエントリを調べて、各構造体 bind のアドレスを戻します。

devinfo

最初に、指定された devinfo の親に対して反復適用し、それらを最下位から世代順に戻します。次に、指定された devinfo 自身を戻します。その次に、指定された devinfo の子に対して、世代順に最上位から最下位まで反復適用します。dev_info 構造体は、<sys/ddi_impldefs.h> で定義されます。

devinfo_children

最初に、指定された devinfo を戻し、次に、指定された devinfo の子に対して、世代順に最上位から最下位まで反復適用します。dev_info 構造体は、<sys/ddi_impldefs.h> で定義されます。

devinfo_parents

指定された devinfo の親に対して、世代順に最上位から最下位まで反復適用し、次に、指定された devinfo を戻します。dev_info 構造体は、<sys/ddi_impldefs.h> で定義されます。

devi_next

指定された devinfo の兄弟に対して反復適用します。dev_info 構造体は、<sys/ddi_impldefs.h> で定義されます。

devnames

devnames 配列のエントリに対して反復適用します。この構造体は、<sys/autoconf.h> で定義されます。

softstate

指定された softstate ポインタ (ddi_soft_state_init(9F) を参照) を使用して、ドライバ状態構造体への NULL 以外のポインタをすべて表示します。

softstate_all

指定された softstate ポインタ (ddi_soft_state_init(9F) を参照) を使用して、ドライバ状態構造体へのポインタをすべて表示します。未使用のインスタンスのポインタが NULL になることに注意してください。