ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
このセクションでは、dump(9E) エントリポイントと print(9E) エントリポイントについて説明します。
dump(9E) エントリポイントは、システム障害が発生した場合に、仮想アドレス空間の一部を指定されたデバイスに直接コピーするために使用されます。dump() はまた、チェックポイント操作中にカーネルの状態をディスクにコピーするためにも使用されます。詳細については、cpr(7) と dump(9E) のマニュアルページを参照してください。チェックポイント操作中は割り込みが無効になっているため、このエントリポイントは、割り込みを使用せずにこの操作を実行できる必要があります。
int dump(dev_t dev, caddr_t addr, daddr_t blkno, int nblk)
各表記の意味は次のとおりです。
ダンプを受信するデバイスのデバイス番号。
ダンプを開始する基準となるカーネル仮想アドレス。
ダンプを開始するブロック。
ダンプするブロック数。
このダンプは、既存のドライバの正常な動作に依存します。
int print(dev_t dev, char *str)
print(9E) エントリポイントは、検出された例外に関するメッセージを表示するためにシステムから呼び出されます。print(9E) は、システムに代わってメッセージをコンソールに送信するために cmn_err(9F) を呼び出します。次の例は、標準的な print() エントリポイントを示しています。
static int xxprint(dev_t dev, char *str) { cmn_err(CE_CONT, “xx: %s\n”, str); return (0); }