Go to main content
Oracle® Solaris 11.3 デバイスドライバの記述

印刷ビューの終了

更新: 2016 年 11 月
 
 

dump() エントリポイントと print() エントリポイント

このセクションでは、dump(9E) エントリポイントと print(9E) エントリポイントについて説明します。

dump() エントリポイント (ブロックドライバ)

dump(9E) エントリポイントは、システム障害が発生した場合に、仮想アドレス空間の一部を指定されたデバイスに直接コピーするために使用されます。dump() はまた、チェックポイント操作中にカーネルの状態をディスクにコピーするためにも使用されます。詳細については、cpr(7)dump(9E) のマニュアルページを参照してください。チェックポイント操作中は割り込みが無効になっているため、このエントリポイントは、割り込みを使用せずにこの操作を実行できる必要があります。

int dump(dev_t dev, caddr_t addr, daddr_t blkno, int nblk)

ここでは:

dev

ダンプを受信するデバイスのデバイス番号。

addr

ダンプを開始する基準となるカーネル仮想アドレス。

blkno

ダンプを開始するブロック。

nblk

ダンプするブロック数。

このダンプは、既存のドライバの正常な動作に依存します。

print() エントリポイント (ブロックドライバ)

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);
 }