编写设备驱动程序

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