Solaris モジューラデバッガ

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

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

dcmd

::devbindings device-name

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

address ::devinfo [ -q ]

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

[ 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

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> で定義されます。